| New file |
| | |
| | | # 人脸识别服务DOCKER安装说明 |
| | | |
| | | ## 1. 简介 |
| | | 本项目基于dlib库实现了一个简单的人脸识别服务,使用FastAPI框架构建API接口,支持通过HTTP请求进行人脸注册和识别。 |
| | | 该服务可以部署在Docker容器中,方便用户快速搭建和使用人脸识别功能。 |
| | | |
| | | ## 2. 安装部署 |
| | | |
| | | [在线安装](在线人脸识别安装服务docker.md) |
| | | |
| | | [离线安装](离线人脸识别安装服务docker.md) |
| | | |
| | | [手工部署](基于DLIB的人脸识别服务-手工部署说明.md) |
| | | |
| | | ## 3. 使用说明 |
| | | ### 3.1 启动服务 |
| | | 进入服务部署目录,执行以下命令启动服务: |
| | | |
| | | ```bash |
| | | docker-compose up -d |
| | | ``` |
| | | ### 3.2 停止服务 |
| | | ```bash |
| | | docker-compose down |
| | | ``` |
| | | ### 3.3 查看日志 |
| | | ```bash |
| | | docker-compose logs -f facerec |
| | | ``` |
| | | |
| | | ### 3.4 人脸识别API接口说明 |
| | | |
| | | 本文档详细描述了人脸识别服务提供的各个API接口,包括接口地址、请求方式、参数说明、返回结果等信息。 |
| | | |
| | | #### 3.4.1 人脸识别接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/identifyFace` |
| | | |
| | | ##### 功能说明 |
| | | 上传图片进行人脸识别,返回匹配的用户信息。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | image | file | 是 | 包含人脸的图片文件 | |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "msg": "success", |
| | | "errno": 0, |
| | | "data": { |
| | | "result": [ |
| | | { |
| | | "score": 95.5, |
| | | "group_id": "group", |
| | | "user_id": "用户名", |
| | | "Uid": "用户编码", |
| | | "Name": "用户姓名", |
| | | "IdNum": "身份证号" |
| | | } |
| | | ], |
| | | "log_id": "时间戳", |
| | | "face_token": "唯一标识符", |
| | | "result_num": 1 |
| | | } |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/identifyFace" \ |
| | | -H "Content-Type: multipart/form-data" \ |
| | | -F "image=@test.jpg" |
| | | ``` |
| | | |
| | | #### 3.4.2 添加人脸数据接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/addFace` |
| | | |
| | | ##### 功能说明 |
| | | 添加新的人脸数据到系统中,用于后续的人脸识别。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | image | file | 是 | 包含人脸的图片文件 | |
| | | | userCode | string | 是 | 用户编码 | |
| | | | userName | string | 否 | 用户姓名,默认使用userCode | |
| | | | idNum | string | 否 | 身份证号,默认使用userCode | |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "msg": "success", |
| | | "errno": 0, |
| | | "data": { |
| | | "log_id": "时间戳", |
| | | "message": "用户数据添加成功", |
| | | "faceUrl": "http://localhost:12316/images/userCode.jpg", |
| | | "faceUrl_Placeholder": "http://^API_BASE_URL^/images/userCode.jpg" |
| | | } |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/addFace" \ |
| | | -H "Content-Type: multipart/form-data" \ |
| | | -F "image=@user.jpg" \ |
| | | -F "userCode=USER001" \ |
| | | -F "userName=张三" \ |
| | | -F "idNum=110101199001011234" |
| | | ``` |
| | | |
| | | #### 3.4.3 人脸检测接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/detectFace` |
| | | |
| | | ##### 功能说明 |
| | | 检测图片中的人脸位置信息,不进行身份识别。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | image | file | 是 | 图片文件 | |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "faces": [ |
| | | { |
| | | "location": { |
| | | "left": 100, |
| | | "top": 100, |
| | | "width": 200, |
| | | "height": 200 |
| | | } |
| | | } |
| | | ], |
| | | "face_num": 1 |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | **坐标信息说明:** |
| | | - `left`: 人脸框左上角距离图片左边界的像素距离 |
| | | - `top`: 人脸框左上角距离图片上边界的像素距离 |
| | | - `width`: 人脸框的宽度(像素) |
| | | - `height`: 人脸框的高度(像素) |
| | | 这些坐标信息基于图片的左上角为原点(0,0),向右为X轴正方向,向下为Y轴正方向的坐标系。 |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/detectFace" \ |
| | | -H "Content-Type: multipart/form-data" \ |
| | | -F "image=@test.jpg" |
| | | ``` |
| | | |
| | | #### 3.4.4 获取用户人脸图像URL接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/getUserFaceUrl` |
| | | |
| | | ##### 功能说明 |
| | | 根据用户编码获取用户人脸图像的访问URL。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | userCode | string | 是 | 用户编码 | |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": "http://localhost:12316/images/userCode.jpg", |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/getUserFaceUrl" \ |
| | | -d "userCode=USER001" |
| | | ``` |
| | | |
| | | #### 3.4.5 删除人脸数据接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/delFace` |
| | | |
| | | ##### 功能说明 |
| | | 根据用户编码删除指定的人脸数据。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | userCode | string | 是 | 用户编码 | |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "msg": "success", |
| | | "errno": 0, |
| | | "data": { |
| | | "log_id": "时间戳", |
| | | "message": "用户数据删除成功" |
| | | } |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/delFace" \ |
| | | -d "userCode=USER001" |
| | | ``` |
| | | |
| | | #### 3.4.6 重新加载特征数据接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/reloadFeatures` |
| | | |
| | | ##### 功能说明 |
| | | 重新从数据库加载所有人脸特征数据到内存中。 |
| | | |
| | | ##### 请求参数 |
| | | 无 |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "msg": "success", |
| | | "errno": 0, |
| | | "data": { |
| | | "log_id": "时间戳", |
| | | "message": "特征数据重新加载成功", |
| | | "count": 10 |
| | | } |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/reloadFeatures" |
| | | ``` |
| | | |
| | | #### 3.4.7 查询所有人员数据接口 |
| | | |
| | | ##### 接口地址 |
| | | `POST /api/getAllUsers` |
| | | |
| | | ##### 功能说明 |
| | | 获取系统中所有已注册用户的信息。 |
| | | |
| | | ##### 请求参数 |
| | | 无 |
| | | |
| | | ##### 返回结果 |
| | | ```json |
| | | { |
| | | "code": 200, |
| | | "data": { |
| | | "msg": "success", |
| | | "errno": 0, |
| | | "data": { |
| | | "users": [ |
| | | { |
| | | "userCode": "USER001", |
| | | "userName": "张三", |
| | | "idNum": "110101199001011234", |
| | | "faceUrl": "http://localhost:12316/images/USER001.jpg", |
| | | "faceUrl_Placeholder": "http://^API_BASE_URL^/images/USER001.jpg" |
| | | } |
| | | ], |
| | | "count": 1 |
| | | } |
| | | }, |
| | | "message": "SUCCESS" |
| | | } |
| | | ``` |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X POST "http://localhost:12316/api/getAllUsers" |
| | | ``` |
| | | |
| | | #### 3.4.8 静态图像文件服务 |
| | | |
| | | ##### 接口地址 |
| | | `GET /images/{filename}` |
| | | |
| | | ##### 功能说明 |
| | | 提供用户人脸图像的静态文件访问服务。 |
| | | |
| | | ##### 请求参数 |
| | | | 参数名 | 类型 | 必填 | 说明 | |
| | | |--------|------|------|------| |
| | | | filename | string | 是 | 图像文件名 | |
| | | |
| | | ##### 返回结果 |
| | | 图像文件二进制数据 |
| | | |
| | | ##### 示例 |
| | | ```bash |
| | | curl -X GET "http://localhost:12316/images/USER001.jpg" -o user_image.jpg |
| | | ``` |
| | | ### 3.5 简要使用说明 |
| | | |
| | | 本服务是使用DLIB本的模型进行人脸识别的,精度和速度都比较适中,适合一般的应用场景。使用sqlite数据库存储人脸特征数据,方便部署和维护。 |
| | | 在使用过程中,请注意以下几点: |
| | | - 确保上传的图片质量较好,避免模糊或遮挡严重的图片。 |
| | | - 人脸识别的准确率受多种因素影响,如光照、角度、表情等,建议在多种条件下测试和优化。 |
| | | - 定期备份数据库文件,防止数据丢失。 |
| | | - 如果需要更高的识别精度,可以考虑使用更复杂的模型或增加训练数据。 |
| | | |
| | | 服务在启动时,先把数据库中所有的人脸特征数据加载到内存中,识别时直接在内存中进行比对,速度较快。如果添加或删除了人脸数据,需要调用`/api/reloadFeatures`接口重新加载特征数据。人脸特征数据存储在`rec.db`文件中,位于服务的工作目录下data/db。如需导出,可以直接找到容器的挂载目录下的该文件进行备份或导出。 |
| | | |
| | | 人脸特征,采用了采集128个特征点保存,即128维的浮点数数组,存储在数据库中。识别时,计算上传图片的人脸特征与数据库中所有特征的欧氏距离,距离越小表示相似度越高。可以根据实际需求调整识别阈值。 |
| | | |
| | | 人脸特征库表每个记录约131个字段,其不适合存储大量人脸数据。如果需要存储更多人脸数据,建议使用更专业的数据库系统,如MySQL、PostgreSQL等。因为本项目就动时需要据有的人脸数据加载到内存中,所以,人脸数据量不宜过大,建议控制在几千人以内。 |
| | | |
| | | ### 3.6 人脸识别服务简要测试办法 |
| | | |
| | | 本人脸识别服务,提供了一个简单的HTML页面用于测试人脸识别功能。可以通过浏览器访问该页面,上传图片进行测试。 |
| | | |
| | | 下载地址: |
| | | |
| | | [测试网页压缩包](https://datacdn.data-it.tech/faceRec/face-dt/face-test.zip) |
| | | |
| | | [测试网页-未压缩](https://datacdn.data-it.tech/faceRec/face-dt/face-test.html) |
| | | |
| | | 解压后,将`face-test.html`文件放在任意目录下,使用浏览器打开该文件。页面中有一个文件上传控件,可以选择包含人脸的图片进行测试。上传后,页面会调用人脸识别服务的API接口,显示识别结果。 |
| | | |
| | | 如果需要把网页部署到nginx等web服务器上,可以将`face-test.html`文件放在服务器的指定目录下,然后通过浏览器访问服务器的地址即可。 |
| | | 但时要注意,因为网页中调用了摄像头视频,在没有https证书的情况下,只有localhost可开启了权限白名单的情况下,才能正常使用摄像头功能。 |
| | | |
| | | ***本地测试如何开启权限*** |
| | | |
| | | ``` |
| | | Edge |
| | | edge://flags/#unsafely-treat-insecure-origin-as-secure |
| | | Chrome |
| | | chrome://flags/#unsafely-treat-insecure-origin-as-secure |
| | | 将 Insecure origins treated as secure 设置为 Enabled |
| | | ``` |
| | | |
| | | 如果不想开启权限白名单,可以把网页放在nginx等web服务器上,并配置https证书,这样浏览器会认为是安全的来源,就可以正常使用摄像头功能。 |
| | | |
| | | |
| | | ### 3.7 常见问题 |
| | | |
| | | - **问题1**: 上传图片后,识别结果为空或不准确。 |
| | | - **解决办法**: 确保上传的图片质量较好,避免模糊或遮挡严重的图片。可以尝试不同的图片进行测试。 |
| | | - **问题2**: 添加人脸数据时,提示用户已存在。 |
| | | - **解决办法**: 确认用户编码是否唯一,如果需要更新用户信息,可以先删除旧数据,再添加新数据。 |
| | | - **问题3**: 服务启动失败或无法访问。 |
| | | - **解决办法**: 检查Docker容器是否正常运行,确认端口是否被正确映射。查看日志获取更多信息。 |
| | | - **问题4**: 数据库文件损坏或丢失。 |
| | | - **解决办法**: 如果有备份,可以恢复备份文件。否则需要重新添加人脸数据。 |
| | | - **问题5**: 识别速度较慢。 |
| | | - **解决办法**: 确认服务器性能是否足够,减少人脸数据量,或优化图片大小和质量。 |
| | | - **问题6**: 如何调整识别阈值? |
| | | - **解决办法**: 目前代码中没有提供直接调整阈值的接口,可以在代码中修改识别逻辑,调整欧氏距离的阈值。 |
| | | |
| | | ### 3.8 性能测试报告 |
| | |  |
| | | 上图为配笔记本电脑环境测 |
| | | |
| | | 下图为公司的前置工控机环境测试 |
| | |  |
| | | |
| | | 经过反复测试,平均响应时间在200-300ms之间,峰值时段也能保持在500ms以内,满足一般应用需求。 |
| | | 同时并发要控制在4个以内,同一时间进行识别请求,超过4个时,响应时间会明显增加,延迟响应,响应时间有可能超过秒。如果需要更高的并发处理能力,可以考虑增加服务器资源,部署多个服务做负载均衡。,但对同一个中心,一般一个服务就足够了,毕竟同时识可的可能性太少了。 |
| | | |
| | | ### 3.9 总结 |
| | | 本项目提供了一个基于DLIB的人脸识别服务,使用FastAPI框架,支持Docker部署。通过RESTful API接口,用户可以方便地进行人脸注册和识别操作。服务性能良好,适合一般应用场景。用户可以根据实际需求进行扩展和优化。 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| New file |
| | |
| | | # 在线人脸识别安装服务 |
| | | |
| | | ## 1. 简介 |
| | | 本项目基于dlib库实现了一个简单的人脸识别服务,使用FastAPI框架构建API接口,支持通过HTTP请求进行人脸注册和识别。 |
| | | |
| | | 该服务可以部署在Docker容器中,方便用户快速搭建和使用人脸识别功能。 |
| | | |
| | | ## 2. 安装部署 |
| | | |
| | | ### 环境准备 |
| | | 在开始之前,请确保您的系统满足以下要求: |
| | | |
| | | - 操作系统:Linux(推荐使用Ubuntu) |
| | | - Docker版本:20.10及以上 |
| | | - Docker Compose版本:1.29及以上 |
| | | - 端口要求:12316(可根据需要修改) |
| | | - os已安装curl命令 |
| | | |
| | | |
| | | ### 执行在线安装脚本 |
| | | |
| | | ``` |
| | | curl -fsSL https://datacdn.data-it.tech/faceRec/FacRecDocker/install-online.sh | sudo bash |
| | | ``` |
| | | 命令执行后,系统会自动下载并安装所需的Docker镜像和配置文件,整个过程可能需要几分钟时间,请耐心等待。 |
| | | |
| | | |
| | |  |
| | |  |
| | |  |
| | | 由图中可见,人脸识别服务,已经成功安装完成。 |
| | | |
| | | |
| | | |
| | | |
| | | |
| New file |
| | |
| | | # 基于DLIB的人脸识别服务-手工部署说明 |
| | | |
| | | ## 1. 简介 |
| | | |
| | | DLIB是一个现代C++工具包,包含机器学习算法和工具,用于创建复杂的软件以解决现实世界中的问题。它在计算机视觉领域尤为出色,尤其是在面部识别任务中表现优异。DLIB的人脸识别功能基于深度学习技术,能够高效地检测和识别人脸。 |
| | | 本程序利用DLIB的强大功能,提供一个基于Python的简单人脸识别服务。用户可以通过HTTP请求上传图像,服务将返回图像中检测到的人脸信息。 |
| | | |
| | | ## 2. 环境准备 |
| | | 在开始之前,请确保您的系统满足以下要求: |
| | | |
| | | - 操作系统:Linux(推荐使用Ubuntu) |
| | | - Python版本:3.10及以上 |
| | | - 必要的Python库:dlib, Flask, numpy, opencv-python |
| | | - CMake(用于编译dlib) |
| | | - 编译工具链(如g++) |
| | | |
| | | ## 3. 安装步骤 |
| | | |
| | | ### 3.1 安装依赖项 |
| | | 首先,确保系统包是最新的: |
| | | |
| | | ```bash |
| | | sudo apt-get update |
| | | sudo apt-get upgrade |
| | | ``` |
| | | 安装必要的依赖项: |
| | | |
| | | ```bash |
| | | sudo apt-get install build-essential cmake libboost-all-dev libx11-dev libopenblas-dev liblapack-dev python3.12-venv |
| | | ``` |
| | | ### 3.2 创建Python虚拟环境 |
| | | |
| | | 创建并激活一个新的Python虚拟环境:名称为face-dt |
| | | ```bash |
| | | python3 -m venv face-dt |
| | | source face-dt/bin/activate |
| | | ``` |
| | | ### 3.3 安装Python库 |
| | | |
| | | 先在项目根目录创建一个`requirements.txt`文件,内容如下: |
| | | |
| | | ```plaintext |
| | | dlib>=19.22.0 |
| | | numpy>=1.19.0 |
| | | opencv-python>=4.5.0 |
| | | Pillow>=8.0.0 |
| | | scikit-image>=0.18.0 |
| | | pandas>=1.2.0 |
| | | simplejson>=3.17.0 |
| | | fastapi>=0.104.0 |
| | | uvicorn>=0.24.0 |
| | | python-multipart>=0.0.6 |
| | | ``` |
| | | 然后运行以下命令安装这些库: |
| | | ```bash |
| | | pip install -r requirements.txt |
| | | ``` |
| | | 系统会自安装程序所需要的所有依赖库,其中,dlib的安装可能需要一些时间,请耐心等待,不要中途终止。 |
| | | 根据计算机的配置不同,dlib的安装时间可能会有所不同,通常在几分钟到十几分钟不等。 |
| | |  |
| | | 安装完成后如下图所示: |
| | |  |
| | | |
| | | ### 3.4 下载项目所需要的库与文件 |
| | | |
| | | 先创项目所需要的目录,在项目的根目录下运行: |
| | | ```bash |
| | | mkdir -p data/data_dlib |
| | | mkdir -p data/db |
| | | mkdir -p data/data_faces_from_camera |
| | | |
| | | sudo chmod -R 777 ./** |
| | | |
| | | ``` |
| | | 然后下载所需要的文件: |
| | | ```bash |
| | | |
| | | cd data/data_dlib |
| | | # 下载人脸关键点预测模型 |
| | | wget https://datacdn.data-it.tech/faceRec/face-dt/shape_predictor_68_face_landmarks.dat |
| | | # 下载人脸识别模型 |
| | | wget https://datacdn.data-it.tech/faceRec/face-dt/dlib_face_recognition_resnet_model_v1.dat |
| | | |
| | | ``` |
| | | |
| | | 然后,回到项目根目录内,下载本项目的代码文件:: |
| | | |
| | | ```bash |
| | | # 回到项目根目录 |
| | | cd ../../ |
| | | wget https://datacdn.data-it.tech/faceRec/face-dt/FaceRecognitionServer_fastapi.py |
| | | |
| | | |
| | | ``` |
| | | ### 3.5 运行服务 |
| | | 在项目根目录下,运行以下命令启动人脸识别服务: |
| | | ```bash |
| | | uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1 |
| | | ``` |
| | | |
| | | 去行以上命令,人脸识别服务就启动成功了,默认监听12316端口。 |
| | | |
| | | ### 3.6 以服务方式运行 |
| | | 可以使用`nohup`命令让服务在后台运行,即使关闭终端,服务也不会停止: |
| | | |
| | | ```bash |
| | | nohup uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1 & |
| | | ``` |
| | | 这样,服务将继续在后台运行,日志信息将被写入`nohup.out`文件中。 |
| | | ### 3.7 停止服务 |
| | | 如果需要停止服务,可以使用`ps`命令找到服务的进程ID,然后使用`kill`命令终止它: |
| | | |
| | | ```bash |
| | | ps aux | grep uvicorn |
| | | kill <PID> |
| | | ``` |
| | | 将`<PID>`替换为实际的进程ID。 |
| | | |
| | | ### 3.8 以services方式运行 |
| | | 也可以将人脸识别服务配置为系统服务,以便更方便地管理它 |
| | | 创建一个新的服务文件,例如`/etc/systemd/system/facerec.service`,内容如下: |
| | | |
| | | ```ini |
| | | [Unit] |
| | | Description=Face Recognition Service |
| | | After=network.target |
| | | [Service] |
| | | User=your_username |
| | | WorkingDirectory=/path/to/your/project |
| | | ExecStart=/path/to/your/project/face-dt/bin/uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1 |
| | | [Install] |
| | | WantedBy=multi-user.target |
| | | |
| | | ``` |
| | | 将`your_username`替换为运行服务的用户,将`/path/to/your |
| | | /project`替换为项目的实际路径。 |
| | | 然后,重新加载systemd以识别新的服务文件: |
| | | |
| | | ```bash |
| | | sudo systemctl daemon-reload |
| | | ``` |
| | | 启动服务: |
| | | |
| | | ```bash |
| | | sudo systemctl start facerec.service |
| | | ``` |
| | | 启用服务,使其在系统启动时自动运行: |
| | | ```bash |
| | | sudo systemctl enable facerec.service |
| | | ``` |
| | | 检查服务状态: |
| | | ```bash |
| | | sudo systemctl status facerec.service |
| | | ``` |
| | | 停止服务: |
| | | ```bash |
| | | sudo systemctl stop facerec.service |
| | | ``` |
| | | 重启服务: |
| | | ```bash |
| | | sudo systemctl restart facerec.service |
| | | ``` |
| | | ### 3.9 防火墙配置 |
| | | 如果服务器启用了防火墙,请确保允许12316端口的流量: |
| | | ```bash |
| | | sudo ufw allow 12316 |
| | | sudo ufw reload |
| | | ``` |
| | | ### 3.10 访问服务 |
| | | 现在,您可以通过浏览器或API客户端访问人脸识别服务: |
| | | ```http://<your_server_ip>:12316 |
| | | ``` |
| | | 将`<your_server_ip>`替换为服务器的实际IP地址。 |
| | | |
| | | ## 4. 总结 |
| | | 通过以上步骤,您已经成功手动部署了基于DLIB的人脸识别服务。您可以根据需要进一步扩展和优化该服务,以满足特定的应用需求。 |
| New file |
| | |
| | | # 离线安装人脸识别服务 |
| | | |
| | | 本文档介绍如何在没有网络连接的环境下,离线安装基于DLIB的人脸识别服务。 |
| | | ## 1. 准备工作 |
| | | 在开始之前,请确保您已经完成以下准备工作: |
| | | |
| | | - 一台运行Linux操作系统的服务器(推荐使用Ubuntu) |
| | | - 已安装Docker和Docker Compose |
| | | - 已下载所需的Docker镜像和配置文件(请参考[在线安装](在线人脸识别安装服务docker.md)部分获取下载链接) |
| | | - 端口要求:12316(可根据需要修改) |
| | | - os已安装curl命令 |
| | | |
| | | ## 2. 安装步骤 |
| | | |
| | | ### 2.1 先从云服务器上下载离线安装的镜像包和安装脚本 |
| | | |
| | | ``` |
| | | wget https://datacdn.data-it.tech/faceRec/FacRecDocker/facerec.tar |
| | | |
| | | wget https://datacdn.data-it.tech/faceRec/FacRecDocker/install-offline.sh |
| | | |
| | | ``` |
| | | |
| | | 如下所示: |
| | | |
| | | ``` |
| | | facerec.tar install-offline.sh |
| | | ``` |
| | | 下载好这两个文件后,将这两个文件拷贝到没有网络的服务器上。 |
| | | |
| | | ### 2.2 上传或拷贝离线安装包到服务器 |
| | | 将下载好的`facerec.tar`和`install-offline.sh`文件上传或拷贝到目标服务器的某个目录下,例如`/home/user/download`(取决于用户放置目录,不强制要求,用户可放任意目录,要求只有一个,这两个文件在同一个目录)。 |
| | | ``` |
| | | tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | ``` |
| | |  |
| | | |
| | | ### 2.3 执行离线安装脚本 |
| | | |
| | | ```bash |
| | | # 先进入放置离线安装包的目录 |
| | | cd /home/user/download |
| | | # 给安装脚本添加执行权限 |
| | | sudo chmod +x install-offline.sh |
| | | # 执行安装脚本 |
| | | sudo ./install-offline.sh |
| | | ``` |
| | | 命令执行后,系统会自动加载Docker镜像并配置人脸识别服务,整个过程可能需要几分钟时间,请耐心等待。 |
| | | 如下所示: |
| | | |
| | | ``` |
| | | tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ sudo chmod +x ./*.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-offline.sh |
| | | =============================================== |
| | | 开始离线部署人脸识别服务... |
| | | =============================================== |
| | | [INFO] 2025-09-30 16:19:28 - 检查Docker和Docker Compose是否已安装... |
| | | [INFO] 2025-09-30 16:19:28 - Docker和Docker Compose已安装 |
| | | [INFO] 2025-09-30 16:19:28 - 检查facerec.tar文件... |
| | | [INFO] 2025-09-30 16:19:28 - 检测到文件已存在: facerec.tar |
| | | [INFO] 2025-09-30 16:19:28 - 正在验证文件完整性... |
| | | [INFO] 2025-09-30 16:19:28 - 文件完整性验证通过 |
| | | [INFO] 2025-09-30 16:19:28 - 导入facerec.tar作为Docker镜像... |
| | | [INFO] 2025-09-30 16:22:37 - 成功导入Docker镜像: facerec.tar |
| | | [WARNING] 2025-09-30 16:22:37 - 无法直接从docker load输出中提取镜像ID,尝试通过docker images命令获取 |
| | | [INFO] 2025-09-30 16:22:37 - 成功将镜像 480b2ed60be7 标记为 dt_iot/facerec:latest |
| | | [INFO] 2025-09-30 16:22:38 - 创建部署目录: /dt_opt/facerec |
| | | [INFO] 2025-09-30 16:22:38 - 复制文件到部署目录... |
| | | sending incremental file list |
| | | ./ |
| | | install-offline.sh |
| | | |
| | | sent 7,166 bytes received 38 bytes 14,408.00 bytes/sec |
| | | total size is 7,034 speedup is 0.98 |
| | | [INFO] 2025-09-30 16:22:38 - 创建必要的目录结构... |
| | | [INFO] 2025-09-30 16:22:38 - 配置环境变量文件... |
| | | [INFO] 2025-09-30 16:22:38 - 创建docker-compose.yml文件... |
| | | [INFO] 2025-09-30 16:22:38 - 检查Docker镜像是否已正确导入... |
| | | [INFO] 2025-09-30 16:22:38 - 镜像 dt_iot/facerec 已成功导入 |
| | | [INFO] 2025-09-30 16:22:38 - 加载环境变量... |
| | | [INFO] 2025-09-30 16:22:38 - 配置防火墙端口: 12316 |
| | | 防火墙规则已更新 |
| | | 规则已更新(v6) |
| | | [INFO] 2025-09-30 16:22:39 - 启动人脸识别服务... |
| | | [+] Running 2/2 |
| | | ✔ Network dtnet Created 0.5s |
| | | ✔ Container facerec Started 3.2s |
| | | =============================================== |
| | | 人脸识别服务离线部署完成! |
| | | 服务地址: http://192.168.10.16:12316 |
| | | 部署目录: /dt_opt/facerec |
| | | =============================================== |
| | | ``` |
| | |  |
| | | |
| | |  |
| | | |
| | | 由上图可见,人脸识别服务,已经成功安装完成。 |
| | | |
| | | |
| | | |
| | |
| | | ``` |
| | | docker logs -f paddlespeech |
| | | ``` |
| | | TTS模型首次使用时侍自动从网络下载约2G的模型文件,下载完成后会自动启动服务。后续再次使用时,不会重复下载模型文件。 |
| | | 容器启动后,先会载一个NLP的小模型,耗时约30秒左右,然后,启动服务与端口, |
| | | 当/tts这个api首次被调用时,容器的程序,会自动从网络下载约2G的模型文件,下载完成后会完成首次TTS输出,当然首次也有可能因网络超时失败。后续再次使用时,不会重复下载模型文件。 |
| | | |
| | |  |
| | | Asr模型首次使用时侍自动从网络下载约1G的模型文件,下载完成后会自动启动服务。后续再次使用时,不会重复下载模型文件。 |
| | | |
| | | 当/asr这个api被首次调用时,容器中的程序会自动从网络下载约2G的模型文件,下载完成后会自动提供语音识别服务,并完成首次API识别的输出,当然,也有可能失败,后续再次调用此API是,不会重复下载模型文件。 |
| | |  |
| | | |
| | | |
| | | ***上述下载过程较为缓慢,约5-10分钟左右,请耐心等待!如果想看实时过程,请输入:docker-comopose logs paddlespeech 来查看实时日志*** |
| | | |
| | | ***请在正式使用之前,用postman或文档中提供的测试网页,调试一次成功后,再放入后台运行!*** |
| | | |
| | | |
| | | ## 五、离线部署步骤 |
| | | ### 离线部署的相关文件下载地址 |
| | |
| | | |
| | | ```bash |
| | | |
| | | docker ps up -d # 启动容器 |
| | | docker ps down # 停止容器 |
| | | docker ps restart # 重启容器 |
| | | docker ps logs -f paddlespeech # 实时查看日志 |
| | | docker ps exec -it paddlespeech /bin/bash # 进入容器 |
| | | docker ps rm -f paddlespeech # 删除容器 |
| | | docker-compose up -d # 启动容器 |
| | | docker-compose down # 停止容器 |
| | | docker-compose restart paddlespeech # 重启容器 |
| | | docker logs -f paddlespeech # 实时查看日志 |
| | | docker exec -it paddlespeech /bin/bash # 进入容器 |
| | | docker rm -f paddlespeech # 删除容器 |
| | | docker rmi dt_iot/paddlespeech:latest # 删除镜像 |
| | | docker volume rm paddlespeech_data # 删除数据卷 |
| | | docker network rm dtnet # 删除网络 |
| | |
| | | - 如何快速部署frpc服务 : Usages\QA\如何快速部署frpc服务.md
|
| | | - windows不能访问HA的共享配置目录的解决办法 : Usages\QA\windows不能访问HA的共享配置目录的解决办法.md
|
| | | - 语音合成与识别服务Docker-部署说明 : Usages\QA\语音合成与识别服务Docker-部署说明.md
|
| | | - 人脸识别服务安装说明 : Usages\QA\人脸识别服务安装说明.md
|
| | | - 其它教程:
|
| | | - Node-red相关:
|
| | | - 安装node-red记录: node-reds\安装node-red记录.md
|
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="/Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="/Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html class="writer-html5" lang="en" > |
| | | <head> |
| | | <meta charset="utf-8" /> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="岱特智能科技(上海)有限公司" /> |
| | | <link rel="shortcut icon" href="../../../img/favicon.ico" /> |
| | | <title>人脸识别服务安装说明 - DT-HA</title> |
| | | <link rel="stylesheet" href="../../../css/theme.css" /> |
| | | <link rel="stylesheet" href="../../../css/theme_extra.css" /> |
| | | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" /> |
| | | |
| | | <script> |
| | | // Current page data |
| | | var mkdocs_page_name = "\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u5b89\u88c5\u8bf4\u660e"; |
| | | var mkdocs_page_input_path = "Usages\\QA\\\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u5b89\u88c5\u8bf4\u660e.md"; |
| | | var mkdocs_page_url = null; |
| | | </script> |
| | | |
| | | <!--[if lt IE 9]> |
| | | <script src="../../../js/html5shiv.min.js"></script> |
| | | <![endif]--> |
| | | <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script> |
| | | <script>hljs.highlightAll();</script> |
| | | </head> |
| | | |
| | | <body class="wy-body-for-nav" role="document"> |
| | | |
| | | <div class="wy-grid-for-nav"> |
| | | <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav"> |
| | | <div class="wy-side-scroll"> |
| | | <div class="wy-side-nav-search"> |
| | | <a href="../../.." class="icon icon-home"> DT-HA |
| | | </a><div role="search"> |
| | | <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| | | <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" /> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../..">首页</a> |
| | | </li> |
| | | </ul> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../about/">关于</a> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">使用教程</span></p> |
| | | <ul class="current"> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../install-guide/installHa/">安装</a> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >使用</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../usage/">使用概述</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../netconfig/netconfig/">配置网络</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../initConfig/initConfig/">系统初始化配置</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | <li class="toctree-l1 current"><a class="reference internal current" >Q/A</a> |
| | | <ul class="current"> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/">透析中心HA环境温度发送到胜透的操作指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../errorsQA/">errorsQA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/">HA-如何实现状态反转</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/">TS88透析机联机通信-中文版</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/">VMware-ESXi扩展HomeAssistant硬盘指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/">如何集成和风天气组件到HA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/">如厕风险-人存在传感器配置方法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/">Ubuntu-desktop桌面系统如何配置开启远程协助</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/">如何离线安装Docker(ubuntu24.04)</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/">如何在线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/">如何离线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/">基于Docker的方式安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/">如何快速部署frpc服务</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/">windows不能访问HA的共享配置目录的解决办法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2 current"><a class="reference internal current" href="#">人脸识别服务安装说明</a> |
| | | <ul class="current"> |
| | | <li class="toctree-l3"><a class="reference internal" href="#1">1. 简介</a> |
| | | </li> |
| | | <li class="toctree-l3"><a class="reference internal" href="#2">2. 安装部署</a> |
| | | </li> |
| | | <li class="toctree-l3"><a class="reference internal" href="#3">3. 使用说明</a> |
| | | <ul> |
| | | <li class="toctree-l4"><a class="reference internal" href="#31">3.1 启动服务</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#32">3.2 停止服务</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#33">3.3 查看日志</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#34-api">3.4 人脸识别API接口说明</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#35">3.5 简要使用说明</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#36">3.6 人脸识别服务简要测试办法</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#37">3.7 常见问题</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#38">3.8 性能测试报告</a> |
| | | </li> |
| | | <li class="toctree-l4"><a class="reference internal" href="#39">3.9 总结</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">其它教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" >Node-red相关</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/">安装node-red记录</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/">如何把node-red安装到orangepiZero</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/">ModbusPoll-v7.0.0使用教程</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/">node-red常用组件列表</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/">node-red如何连接modbus _slave设备</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </nav> |
| | | |
| | | <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| | | <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu"> |
| | | <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| | | <a href="../../..">DT-HA</a> |
| | | |
| | | </nav> |
| | | <div class="wy-nav-content"> |
| | | <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation"> |
| | | <ul class="wy-breadcrumbs"> |
| | | <li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li> |
| | | <li class="breadcrumb-item">使用教程</li> |
| | | <li class="breadcrumb-item">Q/A</li> |
| | | <li class="breadcrumb-item active">人脸识别服务安装说明</li> |
| | | <li class="wy-breadcrumbs-aside"> |
| | | </li> |
| | | </ul> |
| | | <hr/> |
| | | </div> |
| | | <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| | | <div class="section" itemprop="articleBody"> |
| | | |
| | | <h1 id="docker">人脸识别服务DOCKER安装说明<a class="headerlink" href="#docker" title="Permanent link">¶</a></h1> |
| | | <h2 id="1">1. 简介<a class="headerlink" href="#1" title="Permanent link">¶</a></h2> |
| | | <p>本项目基于dlib库实现了一个简单的人脸识别服务,使用FastAPI框架构建API接口,支持通过HTTP请求进行人脸注册和识别。 |
| | | 该服务可以部署在Docker容器中,方便用户快速搭建和使用人脸识别功能。</p> |
| | | <h2 id="2">2. 安装部署<a class="headerlink" href="#2" title="Permanent link">¶</a></h2> |
| | | <p><a href="../%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/">在线安装</a></p> |
| | | <p><a href="../%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/">离线安装</a></p> |
| | | <p><a href="../%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">手工部署</a></p> |
| | | <h2 id="3">3. 使用说明<a class="headerlink" href="#3" title="Permanent link">¶</a></h2> |
| | | <h3 id="31">3.1 启动服务<a class="headerlink" href="#31" title="Permanent link">¶</a></h3> |
| | | <p>进入服务部署目录,执行以下命令启动服务:</p> |
| | | <div class="codehilite"><pre><span></span><code>docker-compose<span class="w"> </span>up<span class="w"> </span>-d |
| | | </code></pre></div> |
| | | |
| | | <h3 id="32">3.2 停止服务<a class="headerlink" href="#32" title="Permanent link">¶</a></h3> |
| | | <div class="codehilite"><pre><span></span><code>docker-compose<span class="w"> </span>down |
| | | </code></pre></div> |
| | | |
| | | <h3 id="33">3.3 查看日志<a class="headerlink" href="#33" title="Permanent link">¶</a></h3> |
| | | <div class="codehilite"><pre><span></span><code>docker-compose<span class="w"> </span>logs<span class="w"> </span>-f<span class="w"> </span>facerec |
| | | </code></pre></div> |
| | | |
| | | <h3 id="34-api">3.4 人脸识别API接口说明<a class="headerlink" href="#34-api" title="Permanent link">¶</a></h3> |
| | | <p>本文档详细描述了人脸识别服务提供的各个API接口,包括接口地址、请求方式、参数说明、返回结果等信息。</p> |
| | | <h4 id="341">3.4.1 人脸识别接口<a class="headerlink" href="#341" title="Permanent link">¶</a></h4> |
| | | <h5 id="_1">接口地址<a class="headerlink" href="#_1" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/identifyFace</code></p> |
| | | <h5 id="_2">功能说明<a class="headerlink" href="#_2" title="Permanent link">¶</a></h5> |
| | | <p>上传图片进行人脸识别,返回匹配的用户信息。</p> |
| | | <h5 id="_3">请求参数<a class="headerlink" href="#_3" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>image</td> |
| | | <td>file</td> |
| | | <td>是</td> |
| | | <td>包含人脸的图片文件</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_4">返回结果<a class="headerlink" href="#_4" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"msg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"errno"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"result"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> |
| | | <span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"score"</span><span class="p">:</span><span class="w"> </span><span class="mf">95.5</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"group_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"group"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"user_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"用户名"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"Uid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"用户编码"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"Name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"用户姓名"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"IdNum"</span><span class="p">:</span><span class="w"> </span><span class="s2">"身份证号"</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">],</span> |
| | | <span class="w"> </span><span class="nt">"log_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"时间戳"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"face_token"</span><span class="p">:</span><span class="w"> </span><span class="s2">"唯一标识符"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"result_num"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_5">示例<a class="headerlink" href="#_5" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/identifyFace"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: multipart/form-data"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"image=@test.jpg"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="342">3.4.2 添加人脸数据接口<a class="headerlink" href="#342" title="Permanent link">¶</a></h4> |
| | | <h5 id="_6">接口地址<a class="headerlink" href="#_6" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/addFace</code></p> |
| | | <h5 id="_7">功能说明<a class="headerlink" href="#_7" title="Permanent link">¶</a></h5> |
| | | <p>添加新的人脸数据到系统中,用于后续的人脸识别。</p> |
| | | <h5 id="_8">请求参数<a class="headerlink" href="#_8" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>image</td> |
| | | <td>file</td> |
| | | <td>是</td> |
| | | <td>包含人脸的图片文件</td> |
| | | </tr> |
| | | <tr> |
| | | <td>userCode</td> |
| | | <td>string</td> |
| | | <td>是</td> |
| | | <td>用户编码</td> |
| | | </tr> |
| | | <tr> |
| | | <td>userName</td> |
| | | <td>string</td> |
| | | <td>否</td> |
| | | <td>用户姓名,默认使用userCode</td> |
| | | </tr> |
| | | <tr> |
| | | <td>idNum</td> |
| | | <td>string</td> |
| | | <td>否</td> |
| | | <td>身份证号,默认使用userCode</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_9">返回结果<a class="headerlink" href="#_9" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"msg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"errno"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"log_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"时间戳"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"用户数据添加成功"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"faceUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:12316/images/userCode.jpg"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"faceUrl_Placeholder"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://^API_BASE_URL^/images/userCode.jpg"</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_10">示例<a class="headerlink" href="#_10" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/addFace"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: multipart/form-data"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"image=@user.jpg"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"userCode=USER001"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"userName=张三"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"idNum=110101199001011234"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="343">3.4.3 人脸检测接口<a class="headerlink" href="#343" title="Permanent link">¶</a></h4> |
| | | <h5 id="_11">接口地址<a class="headerlink" href="#_11" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/detectFace</code></p> |
| | | <h5 id="_12">功能说明<a class="headerlink" href="#_12" title="Permanent link">¶</a></h5> |
| | | <p>检测图片中的人脸位置信息,不进行身份识别。</p> |
| | | <h5 id="_13">请求参数<a class="headerlink" href="#_13" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>image</td> |
| | | <td>file</td> |
| | | <td>是</td> |
| | | <td>图片文件</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_14">返回结果<a class="headerlink" href="#_14" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"faces"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> |
| | | <span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"location"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"left"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"top"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"width"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"height"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">],</span> |
| | | <span class="w"> </span><span class="nt">"face_num"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <p><strong>坐标信息说明:</strong> |
| | | - <code>left</code>: 人脸框左上角距离图片左边界的像素距离 |
| | | - <code>top</code>: 人脸框左上角距离图片上边界的像素距离 |
| | | - <code>width</code>: 人脸框的宽度(像素) |
| | | - <code>height</code>: 人脸框的高度(像素) |
| | | 这些坐标信息基于图片的左上角为原点(0,0),向右为X轴正方向,向下为Y轴正方向的坐标系。</p> |
| | | <h5 id="_15">示例<a class="headerlink" href="#_15" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/detectFace"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: multipart/form-data"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-F<span class="w"> </span><span class="s2">"image=@test.jpg"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="344-url">3.4.4 获取用户人脸图像URL接口<a class="headerlink" href="#344-url" title="Permanent link">¶</a></h4> |
| | | <h5 id="_16">接口地址<a class="headerlink" href="#_16" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/getUserFaceUrl</code></p> |
| | | <h5 id="_17">功能说明<a class="headerlink" href="#_17" title="Permanent link">¶</a></h5> |
| | | <p>根据用户编码获取用户人脸图像的访问URL。</p> |
| | | <h5 id="_18">请求参数<a class="headerlink" href="#_18" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>userCode</td> |
| | | <td>string</td> |
| | | <td>是</td> |
| | | <td>用户编码</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_19">返回结果<a class="headerlink" href="#_19" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:12316/images/userCode.jpg"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_20">示例<a class="headerlink" href="#_20" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/getUserFaceUrl"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-d<span class="w"> </span><span class="s2">"userCode=USER001"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="345">3.4.5 删除人脸数据接口<a class="headerlink" href="#345" title="Permanent link">¶</a></h4> |
| | | <h5 id="_21">接口地址<a class="headerlink" href="#_21" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/delFace</code></p> |
| | | <h5 id="_22">功能说明<a class="headerlink" href="#_22" title="Permanent link">¶</a></h5> |
| | | <p>根据用户编码删除指定的人脸数据。</p> |
| | | <h5 id="_23">请求参数<a class="headerlink" href="#_23" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>userCode</td> |
| | | <td>string</td> |
| | | <td>是</td> |
| | | <td>用户编码</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_24">返回结果<a class="headerlink" href="#_24" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"msg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"errno"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"log_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"时间戳"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"用户数据删除成功"</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_25">示例<a class="headerlink" href="#_25" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/delFace"</span><span class="w"> </span><span class="se">\</span> |
| | | <span class="w"> </span>-d<span class="w"> </span><span class="s2">"userCode=USER001"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="346">3.4.6 重新加载特征数据接口<a class="headerlink" href="#346" title="Permanent link">¶</a></h4> |
| | | <h5 id="_26">接口地址<a class="headerlink" href="#_26" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/reloadFeatures</code></p> |
| | | <h5 id="_27">功能说明<a class="headerlink" href="#_27" title="Permanent link">¶</a></h5> |
| | | <p>重新从数据库加载所有人脸特征数据到内存中。</p> |
| | | <h5 id="_28">请求参数<a class="headerlink" href="#_28" title="Permanent link">¶</a></h5> |
| | | <p>无</p> |
| | | <h5 id="_29">返回结果<a class="headerlink" href="#_29" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"msg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"errno"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"log_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"时间戳"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"特征数据重新加载成功"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"count"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_30">示例<a class="headerlink" href="#_30" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/reloadFeatures"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="347">3.4.7 查询所有人员数据接口<a class="headerlink" href="#347" title="Permanent link">¶</a></h4> |
| | | <h5 id="_31">接口地址<a class="headerlink" href="#_31" title="Permanent link">¶</a></h5> |
| | | <p><code>POST /api/getAllUsers</code></p> |
| | | <h5 id="_32">功能说明<a class="headerlink" href="#_32" title="Permanent link">¶</a></h5> |
| | | <p>获取系统中所有已注册用户的信息。</p> |
| | | <h5 id="_33">请求参数<a class="headerlink" href="#_33" title="Permanent link">¶</a></h5> |
| | | <p>无</p> |
| | | <h5 id="_34">返回结果<a class="headerlink" href="#_34" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"msg"</span><span class="p">:</span><span class="w"> </span><span class="s2">"success"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"errno"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"users"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> |
| | | <span class="w"> </span><span class="p">{</span> |
| | | <span class="w"> </span><span class="nt">"userCode"</span><span class="p">:</span><span class="w"> </span><span class="s2">"USER001"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"userName"</span><span class="p">:</span><span class="w"> </span><span class="s2">"张三"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"idNum"</span><span class="p">:</span><span class="w"> </span><span class="s2">"110101199001011234"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"faceUrl"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://localhost:12316/images/USER001.jpg"</span><span class="p">,</span> |
| | | <span class="w"> </span><span class="nt">"faceUrl_Placeholder"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://^API_BASE_URL^/images/USER001.jpg"</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">],</span> |
| | | <span class="w"> </span><span class="nt">"count"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span> |
| | | <span class="w"> </span><span class="p">}</span> |
| | | <span class="w"> </span><span class="p">},</span> |
| | | <span class="w"> </span><span class="nt">"message"</span><span class="p">:</span><span class="w"> </span><span class="s2">"SUCCESS"</span> |
| | | <span class="p">}</span> |
| | | </code></pre></div> |
| | | |
| | | <h5 id="_35">示例<a class="headerlink" href="#_35" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"http://localhost:12316/api/getAllUsers"</span> |
| | | </code></pre></div> |
| | | |
| | | <h4 id="348">3.4.8 静态图像文件服务<a class="headerlink" href="#348" title="Permanent link">¶</a></h4> |
| | | <h5 id="_36">接口地址<a class="headerlink" href="#_36" title="Permanent link">¶</a></h5> |
| | | <p><code>GET /images/{filename}</code></p> |
| | | <h5 id="_37">功能说明<a class="headerlink" href="#_37" title="Permanent link">¶</a></h5> |
| | | <p>提供用户人脸图像的静态文件访问服务。</p> |
| | | <h5 id="_38">请求参数<a class="headerlink" href="#_38" title="Permanent link">¶</a></h5> |
| | | <table> |
| | | <thead> |
| | | <tr> |
| | | <th>参数名</th> |
| | | <th>类型</th> |
| | | <th>必填</th> |
| | | <th>说明</th> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr> |
| | | <td>filename</td> |
| | | <td>string</td> |
| | | <td>是</td> |
| | | <td>图像文件名</td> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | <h5 id="_39">返回结果<a class="headerlink" href="#_39" title="Permanent link">¶</a></h5> |
| | | <p>图像文件二进制数据</p> |
| | | <h5 id="_40">示例<a class="headerlink" href="#_40" title="Permanent link">¶</a></h5> |
| | | <div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>GET<span class="w"> </span><span class="s2">"http://localhost:12316/images/USER001.jpg"</span><span class="w"> </span>-o<span class="w"> </span>user_image.jpg |
| | | </code></pre></div> |
| | | |
| | | <h3 id="35">3.5 简要使用说明<a class="headerlink" href="#35" title="Permanent link">¶</a></h3> |
| | | <p>本服务是使用DLIB本的模型进行人脸识别的,精度和速度都比较适中,适合一般的应用场景。使用sqlite数据库存储人脸特征数据,方便部署和维护。 |
| | | 在使用过程中,请注意以下几点: |
| | | - 确保上传的图片质量较好,避免模糊或遮挡严重的图片。 |
| | | - 人脸识别的准确率受多种因素影响,如光照、角度、表情等,建议在多种条件下测试和优化。 |
| | | - 定期备份数据库文件,防止数据丢失。 |
| | | - 如果需要更高的识别精度,可以考虑使用更复杂的模型或增加训练数据。</p> |
| | | <p>服务在启动时,先把数据库中所有的人脸特征数据加载到内存中,识别时直接在内存中进行比对,速度较快。如果添加或删除了人脸数据,需要调用<code>/api/reloadFeatures</code>接口重新加载特征数据。人脸特征数据存储在<code>rec.db</code>文件中,位于服务的工作目录下data/db。如需导出,可以直接找到容器的挂载目录下的该文件进行备份或导出。</p> |
| | | <p>人脸特征,采用了采集128个特征点保存,即128维的浮点数数组,存储在数据库中。识别时,计算上传图片的人脸特征与数据库中所有特征的欧氏距离,距离越小表示相似度越高。可以根据实际需求调整识别阈值。</p> |
| | | <p>人脸特征库表每个记录约131个字段,其不适合存储大量人脸数据。如果需要存储更多人脸数据,建议使用更专业的数据库系统,如MySQL、PostgreSQL等。因为本项目就动时需要据有的人脸数据加载到内存中,所以,人脸数据量不宜过大,建议控制在几千人以内。</p> |
| | | <h3 id="36">3.6 人脸识别服务简要测试办法<a class="headerlink" href="#36" title="Permanent link">¶</a></h3> |
| | | <p>本人脸识别服务,提供了一个简单的HTML页面用于测试人脸识别功能。可以通过浏览器访问该页面,上传图片进行测试。</p> |
| | | <p>下载地址: </p> |
| | | <div class="codehilite"><pre><span></span><code>[测试网页压缩包](https://datacdn.data-it.tech/faceRec/face-dt/face-test.zip) |
| | | |
| | | [测试网页-未压缩](https://datacdn.data-it.tech/faceRec/face-dt/face-test.html) |
| | | </code></pre></div> |
| | | |
| | | <p>解压后,将<code>face-test.html</code>文件放在任意目录下,使用浏览器打开该文件。页面中有一个文件上传控件,可以选择包含人脸的图片进行测试。上传后,页面会调用人脸识别服务的API接口,显示识别结果。</p> |
| | | <p>如果需要把网页部署到nginx等web服务器上,可以将<code>face-test.html</code>文件放在服务器的指定目录下,然后通过浏览器访问服务器的地址即可。 |
| | | 但时要注意,因为网页中调用了摄像头视频,在没有https证书的情况下,只有localhost可开启了权限白名单的情况下,才能正常使用摄像头功能。</p> |
| | | <p><strong><em>本地测试如何开启权限</em></strong></p> |
| | | <div class="codehilite"><pre><span></span><code>Edge |
| | | edge://flags/#unsafely-treat-insecure-origin-as-secure |
| | | Chrome |
| | | chrome://flags/#unsafely-treat-insecure-origin-as-secure |
| | | 将 Insecure origins treated as secure 设置为 Enabled |
| | | </code></pre></div> |
| | | |
| | | <p>如果不想开启权限白名单,可以把网页放在nginx等web服务器上,并配置https证书,这样浏览器会认为是安全的来源,就可以正常使用摄像头功能。 </p> |
| | | <h3 id="37">3.7 常见问题<a class="headerlink" href="#37" title="Permanent link">¶</a></h3> |
| | | <ul> |
| | | <li><strong>问题1</strong>: 上传图片后,识别结果为空或不准确。</li> |
| | | <li><strong>解决办法</strong>: 确保上传的图片质量较好,避免模糊或遮挡严重的图片。可以尝试不同的图片进行测试。 </li> |
| | | <li><strong>问题2</strong>: 添加人脸数据时,提示用户已存在。<ul> |
| | | <li><strong>解决办法</strong>: 确认用户编码是否唯一,如果需要更新用户信息,可以先删除旧数据,再添加新数据。</li> |
| | | </ul> |
| | | </li> |
| | | <li><strong>问题3</strong>: 服务启动失败或无法访问。</li> |
| | | <li><strong>解决办法</strong>: 检查Docker容器是否正常运行,确认端口是否被正确映射。查看日志获取更多信息。</li> |
| | | <li><strong>问题4</strong>: 数据库文件损坏或丢失。</li> |
| | | <li><strong>解决办法</strong>: 如果有备份,可以恢复备份文件。否则需要重新添加人脸数据。</li> |
| | | <li><strong>问题5</strong>: 识别速度较慢。</li> |
| | | <li><strong>解决办法</strong>: 确认服务器性能是否足够,减少人脸数据量,或优化图片大小和质量。</li> |
| | | <li><strong>问题6</strong>: 如何调整识别阈值?</li> |
| | | <li><strong>解决办法</strong>: 目前代码中没有提供直接调整阈值的接口,可以在代码中修改识别逻辑,调整欧氏距离的阈值。</li> |
| | | </ul> |
| | | <h3 id="38">3.8 性能测试报告<a class="headerlink" href="#38" title="Permanent link">¶</a></h3> |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930170146.png" /> |
| | | 上图为配笔记本电脑环境测</p> |
| | | <p>下图为公司的前置工控机环境测试 |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/c63bc4d2c02a4a8f6676f77d75cca0f6.png" /></p> |
| | | <p>经过反复测试,平均响应时间在200-300ms之间,峰值时段也能保持在500ms以内,满足一般应用需求。 |
| | | 同时并发要控制在4个以内,同一时间进行识别请求,超过4个时,响应时间会明显增加,延迟响应,响应时间有可能超过秒。如果需要更高的并发处理能力,可以考虑增加服务器资源,部署多个服务做负载均衡。,但对同一个中心,一般一个服务就足够了,毕竟同时识可的可能性太少了。</p> |
| | | <h3 id="39">3.9 总结<a class="headerlink" href="#39" title="Permanent link">¶</a></h3> |
| | | <p>本项目提供了一个基于DLIB的人脸识别服务,使用FastAPI框架,支持Docker部署。通过RESTful API接口,用户可以方便地进行人脸注册和识别操作。服务性能良好,适合一般应用场景。用户可以根据实际需求进行扩展和优化。</p> |
| | | |
| | | </div> |
| | | </div><footer> |
| | | <div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation"> |
| | | <a href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/" class="btn btn-neutral float-left" title="语音合成与识别服务Docker-部署说明"><span class="icon icon-circle-arrow-left"></span> Previous</a> |
| | | <a href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/" class="btn btn-neutral float-right" title="安装node-red记录">Next <span class="icon icon-circle-arrow-right"></span></a> |
| | | </div> |
| | | |
| | | <hr/> |
| | | |
| | | <div role="contentinfo"> |
| | | <!-- Copyright etc --> |
| | | </div> |
| | | |
| | | Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| | | </footer> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </section> |
| | | |
| | | </div> |
| | | |
| | | <div class="rst-versions" role="note" aria-label="Versions"> |
| | | <span class="rst-current-version" data-toggle="rst-current-version"> |
| | | |
| | | <span> |
| | | <a href="http://dh.leon056.com:7499/r/Embedded/HomeAssistantPtoject.git" class="fa fa-code-fork" style="color: #fcfcfc"> Dh</a> |
| | | </span> |
| | | |
| | | |
| | | <span><a href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/" style="color: #fcfcfc">« Previous</a></span> |
| | | |
| | | |
| | | <span><a href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/" style="color: #fcfcfc">Next »</a></span> |
| | | |
| | | </span> |
| | | </div> |
| | | <script src="../../../js/jquery-3.6.0.min.js"></script> |
| | | <script>var base_url = "../../..";</script> |
| | | <script src="../../../js/theme_extra.js"></script> |
| | | <script src="../../../js/theme.js"></script> |
| | | <script src="../../../search/main.js"></script> |
| | | <script> |
| | | jQuery(function () { |
| | | SphinxRtdTheme.Navigation.enable(true); |
| | | }); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html class="writer-html5" lang="en" > |
| | | <head> |
| | | <meta charset="utf-8" /> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="岱特智能科技(上海)有限公司" /> |
| | | <link rel="shortcut icon" href="../../../img/favicon.ico" /> |
| | | <title>在线人脸识别安装服务 - DT-HA</title> |
| | | <link rel="stylesheet" href="../../../css/theme.css" /> |
| | | <link rel="stylesheet" href="../../../css/theme_extra.css" /> |
| | | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" /> |
| | | |
| | | <script> |
| | | // Current page data |
| | | var mkdocs_page_name = "\u5728\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1"; |
| | | var mkdocs_page_input_path = "Usages\\QA\\\u5728\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1docker.md"; |
| | | var mkdocs_page_url = null; |
| | | </script> |
| | | |
| | | <!--[if lt IE 9]> |
| | | <script src="../../../js/html5shiv.min.js"></script> |
| | | <![endif]--> |
| | | <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script> |
| | | <script>hljs.highlightAll();</script> |
| | | </head> |
| | | |
| | | <body class="wy-body-for-nav" role="document"> |
| | | |
| | | <div class="wy-grid-for-nav"> |
| | | <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav"> |
| | | <div class="wy-side-scroll"> |
| | | <div class="wy-side-nav-search"> |
| | | <a href="../../.." class="icon icon-home"> DT-HA |
| | | </a><div role="search"> |
| | | <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| | | <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" /> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../..">首页</a> |
| | | </li> |
| | | </ul> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../about/">关于</a> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">使用教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../install-guide/installHa/">安装</a> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >使用</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../usage/">使用概述</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../netconfig/netconfig/">配置网络</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../initConfig/initConfig/">系统初始化配置</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >Q/A</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/">透析中心HA环境温度发送到胜透的操作指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../errorsQA/">errorsQA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/">HA-如何实现状态反转</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/">TS88透析机联机通信-中文版</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/">VMware-ESXi扩展HomeAssistant硬盘指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/">如何集成和风天气组件到HA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/">如厕风险-人存在传感器配置方法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/">Ubuntu-desktop桌面系统如何配置开启远程协助</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/">如何离线安装Docker(ubuntu24.04)</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/">如何在线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/">如何离线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/">基于Docker的方式安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/">如何快速部署frpc服务</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/">windows不能访问HA的共享配置目录的解决办法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">其它教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" >Node-red相关</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/">安装node-red记录</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/">如何把node-red安装到orangepiZero</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/">ModbusPoll-v7.0.0使用教程</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/">node-red常用组件列表</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/">node-red如何连接modbus _slave设备</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </nav> |
| | | |
| | | <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| | | <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu"> |
| | | <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| | | <a href="../../..">DT-HA</a> |
| | | |
| | | </nav> |
| | | <div class="wy-nav-content"> |
| | | <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation"> |
| | | <ul class="wy-breadcrumbs"> |
| | | <li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li> |
| | | <li class="breadcrumb-item active">在线人脸识别安装服务</li> |
| | | <li class="wy-breadcrumbs-aside"> |
| | | </li> |
| | | </ul> |
| | | <hr/> |
| | | </div> |
| | | <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| | | <div class="section" itemprop="articleBody"> |
| | | |
| | | <h1 id="_1">在线人脸识别安装服务<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1> |
| | | <h2 id="1">1. 简介<a class="headerlink" href="#1" title="Permanent link">¶</a></h2> |
| | | <p>本项目基于dlib库实现了一个简单的人脸识别服务,使用FastAPI框架构建API接口,支持通过HTTP请求进行人脸注册和识别。 </p> |
| | | <p>该服务可以部署在Docker容器中,方便用户快速搭建和使用人脸识别功能。</p> |
| | | <h2 id="2">2. 安装部署<a class="headerlink" href="#2" title="Permanent link">¶</a></h2> |
| | | <h3 id="_2">环境准备<a class="headerlink" href="#_2" title="Permanent link">¶</a></h3> |
| | | <p>在开始之前,请确保您的系统满足以下要求:</p> |
| | | <ul> |
| | | <li>操作系统:Linux(推荐使用Ubuntu)</li> |
| | | <li>Docker版本:20.10及以上</li> |
| | | <li>Docker Compose版本:1.29及以上</li> |
| | | <li>端口要求:12316(可根据需要修改)</li> |
| | | <li>os已安装curl命令</li> |
| | | </ul> |
| | | <h3 id="_3">执行在线安装脚本<a class="headerlink" href="#_3" title="Permanent link">¶</a></h3> |
| | | <div class="codehilite"><pre><span></span><code>curl -fsSL https://datacdn.data-it.tech/faceRec/FacRecDocker/install-online.sh | sudo bash |
| | | </code></pre></div> |
| | | |
| | | <p>命令执行后,系统会自动下载并安装所需的Docker镜像和配置文件,整个过程可能需要几分钟时间,请耐心等待。</p> |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930153829.png" /> |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930154555.png" /> |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930154803.png" /> |
| | | 由图中可见,人脸识别服务,已经成功安装完成。</p> |
| | | |
| | | </div> |
| | | </div><footer> |
| | | |
| | | <hr/> |
| | | |
| | | <div role="contentinfo"> |
| | | <!-- Copyright etc --> |
| | | </div> |
| | | |
| | | Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| | | </footer> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </section> |
| | | |
| | | </div> |
| | | |
| | | <div class="rst-versions" role="note" aria-label="Versions"> |
| | | <span class="rst-current-version" data-toggle="rst-current-version"> |
| | | |
| | | <span> |
| | | <a href="http://dh.leon056.com:7499/r/Embedded/HomeAssistantPtoject.git" class="fa fa-code-fork" style="color: #fcfcfc"> Dh</a> |
| | | </span> |
| | | |
| | | |
| | | |
| | | </span> |
| | | </div> |
| | | <script src="../../../js/jquery-3.6.0.min.js"></script> |
| | | <script>var base_url = "../../..";</script> |
| | | <script src="../../../js/theme_extra.js"></script> |
| | | <script src="../../../js/theme.js"></script> |
| | | <script src="../../../search/main.js"></script> |
| | | <script> |
| | | jQuery(function () { |
| | | SphinxRtdTheme.Navigation.enable(true); |
| | | }); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html class="writer-html5" lang="en" > |
| | | <head> |
| | | <meta charset="utf-8" /> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="岱特智能科技(上海)有限公司" /> |
| | | <link rel="shortcut icon" href="../../../img/favicon.ico" /> |
| | | <title>基于DLIB的人脸识别服务-手工部署说明 - DT-HA</title> |
| | | <link rel="stylesheet" href="../../../css/theme.css" /> |
| | | <link rel="stylesheet" href="../../../css/theme_extra.css" /> |
| | | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" /> |
| | | |
| | | <script> |
| | | // Current page data |
| | | var mkdocs_page_name = "\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e"; |
| | | var mkdocs_page_input_path = "Usages\\QA\\\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e.md"; |
| | | var mkdocs_page_url = null; |
| | | </script> |
| | | |
| | | <!--[if lt IE 9]> |
| | | <script src="../../../js/html5shiv.min.js"></script> |
| | | <![endif]--> |
| | | <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script> |
| | | <script>hljs.highlightAll();</script> |
| | | </head> |
| | | |
| | | <body class="wy-body-for-nav" role="document"> |
| | | |
| | | <div class="wy-grid-for-nav"> |
| | | <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav"> |
| | | <div class="wy-side-scroll"> |
| | | <div class="wy-side-nav-search"> |
| | | <a href="../../.." class="icon icon-home"> DT-HA |
| | | </a><div role="search"> |
| | | <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| | | <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" /> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../..">首页</a> |
| | | </li> |
| | | </ul> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../about/">关于</a> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">使用教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../install-guide/installHa/">安装</a> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >使用</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../usage/">使用概述</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../netconfig/netconfig/">配置网络</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../initConfig/initConfig/">系统初始化配置</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >Q/A</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/">透析中心HA环境温度发送到胜透的操作指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../errorsQA/">errorsQA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/">HA-如何实现状态反转</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/">TS88透析机联机通信-中文版</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/">VMware-ESXi扩展HomeAssistant硬盘指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/">如何集成和风天气组件到HA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/">如厕风险-人存在传感器配置方法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/">Ubuntu-desktop桌面系统如何配置开启远程协助</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/">如何离线安装Docker(ubuntu24.04)</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/">如何在线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/">如何离线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/">基于Docker的方式安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/">如何快速部署frpc服务</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/">windows不能访问HA的共享配置目录的解决办法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">其它教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" >Node-red相关</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/">安装node-red记录</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/">如何把node-red安装到orangepiZero</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/">ModbusPoll-v7.0.0使用教程</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/">node-red常用组件列表</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/">node-red如何连接modbus _slave设备</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </nav> |
| | | |
| | | <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| | | <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu"> |
| | | <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| | | <a href="../../..">DT-HA</a> |
| | | |
| | | </nav> |
| | | <div class="wy-nav-content"> |
| | | <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation"> |
| | | <ul class="wy-breadcrumbs"> |
| | | <li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li> |
| | | <li class="breadcrumb-item active">基于DLIB的人脸识别服务-手工部署说明</li> |
| | | <li class="wy-breadcrumbs-aside"> |
| | | </li> |
| | | </ul> |
| | | <hr/> |
| | | </div> |
| | | <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| | | <div class="section" itemprop="articleBody"> |
| | | |
| | | <h1 id="dlib-">基于DLIB的人脸识别服务-手工部署说明<a class="headerlink" href="#dlib-" title="Permanent link">¶</a></h1> |
| | | <h2 id="1">1. 简介<a class="headerlink" href="#1" title="Permanent link">¶</a></h2> |
| | | <p>DLIB是一个现代C++工具包,包含机器学习算法和工具,用于创建复杂的软件以解决现实世界中的问题。它在计算机视觉领域尤为出色,尤其是在面部识别任务中表现优异。DLIB的人脸识别功能基于深度学习技术,能够高效地检测和识别人脸。 |
| | | 本程序利用DLIB的强大功能,提供一个基于Python的简单人脸识别服务。用户可以通过HTTP请求上传图像,服务将返回图像中检测到的人脸信息。</p> |
| | | <h2 id="2">2. 环境准备<a class="headerlink" href="#2" title="Permanent link">¶</a></h2> |
| | | <p>在开始之前,请确保您的系统满足以下要求:</p> |
| | | <ul> |
| | | <li>操作系统:Linux(推荐使用Ubuntu)</li> |
| | | <li>Python版本:3.10及以上</li> |
| | | <li>必要的Python库:dlib, Flask, numpy, opencv-python</li> |
| | | <li>CMake(用于编译dlib)</li> |
| | | <li>编译工具链(如g++)</li> |
| | | </ul> |
| | | <h2 id="3">3. 安装步骤<a class="headerlink" href="#3" title="Permanent link">¶</a></h2> |
| | | <h3 id="31">3.1 安装依赖项<a class="headerlink" href="#31" title="Permanent link">¶</a></h3> |
| | | <p>首先,确保系统包是最新的:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>update |
| | | sudo<span class="w"> </span>apt-get<span class="w"> </span>upgrade |
| | | </code></pre></div> |
| | | |
| | | <p>安装必要的依赖项:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>build-essential<span class="w"> </span>cmake<span class="w"> </span>libboost-all-dev<span class="w"> </span>libx11-dev<span class="w"> </span>libopenblas-dev<span class="w"> </span>liblapack-dev<span class="w"> </span>python3.12-venv |
| | | </code></pre></div> |
| | | |
| | | <h3 id="32-python">3.2 创建Python虚拟环境<a class="headerlink" href="#32-python" title="Permanent link">¶</a></h3> |
| | | <p>创建并激活一个新的Python虚拟环境:名称为face-dt</p> |
| | | <div class="codehilite"><pre><span></span><code>python3<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>face-dt |
| | | <span class="nb">source</span><span class="w"> </span>face-dt/bin/activate |
| | | </code></pre></div> |
| | | |
| | | <h3 id="33-python">3.3 安装Python库<a class="headerlink" href="#33-python" title="Permanent link">¶</a></h3> |
| | | <p>先在项目根目录创建一个<code>requirements.txt</code>文件,内容如下:</p> |
| | | <div class="codehilite"><pre><span></span><code>dlib>=19.22.0 |
| | | numpy>=1.19.0 |
| | | opencv-python>=4.5.0 |
| | | Pillow>=8.0.0 |
| | | scikit-image>=0.18.0 |
| | | pandas>=1.2.0 |
| | | simplejson>=3.17.0 |
| | | fastapi>=0.104.0 |
| | | uvicorn>=0.24.0 |
| | | python-multipart>=0.0.6 |
| | | </code></pre></div> |
| | | |
| | | <p>然后运行以下命令安装这些库:</p> |
| | | <div class="codehilite"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt |
| | | </code></pre></div> |
| | | |
| | | <p>系统会自安装程序所需要的所有依赖库,其中,dlib的安装可能需要一些时间,请耐心等待,不要中途终止。 |
| | | 根据计算机的配置不同,dlib的安装时间可能会有所不同,通常在几分钟到十几分钟不等。 |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250929103043.png" /> |
| | | 安装完成后如下图所示: |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250929103931.png" /></p> |
| | | <h3 id="34">3.4 下载项目所需要的库与文件<a class="headerlink" href="#34" title="Permanent link">¶</a></h3> |
| | | <p>先创项目所需要的目录,在项目的根目录下运行:</p> |
| | | <div class="codehilite"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>data/data_dlib |
| | | mkdir<span class="w"> </span>-p<span class="w"> </span>data/db |
| | | mkdir<span class="w"> </span>-p<span class="w"> </span>data/data_faces_from_camera |
| | | |
| | | sudo<span class="w"> </span>chmod<span class="w"> </span>-R<span class="w"> </span><span class="m">777</span><span class="w"> </span>./** |
| | | </code></pre></div> |
| | | |
| | | <p>然后下载所需要的文件:</p> |
| | | <div class="codehilite"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>data/data_dlib |
| | | <span class="c1"># 下载人脸关键点预测模型</span> |
| | | wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/shape_predictor_68_face_landmarks.dat |
| | | <span class="c1"># 下载人脸识别模型</span> |
| | | wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/dlib_face_recognition_resnet_model_v1.dat |
| | | </code></pre></div> |
| | | |
| | | <p>然后,回到项目根目录内,下载本项目的代码文件::</p> |
| | | <div class="codehilite"><pre><span></span><code><span class="c1"># 回到项目根目录</span> |
| | | <span class="nb">cd</span><span class="w"> </span>../../ |
| | | wget<span class="w"> </span>https://datacdn.data-it.tech/faceRec/face-dt/FaceRecognitionServer_fastapi.py |
| | | </code></pre></div> |
| | | |
| | | <h3 id="35">3.5 运行服务<a class="headerlink" href="#35" title="Permanent link">¶</a></h3> |
| | | <p>在项目根目录下,运行以下命令启动人脸识别服务:</p> |
| | | <div class="codehilite"><pre><span></span><code>uvicorn<span class="w"> </span>FaceRecognitionServer_fastapi:app<span class="w"> </span>--host<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>--port<span class="w"> </span><span class="m">12316</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">1</span> |
| | | </code></pre></div> |
| | | |
| | | <p>去行以上命令,人脸识别服务就启动成功了,默认监听12316端口。</p> |
| | | <h3 id="36">3.6 以服务方式运行<a class="headerlink" href="#36" title="Permanent link">¶</a></h3> |
| | | <p>可以使用<code>nohup</code>命令让服务在后台运行,即使关闭终端,服务也不会停止:</p> |
| | | <div class="codehilite"><pre><span></span><code>nohup<span class="w"> </span>uvicorn<span class="w"> </span>FaceRecognitionServer_fastapi:app<span class="w"> </span>--host<span class="w"> </span><span class="m">0</span>.0.0.0<span class="w"> </span>--port<span class="w"> </span><span class="m">12316</span><span class="w"> </span>--workers<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="p">&</span> |
| | | </code></pre></div> |
| | | |
| | | <p>这样,服务将继续在后台运行,日志信息将被写入<code>nohup.out</code>文件中。</p> |
| | | <h3 id="37">3.7 停止服务<a class="headerlink" href="#37" title="Permanent link">¶</a></h3> |
| | | <p>如果需要停止服务,可以使用<code>ps</code>命令找到服务的进程ID,然后使用<code>kill</code>命令终止它:</p> |
| | | <div class="codehilite"><pre><span></span><code>ps<span class="w"> </span>aux<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>uvicorn |
| | | <span class="nb">kill</span><span class="w"> </span><PID> |
| | | </code></pre></div> |
| | | |
| | | <p>将<code><PID></code>替换为实际的进程ID。</p> |
| | | <h3 id="38-services">3.8 以services方式运行<a class="headerlink" href="#38-services" title="Permanent link">¶</a></h3> |
| | | <p>也可以将人脸识别服务配置为系统服务,以便更方便地管理它 |
| | | 创建一个新的服务文件,例如<code>/etc/systemd/system/facerec.service</code>,内容如下:</p> |
| | | <div class="codehilite"><pre><span></span><code><span class="k">[Unit]</span> |
| | | <span class="na">Description</span><span class="o">=</span><span class="s">Face Recognition Service</span> |
| | | <span class="na">After</span><span class="o">=</span><span class="s">network.target</span> |
| | | <span class="k">[Service]</span> |
| | | <span class="na">User</span><span class="o">=</span><span class="s">your_username</span> |
| | | <span class="na">WorkingDirectory</span><span class="o">=</span><span class="s">/path/to/your/project</span> |
| | | <span class="na">ExecStart</span><span class="o">=</span><span class="s">/path/to/your/project/face-dt/bin/uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1</span> |
| | | <span class="k">[Install]</span> |
| | | <span class="na">WantedBy</span><span class="o">=</span><span class="s">multi-user.target</span> |
| | | </code></pre></div> |
| | | |
| | | <p>将<code>your_username</code>替换为运行服务的用户,将<code>/path/to/your |
| | | /project</code>替换为项目的实际路径。 |
| | | 然后,重新加载systemd以识别新的服务文件:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>daemon-reload |
| | | </code></pre></div> |
| | | |
| | | <p>启动服务:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>start<span class="w"> </span>facerec.service |
| | | </code></pre></div> |
| | | |
| | | <p>启用服务,使其在系统启动时自动运行:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>facerec.service |
| | | </code></pre></div> |
| | | |
| | | <p>检查服务状态:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>status<span class="w"> </span>facerec.service |
| | | </code></pre></div> |
| | | |
| | | <p>停止服务:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>stop<span class="w"> </span>facerec.service |
| | | </code></pre></div> |
| | | |
| | | <p>重启服务:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>systemctl<span class="w"> </span>restart<span class="w"> </span>facerec.service |
| | | </code></pre></div> |
| | | |
| | | <h3 id="39">3.9 防火墙配置<a class="headerlink" href="#39" title="Permanent link">¶</a></h3> |
| | | <p>如果服务器启用了防火墙,请确保允许12316端口的流量:</p> |
| | | <div class="codehilite"><pre><span></span><code>sudo<span class="w"> </span>ufw<span class="w"> </span>allow<span class="w"> </span><span class="m">12316</span> |
| | | sudo<span class="w"> </span>ufw<span class="w"> </span>reload |
| | | </code></pre></div> |
| | | |
| | | <h3 id="310">3.10 访问服务<a class="headerlink" href="#310" title="Permanent link">¶</a></h3> |
| | | <p>现在,您可以通过浏览器或API客户端访问人脸识别服务: |
| | | <code>http://<your_server_ip>:12316</code> |
| | | 将<code><your_server_ip></code>替换为服务器的实际IP地址。 </p> |
| | | <h2 id="4">4. 总结<a class="headerlink" href="#4" title="Permanent link">¶</a></h2> |
| | | <p>通过以上步骤,您已经成功手动部署了基于DLIB的人脸识别服务。您可以根据需要进一步扩展和优化该服务,以满足特定的应用需求。</p> |
| | | |
| | | </div> |
| | | </div><footer> |
| | | |
| | | <hr/> |
| | | |
| | | <div role="contentinfo"> |
| | | <!-- Copyright etc --> |
| | | </div> |
| | | |
| | | Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| | | </footer> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </section> |
| | | |
| | | </div> |
| | | |
| | | <div class="rst-versions" role="note" aria-label="Versions"> |
| | | <span class="rst-current-version" data-toggle="rst-current-version"> |
| | | |
| | | <span> |
| | | <a href="http://dh.leon056.com:7499/r/Embedded/HomeAssistantPtoject.git" class="fa fa-code-fork" style="color: #fcfcfc"> Dh</a> |
| | | </span> |
| | | |
| | | |
| | | |
| | | </span> |
| | | </div> |
| | | <script src="../../../js/jquery-3.6.0.min.js"></script> |
| | | <script>var base_url = "../../..";</script> |
| | | <script src="../../../js/theme_extra.js"></script> |
| | | <script src="../../../js/theme.js"></script> |
| | | <script src="../../../search/main.js"></script> |
| | | <script> |
| | | jQuery(function () { |
| | | SphinxRtdTheme.Navigation.enable(true); |
| | | }); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| New file |
| | |
| | | <!DOCTYPE html> |
| | | <html class="writer-html5" lang="en" > |
| | | <head> |
| | | <meta charset="utf-8" /> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="author" content="岱特智能科技(上海)有限公司" /> |
| | | <link rel="shortcut icon" href="../../../img/favicon.ico" /> |
| | | <title>离线安装人脸识别服务 - DT-HA</title> |
| | | <link rel="stylesheet" href="../../../css/theme.css" /> |
| | | <link rel="stylesheet" href="../../../css/theme_extra.css" /> |
| | | <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" /> |
| | | |
| | | <script> |
| | | // Current page data |
| | | var mkdocs_page_name = "\u79bb\u7ebf\u5b89\u88c5\u4eba\u8138\u8bc6\u522b\u670d\u52a1"; |
| | | var mkdocs_page_input_path = "Usages\\QA\\\u79bb\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1docker.md"; |
| | | var mkdocs_page_url = null; |
| | | </script> |
| | | |
| | | <!--[if lt IE 9]> |
| | | <script src="../../../js/html5shiv.min.js"></script> |
| | | <![endif]--> |
| | | <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script> |
| | | <script>hljs.highlightAll();</script> |
| | | </head> |
| | | |
| | | <body class="wy-body-for-nav" role="document"> |
| | | |
| | | <div class="wy-grid-for-nav"> |
| | | <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav"> |
| | | <div class="wy-side-scroll"> |
| | | <div class="wy-side-nav-search"> |
| | | <a href="../../.." class="icon icon-home"> DT-HA |
| | | </a><div role="search"> |
| | | <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| | | <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" /> |
| | | </form> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../..">首页</a> |
| | | </li> |
| | | </ul> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../about/">关于</a> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">使用教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" href="../../../install-guide/installHa/">安装</a> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >使用</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../usage/">使用概述</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../netconfig/netconfig/">配置网络</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../initConfig/initConfig/">系统初始化配置</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | <li class="toctree-l1"><a class="reference internal" >Q/A</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/">透析中心HA环境温度发送到胜透的操作指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../errorsQA/">errorsQA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/">HA-如何实现状态反转</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/">TS88透析机联机通信-中文版</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/">VMware-ESXi扩展HomeAssistant硬盘指南</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/">如何集成和风天气组件到HA</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/">如厕风险-人存在传感器配置方法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/">Ubuntu-desktop桌面系统如何配置开启远程协助</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/">如何离线安装Docker(ubuntu24.04)</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/">如何在线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/">如何离线Docker一键安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/">基于Docker的方式安装HomeAssistant</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/">如何快速部署frpc服务</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/">windows不能访问HA的共享配置目录的解决办法</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | <p class="caption"><span class="caption-text">其它教程</span></p> |
| | | <ul> |
| | | <li class="toctree-l1"><a class="reference internal" >Node-red相关</a> |
| | | <ul> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/">安装node-red记录</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/">如何把node-red安装到orangepiZero</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/">ModbusPoll-v7.0.0使用教程</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/">node-red常用组件列表</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../../node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/">node-red如何连接modbus _slave设备</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </nav> |
| | | |
| | | <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| | | <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu"> |
| | | <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| | | <a href="../../..">DT-HA</a> |
| | | |
| | | </nav> |
| | | <div class="wy-nav-content"> |
| | | <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation"> |
| | | <ul class="wy-breadcrumbs"> |
| | | <li><a href="../../.." class="icon icon-home" aria-label="Docs"></a></li> |
| | | <li class="breadcrumb-item active">离线安装人脸识别服务</li> |
| | | <li class="wy-breadcrumbs-aside"> |
| | | </li> |
| | | </ul> |
| | | <hr/> |
| | | </div> |
| | | <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| | | <div class="section" itemprop="articleBody"> |
| | | |
| | | <h1 id="_1">离线安装人脸识别服务<a class="headerlink" href="#_1" title="Permanent link">¶</a></h1> |
| | | <p>本文档介绍如何在没有网络连接的环境下,离线安装基于DLIB的人脸识别服务。</p> |
| | | <h2 id="1">1. 准备工作<a class="headerlink" href="#1" title="Permanent link">¶</a></h2> |
| | | <p>在开始之前,请确保您已经完成以下准备工作:</p> |
| | | <ul> |
| | | <li>一台运行Linux操作系统的服务器(推荐使用Ubuntu)</li> |
| | | <li>已安装Docker和Docker Compose</li> |
| | | <li>已下载所需的Docker镜像和配置文件(请参考<a href="../%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/">在线安装</a>部分获取下载链接)</li> |
| | | <li>端口要求:12316(可根据需要修改)</li> |
| | | <li>os已安装curl命令</li> |
| | | </ul> |
| | | <h2 id="2">2. 安装步骤<a class="headerlink" href="#2" title="Permanent link">¶</a></h2> |
| | | <h3 id="21">2.1 先从云服务器上下载离线安装的镜像包和安装脚本<a class="headerlink" href="#21" title="Permanent link">¶</a></h3> |
| | | <div class="codehilite"><pre><span></span><code>wget https://datacdn.data-it.tech/faceRec/FacRecDocker/facerec.tar |
| | | |
| | | wget https://datacdn.data-it.tech/faceRec/FacRecDocker/install-offline.sh |
| | | </code></pre></div> |
| | | |
| | | <p>如下所示:</p> |
| | | <div class="codehilite"><pre><span></span><code>facerec.tar install-offline.sh |
| | | </code></pre></div> |
| | | |
| | | <p>下载好这两个文件后,将这两个文件拷贝到没有网络的服务器上。</p> |
| | | <h3 id="22">2.2 上传或拷贝离线安装包到服务器<a class="headerlink" href="#22" title="Permanent link">¶</a></h3> |
| | | <p>将下载好的<code>facerec.tar</code>和<code>install-offline.sh</code>文件上传或拷贝到目标服务器的某个目录下,例如<code>/home/user/download</code>(取决于用户放置目录,不强制要求,用户可放任意目录,要求只有一个,这两个文件在同一个目录)。</p> |
| | | <div class="codehilite"><pre><span></span><code>tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | </code></pre></div> |
| | | |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930161123.png" /></p> |
| | | <h3 id="23">2.3 执行离线安装脚本<a class="headerlink" href="#23" title="Permanent link">¶</a></h3> |
| | | <div class="codehilite"><pre><span></span><code><span class="c1"># 先进入放置离线安装包的目录</span> |
| | | <span class="nb">cd</span><span class="w"> </span>/home/user/download<span class="w"> </span> |
| | | <span class="c1"># 给安装脚本添加执行权限</span> |
| | | sudo<span class="w"> </span>chmod<span class="w"> </span>+x<span class="w"> </span>install-offline.sh |
| | | <span class="c1"># 执行安装脚本</span> |
| | | sudo<span class="w"> </span>./install-offline.sh |
| | | </code></pre></div> |
| | | |
| | | <p>命令执行后,系统会自动加载Docker镜像并配置人脸识别服务,整个过程可能需要几分钟时间,请耐心等待。 |
| | | 如下所示:</p> |
| | | <div class="codehilite"><pre><span></span><code>tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ sudo chmod +x ./*.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ ls |
| | | facerec.tar install-offline.sh |
| | | tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-offline.sh |
| | | =============================================== |
| | | 开始离线部署人脸识别服务... |
| | | =============================================== |
| | | [INFO] 2025-09-30 16:19:28 - 检查Docker和Docker Compose是否已安装... |
| | | [INFO] 2025-09-30 16:19:28 - Docker和Docker Compose已安装 |
| | | [INFO] 2025-09-30 16:19:28 - 检查facerec.tar文件... |
| | | [INFO] 2025-09-30 16:19:28 - 检测到文件已存在: facerec.tar |
| | | [INFO] 2025-09-30 16:19:28 - 正在验证文件完整性... |
| | | [INFO] 2025-09-30 16:19:28 - 文件完整性验证通过 |
| | | [INFO] 2025-09-30 16:19:28 - 导入facerec.tar作为Docker镜像... |
| | | [INFO] 2025-09-30 16:22:37 - 成功导入Docker镜像: facerec.tar |
| | | [WARNING] 2025-09-30 16:22:37 - 无法直接从docker load输出中提取镜像ID,尝试通过docker images命令获取 |
| | | [INFO] 2025-09-30 16:22:37 - 成功将镜像 480b2ed60be7 标记为 dt_iot/facerec:latest |
| | | [INFO] 2025-09-30 16:22:38 - 创建部署目录: /dt_opt/facerec |
| | | [INFO] 2025-09-30 16:22:38 - 复制文件到部署目录... |
| | | sending incremental file list |
| | | ./ |
| | | install-offline.sh |
| | | |
| | | sent 7,166 bytes received 38 bytes 14,408.00 bytes/sec |
| | | total size is 7,034 speedup is 0.98 |
| | | [INFO] 2025-09-30 16:22:38 - 创建必要的目录结构... |
| | | [INFO] 2025-09-30 16:22:38 - 配置环境变量文件... |
| | | [INFO] 2025-09-30 16:22:38 - 创建docker-compose.yml文件... |
| | | [INFO] 2025-09-30 16:22:38 - 检查Docker镜像是否已正确导入... |
| | | [INFO] 2025-09-30 16:22:38 - 镜像 dt_iot/facerec 已成功导入 |
| | | [INFO] 2025-09-30 16:22:38 - 加载环境变量... |
| | | [INFO] 2025-09-30 16:22:38 - 配置防火墙端口: 12316 |
| | | 防火墙规则已更新 |
| | | 规则已更新(v6) |
| | | [INFO] 2025-09-30 16:22:39 - 启动人脸识别服务... |
| | | [+] Running 2/2 |
| | | ✔ Network dtnet Created 0.5s |
| | | ✔ Container facerec Started 3.2s |
| | | =============================================== |
| | | 人脸识别服务离线部署完成! |
| | | 服务地址: http://192.168.10.16:12316 |
| | | 部署目录: /dt_opt/facerec |
| | | =============================================== |
| | | </code></pre></div> |
| | | |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930162354.png" /></p> |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250930162541.png" /></p> |
| | | <p>由上图可见,人脸识别服务,已经成功安装完成。</p> |
| | | |
| | | </div> |
| | | </div><footer> |
| | | |
| | | <hr/> |
| | | |
| | | <div role="contentinfo"> |
| | | <!-- Copyright etc --> |
| | | </div> |
| | | |
| | | Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| | | </footer> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | </section> |
| | | |
| | | </div> |
| | | |
| | | <div class="rst-versions" role="note" aria-label="Versions"> |
| | | <span class="rst-current-version" data-toggle="rst-current-version"> |
| | | |
| | | <span> |
| | | <a href="http://dh.leon056.com:7499/r/Embedded/HomeAssistantPtoject.git" class="fa fa-code-fork" style="color: #fcfcfc"> Dh</a> |
| | | </span> |
| | | |
| | | |
| | | |
| | | </span> |
| | | </div> |
| | | <script src="../../../js/jquery-3.6.0.min.js"></script> |
| | | <script>var base_url = "../../..";</script> |
| | | <script src="../../../js/theme_extra.js"></script> |
| | | <script src="../../../js/theme.js"></script> |
| | | <script src="../../../search/main.js"></script> |
| | | <script> |
| | | jQuery(function () { |
| | | SphinxRtdTheme.Navigation.enable(true); |
| | | }); |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |
| | |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | <div class="codehilite"><pre><span></span><code>docker logs -f paddlespeech |
| | | </code></pre></div> |
| | | |
| | | <p>TTS模型首次使用时侍自动从网络下载约2G的模型文件,下载完成后会自动启动服务。后续再次使用时,不会重复下载模型文件。 |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250921093139.png" /> |
| | | Asr模型首次使用时侍自动从网络下载约1G的模型文件,下载完成后会自动启动服务。后续再次使用时,不会重复下载模型文件。 |
| | | <p>容器启动后,先会载一个NLP的小模型,耗时约30秒左右,然后,启动服务与端口, |
| | | 当/tts这个api首次被调用时,容器的程序,会自动从网络下载约2G的模型文件,下载完成后会完成首次TTS输出,当然首次也有可能因网络超时失败。后续再次使用时,不会重复下载模型文件。</p> |
| | | <p><img alt="" src="https://qncdn.tairongkj.com/docs/images/20250921093139.png" /></p> |
| | | <p>当/asr这个api被首次调用时,容器中的程序会自动从网络下载约2G的模型文件,下载完成后会自动提供语音识别服务,并完成首次API识别的输出,当然,也有可能失败,后续再次调用此API是,不会重复下载模型文件。 |
| | | <img alt="" src="https://qncdn.tairongkj.com/docs/images/20250921093510.png" /></p> |
| | | <p><strong><em>上述下载过程较为缓慢,约5-10分钟左右,请耐心等待!如果想看实时过程,请输入:docker-comopose logs paddlespeech 来查看实时日志</em></strong></p> |
| | | <p><strong><em>请在正式使用之前,用postman或文档中提供的测试网页,调试一次成功后,再放入后台运行!</em></strong></p> |
| | | <h2 id="_8">五、离线部署步骤<a class="headerlink" href="#_8" title="Permanent link">¶</a></h2> |
| | | <h3 id="_9">离线部署的相关文件下载地址<a class="headerlink" href="#_9" title="Permanent link">¶</a></h3> |
| | | <ol> |
| | |
| | | <h3 id="6">6. 管理容器<a class="headerlink" href="#6" title="Permanent link">¶</a></h3> |
| | | <p>进入容器器的部署目录: |
| | | /dt_opt/paddlespeech</p> |
| | | <div class="codehilite"><pre><span></span><code>docker<span class="w"> </span>ps<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span><span class="c1"># 启动容器</span> |
| | | docker<span class="w"> </span>ps<span class="w"> </span>down<span class="w"> </span><span class="c1"># 停止容器</span> |
| | | docker<span class="w"> </span>ps<span class="w"> </span>restart<span class="w"> </span><span class="c1"># 重启容器</span> |
| | | docker<span class="w"> </span>ps<span class="w"> </span>logs<span class="w"> </span>-f<span class="w"> </span>paddlespeech<span class="w"> </span><span class="c1"># 实时查看日志</span> |
| | | docker<span class="w"> </span>ps<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>paddlespeech<span class="w"> </span>/bin/bash<span class="w"> </span><span class="c1"># 进入容器</span> |
| | | docker<span class="w"> </span>ps<span class="w"> </span>rm<span class="w"> </span>-f<span class="w"> </span>paddlespeech<span class="w"> </span><span class="c1"># 删除容器</span> |
| | | <div class="codehilite"><pre><span></span><code>docker-compose<span class="w"> </span>up<span class="w"> </span>-d<span class="w"> </span><span class="c1"># 启动容器</span> |
| | | docker-compose<span class="w"> </span>down<span class="w"> </span><span class="c1"># 停止容器</span> |
| | | docker-compose<span class="w"> </span>restart<span class="w"> </span>paddlespeech<span class="w"> </span><span class="c1"># 重启容器</span> |
| | | docker<span class="w"> </span>logs<span class="w"> </span>-f<span class="w"> </span>paddlespeech<span class="w"> </span><span class="c1"># 实时查看日志</span> |
| | | docker<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>paddlespeech<span class="w"> </span>/bin/bash<span class="w"> </span><span class="c1"># 进入容器</span> |
| | | docker<span class="w"> </span>rm<span class="w"> </span>-f<span class="w"> </span>paddlespeech<span class="w"> </span><span class="c1"># 删除容器</span> |
| | | docker<span class="w"> </span>rmi<span class="w"> </span>dt_iot/paddlespeech:latest<span class="w"> </span><span class="c1"># 删除镜像</span> |
| | | docker<span class="w"> </span>volume<span class="w"> </span>rm<span class="w"> </span>paddlespeech_data<span class="w"> </span><span class="c1"># 删除数据卷</span> |
| | | docker<span class="w"> </span>network<span class="w"> </span>rm<span class="w"> </span>dtnet<span class="w"> </span><span class="c1"># 删除网络</span> |
| | |
| | | </div><footer> |
| | | <div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation"> |
| | | <a href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/" class="btn btn-neutral float-left" title="windows不能访问HA的共享配置目录的解决办法"><span class="icon icon-circle-arrow-left"></span> Previous</a> |
| | | <a href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/" class="btn btn-neutral float-right" title="安装node-red记录">Next <span class="icon icon-circle-arrow-right"></span></a> |
| | | <a href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/" class="btn btn-neutral float-right" title="人脸识别服务安装说明">Next <span class="icon icon-circle-arrow-right"></span></a> |
| | | </div> |
| | | |
| | | <hr/> |
| | |
| | | <span><a href="../windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/" style="color: #fcfcfc">« Previous</a></span> |
| | | |
| | | |
| | | <span><a href="../../../node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/" style="color: #fcfcfc">Next »</a></span> |
| | | <span><a href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/" style="color: #fcfcfc">Next »</a></span> |
| | | |
| | | </span> |
| | | </div> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | |
| | | <!-- |
| | | MkDocs version : 1.6.1 |
| | | Build Date UTC : 2025-09-21 10:05:36.467366+00:00 |
| | | Build Date UTC : 2025-09-30 09:06:30.634344+00:00 |
| | | --> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | </div> |
| | | </div><footer> |
| | | <div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation"> |
| | | <a href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/" class="btn btn-neutral float-left" title="语音合成与识别服务Docker-部署说明"><span class="icon icon-circle-arrow-left"></span> Previous</a> |
| | | <a href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/" class="btn btn-neutral float-left" title="人脸识别服务安装说明"><span class="icon icon-circle-arrow-left"></span> Previous</a> |
| | | <a href="../%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/" class="btn btn-neutral float-right" title="如何把node-red安装到orangepiZero">Next <span class="icon icon-circle-arrow-right"></span></a> |
| | | </div> |
| | | |
| | |
| | | </span> |
| | | |
| | | |
| | | <span><a href="../../Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/" style="color: #fcfcfc">« Previous</a></span> |
| | | <span><a href="../../Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/" style="color: #fcfcfc">« Previous</a></span> |
| | | |
| | | |
| | | <span><a href="../%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/" style="color: #fcfcfc">Next »</a></span> |
| | |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="./Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/">语音合成与识别服务Docker-部署说明</a> |
| | | </li> |
| | | <li class="toctree-l2"><a class="reference internal" href="./Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/">人脸识别服务安装说明</a> |
| | | </li> |
| | | </ul> |
| | | </li> |
| | | </ul> |
| | |
| | | {"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"HomeAssistant\u672c\u5730\u90e8\u7f72\u53ca\u88c5\u8c03\u8bd5\u8bf4\u660e \u00b6 \u7b80\u8981\u8bf4\u660e \u5b89\u88c5HomeAssistant linux \u4e0b\u5b89\u88c5","title":"\u9996\u9875"},{"location":"#homeassistant","text":"\u7b80\u8981\u8bf4\u660e \u5b89\u88c5HomeAssistant linux \u4e0b\u5b89\u88c5","title":"HomeAssistant\u672c\u5730\u90e8\u7f72\u53ca\u88c5\u8c03\u8bd5\u8bf4\u660e"},{"location":"about/","text":"\u5173\u4e8e\u6211\u4eec \u00b6 \u5cb1\u7279\u667a\u80fd\u79d1\u6280\uff08\u4e0a\u6d77\uff09\u6709\u9650\u516c\u53f8 \u00b6 \u6570\u636e\u6d41\u52a8\u4e4b\u5904\uff0c\u6548\u7387\u81ea\u7136\u53d1\u751f\u3002 \u00b6 DATA\u4ee3\u8868\u611f\u77e5\u3001\u8fde\u63a5\u4e0e\u667a\u80fd\u3002\u5728\u7e41\u6742\u7684\u533b\u7597\u6570\u636e\u4e2d\uff0c\u4e00\u573a\u6570\u5b57\u5316\u9769\u547d\u6b63\u5728\u53d1\u751f\uff0c\u6211\u4eec\u5b88\u62a4\u7684\u4e0d\u6b62\u662f\u6570\u636e\uff0c\u66f4\u662f\u60a3\u8005\u7684\u6bcf\u4e00\u5206\u949f\u3002\u5cb1\u7279\u667a\u80fd\u2013\u8ba9\u6bcf\u4e00\u53f0\u8bbe\u5907\u6210\u4e3a\u667a\u6167\u533b\u7597\u7684\u795e\u7ecf\u5143\u3002 25\u5e74\u533b\u7597\u4fe1\u606f\u5316\u6df1\u8015\u8005\uff0c\u56e2\u961f\u81ea2000\u5e74\u8d77\u6301\u7eed\u63a2\u7d22\u4fe1\u606f\u5316\u5728\u533b\u7597\u573a\u666f\u7684\u6df1\u5ea6\u5e94\u7528 \u00b6 \u6700\u4f73\u5b9e\u8df5\uff1a\u670d\u52a1\u5168\u7403\u8d85\u8fc7600+\u533b\u7597\u673a\u6784\uff0c\u7eed\u7ea6\u7387\u8d8597% \u5168\u7403\u670d\u52a1\uff1a\u72ec\u7acb\u7684\u82f1/\u65e5/\u9a6c\u6765\u8bed\u7248\u672c\uff0c\u9002\u914d\u5f53\u5730\u4e34\u5e8a\u8def\u5f84 \u6784\u5efa\u6807\u51c6\uff1a\u4e3b\u5bfc\u5236\u5b9a\u591a\u9879\u6807\u51c6\uff0c\u300c\u8840\u6db2\u900f\u6790\u8f6f\u4ef6\u6280\u672f\u8981\u6c42\u300d \u6570\u636e\u4e3b\u6743\uff1a\u5373\u4f7f\u7ec8\u6b62\u5408\u4f5c\uff0c\u4ecd\u7136\u4fdd\u8bc1\u7528\u6237\u4e0d\u53d7\u9650\u5236\u7684\u8bbf\u95ee \u56de\u5f52\u672c\u8d28 \u00b6 \u4e0d\u662f\u7528\u6280\u672f\u66ff\u4ee3\u4eba,\u800c\u662f\u8ba9\u800c\u662f\u8ba9\u4eba\u4ece\u91cd\u590d\u52b3\u52a8\u4e2d\u89e3\u653e\uff0c\u56de\u5f52\u533b\u7597\u670d\u52a1\u7684\u672c\u8d28\u3002 \u77e5\u8bc6\u53cd\u54fa \u00b6 \u57fa\u5c42\u533b\u9662\u6848\u4f8b\u81ea\u52a8\u6c89\u6dc0\u4e3a\u4e09\u7532\u4f18\u5316\u7b56\u7565\uff0c\u8bc6\u522b\u79d1\u5ba4\u5de5\u4f5c\u6d41\u5dee\u5f02\uff0c\u751f\u6210\u5b9a\u5236\u65b9\u6848\u3002 \u5f00\u653e\u751f\u6001 \u00b6 \u5f00\u653eAPI\uff0c\u96c6\u6210100+\u7b2c\u4e09\u65b9\u89e3\u51b3\u65b9\u6848\uff0c\u5171\u5efa\u533b\u7597\u6570\u636e\u4ea4\u4e92\u6807\u51c6\u3002 \u4e3a\u60a8\u6784\u5efa\u53ef\u751f\u957f\u7684\u6280\u672f\u751f\u6001\u548c\u53ef\u6301\u7eed\u7684\u4e1a\u52a1 \u00b6 \u50cf\u642d\u79ef\u6728\u822c\u81ea\u7531\u6269\u5c55\uff0c\u7834\u9664\u201d\u6570\u5b57\u5316=\u9ad8\u6295\u5165\uff0c\u4ece\u57fa\u7840\u7269\u8054\u5230AI\u51b3\u7b56\uff0c\u5206\u9636\u6bb5\u5efa\u8bbe\u907f\u514d\u4e00\u6b21\u6027\u8fc7\u8f7d\u6295\u5165\u3002\u4e0d\u662f\u63a8\u7ffb\u91cd\u5efa\u7cfb\u7edf\uff0c\u800c\u662f\u8ba9\u73b0\u6709\u8d44\u4ea7\u6301\u7eed\u4ea7\u751f\u6307\u6570\u7ea7\u4ef7\u503c\u2014\u2014\u8fd9\u624d\u662f\u533b\u7597\u6570\u5b57\u5316\u7684\u7ec8\u6781\u4f7f\u547d\u3002","title":"\u5173\u4e8e"},{"location":"about/#_1","text":"","title":"\u5173\u4e8e\u6211\u4eec"},{"location":"about/#_2","text":"","title":"\u5cb1\u7279\u667a\u80fd\u79d1\u6280\uff08\u4e0a\u6d77\uff09\u6709\u9650\u516c\u53f8"},{"location":"about/#_3","text":"DATA\u4ee3\u8868\u611f\u77e5\u3001\u8fde\u63a5\u4e0e\u667a\u80fd\u3002\u5728\u7e41\u6742\u7684\u533b\u7597\u6570\u636e\u4e2d\uff0c\u4e00\u573a\u6570\u5b57\u5316\u9769\u547d\u6b63\u5728\u53d1\u751f\uff0c\u6211\u4eec\u5b88\u62a4\u7684\u4e0d\u6b62\u662f\u6570\u636e\uff0c\u66f4\u662f\u60a3\u8005\u7684\u6bcf\u4e00\u5206\u949f\u3002\u5cb1\u7279\u667a\u80fd\u2013\u8ba9\u6bcf\u4e00\u53f0\u8bbe\u5907\u6210\u4e3a\u667a\u6167\u533b\u7597\u7684\u795e\u7ecf\u5143\u3002","title":"\u6570\u636e\u6d41\u52a8\u4e4b\u5904\uff0c\u6548\u7387\u81ea\u7136\u53d1\u751f\u3002"},{"location":"about/#252000","text":"\u6700\u4f73\u5b9e\u8df5\uff1a\u670d\u52a1\u5168\u7403\u8d85\u8fc7600+\u533b\u7597\u673a\u6784\uff0c\u7eed\u7ea6\u7387\u8d8597% \u5168\u7403\u670d\u52a1\uff1a\u72ec\u7acb\u7684\u82f1/\u65e5/\u9a6c\u6765\u8bed\u7248\u672c\uff0c\u9002\u914d\u5f53\u5730\u4e34\u5e8a\u8def\u5f84 \u6784\u5efa\u6807\u51c6\uff1a\u4e3b\u5bfc\u5236\u5b9a\u591a\u9879\u6807\u51c6\uff0c\u300c\u8840\u6db2\u900f\u6790\u8f6f\u4ef6\u6280\u672f\u8981\u6c42\u300d \u6570\u636e\u4e3b\u6743\uff1a\u5373\u4f7f\u7ec8\u6b62\u5408\u4f5c\uff0c\u4ecd\u7136\u4fdd\u8bc1\u7528\u6237\u4e0d\u53d7\u9650\u5236\u7684\u8bbf\u95ee","title":"25\u5e74\u533b\u7597\u4fe1\u606f\u5316\u6df1\u8015\u8005\uff0c\u56e2\u961f\u81ea2000\u5e74\u8d77\u6301\u7eed\u63a2\u7d22\u4fe1\u606f\u5316\u5728\u533b\u7597\u573a\u666f\u7684\u6df1\u5ea6\u5e94\u7528"},{"location":"about/#_4","text":"\u4e0d\u662f\u7528\u6280\u672f\u66ff\u4ee3\u4eba,\u800c\u662f\u8ba9\u800c\u662f\u8ba9\u4eba\u4ece\u91cd\u590d\u52b3\u52a8\u4e2d\u89e3\u653e\uff0c\u56de\u5f52\u533b\u7597\u670d\u52a1\u7684\u672c\u8d28\u3002","title":"\u56de\u5f52\u672c\u8d28"},{"location":"about/#_5","text":"\u57fa\u5c42\u533b\u9662\u6848\u4f8b\u81ea\u52a8\u6c89\u6dc0\u4e3a\u4e09\u7532\u4f18\u5316\u7b56\u7565\uff0c\u8bc6\u522b\u79d1\u5ba4\u5de5\u4f5c\u6d41\u5dee\u5f02\uff0c\u751f\u6210\u5b9a\u5236\u65b9\u6848\u3002","title":"\u77e5\u8bc6\u53cd\u54fa"},{"location":"about/#_6","text":"\u5f00\u653eAPI\uff0c\u96c6\u6210100+\u7b2c\u4e09\u65b9\u89e3\u51b3\u65b9\u6848\uff0c\u5171\u5efa\u533b\u7597\u6570\u636e\u4ea4\u4e92\u6807\u51c6\u3002","title":"\u5f00\u653e\u751f\u6001"},{"location":"about/#_7","text":"\u50cf\u642d\u79ef\u6728\u822c\u81ea\u7531\u6269\u5c55\uff0c\u7834\u9664\u201d\u6570\u5b57\u5316=\u9ad8\u6295\u5165\uff0c\u4ece\u57fa\u7840\u7269\u8054\u5230AI\u51b3\u7b56\uff0c\u5206\u9636\u6bb5\u5efa\u8bbe\u907f\u514d\u4e00\u6b21\u6027\u8fc7\u8f7d\u6295\u5165\u3002\u4e0d\u662f\u63a8\u7ffb\u91cd\u5efa\u7cfb\u7edf\uff0c\u800c\u662f\u8ba9\u73b0\u6709\u8d44\u4ea7\u6301\u7eed\u4ea7\u751f\u6307\u6570\u7ea7\u4ef7\u503c\u2014\u2014\u8fd9\u624d\u662f\u533b\u7597\u6570\u5b57\u5316\u7684\u7ec8\u6781\u4f7f\u547d\u3002","title":"\u4e3a\u60a8\u6784\u5efa\u53ef\u751f\u957f\u7684\u6280\u672f\u751f\u6001\u548c\u53ef\u6301\u7eed\u7684\u4e1a\u52a1"},{"location":"Usages/usage/","text":"\u4f7f\u7528\u6559\u7a0b \u00b6 \u57fa\u7840\u914d\u7f6e \u00b6 \u914d\u7f6e\u7f51\u7edc \u521d\u59cb\u5316\u914d\u7f6e \u5fc5\u88c5\u63d2\u4ef6\u6216\u7ec4\u4ef6 \u00b6 - HACS \u00b6","title":"\u4f7f\u7528\u6982\u8ff0"},{"location":"Usages/usage/#_1","text":"","title":"\u4f7f\u7528\u6559\u7a0b"},{"location":"Usages/usage/#_2","text":"\u914d\u7f6e\u7f51\u7edc \u521d\u59cb\u5316\u914d\u7f6e","title":"\u57fa\u7840\u914d\u7f6e"},{"location":"Usages/usage/#_3","text":"","title":"\u5fc5\u88c5\u63d2\u4ef6\u6216\u7ec4\u4ef6"},{"location":"Usages/usage/#-hacs","text":"","title":"- HACS"},{"location":"Usages/QA/HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/","text":"\u9996\u5148\uff0c\u5728\u5c0f\u7c73\u7684\u8bbe\u5907\u91cc\uff0c\u627e\u5230\u4f60\u8981\u53cd\u8f6c\u72b6\u8bb0\u7684\u4f20\u611f\u5668\u7684 ID, \u4ee5\u5927\u8fde\u4e3a\u4f8b\uff0c\u51b0\u7bb1\u95e8\u7684\u4f20\u611f\u5668\u72b6\u6001\u662f\u53cd\u7684\uff0c\u95e8\u5f00\u65f6\u663e\u793a\u5173\u7684\uff0c\u95e8\u5173\u65f6\u663e\u793a\u5f00\u7684\uff0c\u9700\u8981\u53cd\u8f6c\u663e \u6cd5\uff0c\u6b64\u8bbe\u5907\u7684\u4f20\u611f\u5668 ID \u4e3a\uff1a \u201cbinary_sensor.isa_cn_blt_3_1lqaf2rrgco01_dw2hl_contact_state_p_2_2 \u8bb0\u4f4f\u8fd9\u4e2a ID \u627e\u5230\u914d\u7f6e\u6587\u4ef6 \u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u683c\u5f0f\u7684\u4f20\u611f\u5668\u53cd\u8f6c\u914d\u7f6e\uff0c\u6ce8\u610f\uff0c\u6b64\u914d\u7f6e\u8981\u4e25\u683c\u9075\u5b88 YML \u683c\u5f0f\uff0c\u4e0d\u61c2 \u7684\u53ef\u4ee5\u767e\u5ea6\u5b66\u4e00\u4e0b\uff0c \u5185\u5bb9\u4e3a\uff1a - binary_sensor: - name: \"\u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c)\" unique_id: \"reversed_\u5927\u8fde\u51b0\u7bb1\u95e8_1\" state: > {{ is_state('binary_sensor.isa_cn_blt_3_1lqaf2rrgco01_dw2hl_contact_state_p_2_2', 'off') }} \u6ce8\u610f\uff0cstate \u540e\u9762\u7684\u683c\u5f0f\u8981\u5bf9\uff0c\u4f20\u611f\u5668 ID \u8981\u6362\u6210\u521a\u8bb0\u4e0b\u7684\u4f20\u611f\u5668 ID \u8fd9\u6837\u4f60\u5c31\u591a\u4e86\u4e00\u4e2a\u540d\u79f0\u4e3a\uff1a\u201c\u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c)\u201d\u7684\u4f20\u611f\u5668 \u7136\u540e\uff0c\u5230\u4eea\u8868\u76d8\uff0c\u5bf9\u5e94\u7684\u7ec4\u4ef6\u4e2d \u9009\u4e2d \u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c) \u4fdd\u5b58\u5373\u53ef \u8fd9\u6837\u5c31\u5b9e\u73b0\u4e86\u53cd\u8f6c\uff0c\u4eea\u8868\u76d8\u4e2d\uff0c\u4e0d\u8981\u518d\u4f7f\u7528\u539f\u6765\u7684 ID\uff0c\u8981\u4f7f\u7528\u4f60\u914d\u7f6e\u6587\u4ef6\u4e2d\u65b0\u589e\u7684 id \u6ce8\u610f\uff1a \u5982\u679c\uff0c\u72b6\u6001\u6ca1\u6709\u53cd\u8f6c\uff0c\u53ef\u4ee5\u4ece\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u4f20\u611f\u5668\u7684\u72b6\u6001\uff0c\u786e\u8ba4\u662f\u5426\u6b63\u786e\u53cd\u8f6c\u3002","title":"HA-\u5982\u4f55\u5b9e\u73b0\u72b6\u6001\u53cd\u8f6c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/","text":"TQS-88 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a-\u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c \u00b6 \u6ce8\u610f\u4e8b\u9879 \u00b6 \u5728\u5f00\u59cb\u4f7f\u7528\u900f\u6790\u673a\u524d\u8bf7\u4ed4\u7ec6\u9605\u8bfb\u672c\u64cd\u4f5c\u624b\u518c\u3002 \u4efb\u4f55\u4e0d\u5f53\u64cd\u4f5c\u90fd\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e8b\u6545\u3002\u4f7f\u7528\u7b26\u5408\u672c\u8bf4\u660e\u7684\u900f\u6790\u673a\u3002 \u8bf7\u5c06\u672c\u64cd\u4f5c\u624b\u518c\u7f6e\u4e8e\u6613\u4e8e\u83b7\u53d6\u7684\u4f4d\u7f6e\uff0c\u4ee5\u4fbf\u5728\u9700\u8981\u65f6\u53ef\u968f\u65f6\u53c2\u9605\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u65e8\u5728\u4e3a\u64cd\u4f5c\u4eba\u5458\u63d0\u4f9b\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u4e3b\u8981\u6db5\u76d6\u4ee5\u4e0b\u6709\u5173\"\u6570\u636e\u901a\u4fe1\"\u7684\u5185\u5bb9\uff1a 1. \u89c4\u683c 2. \u4e0ePC\u7684\u8fde\u63a5 \u6b63\u6587\u4e2d\u8b66\u793a\u5b9a\u4e49\u5982\u4e0b\uff1a - \u6ce8\u610f \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4f7f\u7528\u8bf4\u660e\u3002\u60a8\u5fc5\u987b\u9075\u5b88\u4f7f\u7528\u8bf4\u660e\u3002 - \u9644\u6ce8 \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4e3a\u4e86\u8ba9\u60a8\u589e\u8fdb\u7406\u89e3\u7684\u6709\u7528\u4fe1\u606f\u6216\u8865\u5145\u8bf4\u660e\u4e8b\u9879\u3002 \u7b80\u4ecb \u00b6 \u64cd\u4f5c\u6b64\u9009\u914d\u4ef6\uff08\"\u6570\u636e\u901a\u4fe1\"\u529f\u80fd\uff09\u65f6\uff0c\u8bf7\u52a1\u5fc5\u5145\u5206\u7406\u89e3\u548c\u7279\u522b\u6ce8\u610f\u4ee5\u4e0b\u4e8b\u9879\u3002\u4f7f\u7528\u524d\u5fc5\u987b\u5145\u5206\u4e86\u89e3\u5185\u5bb9\u3002 1. \u64cd\u4f5c\u624b\u518c \u00b6 (1) \u672c\u64cd\u4f5c\u624b\u518c\u4ecb\u7ecd\u4e86\u6b63\u786e\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u548c\u5b89\u5168\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u5e76\u975e\u65e8\u5728\u8bf4\u660e\u5bf9\u60a3\u8005\u7684\u6cbb\u7597\u3002 (2) \u53ea\u6709\u4ed4\u7ec6\u9605\u8bfb\u5e76\u5145\u5206\u7406\u89e3\u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u6240\u542b\u7684\u8bf4\u660e\u540e\uff0c\u624d\u80fd\u4f7f\u7528\u8bbe\u5907\u5e76\u8fdb\u884c\u64cd\u4f5c\u4ee5\u53ca\u7ef4\u62a4\u3002 (3) \u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u5b89\u5168\u6ce8\u610f\u4e8b\u9879\u9002\u7528\u4e8e\u8fdb\u884c\u7279\u5b9a\u76ee\u7684\u7684\"\u6570\u636e\u901a\u4fe1\"\u4f7f\u7528\u3002\u8bf7\u52ff\u5c1d\u8bd5\u4ee5\u672c\u624b\u518c\u4e2d\u6240\u5217\u4ee5\u5916\u7684\u4efb\u4f55\u65b9\u5f0f\u4f7f\u7528\u8bbe\u5907\u3002 \u672c\u624b\u518c\u7684\u5185\u5bb9\u53d7\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u7248\u6743\u4fdd\u62a4\uff0c\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002\u672a\u7ecf\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4e8b\u5148\u4e66\u9762\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u4efb\u4f55\u5f62\u5f0f\u590d\u5236\u3001\u8f6c\u8f7d\u672c\u624b\u518c\u4e2d\u7684\u4efb\u4f55\u5185\u5bb9\uff0c\u6216\u5c06\u5176\u8bd1\u4e3a\u5176\u4ed6\u8bed\u8a00\u3002 2. \u8d23\u4efb\u9650\u5236 \u00b6 \u6211\u4eec\u5e0c\u671b\u60a8\u4e8b\u524d\u4e86\u89e3\uff0c\u5bf9\u7531\u4e8e\u64cd\u4f5c\u6b64\u900f\u6790\u673a\u6240\u9020\u6210\u7684\u4efb\u4f55\u53ef\u80fd\u7684\u635f\u5bb3\u6216\u5229\u76ca\u635f\u5931\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u8bf7\u52ff\u62c6\u5378\u6216\u6539\u9020\u900f\u6790\u673a\uff0c\u5426\u5219\u5c06\u4e0d\u5728\u5236\u9020\u5546\u4fdd\u4fee\u8303\u56f4\u4e4b\u5185\u3002 \u7531\u4e8e\u5ba2\u6237\u62c6\u5378\u3001\u6539\u9020\u3001\u5206\u89e3\u6216\u4f7f\u7528\u4e0d\u5f53\u4ee5\u53ca\u5b89\u88c5\u73af\u5883\u3001\u642c\u8fd0\u4e0d\u5f53\u7b49\u9020\u6210\u7684\u635f\u5bb3\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u5982\u679c\u65e0\u6cd5\u53d1\u6325\u56fa\u6709\u529f\u80fd\uff0c\u5219\u4e0d\u5f97\u7528\u4e8e\u6cbb\u7597\u7528\u9014\u3002\u5bf9\u6b64\u7c7b\u60c5\u5f62\u4e0b\u9020\u6210\u7684\u4efb\u4f55\u635f\u5bb3\u6216\u5bf9\u60a3\u8005\u7684\u635f\u4f24\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u900f\u6790\u673a\u7684\u65e5\u5e38\u7ef4\u62a4\u548c\u68c0\u67e5\u5e94\u6839\u636e\"\u7ef4\u62a4\u68c0\u67e5\u624b\u518c\"\u8fdb\u884c\u3002 \u7b2c1\u7ae0 \u89c4\u683c \u00b6 1.1 \u6570\u636e\u901a\u4fe1\u529f\u80fd\u7684\u63cf\u8ff0 \u00b6 \u900f\u6790\u673a\u7684\u6cbb\u7597\u6570\u636e\u548c\u8bbe\u7f6e\u6570\u636e\u53ef\u4ece\u4ee5\u592a\u7f51\u63a5\u53e3\u4f20\u8f93\u5230\u8ba1\u7b97\u673a\u4e2d\u3002 1.2 \u901a\u4fe1\u89c4\u683c \u00b6 1.2.1 LAN\u53c2\u6570 \u00b6 \u7f16\u53f7 \u9879\u76ee \u63cf\u8ff0 1 \u4ee5\u592a\u7f51\u63a5\u53e3 10Base-T \u6216 100Base-TX\uff08\u81ea\u52a8\u611f\u5e94\uff09 2 \u4e32\u53e3 RJ45 3 \u7f51\u7edc\u914d\u7f6e \u53ef\u81ea\u5b9a\u4e49 1.2.2 \u900f\u6790\u673a\u901a\u4fe1\u6b65\u9aa4 \u00b6 \u900f\u6790\u673a\u7aef\u7ba1\u7406\u7684\u6570\u636e\u901a\u8fc7PC\u7aef\u7684\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u8fdb\u884c\u4f20\u8f93\u3002 graph TD A[PC] -->|\u6570\u636e\u4f20\u8f93\u8bf7\u6c42| B[\u900f\u6790\u673a] B -->|\u6570\u636e\u4f20\u8f93| A B -->|\u4e34\u5e8a\u6570\u636e\u4f20\u8f93| A [1] PC\u7aef\u4f20\u8f93\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff08\u53c2\u9605\u7b2c1.2.3\u8282\uff09\u3002 [2] \u900f\u6790\u673a\u63a5\u6536PC\u7684\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff0c\u5e76\u53d1\u9001\u5404\u79cd\u76f8\u5e94\u7684\u6570\u636e\uff08\u53c2\u9605\u7b2c1.2.4\u8282\u548c\u7b2c1.2.5\u8282\uff09\u3002 1.2.3 \u4ecePC\u4f20\u8f93\u5230\u900f\u6790\u673a\u7684\u6570\u636e\u53ca\u5176\u683c\u5f0f \u00b6 \u6570\u636e\u4f20\u8f93\u8bf7\u6c42\uff083\u4e2a\u5b57\u8282\uff09 \"K\"\uff084BH\uff09 CR\uff080DH\uff09 LF\uff080AH\uff09 1.2.4 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e\u683c\u5f0f \u00b6 \u4e34\u5e8a\u6570\u636e \u00b6 \u5f00\u59cb [1] \u6570\u636e\u957f\u5ea6 [2] \u6570\u636e [3] \u603b\u6570 [4] \u7ed3\u675f [5] \u6570\u636e\u7ec4\u6210 \u00b6 \u7f16\u53f7 \u5b57\u8282\u6570 \u63cf\u8ff0 [1] 2 \u6570\u636e\u5f00\u59cb\u4ee3\u7801\uff08ASCII\uff09 \"K\"\"1\" [2] 3 \u6570\u636e\u957f\u5ea6\uff08ASCII\uff09 \u91c7\u75283\u4f4d\u6570\u7684\u5f62\u5f0f\u8868\u793a\u7b2c\u4e09\u9879\u4e2d\u8ba1\u7b97\u7684\u6240\u6709\u5b57\u8282\u7684\u603b\u548c\u3002 \u4f8b\u5982\uff09\u5982\u679c\u603b\u6570\u4e3a123\u4e2a\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"1\",\"2\",\"3\" [3] 1 \u6570\u636e\u9a8c\u8bc1\u4ee3\u7801\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [3] \u5355\u4e2a \u6570\u636e\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [4] 2 \u7528\u4e8e\u548c\u6570\u6821\u9a8c\u7684\u6570\u636e \u8ba1\u7b97[1]\uff5e[3]\u603b\u548c\uff0c\u8f83\u4f4e\u7684\u5341\u516d\u8fdb\u52362\u4f4d\u6570\u4f1a\u8f6c\u6362\u6210ASCII\u4ee3\u7801\u3002 \u4f8b\u5982\uff09\u603b\u51715aH\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"5\"\u3001\"A\" [5] 2 \u6570\u636e\u7ed3\u675f\u4ee3\u7801 CR\u3001LF 1.2.5 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e \u00b6 \u6570\u636e\u5217\u8868 \u00b6 \u7f16\u53f7 \u6570\u636e\u540d\u79f0 \u6570\u636e\u6807\u8bc6\u4ee3\u7801 \u5b57\u8282\u6570 \u5355\u4f4d 1 UF\u76ee\u6807 \"A\" 5 L 2 UF\u91cf \"B\" 5 L 3 UF\u901f\u7387 \"C\" 5 L/hr 4 \u8840\u6db2\u6d41\u901f \"D\" 5 mL/min 5 \u6ce8\u5c04\u5668\u6d41\u901f \"E\" 5 mL/h 6 \u900f\u6790\u6db2\u6e29\u5ea6 \"F\" 5 \u6444\u6c0f\u5ea6 7 \u900f\u6790\u6db2\u7535\u5bfc\u5ea6 \"G\" 5 mS/cm 8 \u9759\u8109\u538b \"H\" 5 mmHg 9 \u900f\u6790\u6db2\u538b \"I\" 5 mmHg 10 TMP \"J\" 5 mmHg 11 \u900f\u6790\u65f6\u95f4 \"K\" 5 min 12 \u900f\u6790\u6db2\u6e29\u5ea6\u8b66\u62a5 \"a\" 1 \u2014 13 \u7535\u5bfc\u5ea6\u8b66\u62a5 \"b\" 1 \u2014 14 \u9759\u8109\u538b\u8b66\u62a5 \"c\" 1 \u2014 15 \u900f\u6790\u6db2\u538b\u529b\u8b66\u62a5 \"d\" 1 \u2014 16 TMP\u8b66\u62a5 \"e\" 1 \u2014 17 \u6c14\u6ce1\u4fa6\u6d4b\u5668\u8b66\u62a5 \"f\" 1 \u2014 18 \u6f0f\u8840\u8b66\u62a5 \"g\" 1 \u2014 19 \u5176\u4ed6\u8b66\u62a5 \"h\" 1 \u2014 20 \u900f\u6790\u6db2\u6d41\u901f \"L\" 5 mL/min 21 BPM\u68c0\u6d4b\u65f6\u95f4 \"M\" 5 \u65f6\u95f4 22 BPM\u6700\u9ad8\u8840\u538b \"N\" 5 mmHg 23 BPM\u6700\u4f4e\u8840\u538b \"O\" 5 mmHg 24 BPM\u8109\u51b2 \"P\" 5 \u8109\u51b2 25 BPM\u6536\u7f29\u4e0a\u9650\u8b66\u62a5 \"Q\" 5 mmHg 26 BPM\u6536\u7f29\u4e0b\u9650\u8b66\u62a5 \"R\" 5 mmHg 27 BPM\u538b\u8109\u5e26\u538b\u529b \"S\" 5 mmHg 28 BPM\u68c0\u6d4b\u95f4\u9694\u65f6\u95f4 \"T\" 5 min 29 \u603b\u8840\u6db2\u6d41\u91cf \"U\" 5 L 30 \u9759\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"V\" 5 mmHg 31 \u9759\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"W\" 5 mmHg 32 \u603b\u6ce8\u5c04\u6d41\u91cf \"X\" 5 mL 33 \u900f\u6790\u6db2\u538b\u4e0a\u9650\u8b66\u62a5 \"Y\" 5 mmHg 34 \u900f\u6790\u6db2\u538b\u4e0b\u9650\u8b66\u62a5 \"Z\" 5 mmHg 35 NaCl\u6ce8\u5165\u7ea7\u522b \"i\" 5 \u2014 36 UF\u4e2a\u6027\u5316\u7a0b\u5e8f \"j\" 1 \u2014 37 \u900f\u6790\u6db2\u9009\u62e9 \"k\" 1 \u2014 38 \u7535\u5bfc\u5ea6\u7ea7\u522b \"l\" 1 \u2014 39 \u6570\u636e\u901a\u4fe1\u72b6\u6001 \"m\" 1 \u2014 40 \u5e8f\u5217\u53f7 \"n\" 8 \u2014 41 \u52a8\u8109\u538b \"o\" 5 mmHg 42 \u52a8\u8109\u538b\u8b66\u62a5 \"p\" 1 \u2014 43 \u52a8\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"q\" 5 mmHg 44 \u52a8\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"r\" 5 mmHg 45 TMP\u4e0a\u9650\u8b66\u62a5 \"s\" 5 mmHg 46 TMP\u4e0b\u9650\u8b66\u62a5 \"t\" 5 mmHg 47 \u7f6e\u6362\u7387 \"u\" 5 L/hr 48 \u7f6e\u6362\u76ee\u6807\u91cf \"v\" 5 L 49 \u7f6e\u6362\u6db2\u8fdb\u7a0b\u91cf \"w\" 5 L 50 Na\u4e2a\u6027\u5316\u7a0b\u5e8f \"x\" 1 \u2014 51 \u8840\u6db2\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"y\" 1 \u2014 52 \u6ce8\u5c04\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"z\" 1 \u2014 53 \u900f\u6790\u6db2\u4e2a\u6027\u5316\u7a0b\u5e8f \"!\" 1 \u2014 54 \u900f\u6790\u6db2\u6e29\u5ea6\u8bbe\u7f6e\u503c \"#\" 5 \u6444\u6c0f\u5ea6 55 \u7f3a\u6c342\u8b66\u62a5 \"$\" 1 \u2014 \u6570\u636e\u8bf4\u660e \u00b6 1) \u672a\u6307\u5b9a\u6570\u636e\u4f20\u8f93\u7684\u987a\u5e8f\u3002 2) \u7b2c1\u523011\u9879\u300120\u523035\u9879\u300141\u9879\u300143\u523049\u9879\u548c54\u9879\u7684\u6570\u636e\u4ee55\u4f4d\u6570\u8868\u793a\u3002 - \u5982\u679c\u5305\u542b\u5c0f\u6570\u70b9\uff0c\u52195\u4f4d\u6570\u5305\u542b\u4e86\u5c0f\u6570\u70b9\u3002 - \u5982\u679c\u6570\u636e\u4e3a\u8d1f\u6570\uff0c\u6570\u5b57\u5c06\u4ee5\u51cf\u53f7\u6807\u5fd7\"-\"\u5f00\u5934\u3002 - \u5982\u679c\u9ad8\u4f4d\u5b57\u8282\u4e3a\u96f6\uff0c\u5219\u663e\u793a\"0\"\u3002 - \u4f8b\u5982\uff09\u76ee\u6807UF\u91cf\u4e3a2.35L\uff0c\u5219\u8f93\u5165\"0\"\u3001\"2\"\u3001\".\"\u3001\"3\"\u548c\"5\"\u3002 3) \u7b2c12\u81f319\u9879\u300142\u9879\u548c55\u9879\u7684\u8b66\u62a5\u503c\u4e3a\"1\"\uff08\u5df2\u8b66\u62a5\uff09\u6216\"0\"\uff08\u672a\u8b66\u62a5\uff09\u3002 4) \u7b2c19\u9879\u5176\u4ed6\u8b66\u62a5\u662f\u9664\u7b2c12\u81f318\u9879\u300142\u9879\u548c55\u9879\u4ee5\u5916\u7684\u8b66\u62a5\u3002 5) \u7b2c40\u9879\u6570\u636e\u662f\u5e8f\u5217\u53f7\uff08\u5de6\u5bf9\u9f50\uff09\u3002 6) \u7b2c21\u9879\"\u8840\u538b\u68c0\u6d4b\u65f6\u95f4\"\u6307\u662f\u5426\u5bf9\u8840\u538b\u8fdb\u884c\u68c0\u6d4b\u7684\u5224\u65ad\u3002 7) \u7b2c25\u81f328\u9879\u662f\u4e0e\u8840\u538b\u76f8\u5173\u7684\u8bbe\u7f6e\u3002 - \u8bbe\u7f6e\u66f4\u6539\u540e\uff0c\u6700\u65b0\u8bbe\u7f6e\u4f1a\u5728\u4e0b\u4e00\u6b21\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u65f6\u4f20\u8f93\u3002 \u7b2c2\u7ae0 \u4e0ePC\u7684\u8fde\u63a5 \u00b6 2.1 \u8fde\u63a5\u900f\u6790\u673a\u548cPC \u00b6 \u7f16\u53f7 \u540d\u79f0 \u529f\u80fd 1 LAN - \u901a\u8fc7\u672c\u900f\u6790\u673a\u80cc\u9762\u63d0\u4f9b\u7684LAN\u63a5\u53e3\uff0c\u8fde\u63a5\u6b64\u900f\u6790\u673a\u548cPC\u3002 - LAN\uff1aRJ-45\u4e32\u53e3\u3002 2.2 \u901a\u4fe1\u57fa\u677fIP\u7684\u8bbe\u5b9a \u00b6 2.2.1 \u6253\u5f00\"\u641c\u7d22\u5de5\u5177\"\u5e94\u7528\u7a0b\u5e8f \u00b6 \u5982\u4e0b\u56fe\u6240\u793a\uff1a 2.2.2 \u641c\u7d22\u901a\u4fe1\u57fa\u677f \u00b6 \u5728\u6253\u5f00\u7684\"\u641c\u7d22\u5de5\u5177\"\u754c\u9762\u4e0b\uff0c\u70b9\u51fb\u5de6\u4e0a\u89d2\u7c7b\u4f3c\u671b\u8fdc\u955c\u6807\u5fd7\u7684\"\u641c\u7d22\"\u6309\u94ae\uff0c\u641c\u7d22\u5df2\u7ecf\u8fde\u63a5\u5230\u7535\u8111\u7684\u901a\u4fe1\u57fa\u677f\u3002 2.2.3 \u8bbe\u5b9aPC\u7f51\u7edc\u53c2\u6570 \u00b6 \u4e3a\u786e\u4fddPC\u548c\u901a\u4fe1\u57fa\u677f\u7684\u6b63\u5e38\u901a\u4fe1\uff0c\u6839\u636e\u641c\u7d22\u5230\u7684\u901a\u4fe1\u57fa\u677f\u7684IP\u5bf9\u901a\u4fe1\u7528PC\u8fdb\u884c\u53c2\u6570\u8bbe\u5b9a\uff08IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\uff09\u3002 IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\u7684\u8bbe\u5b9a\uff1a 1) \u786e\u4fdd\u548c\u901a\u4fe1\u57fa\u677fIP\u5730\u5740\u5728\u540c\u4e00\u57df\u5185\uff0c\u4e14\u8bbe\u5b9a\u7684IP\u548c\u540c\u4e00\u57df\u5185\u5176\u4ed6\u8bbe\u5907\u7684IP\u4e0d\u51b2\u7a81\u3002 2) PC\u7684IP\u5730\u5740\u8bbe\u5b9a\u5b8c\u6210\u540e\uff0c\u9f20\u6807\u70b9\u51fb\u5b50\u7f51\u63a9\u7801\u8f93\u5165\u680f\uff0c\u5b50\u7f51\u63a9\u7801\u4f1a\u81ea\u52a8\u751f\u6210\uff08\u539f\u5219\u4e0a\u81ea\u52a8\u751f\u6210\u7684\u5b50\u7f51\u63a9\u7801\u548c\u901a\u4fe1\u57fa\u677f\u7684\u5b50\u7f51\u63a9\u7801\u662f\u76f8\u540c\u7684\uff0c\u53c2\u80032.2.4\u5bf9\u5b50\u7f51\u63a9\u7801\u8fdb\u884c\u786e\u8ba4\uff09\u3002 3) PC\u7684\u9ed8\u8ba4\u7f51\u5173\u548c\u901a\u4fe1\u57fa\u677f\u76f8\u540c\uff08\u53c2\u80032.2.4\u5bf9\u9ed8\u8ba4\u7f51\u5173\u8fdb\u884c\u786e\u8ba4\uff09\u3002 2.2.4 \u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762 \u00b6 \u9009\u4e2d\u641c\u7d22\u5230\u7684\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\"\u6309\u94ae\uff0c\u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762\u3002\u5728IP\u8bbe\u5b9a\u754c\u9762\u4e0b\uff0c\u6839\u636e\u9700\u8981\uff0c\u91cd\u65b0\u8bbe\u5b9a\u901a\u4fe1\u57fa\u677f\u7684IP\uff0c\u5e76\u70b9\u51fb\"\u4fdd\u5b58\"\u952e\uff0c\u5b8c\u6210\u65b0IP\u7684\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u901a\u4fe1\u57fa\u677fIP\u8bbe\u5b9a\u754c\u9762\u4e5f\u53ef\u4ee5\u4e0d\u7528\"\u641c\u7d22\u5de5\u5177\"\u8f6f\u4ef6\u800c\u76f4\u63a5\u5728IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165 http://192.168.0.233/ \u76f4\u63a5\u6253\u5f00\u3002 2.3 \u901a\u4fe1\u57fa\u677f\u4e34\u65f6IP\u7684\u8bbe\u5b9a\u65b9\u6cd5 \u00b6 2.3.1 \u8bbe\u7f6e\u4e34\u65f6IP \u00b6 \u70b9\u51fb\"\u641c\u7d22\"\u6309\u94ae\u5bf9\u8fde\u63a5\u5230PC\u7684\u901a\u4fe1\u8bbe\u5907\u8fdb\u884c\u641c\u7d22\uff0c\u9009\u4e2d\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u6309\u94ae\u3002 2.3.2 \u914d\u7f6e\u4e34\u65f6IP \u00b6 \u5728\u6253\u5f00\u7684\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u754c\u9762\u4e0b\uff0c\u5373\u53ef\u6839\u636e\u9700\u8981\u5bf9\u76ee\u6807IP\u8fdb\u884c\u4e34\u65f6\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u8bbe\u5b9a\u7684IP\u53ea\u6709\u5728\u8bbe\u5907\u672a\u65ad\u7535\u548c\u672a\u91cd\u542f\u65f6\u6709\u6548\uff0c\u5982\u679c\u8bbe\u5907\u91cd\u542f\u6216\u8005\u65ad\u7535\uff0cIP\u7684\u8bbe\u5b9a\u4f1a\u81ea\u52a8\u6062\u590d\u5230\u51fa\u5382\u8bbe\u7f6e\u3002 2.4 \u901a\u4fe1\u57fa\u677f\u7684\u91cd\u7f6e\u529f\u80fd \u00b6 2.4.1 \u6253\u5f00\u57fa\u677f\u7ba1\u7406\u754c\u9762 \u00b6 \u5728PC\u7684IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u901a\u4fe1\u57fa\u677f\u7684IP\u5730\u5740\u8fdb\u884c\u641c\u7d22\uff08\u4ee5IP\u5730\u5740\u4e3a192.168.0.233\u4e3a\u4f8b\uff0c\u5728IE\u6d4f\u89c8\u5668\u4e2d\u5e94\u8f93\u5165 http://192.168.0.233/ \uff09\u6253\u5f00\u5982\u4e0b\u7684\u753b\u9762\u3002 2.4.2 \u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e \u00b6 \u70b9\u51fb\u753b\u9762\u5de6\u4fa7\u7684\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u9879\uff0c\u8fdb\u5165\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u754c\u9762\u3002\u70b9\u51fb\"\u6062\u590d\"\u952e\u5373\u53ef\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u3002 \u6587\u6863\u4fe1\u606f \u00b6 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a TQS-88 \u9009\u914d \u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c 00\u7248\u53d1\u5e03 2019/01/11 \u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8 \u9752\u5c9b\u5e02\u5373\u58a8\u533a\u670d\u88c5\u5de5\u4e1a\u56ed\u5185\u5b54\u96c0\u6cb3\u56db\u8def63\u53f7 \u7535\u8bdd\uff1a0532-81721030 \u4f20\u771f\uff1a0532-81721025 \u90ae\u653f\u7f16\u7801\uff1a266200 \u2611 \u539f\u7248\u53d1\u884c \u25a1 \u539f\u7248\u8bd1\u672c \u9644\u5f55 \u00b6","title":"TS88\u900f\u6790\u673a\u8054\u673a\u901a\u4fe1-\u4e2d\u6587\u7248"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#tqs-88-","text":"","title":"TQS-88 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a-\u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_1","text":"\u5728\u5f00\u59cb\u4f7f\u7528\u900f\u6790\u673a\u524d\u8bf7\u4ed4\u7ec6\u9605\u8bfb\u672c\u64cd\u4f5c\u624b\u518c\u3002 \u4efb\u4f55\u4e0d\u5f53\u64cd\u4f5c\u90fd\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e8b\u6545\u3002\u4f7f\u7528\u7b26\u5408\u672c\u8bf4\u660e\u7684\u900f\u6790\u673a\u3002 \u8bf7\u5c06\u672c\u64cd\u4f5c\u624b\u518c\u7f6e\u4e8e\u6613\u4e8e\u83b7\u53d6\u7684\u4f4d\u7f6e\uff0c\u4ee5\u4fbf\u5728\u9700\u8981\u65f6\u53ef\u968f\u65f6\u53c2\u9605\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u65e8\u5728\u4e3a\u64cd\u4f5c\u4eba\u5458\u63d0\u4f9b\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u4e3b\u8981\u6db5\u76d6\u4ee5\u4e0b\u6709\u5173\"\u6570\u636e\u901a\u4fe1\"\u7684\u5185\u5bb9\uff1a 1. \u89c4\u683c 2. \u4e0ePC\u7684\u8fde\u63a5 \u6b63\u6587\u4e2d\u8b66\u793a\u5b9a\u4e49\u5982\u4e0b\uff1a - \u6ce8\u610f \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4f7f\u7528\u8bf4\u660e\u3002\u60a8\u5fc5\u987b\u9075\u5b88\u4f7f\u7528\u8bf4\u660e\u3002 - \u9644\u6ce8 \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4e3a\u4e86\u8ba9\u60a8\u589e\u8fdb\u7406\u89e3\u7684\u6709\u7528\u4fe1\u606f\u6216\u8865\u5145\u8bf4\u660e\u4e8b\u9879\u3002","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_2","text":"\u64cd\u4f5c\u6b64\u9009\u914d\u4ef6\uff08\"\u6570\u636e\u901a\u4fe1\"\u529f\u80fd\uff09\u65f6\uff0c\u8bf7\u52a1\u5fc5\u5145\u5206\u7406\u89e3\u548c\u7279\u522b\u6ce8\u610f\u4ee5\u4e0b\u4e8b\u9879\u3002\u4f7f\u7528\u524d\u5fc5\u987b\u5145\u5206\u4e86\u89e3\u5185\u5bb9\u3002","title":"\u7b80\u4ecb"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#1","text":"(1) \u672c\u64cd\u4f5c\u624b\u518c\u4ecb\u7ecd\u4e86\u6b63\u786e\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u548c\u5b89\u5168\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u5e76\u975e\u65e8\u5728\u8bf4\u660e\u5bf9\u60a3\u8005\u7684\u6cbb\u7597\u3002 (2) \u53ea\u6709\u4ed4\u7ec6\u9605\u8bfb\u5e76\u5145\u5206\u7406\u89e3\u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u6240\u542b\u7684\u8bf4\u660e\u540e\uff0c\u624d\u80fd\u4f7f\u7528\u8bbe\u5907\u5e76\u8fdb\u884c\u64cd\u4f5c\u4ee5\u53ca\u7ef4\u62a4\u3002 (3) \u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u5b89\u5168\u6ce8\u610f\u4e8b\u9879\u9002\u7528\u4e8e\u8fdb\u884c\u7279\u5b9a\u76ee\u7684\u7684\"\u6570\u636e\u901a\u4fe1\"\u4f7f\u7528\u3002\u8bf7\u52ff\u5c1d\u8bd5\u4ee5\u672c\u624b\u518c\u4e2d\u6240\u5217\u4ee5\u5916\u7684\u4efb\u4f55\u65b9\u5f0f\u4f7f\u7528\u8bbe\u5907\u3002 \u672c\u624b\u518c\u7684\u5185\u5bb9\u53d7\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u7248\u6743\u4fdd\u62a4\uff0c\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002\u672a\u7ecf\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4e8b\u5148\u4e66\u9762\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u4efb\u4f55\u5f62\u5f0f\u590d\u5236\u3001\u8f6c\u8f7d\u672c\u624b\u518c\u4e2d\u7684\u4efb\u4f55\u5185\u5bb9\uff0c\u6216\u5c06\u5176\u8bd1\u4e3a\u5176\u4ed6\u8bed\u8a00\u3002","title":"1. \u64cd\u4f5c\u624b\u518c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#2","text":"\u6211\u4eec\u5e0c\u671b\u60a8\u4e8b\u524d\u4e86\u89e3\uff0c\u5bf9\u7531\u4e8e\u64cd\u4f5c\u6b64\u900f\u6790\u673a\u6240\u9020\u6210\u7684\u4efb\u4f55\u53ef\u80fd\u7684\u635f\u5bb3\u6216\u5229\u76ca\u635f\u5931\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u8bf7\u52ff\u62c6\u5378\u6216\u6539\u9020\u900f\u6790\u673a\uff0c\u5426\u5219\u5c06\u4e0d\u5728\u5236\u9020\u5546\u4fdd\u4fee\u8303\u56f4\u4e4b\u5185\u3002 \u7531\u4e8e\u5ba2\u6237\u62c6\u5378\u3001\u6539\u9020\u3001\u5206\u89e3\u6216\u4f7f\u7528\u4e0d\u5f53\u4ee5\u53ca\u5b89\u88c5\u73af\u5883\u3001\u642c\u8fd0\u4e0d\u5f53\u7b49\u9020\u6210\u7684\u635f\u5bb3\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u5982\u679c\u65e0\u6cd5\u53d1\u6325\u56fa\u6709\u529f\u80fd\uff0c\u5219\u4e0d\u5f97\u7528\u4e8e\u6cbb\u7597\u7528\u9014\u3002\u5bf9\u6b64\u7c7b\u60c5\u5f62\u4e0b\u9020\u6210\u7684\u4efb\u4f55\u635f\u5bb3\u6216\u5bf9\u60a3\u8005\u7684\u635f\u4f24\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u900f\u6790\u673a\u7684\u65e5\u5e38\u7ef4\u62a4\u548c\u68c0\u67e5\u5e94\u6839\u636e\"\u7ef4\u62a4\u68c0\u67e5\u624b\u518c\"\u8fdb\u884c\u3002","title":"2. \u8d23\u4efb\u9650\u5236"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#1_1","text":"","title":"\u7b2c1\u7ae0 \u89c4\u683c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#11","text":"\u900f\u6790\u673a\u7684\u6cbb\u7597\u6570\u636e\u548c\u8bbe\u7f6e\u6570\u636e\u53ef\u4ece\u4ee5\u592a\u7f51\u63a5\u53e3\u4f20\u8f93\u5230\u8ba1\u7b97\u673a\u4e2d\u3002","title":"1.1 \u6570\u636e\u901a\u4fe1\u529f\u80fd\u7684\u63cf\u8ff0"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#12","text":"","title":"1.2 \u901a\u4fe1\u89c4\u683c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#121-lan","text":"\u7f16\u53f7 \u9879\u76ee \u63cf\u8ff0 1 \u4ee5\u592a\u7f51\u63a5\u53e3 10Base-T \u6216 100Base-TX\uff08\u81ea\u52a8\u611f\u5e94\uff09 2 \u4e32\u53e3 RJ45 3 \u7f51\u7edc\u914d\u7f6e \u53ef\u81ea\u5b9a\u4e49","title":"1.2.1 LAN\u53c2\u6570"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#122","text":"\u900f\u6790\u673a\u7aef\u7ba1\u7406\u7684\u6570\u636e\u901a\u8fc7PC\u7aef\u7684\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u8fdb\u884c\u4f20\u8f93\u3002 graph TD A[PC] -->|\u6570\u636e\u4f20\u8f93\u8bf7\u6c42| B[\u900f\u6790\u673a] B -->|\u6570\u636e\u4f20\u8f93| A B -->|\u4e34\u5e8a\u6570\u636e\u4f20\u8f93| A [1] PC\u7aef\u4f20\u8f93\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff08\u53c2\u9605\u7b2c1.2.3\u8282\uff09\u3002 [2] \u900f\u6790\u673a\u63a5\u6536PC\u7684\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff0c\u5e76\u53d1\u9001\u5404\u79cd\u76f8\u5e94\u7684\u6570\u636e\uff08\u53c2\u9605\u7b2c1.2.4\u8282\u548c\u7b2c1.2.5\u8282\uff09\u3002","title":"1.2.2 \u900f\u6790\u673a\u901a\u4fe1\u6b65\u9aa4"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#123-pc","text":"\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\uff083\u4e2a\u5b57\u8282\uff09 \"K\"\uff084BH\uff09 CR\uff080DH\uff09 LF\uff080AH\uff09","title":"1.2.3 \u4ecePC\u4f20\u8f93\u5230\u900f\u6790\u673a\u7684\u6570\u636e\u53ca\u5176\u683c\u5f0f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#124-pc","text":"","title":"1.2.4 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e\u683c\u5f0f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_3","text":"\u5f00\u59cb [1] \u6570\u636e\u957f\u5ea6 [2] \u6570\u636e [3] \u603b\u6570 [4] \u7ed3\u675f [5]","title":"\u4e34\u5e8a\u6570\u636e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_4","text":"\u7f16\u53f7 \u5b57\u8282\u6570 \u63cf\u8ff0 [1] 2 \u6570\u636e\u5f00\u59cb\u4ee3\u7801\uff08ASCII\uff09 \"K\"\"1\" [2] 3 \u6570\u636e\u957f\u5ea6\uff08ASCII\uff09 \u91c7\u75283\u4f4d\u6570\u7684\u5f62\u5f0f\u8868\u793a\u7b2c\u4e09\u9879\u4e2d\u8ba1\u7b97\u7684\u6240\u6709\u5b57\u8282\u7684\u603b\u548c\u3002 \u4f8b\u5982\uff09\u5982\u679c\u603b\u6570\u4e3a123\u4e2a\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"1\",\"2\",\"3\" [3] 1 \u6570\u636e\u9a8c\u8bc1\u4ee3\u7801\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [3] \u5355\u4e2a \u6570\u636e\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [4] 2 \u7528\u4e8e\u548c\u6570\u6821\u9a8c\u7684\u6570\u636e \u8ba1\u7b97[1]\uff5e[3]\u603b\u548c\uff0c\u8f83\u4f4e\u7684\u5341\u516d\u8fdb\u52362\u4f4d\u6570\u4f1a\u8f6c\u6362\u6210ASCII\u4ee3\u7801\u3002 \u4f8b\u5982\uff09\u603b\u51715aH\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"5\"\u3001\"A\" [5] 2 \u6570\u636e\u7ed3\u675f\u4ee3\u7801 CR\u3001LF","title":"\u6570\u636e\u7ec4\u6210"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#125-pc","text":"","title":"1.2.5 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_5","text":"\u7f16\u53f7 \u6570\u636e\u540d\u79f0 \u6570\u636e\u6807\u8bc6\u4ee3\u7801 \u5b57\u8282\u6570 \u5355\u4f4d 1 UF\u76ee\u6807 \"A\" 5 L 2 UF\u91cf \"B\" 5 L 3 UF\u901f\u7387 \"C\" 5 L/hr 4 \u8840\u6db2\u6d41\u901f \"D\" 5 mL/min 5 \u6ce8\u5c04\u5668\u6d41\u901f \"E\" 5 mL/h 6 \u900f\u6790\u6db2\u6e29\u5ea6 \"F\" 5 \u6444\u6c0f\u5ea6 7 \u900f\u6790\u6db2\u7535\u5bfc\u5ea6 \"G\" 5 mS/cm 8 \u9759\u8109\u538b \"H\" 5 mmHg 9 \u900f\u6790\u6db2\u538b \"I\" 5 mmHg 10 TMP \"J\" 5 mmHg 11 \u900f\u6790\u65f6\u95f4 \"K\" 5 min 12 \u900f\u6790\u6db2\u6e29\u5ea6\u8b66\u62a5 \"a\" 1 \u2014 13 \u7535\u5bfc\u5ea6\u8b66\u62a5 \"b\" 1 \u2014 14 \u9759\u8109\u538b\u8b66\u62a5 \"c\" 1 \u2014 15 \u900f\u6790\u6db2\u538b\u529b\u8b66\u62a5 \"d\" 1 \u2014 16 TMP\u8b66\u62a5 \"e\" 1 \u2014 17 \u6c14\u6ce1\u4fa6\u6d4b\u5668\u8b66\u62a5 \"f\" 1 \u2014 18 \u6f0f\u8840\u8b66\u62a5 \"g\" 1 \u2014 19 \u5176\u4ed6\u8b66\u62a5 \"h\" 1 \u2014 20 \u900f\u6790\u6db2\u6d41\u901f \"L\" 5 mL/min 21 BPM\u68c0\u6d4b\u65f6\u95f4 \"M\" 5 \u65f6\u95f4 22 BPM\u6700\u9ad8\u8840\u538b \"N\" 5 mmHg 23 BPM\u6700\u4f4e\u8840\u538b \"O\" 5 mmHg 24 BPM\u8109\u51b2 \"P\" 5 \u8109\u51b2 25 BPM\u6536\u7f29\u4e0a\u9650\u8b66\u62a5 \"Q\" 5 mmHg 26 BPM\u6536\u7f29\u4e0b\u9650\u8b66\u62a5 \"R\" 5 mmHg 27 BPM\u538b\u8109\u5e26\u538b\u529b \"S\" 5 mmHg 28 BPM\u68c0\u6d4b\u95f4\u9694\u65f6\u95f4 \"T\" 5 min 29 \u603b\u8840\u6db2\u6d41\u91cf \"U\" 5 L 30 \u9759\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"V\" 5 mmHg 31 \u9759\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"W\" 5 mmHg 32 \u603b\u6ce8\u5c04\u6d41\u91cf \"X\" 5 mL 33 \u900f\u6790\u6db2\u538b\u4e0a\u9650\u8b66\u62a5 \"Y\" 5 mmHg 34 \u900f\u6790\u6db2\u538b\u4e0b\u9650\u8b66\u62a5 \"Z\" 5 mmHg 35 NaCl\u6ce8\u5165\u7ea7\u522b \"i\" 5 \u2014 36 UF\u4e2a\u6027\u5316\u7a0b\u5e8f \"j\" 1 \u2014 37 \u900f\u6790\u6db2\u9009\u62e9 \"k\" 1 \u2014 38 \u7535\u5bfc\u5ea6\u7ea7\u522b \"l\" 1 \u2014 39 \u6570\u636e\u901a\u4fe1\u72b6\u6001 \"m\" 1 \u2014 40 \u5e8f\u5217\u53f7 \"n\" 8 \u2014 41 \u52a8\u8109\u538b \"o\" 5 mmHg 42 \u52a8\u8109\u538b\u8b66\u62a5 \"p\" 1 \u2014 43 \u52a8\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"q\" 5 mmHg 44 \u52a8\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"r\" 5 mmHg 45 TMP\u4e0a\u9650\u8b66\u62a5 \"s\" 5 mmHg 46 TMP\u4e0b\u9650\u8b66\u62a5 \"t\" 5 mmHg 47 \u7f6e\u6362\u7387 \"u\" 5 L/hr 48 \u7f6e\u6362\u76ee\u6807\u91cf \"v\" 5 L 49 \u7f6e\u6362\u6db2\u8fdb\u7a0b\u91cf \"w\" 5 L 50 Na\u4e2a\u6027\u5316\u7a0b\u5e8f \"x\" 1 \u2014 51 \u8840\u6db2\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"y\" 1 \u2014 52 \u6ce8\u5c04\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"z\" 1 \u2014 53 \u900f\u6790\u6db2\u4e2a\u6027\u5316\u7a0b\u5e8f \"!\" 1 \u2014 54 \u900f\u6790\u6db2\u6e29\u5ea6\u8bbe\u7f6e\u503c \"#\" 5 \u6444\u6c0f\u5ea6 55 \u7f3a\u6c342\u8b66\u62a5 \"$\" 1 \u2014","title":"\u6570\u636e\u5217\u8868"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_6","text":"1) \u672a\u6307\u5b9a\u6570\u636e\u4f20\u8f93\u7684\u987a\u5e8f\u3002 2) \u7b2c1\u523011\u9879\u300120\u523035\u9879\u300141\u9879\u300143\u523049\u9879\u548c54\u9879\u7684\u6570\u636e\u4ee55\u4f4d\u6570\u8868\u793a\u3002 - \u5982\u679c\u5305\u542b\u5c0f\u6570\u70b9\uff0c\u52195\u4f4d\u6570\u5305\u542b\u4e86\u5c0f\u6570\u70b9\u3002 - \u5982\u679c\u6570\u636e\u4e3a\u8d1f\u6570\uff0c\u6570\u5b57\u5c06\u4ee5\u51cf\u53f7\u6807\u5fd7\"-\"\u5f00\u5934\u3002 - \u5982\u679c\u9ad8\u4f4d\u5b57\u8282\u4e3a\u96f6\uff0c\u5219\u663e\u793a\"0\"\u3002 - \u4f8b\u5982\uff09\u76ee\u6807UF\u91cf\u4e3a2.35L\uff0c\u5219\u8f93\u5165\"0\"\u3001\"2\"\u3001\".\"\u3001\"3\"\u548c\"5\"\u3002 3) \u7b2c12\u81f319\u9879\u300142\u9879\u548c55\u9879\u7684\u8b66\u62a5\u503c\u4e3a\"1\"\uff08\u5df2\u8b66\u62a5\uff09\u6216\"0\"\uff08\u672a\u8b66\u62a5\uff09\u3002 4) \u7b2c19\u9879\u5176\u4ed6\u8b66\u62a5\u662f\u9664\u7b2c12\u81f318\u9879\u300142\u9879\u548c55\u9879\u4ee5\u5916\u7684\u8b66\u62a5\u3002 5) \u7b2c40\u9879\u6570\u636e\u662f\u5e8f\u5217\u53f7\uff08\u5de6\u5bf9\u9f50\uff09\u3002 6) \u7b2c21\u9879\"\u8840\u538b\u68c0\u6d4b\u65f6\u95f4\"\u6307\u662f\u5426\u5bf9\u8840\u538b\u8fdb\u884c\u68c0\u6d4b\u7684\u5224\u65ad\u3002 7) \u7b2c25\u81f328\u9879\u662f\u4e0e\u8840\u538b\u76f8\u5173\u7684\u8bbe\u7f6e\u3002 - \u8bbe\u7f6e\u66f4\u6539\u540e\uff0c\u6700\u65b0\u8bbe\u7f6e\u4f1a\u5728\u4e0b\u4e00\u6b21\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u65f6\u4f20\u8f93\u3002","title":"\u6570\u636e\u8bf4\u660e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#2-pc","text":"","title":"\u7b2c2\u7ae0 \u4e0ePC\u7684\u8fde\u63a5"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#21-pc","text":"\u7f16\u53f7 \u540d\u79f0 \u529f\u80fd 1 LAN - \u901a\u8fc7\u672c\u900f\u6790\u673a\u80cc\u9762\u63d0\u4f9b\u7684LAN\u63a5\u53e3\uff0c\u8fde\u63a5\u6b64\u900f\u6790\u673a\u548cPC\u3002 - LAN\uff1aRJ-45\u4e32\u53e3\u3002","title":"2.1 \u8fde\u63a5\u900f\u6790\u673a\u548cPC"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#22-ip","text":"","title":"2.2 \u901a\u4fe1\u57fa\u677fIP\u7684\u8bbe\u5b9a"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#221","text":"\u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"2.2.1 \u6253\u5f00\"\u641c\u7d22\u5de5\u5177\"\u5e94\u7528\u7a0b\u5e8f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#222","text":"\u5728\u6253\u5f00\u7684\"\u641c\u7d22\u5de5\u5177\"\u754c\u9762\u4e0b\uff0c\u70b9\u51fb\u5de6\u4e0a\u89d2\u7c7b\u4f3c\u671b\u8fdc\u955c\u6807\u5fd7\u7684\"\u641c\u7d22\"\u6309\u94ae\uff0c\u641c\u7d22\u5df2\u7ecf\u8fde\u63a5\u5230\u7535\u8111\u7684\u901a\u4fe1\u57fa\u677f\u3002","title":"2.2.2 \u641c\u7d22\u901a\u4fe1\u57fa\u677f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#223-pc","text":"\u4e3a\u786e\u4fddPC\u548c\u901a\u4fe1\u57fa\u677f\u7684\u6b63\u5e38\u901a\u4fe1\uff0c\u6839\u636e\u641c\u7d22\u5230\u7684\u901a\u4fe1\u57fa\u677f\u7684IP\u5bf9\u901a\u4fe1\u7528PC\u8fdb\u884c\u53c2\u6570\u8bbe\u5b9a\uff08IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\uff09\u3002 IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\u7684\u8bbe\u5b9a\uff1a 1) \u786e\u4fdd\u548c\u901a\u4fe1\u57fa\u677fIP\u5730\u5740\u5728\u540c\u4e00\u57df\u5185\uff0c\u4e14\u8bbe\u5b9a\u7684IP\u548c\u540c\u4e00\u57df\u5185\u5176\u4ed6\u8bbe\u5907\u7684IP\u4e0d\u51b2\u7a81\u3002 2) PC\u7684IP\u5730\u5740\u8bbe\u5b9a\u5b8c\u6210\u540e\uff0c\u9f20\u6807\u70b9\u51fb\u5b50\u7f51\u63a9\u7801\u8f93\u5165\u680f\uff0c\u5b50\u7f51\u63a9\u7801\u4f1a\u81ea\u52a8\u751f\u6210\uff08\u539f\u5219\u4e0a\u81ea\u52a8\u751f\u6210\u7684\u5b50\u7f51\u63a9\u7801\u548c\u901a\u4fe1\u57fa\u677f\u7684\u5b50\u7f51\u63a9\u7801\u662f\u76f8\u540c\u7684\uff0c\u53c2\u80032.2.4\u5bf9\u5b50\u7f51\u63a9\u7801\u8fdb\u884c\u786e\u8ba4\uff09\u3002 3) PC\u7684\u9ed8\u8ba4\u7f51\u5173\u548c\u901a\u4fe1\u57fa\u677f\u76f8\u540c\uff08\u53c2\u80032.2.4\u5bf9\u9ed8\u8ba4\u7f51\u5173\u8fdb\u884c\u786e\u8ba4\uff09\u3002","title":"2.2.3 \u8bbe\u5b9aPC\u7f51\u7edc\u53c2\u6570"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#224-ip","text":"\u9009\u4e2d\u641c\u7d22\u5230\u7684\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\"\u6309\u94ae\uff0c\u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762\u3002\u5728IP\u8bbe\u5b9a\u754c\u9762\u4e0b\uff0c\u6839\u636e\u9700\u8981\uff0c\u91cd\u65b0\u8bbe\u5b9a\u901a\u4fe1\u57fa\u677f\u7684IP\uff0c\u5e76\u70b9\u51fb\"\u4fdd\u5b58\"\u952e\uff0c\u5b8c\u6210\u65b0IP\u7684\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u901a\u4fe1\u57fa\u677fIP\u8bbe\u5b9a\u754c\u9762\u4e5f\u53ef\u4ee5\u4e0d\u7528\"\u641c\u7d22\u5de5\u5177\"\u8f6f\u4ef6\u800c\u76f4\u63a5\u5728IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165 http://192.168.0.233/ \u76f4\u63a5\u6253\u5f00\u3002","title":"2.2.4 \u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#23-ip","text":"","title":"2.3 \u901a\u4fe1\u57fa\u677f\u4e34\u65f6IP\u7684\u8bbe\u5b9a\u65b9\u6cd5"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#231-ip","text":"\u70b9\u51fb\"\u641c\u7d22\"\u6309\u94ae\u5bf9\u8fde\u63a5\u5230PC\u7684\u901a\u4fe1\u8bbe\u5907\u8fdb\u884c\u641c\u7d22\uff0c\u9009\u4e2d\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u6309\u94ae\u3002","title":"2.3.1 \u8bbe\u7f6e\u4e34\u65f6IP"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#232-ip","text":"\u5728\u6253\u5f00\u7684\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u754c\u9762\u4e0b\uff0c\u5373\u53ef\u6839\u636e\u9700\u8981\u5bf9\u76ee\u6807IP\u8fdb\u884c\u4e34\u65f6\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u8bbe\u5b9a\u7684IP\u53ea\u6709\u5728\u8bbe\u5907\u672a\u65ad\u7535\u548c\u672a\u91cd\u542f\u65f6\u6709\u6548\uff0c\u5982\u679c\u8bbe\u5907\u91cd\u542f\u6216\u8005\u65ad\u7535\uff0cIP\u7684\u8bbe\u5b9a\u4f1a\u81ea\u52a8\u6062\u590d\u5230\u51fa\u5382\u8bbe\u7f6e\u3002","title":"2.3.2 \u914d\u7f6e\u4e34\u65f6IP"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#24","text":"","title":"2.4 \u901a\u4fe1\u57fa\u677f\u7684\u91cd\u7f6e\u529f\u80fd"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#241","text":"\u5728PC\u7684IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u901a\u4fe1\u57fa\u677f\u7684IP\u5730\u5740\u8fdb\u884c\u641c\u7d22\uff08\u4ee5IP\u5730\u5740\u4e3a192.168.0.233\u4e3a\u4f8b\uff0c\u5728IE\u6d4f\u89c8\u5668\u4e2d\u5e94\u8f93\u5165 http://192.168.0.233/ \uff09\u6253\u5f00\u5982\u4e0b\u7684\u753b\u9762\u3002","title":"2.4.1 \u6253\u5f00\u57fa\u677f\u7ba1\u7406\u754c\u9762"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#242","text":"\u70b9\u51fb\u753b\u9762\u5de6\u4fa7\u7684\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u9879\uff0c\u8fdb\u5165\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u754c\u9762\u3002\u70b9\u51fb\"\u6062\u590d\"\u952e\u5373\u53ef\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u3002","title":"2.4.2 \u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_7","text":"\u5355\u4eba\u8840\u6db2\u900f\u6790\u673a TQS-88 \u9009\u914d \u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c 00\u7248\u53d1\u5e03 2019/01/11 \u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8 \u9752\u5c9b\u5e02\u5373\u58a8\u533a\u670d\u88c5\u5de5\u4e1a\u56ed\u5185\u5b54\u96c0\u6cb3\u56db\u8def63\u53f7 \u7535\u8bdd\uff1a0532-81721030 \u4f20\u771f\uff1a0532-81721025 \u90ae\u653f\u7f16\u7801\uff1a266200 \u2611 \u539f\u7248\u53d1\u884c \u25a1 \u539f\u7248\u8bd1\u672c","title":"\u6587\u6863\u4fe1\u606f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_8","text":"","title":"\u9644\u5f55"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/","text":"VMware ESXi\u4e2d\u6269\u5c55Home Assistant OS\u786c\u76d8\u7a7a\u95f4\u6307\u5357 \u00b6 \u6982\u8ff0 \u00b6 \u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728VMware ESXi\u73af\u5883\u4e2d\u5c06\u901a\u8fc7OVA\u65b9\u5f0f\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a\u786c\u76d8\u4ece32GB\u6269\u5c55\u5230500GB\u3002 \u524d\u63d0\u6761\u4ef6 \u00b6 VMware ESXi 5.5 \u6216\u66f4\u9ad8\u7248\u672c \u5df2\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a ESXi\u4e3b\u673a\u6709\u8db3\u591f\u7684\u5b58\u50a8\u7a7a\u95f4\uff08\u81f3\u5c11500GB\u53ef\u7528\uff09 \u7ba1\u7406\u5458\u6743\u9650\u8bbf\u95eeESXi Web\u754c\u9762 \u64cd\u4f5c\u6b65\u9aa4 \u00b6 \u6b65\u9aa41\uff1a\u51c6\u5907\u5de5\u4f5c \u00b6 \u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \uff08\u5f3a\u70c8\u5efa\u8bae\uff09 \u5728ESXi Web\u754c\u9762\u4e2d\u9009\u62e9Home Assistant\u865a\u62df\u673a \u70b9\u51fb\"\u64cd\u4f5c\" \u2192 \"\u521b\u5efa\u5feb\u7167\" \u8f93\u5165\u5feb\u7167\u540d\u79f0\uff1a \u6269\u5bb9\u524d\u5907\u4efd_YYYY-MM-DD \u70b9\u51fb\"\u521b\u5efa\u5feb\u7167\" \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u5728Home Assistant\u754c\u9762\u4e2d\u9009\u62e9\"\u7cfb\u7edf\" \u2192 \"\u91cd\u542f\u7cfb\u7edf\" \u9009\u62e9\"\u5173\u673a\"\u9009\u9879 \u6216\u5728ESXi\u754c\u9762\u4e2d\u9009\u62e9\u865a\u62df\u673a\uff0c\u70b9\u51fb\"\u5173\u95ed\u7535\u6e90\" \u26a0\ufe0f \u91cd\u8981 \uff1a\u786e\u4fdd\u662f\u5b8c\u5168\u5173\u95ed\uff0c\u4e0d\u662f\u6302\u8d77\u72b6\u6001 \u6b65\u9aa42\uff1a\u5728ESXi\u4e2d\u6269\u5c55\u786c\u76d8 \u00b6 \u8fdb\u5165\u865a\u62df\u673a\u7f16\u8f91\u6a21\u5f0f \u5728ESXi Web\u754c\u9762\u4e2d\u53f3\u952e\u70b9\u51fbHome Assistant\u865a\u62df\u673a \u9009\u62e9\"\u7f16\u8f91\u8bbe\u7f6e\" \u4fee\u6539\u786c\u76d8\u5bb9\u91cf \u5728\u865a\u62df\u786c\u4ef6\u5217\u8868\u4e2d\u627e\u5230\"\u786c\u76d81\" \u5f53\u524d\u663e\u793a\u4e3a\"32 GB\" \u5c06\u6570\u503c\u6539\u4e3a\"500\"\uff0c\u5355\u4f4d\u4fdd\u6301\"GB\" \u70b9\u51fb\"\u4fdd\u5b58\" \u786e\u8ba4\u66f4\u6539 \u68c0\u67e5\u865a\u62df\u673a\u8bbe\u7f6e\u4e2d\u786c\u76d8\u5bb9\u91cf\u5df2\u663e\u793a\u4e3a500GB \u5173\u95ed\u7f16\u8f91\u7a97\u53e3 \u6b65\u9aa43\uff1a\u542f\u52a8\u865a\u62df\u673a \u00b6 \u542f\u52a8Home Assistant \u70b9\u51fb\u865a\u62df\u673a\u7684\"\u5f00\u542f\u7535\u6e90\"\u6309\u94ae \u7b49\u5f85Home Assistant\u5b8c\u5168\u542f\u52a8 \u901a\u8fc7Web\u754c\u9762\u786e\u8ba4\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c \u6b65\u9aa44\uff1a\u6269\u5c55\u6587\u4ef6\u7cfb\u7edf \u00b6 \u865a\u62df\u786c\u76d8\u5df2\u6269\u5c55\uff0c\u4f46\u64cd\u4f5c\u7cfb\u7edf\u8fd8\u9700\u8981\u8bc6\u522b\u5e76\u4f7f\u7528\u65b0\u589e\u7a7a\u95f4\u3002 \u65b9\u6cd51\uff1a\u4f7f\u7528Home Assistant\u5185\u7f6e\u5de5\u5177\uff08\u63a8\u8350\uff09 \u00b6 \u8bbf\u95eeHome Assistant\u7ec8\u7aef \u5728Home Assistant Web\u754c\u9762\u4e2d \u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u9644\u52a0\u7ec4\u4ef6\" \u2192 \"Advanced SSH & Web Terminal\" \u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u9700\u8981\u5148\u5b89\u88c5SSH\u9644\u52a0\u7ec4\u4ef6 \u6267\u884c\u6269\u5c55\u547d\u4ee4 ```bash # \u67e5\u770b\u5f53\u524d\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 df -h # \u6269\u5c55\u6839\u5206\u533a\uff08\u901a\u5e38\u662f/dev/sda8\uff09 resize2fs /dev/sda8 # \u518d\u6b21\u67e5\u770b\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\uff0c\u786e\u8ba4\u6269\u5c55\u6210\u529f df -h ``` \u65b9\u6cd52\uff1a\u4f7f\u7528SSH\u8fde\u63a5\uff08\u5907\u9009\uff09 \u00b6 \u542f\u7528SSH \u5728Home Assistant Web\u754c\u9762\u4e2d\u542f\u7528SSH\u529f\u80fd \u901a\u8fc7SSH\u8fde\u63a5 ```bash # \u8fde\u63a5\u5230Home Assistant ssh root@[Home_Assistant_IP] # \u67e5\u770b\u78c1\u76d8\u5206\u533a fdisk -l # \u6269\u5c55\u6587\u4ef6\u7cfb\u7edf resize2fs /dev/sda8 ``` \u6b65\u9aa45\uff1a\u9a8c\u8bc1\u6269\u5c55\u7ed3\u679c \u00b6 \u68c0\u67e5\u5b58\u50a8\u7a7a\u95f4 \u901a\u8fc7SSH\u6216\u7ec8\u7aef\u6267\u884c\u547d\u4ee4\uff1a df -h \u6216\u5728Home Assistant Web\u754c\u9762\u4e2d\u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u7cfb\u7edf\" \u2192 \"\u5b58\u50a8\" \u786e\u8ba4\u53ef\u7528\u7a7a\u95f4\u63a5\u8fd1500GB \u6210\u529f\u6848\u4f8b\u8f93\u51fa\u793a\u4f8b\uff1a bash \u279c ~ df -h Filesystem Size Used Available Use% Mounted on /dev/sda8 491.4G 5.4G 466.0G 1% /homeassistant /dev/sda8 491.4G 5.4G 466.0G 1% /data /dev/sda8 491.4G 5.4G 466.0G 1% /backup /dev/sda8 491.4G 5.4G 466.0G 1% /media /dev/sda8 491.4G 5.4G 466.0G 1% /share \u53ef\u4ee5\u770b\u5230 /dev/sda8 \u5206\u533a\u5df2\u6210\u529f\u6269\u5c55\u5230 491.4GB \uff0c\u53ef\u7528\u7a7a\u95f4 466.0GB \u3002 \u9a8c\u8bc1\u7cfb\u7edf\u7a33\u5b9a\u6027 \u91cd\u542fHome Assistant\u7cfb\u7edf \u786e\u8ba4\u6240\u6709\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c \u68c0\u67e5\u65e5\u5fd7\u4e2d\u65e0\u9519\u8bef\u4fe1\u606f \u6545\u969c\u6392\u9664 \u00b6 \u95ee\u98981\uff1a\u865a\u62df\u673a\u65e0\u6cd5\u542f\u52a8 \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5ESXi\u4e3b\u673a\u5b58\u50a8\u7a7a\u95f4\u662f\u5426\u5145\u8db3 - \u6062\u590d\u5230\u6269\u5bb9\u524d\u7684\u5feb\u7167 - \u91cd\u65b0\u6267\u884c\u6269\u5bb9\u6b65\u9aa4 \u95ee\u98982\uff1a\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u5931\u8d25 \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a # \u68c0\u67e5\u6587\u4ef6\u7cfb\u7edf fsck /dev/sda8 # \u5f3a\u5236\u6269\u5c55 resize2fs -f /dev/sda8 \u95ee\u98983\uff1a\u6269\u5c55\u540e\u7a7a\u95f4\u672a\u663e\u793a \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a - \u91cd\u542fHome Assistant\u7cfb\u7edf - \u68c0\u67e5\u5206\u533a\u8868\uff1a fdisk -l - \u624b\u52a8\u6269\u5c55\u5206\u533a\uff1a parted /dev/sda resizepart 8 100% \u6ce8\u610f\u4e8b\u9879 \u00b6 \u26a0\ufe0f \u5b89\u5168\u8b66\u544a \u00b6 \u5fc5\u987b \u5728\u64cd\u4f5c\u524d\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u786e\u4fdd\u5728\u7ef4\u62a4\u7a97\u53e3\u671f\u95f4\u6267\u884c\u6b64\u64cd\u4f5c \u5efa\u8bae\u5728\u6d4b\u8bd5\u73af\u5883\u4e2d\u5148\u9a8c\u8bc1\u6b65\u9aa4 \ud83d\udca1 \u6700\u4f73\u5b9e\u8df5 \u00b6 \u5b9a\u671f\u5907\u4efdHome Assistant\u914d\u7f6e \u76d1\u63a7ESXi\u4e3b\u673a\u5b58\u50a8\u4f7f\u7528\u60c5\u51b5 \u8003\u8651\u4f7f\u7528\u7cbe\u7b80\u914d\u7f6e\u78c1\u76d8\u4ee5\u8282\u7701\u7a7a\u95f4 \ud83d\udccb \u9a8c\u8bc1\u6e05\u5355 \u00b6 \u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u4fee\u6539\u865a\u62df\u786c\u76d8\u5927\u5c0f\u4e3a500GB \u542f\u52a8\u865a\u62df\u673a\u5e76\u786e\u8ba4\u6b63\u5e38\u8fd0\u884c \u6267\u884c\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u547d\u4ee4 \u9a8c\u8bc1\u5b58\u50a8\u7a7a\u95f4\u663e\u793a\u63a5\u8fd1500GB \u6d4b\u8bd5Home Assistant\u6240\u6709\u529f\u80fd \u5220\u9664\u4e0d\u9700\u8981\u7684\u5feb\u7167\uff08\u53ef\u9009\uff09 \u76f8\u5173\u6587\u6863 \u00b6 Home Assistant\u5907\u4efd\u548c\u6062\u590d\u6307\u5357 VMware ESXi\u865a\u62df\u673a\u7ba1\u7406\u6307\u5357 \u66f4\u65b0\u8bb0\u5f55 \u00b6 2025-07-17\uff1a\u521d\u59cb\u7248\u672c\u521b\u5efa 2025-07-17\uff1a\u6dfb\u52a0\u6210\u529f\u6848\u4f8b\u9a8c\u8bc1\uff0c\u786e\u8ba432GB\u2192500GB\u6269\u5c55\u5b8c\u5168\u6210\u529f \u5305\u542b\u4ece32GB\u6269\u5c55\u5230500GB\u7684\u5b8c\u6574\u6b65\u9aa4\u548c\u5b9e\u9645\u9a8c\u8bc1\u7ed3\u679c \u6587\u6863\u4f5c\u8005 \uff1a\u6280\u672f\u56e2\u961f \u6700\u540e\u66f4\u65b0 \uff1a2025\u5e747\u670817\u65e5 \u9002\u7528\u7248\u672c \uff1aVMware ESXi 5.5+, Home Assistant OS \u6240\u6709\u7248\u672c","title":"VMware-ESXi\u6269\u5c55HomeAssistant\u786c\u76d8\u6307\u5357"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#vmware-esxihome-assistant-os","text":"","title":"VMware ESXi\u4e2d\u6269\u5c55Home Assistant OS\u786c\u76d8\u7a7a\u95f4\u6307\u5357"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_1","text":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728VMware ESXi\u73af\u5883\u4e2d\u5c06\u901a\u8fc7OVA\u65b9\u5f0f\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a\u786c\u76d8\u4ece32GB\u6269\u5c55\u5230500GB\u3002","title":"\u6982\u8ff0"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_2","text":"VMware ESXi 5.5 \u6216\u66f4\u9ad8\u7248\u672c \u5df2\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a ESXi\u4e3b\u673a\u6709\u8db3\u591f\u7684\u5b58\u50a8\u7a7a\u95f4\uff08\u81f3\u5c11500GB\u53ef\u7528\uff09 \u7ba1\u7406\u5458\u6743\u9650\u8bbf\u95eeESXi Web\u754c\u9762","title":"\u524d\u63d0\u6761\u4ef6"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_3","text":"","title":"\u64cd\u4f5c\u6b65\u9aa4"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1","text":"\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \uff08\u5f3a\u70c8\u5efa\u8bae\uff09 \u5728ESXi Web\u754c\u9762\u4e2d\u9009\u62e9Home Assistant\u865a\u62df\u673a \u70b9\u51fb\"\u64cd\u4f5c\" \u2192 \"\u521b\u5efa\u5feb\u7167\" \u8f93\u5165\u5feb\u7167\u540d\u79f0\uff1a \u6269\u5bb9\u524d\u5907\u4efd_YYYY-MM-DD \u70b9\u51fb\"\u521b\u5efa\u5feb\u7167\" \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u5728Home Assistant\u754c\u9762\u4e2d\u9009\u62e9\"\u7cfb\u7edf\" \u2192 \"\u91cd\u542f\u7cfb\u7edf\" \u9009\u62e9\"\u5173\u673a\"\u9009\u9879 \u6216\u5728ESXi\u754c\u9762\u4e2d\u9009\u62e9\u865a\u62df\u673a\uff0c\u70b9\u51fb\"\u5173\u95ed\u7535\u6e90\" \u26a0\ufe0f \u91cd\u8981 \uff1a\u786e\u4fdd\u662f\u5b8c\u5168\u5173\u95ed\uff0c\u4e0d\u662f\u6302\u8d77\u72b6\u6001","title":"\u6b65\u9aa41\uff1a\u51c6\u5907\u5de5\u4f5c"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2esxi","text":"\u8fdb\u5165\u865a\u62df\u673a\u7f16\u8f91\u6a21\u5f0f \u5728ESXi Web\u754c\u9762\u4e2d\u53f3\u952e\u70b9\u51fbHome Assistant\u865a\u62df\u673a \u9009\u62e9\"\u7f16\u8f91\u8bbe\u7f6e\" \u4fee\u6539\u786c\u76d8\u5bb9\u91cf \u5728\u865a\u62df\u786c\u4ef6\u5217\u8868\u4e2d\u627e\u5230\"\u786c\u76d81\" \u5f53\u524d\u663e\u793a\u4e3a\"32 GB\" \u5c06\u6570\u503c\u6539\u4e3a\"500\"\uff0c\u5355\u4f4d\u4fdd\u6301\"GB\" \u70b9\u51fb\"\u4fdd\u5b58\" \u786e\u8ba4\u66f4\u6539 \u68c0\u67e5\u865a\u62df\u673a\u8bbe\u7f6e\u4e2d\u786c\u76d8\u5bb9\u91cf\u5df2\u663e\u793a\u4e3a500GB \u5173\u95ed\u7f16\u8f91\u7a97\u53e3","title":"\u6b65\u9aa42\uff1a\u5728ESXi\u4e2d\u6269\u5c55\u786c\u76d8"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#3","text":"\u542f\u52a8Home Assistant \u70b9\u51fb\u865a\u62df\u673a\u7684\"\u5f00\u542f\u7535\u6e90\"\u6309\u94ae \u7b49\u5f85Home Assistant\u5b8c\u5168\u542f\u52a8 \u901a\u8fc7Web\u754c\u9762\u786e\u8ba4\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c","title":"\u6b65\u9aa43\uff1a\u542f\u52a8\u865a\u62df\u673a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#4","text":"\u865a\u62df\u786c\u76d8\u5df2\u6269\u5c55\uff0c\u4f46\u64cd\u4f5c\u7cfb\u7edf\u8fd8\u9700\u8981\u8bc6\u522b\u5e76\u4f7f\u7528\u65b0\u589e\u7a7a\u95f4\u3002","title":"\u6b65\u9aa44\uff1a\u6269\u5c55\u6587\u4ef6\u7cfb\u7edf"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1home-assistant","text":"\u8bbf\u95eeHome Assistant\u7ec8\u7aef \u5728Home Assistant Web\u754c\u9762\u4e2d \u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u9644\u52a0\u7ec4\u4ef6\" \u2192 \"Advanced SSH & Web Terminal\" \u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u9700\u8981\u5148\u5b89\u88c5SSH\u9644\u52a0\u7ec4\u4ef6 \u6267\u884c\u6269\u5c55\u547d\u4ee4 ```bash # \u67e5\u770b\u5f53\u524d\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 df -h # \u6269\u5c55\u6839\u5206\u533a\uff08\u901a\u5e38\u662f/dev/sda8\uff09 resize2fs /dev/sda8 # \u518d\u6b21\u67e5\u770b\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\uff0c\u786e\u8ba4\u6269\u5c55\u6210\u529f df -h ```","title":"\u65b9\u6cd51\uff1a\u4f7f\u7528Home Assistant\u5185\u7f6e\u5de5\u5177\uff08\u63a8\u8350\uff09"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2ssh","text":"\u542f\u7528SSH \u5728Home Assistant Web\u754c\u9762\u4e2d\u542f\u7528SSH\u529f\u80fd \u901a\u8fc7SSH\u8fde\u63a5 ```bash # \u8fde\u63a5\u5230Home Assistant ssh root@[Home_Assistant_IP] # \u67e5\u770b\u78c1\u76d8\u5206\u533a fdisk -l # \u6269\u5c55\u6587\u4ef6\u7cfb\u7edf resize2fs /dev/sda8 ```","title":"\u65b9\u6cd52\uff1a\u4f7f\u7528SSH\u8fde\u63a5\uff08\u5907\u9009\uff09"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#5","text":"\u68c0\u67e5\u5b58\u50a8\u7a7a\u95f4 \u901a\u8fc7SSH\u6216\u7ec8\u7aef\u6267\u884c\u547d\u4ee4\uff1a df -h \u6216\u5728Home Assistant Web\u754c\u9762\u4e2d\u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u7cfb\u7edf\" \u2192 \"\u5b58\u50a8\" \u786e\u8ba4\u53ef\u7528\u7a7a\u95f4\u63a5\u8fd1500GB \u6210\u529f\u6848\u4f8b\u8f93\u51fa\u793a\u4f8b\uff1a bash \u279c ~ df -h Filesystem Size Used Available Use% Mounted on /dev/sda8 491.4G 5.4G 466.0G 1% /homeassistant /dev/sda8 491.4G 5.4G 466.0G 1% /data /dev/sda8 491.4G 5.4G 466.0G 1% /backup /dev/sda8 491.4G 5.4G 466.0G 1% /media /dev/sda8 491.4G 5.4G 466.0G 1% /share \u53ef\u4ee5\u770b\u5230 /dev/sda8 \u5206\u533a\u5df2\u6210\u529f\u6269\u5c55\u5230 491.4GB \uff0c\u53ef\u7528\u7a7a\u95f4 466.0GB \u3002 \u9a8c\u8bc1\u7cfb\u7edf\u7a33\u5b9a\u6027 \u91cd\u542fHome Assistant\u7cfb\u7edf \u786e\u8ba4\u6240\u6709\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c \u68c0\u67e5\u65e5\u5fd7\u4e2d\u65e0\u9519\u8bef\u4fe1\u606f","title":"\u6b65\u9aa45\uff1a\u9a8c\u8bc1\u6269\u5c55\u7ed3\u679c"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_4","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1_1","text":"\u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5ESXi\u4e3b\u673a\u5b58\u50a8\u7a7a\u95f4\u662f\u5426\u5145\u8db3 - \u6062\u590d\u5230\u6269\u5bb9\u524d\u7684\u5feb\u7167 - \u91cd\u65b0\u6267\u884c\u6269\u5bb9\u6b65\u9aa4","title":"\u95ee\u98981\uff1a\u865a\u62df\u673a\u65e0\u6cd5\u542f\u52a8"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2","text":"\u89e3\u51b3\u65b9\u6848\uff1a # \u68c0\u67e5\u6587\u4ef6\u7cfb\u7edf fsck /dev/sda8 # \u5f3a\u5236\u6269\u5c55 resize2fs -f /dev/sda8","title":"\u95ee\u98982\uff1a\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u5931\u8d25"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#3_1","text":"\u89e3\u51b3\u65b9\u6848\uff1a - \u91cd\u542fHome Assistant\u7cfb\u7edf - \u68c0\u67e5\u5206\u533a\u8868\uff1a fdisk -l - \u624b\u52a8\u6269\u5c55\u5206\u533a\uff1a parted /dev/sda resizepart 8 100%","title":"\u95ee\u98983\uff1a\u6269\u5c55\u540e\u7a7a\u95f4\u672a\u663e\u793a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_5","text":"","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_6","text":"\u5fc5\u987b \u5728\u64cd\u4f5c\u524d\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u786e\u4fdd\u5728\u7ef4\u62a4\u7a97\u53e3\u671f\u95f4\u6267\u884c\u6b64\u64cd\u4f5c \u5efa\u8bae\u5728\u6d4b\u8bd5\u73af\u5883\u4e2d\u5148\u9a8c\u8bc1\u6b65\u9aa4","title":"\u26a0\ufe0f \u5b89\u5168\u8b66\u544a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_7","text":"\u5b9a\u671f\u5907\u4efdHome Assistant\u914d\u7f6e \u76d1\u63a7ESXi\u4e3b\u673a\u5b58\u50a8\u4f7f\u7528\u60c5\u51b5 \u8003\u8651\u4f7f\u7528\u7cbe\u7b80\u914d\u7f6e\u78c1\u76d8\u4ee5\u8282\u7701\u7a7a\u95f4","title":"\ud83d\udca1 \u6700\u4f73\u5b9e\u8df5"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_8","text":"\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u4fee\u6539\u865a\u62df\u786c\u76d8\u5927\u5c0f\u4e3a500GB \u542f\u52a8\u865a\u62df\u673a\u5e76\u786e\u8ba4\u6b63\u5e38\u8fd0\u884c \u6267\u884c\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u547d\u4ee4 \u9a8c\u8bc1\u5b58\u50a8\u7a7a\u95f4\u663e\u793a\u63a5\u8fd1500GB \u6d4b\u8bd5Home Assistant\u6240\u6709\u529f\u80fd \u5220\u9664\u4e0d\u9700\u8981\u7684\u5feb\u7167\uff08\u53ef\u9009\uff09","title":"\ud83d\udccb \u9a8c\u8bc1\u6e05\u5355"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_9","text":"Home Assistant\u5907\u4efd\u548c\u6062\u590d\u6307\u5357 VMware ESXi\u865a\u62df\u673a\u7ba1\u7406\u6307\u5357","title":"\u76f8\u5173\u6587\u6863"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_10","text":"2025-07-17\uff1a\u521d\u59cb\u7248\u672c\u521b\u5efa 2025-07-17\uff1a\u6dfb\u52a0\u6210\u529f\u6848\u4f8b\u9a8c\u8bc1\uff0c\u786e\u8ba432GB\u2192500GB\u6269\u5c55\u5b8c\u5168\u6210\u529f \u5305\u542b\u4ece32GB\u6269\u5c55\u5230500GB\u7684\u5b8c\u6574\u6b65\u9aa4\u548c\u5b9e\u9645\u9a8c\u8bc1\u7ed3\u679c \u6587\u6863\u4f5c\u8005 \uff1a\u6280\u672f\u56e2\u961f \u6700\u540e\u66f4\u65b0 \uff1a2025\u5e747\u670817\u65e5 \u9002\u7528\u7248\u672c \uff1aVMware ESXi 5.5+, Home Assistant OS \u6240\u6709\u7248\u672c","title":"\u66f4\u65b0\u8bb0\u5f55"},{"location":"Usages/QA/errorsQA/","text":"\u5e38\u89c1\u9519\u8bef \u00b6 \u914d\u7f6e\u6587\u4ef6\u51fa\u9519 \u00b6 \u5f53\u51fa\u73b0\u8fd9\u79cd\u56fe,\u4f30\u8ba1\u662f\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u51fa\u9519,\u4e0d\u7b26\u5408yam\u683c\u5f0f,\u8bf7\u7528\u5171\u4eab\u76ee\u5f55smb\u6216ssh\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\u4fee\u6b63\u683c\u5f0f\u540e,\u91cd\u542f\u518d\u8bd5","title":"errorsQA"},{"location":"Usages/QA/errorsQA/#_1","text":"","title":"\u5e38\u89c1\u9519\u8bef"},{"location":"Usages/QA/errorsQA/#_2","text":"\u5f53\u51fa\u73b0\u8fd9\u79cd\u56fe,\u4f30\u8ba1\u662f\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u51fa\u9519,\u4e0d\u7b26\u5408yam\u683c\u5f0f,\u8bf7\u7528\u5171\u4eab\u76ee\u5f55smb\u6216ssh\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\u4fee\u6b63\u683c\u5f0f\u540e,\u91cd\u542f\u518d\u8bd5","title":"\u914d\u7f6e\u6587\u4ef6\u51fa\u9519"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/","text":"\u5b89\u88c5curl \u00b6 \u5148\u68c0\u67e5\u662f\u5426\u5b89\u88c5curl\u5982\u679c\u6ca1\u88c5\uff0c\u5219\u5148\u7528\u4ee5\u4e0b\u6307\u4ee4\u5b89\u88c5 sudo apt update sudo apt install curl \u914d\u7f6e\u8fdc\u7a0b\u534f\u52a9\u5f00\u673a\u52a8\u767b\u5f55\u4e0eedge\u81ea\u542f \u00b6 \u6253\u5f00\u7ec8\u7aef,\u590d\u5236\u4e0b\u9762\u547d\u4ee4\uff0c\u6267\u884c\uff0c\u5b8c\u6210\u540e\u91cd\u542f\u7535\u8111\u5373\u53ef\u3002 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/install-uds.sh | bash \u8fd9\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u6bd4\u8f83\u4e45\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u672c\u811a\u672c\u5b9e\u5b9e\u73b0\u7684\u529f\u80fd \u00b6 SSH\u670d\u52a1 - \u81ea\u52a8\u5b89\u88c5\u5e76\u542f\u7528SSH\u670d\u52a1 \u7cfb\u7edf\u66f4\u65b0 - \u66f4\u65b0\u7cfb\u7edf\u8f6f\u4ef6\u5305\u5230\u6700\u65b0\u7248\u672c \u7981\u7528\u81ea\u52a8\u5f85\u673a - \u963b\u6b62\u7cfb\u7edfAC\u7535\u6e90\u548c\u7535\u6c60\u6a21\u5f0f\u4e0b\u81ea\u52a8\u7761\u7720 \u7981\u7528\u5c4f\u5e55\u9501\u5b9a - \u53d6\u6d88\u5c4f\u5e55\u4fdd\u62a4\u7a0b\u5e8f\u9501\u5b9a\u529f\u80fd \u7981\u7528\u5c4f\u5e55\u81ea\u52a8\u5173\u95ed - \u9632\u6b62\u663e\u793a\u5668\u81ea\u52a8\u5173\u95ed \u7981\u7528\u81ea\u52a8\u66f4\u65b0 - \u914d\u7f6eAPT\u7b56\u7565\u963b\u6b62\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0 \u7981\u7528MOTD\u901a\u77e5 - \u5173\u95ed\u767b\u5f55\u65f6\u7684\u65b0\u95fb\u901a\u77e5 Microsoft Edge\u5b89\u88c5 - \u81ea\u52a8\u4e0b\u8f7d\u5b89\u88c5\u6700\u65b0\u7248Edge\u6d4f\u89c8\u5668 \u81ea\u52a8\u767b\u5f55\u914d\u7f6e - \u8bbe\u7f6eGDM\u81ea\u52a8\u767b\u5f55\uff0c\u91cd\u542f\u540e\u65e0\u9700\u5bc6\u7801 XRDP\u8fdc\u7a0b\u684c\u9762 - \u5b89\u88c5\u914d\u7f6eRDP\u8fdc\u7a0b\u684c\u9762\u670d\u52a1\uff08\u7aef\u53e33389\uff09 Polkit\u7b56\u7565\u914d\u7f6e - \u89e3\u51b3\u8fdc\u7a0b\u684c\u9762\u6743\u9650\u8ba4\u8bc1\u95ee\u9898 \u9632\u706b\u5899\u914d\u7f6e - \u667a\u80fd\u68c0\u6d4bUFW\u72b6\u6001\u5e76\u914d\u7f6e\u5fc5\u8981\u7aef\u53e3 \u4e2d\u6587\u8f93\u5165\u6cd5 - \u5b89\u88c5ibus-pinyin\u4e2d\u6587\u62fc\u97f3\u8f93\u5165\u6cd5 NoMachine\u8fdc\u7a0b\u8f6f\u4ef6 - \u667a\u80fd\u68c0\u6d4b\u5b89\u88c5NoMachine\uff08\u7aef\u53e34000\uff09 Edge Kiosk\u81ea\u542f\u52a8 - \u914d\u7f6eEdge\u5168\u5c4f\u6a21\u5f0f\u81ea\u52a8\u542f\u52a8\u6307\u5b9a\u7f51\u9875 \u5bc6\u94a5\u73af\u5904\u7406 - \u914d\u7f6e\u542f\u52a8\u53c2\u6570\u907f\u514d\u5bc6\u94a5\u73af\u5bc6\u7801\u63d0\u793a \u684c\u9762\u81ea\u542f\u52a8\u6587\u4ef6 - \u521b\u5efaautostart\u684c\u9762\u6587\u4ef6\u5b9e\u73b0\u81ea\u542f\u52a8 \u5907\u7528\u542f\u52a8\u811a\u672c - \u63d0\u4f9bbackup\u542f\u52a8\u811a\u672c\u4f5c\u4e3a\u5907\u7528\u65b9\u6848 \u670d\u52a1\u6e05\u7406 - \u81ea\u52a8\u6e05\u7406\u51b2\u7a81\u7684systemd\u670d\u52a1 \u5b8c\u6574\u65e5\u5fd7\u8bb0\u5f55 - \u8bb0\u5f55\u6240\u6709\u64cd\u4f5c\u5230\u65e5\u5fd7\u6587\u4ef6 \u9519\u8bef\u5904\u7406\u673a\u5236 - \u6bcf\u6b65\u9aa4\u5b8c\u5584\u7684\u9519\u8bef\u68c0\u6d4b\u5904\u7406 \u65e0\u4ea4\u4e92\u6a21\u5f0f - \u652f\u6301curl\u8fdc\u7a0b\u6267\u884c\u65e0\u9700\u7528\u6237\u8f93\u5165 \u73af\u5883\u53d8\u91cf\u652f\u6301 - \u53ef\u901a\u8fc7KIOSK_URL\u81ea\u5b9a\u4e49\u542f\u52a8\u9875\u9762 \u9632\u706b\u5899\u7aef\u53e3\u7ba1\u7406 - \u81ea\u52a8\u5f00\u653eSSH/RDP/NoMachine\u7aef\u53e3 \u5b89\u5168\u53c2\u6570\u914d\u7f6e - Edge\u542f\u52a8\u5305\u542b\u5b89\u5168\u548c\u517c\u5bb9\u6027\u53c2\u6570 \u4fee\u6539\u5927\u5c4f\u6253\u5f00\u7684\u5730\u5740 \u00b6 \u627e\u5230\u811a\u672c\u7684\u7b2c192\u884c\uff0c\u4fee\u6539\u5ba2\u6237\u4ee3\u7801\uff0c \u627e\u5230\u811a\u672c\u7684\u7b2c193\u884c\uff0c\u4fee\u6539\u7b2c\u9875\u663e\u793a\u6570\u91cf \u5982\u4e0b\u56fe\u6240\u793a","title":"Ubuntu-desktop\u684c\u9762\u7cfb\u7edf\u5982\u4f55\u914d\u7f6e\u5f00\u542f\u8fdc\u7a0b\u534f\u52a9"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#curl","text":"\u5148\u68c0\u67e5\u662f\u5426\u5b89\u88c5curl\u5982\u679c\u6ca1\u88c5\uff0c\u5219\u5148\u7528\u4ee5\u4e0b\u6307\u4ee4\u5b89\u88c5 sudo apt update sudo apt install curl","title":"\u5b89\u88c5curl"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#edge","text":"\u6253\u5f00\u7ec8\u7aef,\u590d\u5236\u4e0b\u9762\u547d\u4ee4\uff0c\u6267\u884c\uff0c\u5b8c\u6210\u540e\u91cd\u542f\u7535\u8111\u5373\u53ef\u3002 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/install-uds.sh | bash \u8fd9\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u6bd4\u8f83\u4e45\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002","title":"\u914d\u7f6e\u8fdc\u7a0b\u534f\u52a9\u5f00\u673a\u52a8\u767b\u5f55\u4e0eedge\u81ea\u542f"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#_1","text":"SSH\u670d\u52a1 - \u81ea\u52a8\u5b89\u88c5\u5e76\u542f\u7528SSH\u670d\u52a1 \u7cfb\u7edf\u66f4\u65b0 - \u66f4\u65b0\u7cfb\u7edf\u8f6f\u4ef6\u5305\u5230\u6700\u65b0\u7248\u672c \u7981\u7528\u81ea\u52a8\u5f85\u673a - \u963b\u6b62\u7cfb\u7edfAC\u7535\u6e90\u548c\u7535\u6c60\u6a21\u5f0f\u4e0b\u81ea\u52a8\u7761\u7720 \u7981\u7528\u5c4f\u5e55\u9501\u5b9a - \u53d6\u6d88\u5c4f\u5e55\u4fdd\u62a4\u7a0b\u5e8f\u9501\u5b9a\u529f\u80fd \u7981\u7528\u5c4f\u5e55\u81ea\u52a8\u5173\u95ed - \u9632\u6b62\u663e\u793a\u5668\u81ea\u52a8\u5173\u95ed \u7981\u7528\u81ea\u52a8\u66f4\u65b0 - \u914d\u7f6eAPT\u7b56\u7565\u963b\u6b62\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0 \u7981\u7528MOTD\u901a\u77e5 - \u5173\u95ed\u767b\u5f55\u65f6\u7684\u65b0\u95fb\u901a\u77e5 Microsoft Edge\u5b89\u88c5 - \u81ea\u52a8\u4e0b\u8f7d\u5b89\u88c5\u6700\u65b0\u7248Edge\u6d4f\u89c8\u5668 \u81ea\u52a8\u767b\u5f55\u914d\u7f6e - \u8bbe\u7f6eGDM\u81ea\u52a8\u767b\u5f55\uff0c\u91cd\u542f\u540e\u65e0\u9700\u5bc6\u7801 XRDP\u8fdc\u7a0b\u684c\u9762 - \u5b89\u88c5\u914d\u7f6eRDP\u8fdc\u7a0b\u684c\u9762\u670d\u52a1\uff08\u7aef\u53e33389\uff09 Polkit\u7b56\u7565\u914d\u7f6e - \u89e3\u51b3\u8fdc\u7a0b\u684c\u9762\u6743\u9650\u8ba4\u8bc1\u95ee\u9898 \u9632\u706b\u5899\u914d\u7f6e - \u667a\u80fd\u68c0\u6d4bUFW\u72b6\u6001\u5e76\u914d\u7f6e\u5fc5\u8981\u7aef\u53e3 \u4e2d\u6587\u8f93\u5165\u6cd5 - \u5b89\u88c5ibus-pinyin\u4e2d\u6587\u62fc\u97f3\u8f93\u5165\u6cd5 NoMachine\u8fdc\u7a0b\u8f6f\u4ef6 - \u667a\u80fd\u68c0\u6d4b\u5b89\u88c5NoMachine\uff08\u7aef\u53e34000\uff09 Edge Kiosk\u81ea\u542f\u52a8 - \u914d\u7f6eEdge\u5168\u5c4f\u6a21\u5f0f\u81ea\u52a8\u542f\u52a8\u6307\u5b9a\u7f51\u9875 \u5bc6\u94a5\u73af\u5904\u7406 - \u914d\u7f6e\u542f\u52a8\u53c2\u6570\u907f\u514d\u5bc6\u94a5\u73af\u5bc6\u7801\u63d0\u793a \u684c\u9762\u81ea\u542f\u52a8\u6587\u4ef6 - \u521b\u5efaautostart\u684c\u9762\u6587\u4ef6\u5b9e\u73b0\u81ea\u542f\u52a8 \u5907\u7528\u542f\u52a8\u811a\u672c - \u63d0\u4f9bbackup\u542f\u52a8\u811a\u672c\u4f5c\u4e3a\u5907\u7528\u65b9\u6848 \u670d\u52a1\u6e05\u7406 - \u81ea\u52a8\u6e05\u7406\u51b2\u7a81\u7684systemd\u670d\u52a1 \u5b8c\u6574\u65e5\u5fd7\u8bb0\u5f55 - \u8bb0\u5f55\u6240\u6709\u64cd\u4f5c\u5230\u65e5\u5fd7\u6587\u4ef6 \u9519\u8bef\u5904\u7406\u673a\u5236 - \u6bcf\u6b65\u9aa4\u5b8c\u5584\u7684\u9519\u8bef\u68c0\u6d4b\u5904\u7406 \u65e0\u4ea4\u4e92\u6a21\u5f0f - \u652f\u6301curl\u8fdc\u7a0b\u6267\u884c\u65e0\u9700\u7528\u6237\u8f93\u5165 \u73af\u5883\u53d8\u91cf\u652f\u6301 - \u53ef\u901a\u8fc7KIOSK_URL\u81ea\u5b9a\u4e49\u542f\u52a8\u9875\u9762 \u9632\u706b\u5899\u7aef\u53e3\u7ba1\u7406 - \u81ea\u52a8\u5f00\u653eSSH/RDP/NoMachine\u7aef\u53e3 \u5b89\u5168\u53c2\u6570\u914d\u7f6e - Edge\u542f\u52a8\u5305\u542b\u5b89\u5168\u548c\u517c\u5bb9\u6027\u53c2\u6570","title":"\u672c\u811a\u672c\u5b9e\u5b9e\u73b0\u7684\u529f\u80fd"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#_2","text":"\u627e\u5230\u811a\u672c\u7684\u7b2c192\u884c\uff0c\u4fee\u6539\u5ba2\u6237\u4ee3\u7801\uff0c \u627e\u5230\u811a\u672c\u7684\u7b2c193\u884c\uff0c\u4fee\u6539\u7b2c\u9875\u663e\u793a\u6570\u91cf \u5982\u4e0b\u56fe\u6240\u793a","title":"\u4fee\u6539\u5927\u5c4f\u6253\u5f00\u7684\u5730\u5740"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/","text":"Win11/10\u8bbf\u95eeSamba\u5171\u4eab\u548cVSCode SSH\u8bbf\u95ee\u89e3\u51b3\u65b9\u6848 \u00b6 \u95ee\u9898\u63cf\u8ff0 \u00b6 Docker\u5b89\u88c5\u7684HomeAssistant\u4f7f\u7528Samba\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\uff0c\u4f46Win11/10\u6709\u65f6\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u65e0\u5bc6\u7801\u7684Samba\u5171\u4eab\u3002 \u89e3\u51b3\u65b9\u6848 \u00b6 \u65b9\u6848\u4e00\uff1a\u4fee\u590dWin11/10 Samba\u8bbf\u95ee\u95ee\u9898 \u00b6 1. \u542f\u7528SMB1.0\u534f\u8bae\uff08\u4e0d\u63a8\u8350\uff0c\u5b89\u5168\u6027\u8f83\u4f4e\uff09 \u00b6 # \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884cPowerShell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol 2. \u4fee\u6539\u672c\u5730\u5b89\u5168\u7b56\u7565\uff08\u63a8\u8350\uff09 \u00b6 \u6309 Win+R \u6253\u5f00\u8fd0\u884c\u5bf9\u8bdd\u6846\uff0c\u8f93\u5165 gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u627e\u5230\u5e76\u4fee\u6539\u4ee5\u4e0b\u7b56\u7565\uff1a \u7f51\u7edc\u5b89\u5168: LAN Manager\u8eab\u4efd\u9a8c\u8bc1\u7ea7\u522b \u8bbe\u7f6e\u4e3a \u53d1\u9001LM\u548cNTLM\u54cd\u5e94 \u7f51\u7edc\u5b89\u5168: \u5bf9\u4e8eNTLM SSP(\u5305\u62ec\u5b89\u5168RPC)\u7684\u6700\u5c0f\u4f1a\u8bdd\u5b89\u5168 \u8bbe\u7f6e\u4e3a \u65e0\u8981\u6c42 3. \u4fee\u6539\u6ce8\u518c\u8868\uff08\u9ad8\u7ea7\u7528\u6237\uff09 \u00b6 # \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f 4. \u6dfb\u52a0\u7f51\u7edc\u51ed\u636e \u00b6 \u6253\u5f00 \u63a7\u5236\u9762\u677f > \u7528\u6237\u8d26\u6237 > \u51ed\u636e\u7ba1\u7406\u5668 \u9009\u62e9 Windows\u51ed\u636e \u70b9\u51fb \u6dfb\u52a0Windows\u51ed\u636e \u8f93\u5165\uff1a \u4e92\u8054\u7f51\u6216\u7f51\u7edc\u5730\u5740\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP \u7528\u6237\u540d\uff1a\u7559\u7a7a\u6216\u8f93\u5165 guest \u5bc6\u7801\uff1a\u7559\u7a7a 5. \u4f7f\u7528Windows\u5ba2\u6237\u7aef\u5f3a\u5236\u65e0\u5bc6\u7801\u8bbf\u95ee\uff08\u63a8\u8350\u89e3\u51b3\u65b9\u6848\uff09 \u00b6 \u7531\u4e8ecompose-all.yaml\u6587\u4ef6\u4e0d\u80fd\u4fee\u6539\uff0c\u6211\u4eec\u901a\u8fc7Windows\u5ba2\u6237\u7aef\u914d\u7f6e\u6765\u89e3\u51b3\u8bbf\u95ee\u95ee\u9898\uff1a \u65b9\u6cd5A\uff1a\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u6700\u63a8\u8350\uff09 \u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2aPowerShell\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff0c\u53ef\u4ee5\u4e00\u952e\u5b8c\u6210\u6240\u6709\u914d\u7f6e\uff1a \u89c2\u770b\u89c6\u9891\uff1a\u4fee\u590d Windows SMB \u9519\u8bef \u4fee\u590dWindows SMB \u9519\u8bef\u811a\u672c\u4e0b\u8f7d\u5730\u5740 \uff1a http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u4e0b\u8f7d\u811a\u672c\u6587\u4ef6 fixwindows.ps1 curl -o fixwindows.ps1 http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u5c06\u811a\u672c\u4fdd\u5b58\u5230\u672c\u5730\uff08\u5982c\u76d8\u7684\u6839\u76ee\u5f55\uff09 \u53f3\u952e\u70b9\u51fb\u811a\u672c\uff0c\u9009\u62e9\"\u4f7f\u7528PowerShell\u8fd0\u884c\" \u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" # \u5982\u679c\u63d0\u793a\u7981\u6b62\u8fd0\u884c\u811a\u672c\uff0c\u8bf7\u5148\u6267\u884c\u5982\u4e0b\u6307\u4ee4\u540e\uff0c\u518d\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process #\u7136\u540e\u518d\u8fd0\u884c\u811a\u672c .\\fixwindows.ps1 \u6309\u63d0\u793a\u8f93\u5165\u670d\u52a1\u5668IP\u5730\u5740 \u4f7f\u7528\u65b9\u6cd5\uff1a # \u65b9\u5f0f1\uff1a\u76f4\u63a5\u8fd0\u884c\uff08\u4ea4\u4e92\u5f0f\u8f93\u5165IP\uff09 .\\ fixwindows . ps1 # \u65b9\u5f0f2\uff1a\u5e26\u53c2\u6570\u8fd0\u884c .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" # \u65b9\u5f0f3\uff1a\u5b8c\u6574\u53c2\u6570 .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" -ShareName \"HAConfig\" -DriveLetter \"Z\" \u811a\u672c\u529f\u80fd\uff1a \u81ea\u52a8\u4fee\u6539\u6ce8\u518c\u8868\u8bbe\u7f6e \u8c03\u6574Windows\u5b89\u5168\u7b56\u7565 \u5efa\u7acbSamba\u8fde\u63a5\u5e76\u6620\u5c04\u9a71\u52a8\u5668 \u6d4b\u8bd5\u8fde\u63a5\u72b6\u6001 \u53ef\u9009\u521b\u5efa\u684c\u9762\u5feb\u6377\u65b9\u5f0f \u65b9\u6cd5B\uff1a\u901a\u8fc7\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668 \u6253\u5f00\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668 \u53f3\u952e\u70b9\u51fb\"\u6b64\u7535\u8111\"\uff0c\u9009\u62e9\"\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668\" \u9a71\u52a8\u5668\u9009\u62e9\u4e00\u4e2a\u53ef\u7528\u76d8\u7b26\uff08\u5982Z:\uff09 \u6587\u4ef6\u5939\u8f93\u5165\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \u53d6\u6d88\u52fe\u9009 \"\u767b\u5f55\u65f6\u91cd\u65b0\u8fde\u63a5\" \u70b9\u51fb\"\u4f7f\u7528\u5176\u4ed6\u51ed\u636e\u8fde\u63a5\" \u7528\u6237\u540d\u7559\u7a7a\u6216\u8f93\u5165 guest \uff0c\u5bc6\u7801\u7559\u7a7a \u52fe\u9009\"\u8bb0\u4f4f\u6211\u7684\u51ed\u636e\" \u65b9\u6cd5C\uff1a\u901a\u8fc7\u547d\u4ee4\u884c\u5f3a\u5236\u8fde\u63a5 \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd\uff0c\u6267\u884c\uff1a net use \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \"\" /user:\"\" \u65b9\u6cd5D\uff1a\u4fee\u6539Windows\u672c\u5730\u7ec4\u7b56\u7565 \u8fd0\u884c gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u4fee\u6539\uff1a \u7f51\u7edc\u5b89\u5168: \u5bf9\u533f\u540dSID/\u540d\u79f0\u7ffb\u8bd1\u7684\u9650\u5236 \u8bbe\u7f6e\u4e3a \u65e0 \u4fee\u6539\uff1a \u7f51\u7edc\u8bbf\u95ee: \u4e0d\u5141\u8bb8SAM\u8d26\u6237\u7684\u533f\u540d\u679a\u4e3e \u8bbe\u7f6e\u4e3a \u5df2\u7981\u7528 \u65b9\u6848\u4e8c\uff1a\u4f7f\u7528VSCode SSH\u8bbf\u95eeHomeAssistant\u6302\u8f7d\u76ee\u5f55 \u00b6 1. \u786e\u4fddSSH\u670d\u52a1\u8fd0\u884c \u00b6 \u5728HomeAssistant\u4e3b\u673a\u4e0a\u786e\u4fddSSH\u670d\u52a1\u5df2\u542f\u52a8\uff1a # \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001 sudo systemctl status ssh # \u5982\u679c\u672a\u542f\u52a8\uff0c\u542f\u7528\u5e76\u542f\u52a8SSH sudo systemctl enable ssh sudo systemctl start ssh 2. \u5b89\u88c5VSCode\u6269\u5c55 \u00b6 \u5728VSCode\u4e2d\u5b89\u88c5\u4ee5\u4e0b\u6269\u5c55\uff1a - Remote - SSH - Remote - SSH: Editing Configuration Files 3. \u914d\u7f6eSSH\u8fde\u63a5 \u00b6 \u6309 Ctrl+Shift+P \u6253\u5f00\u547d\u4ee4\u9762\u677f \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 Configure SSH Hosts \u9009\u62e9\u914d\u7f6e\u6587\u4ef6\uff08\u901a\u5e38\u662f C:\\Users\\\u7528\u6237\u540d\\.ssh\\config \uff09 \u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a Host homeassistant HostName \u4f60\u7684HomeAssistant\u670d\u52a1\u5668IP User dtuser Port 22 4. \u8fde\u63a5\u5230\u670d\u52a1\u5668 \u00b6 \u5728VSCode\u4e2d\u6309 Ctrl+Shift+P \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 homeassistant \u8f93\u5165\u670d\u52a1\u5668\u5bc6\u7801\u8fdb\u884c\u767b\u5f55 \u8fde\u63a5\u6210\u529f\u540e\uff0c\u6253\u5f00\u6587\u4ef6\u5939\uff1a /home/dtuser/opt/ha/config \u65b9\u6848\u4e09\uff1a\u4f7f\u7528SFTP\u5ba2\u6237\u7aef \u00b6 \u5982\u679cVSCode SSH\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528SFTP\u5ba2\u6237\u7aef\uff1a WinSCP \uff1a\u56fe\u5f62\u754c\u9762SFTP\u5ba2\u6237\u7aef FileZilla \uff1a\u652f\u6301SFTP\u534f\u8bae PuTTY + PSFTP \uff1a\u547d\u4ee4\u884c\u5de5\u5177 \u8fde\u63a5\u4fe1\u606f\uff1a \u534f\u8bae\uff1aSFTP \u4e3b\u673a\uff1a\u4f60\u7684\u670d\u52a1\u5668IP \u7aef\u53e3\uff1a22 \u7528\u6237\u540d\uff1adtuser \u5bc6\u7801\uff1a\uff08\u4f60\u7684\u670d\u52a1\u5668\u5bc6\u7801\uff09 \u63a8\u8350\u65b9\u6848 \u00b6 \u6700\u4f73\u5b9e\u8df5\u7ec4\u5408 \uff1a \u4f7f\u7528\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u65b9\u6848\u4e00\u7b2c5\u70b9\u65b9\u6cd5A\uff09- \u6700\u7b80\u5355\u9ad8\u6548 \u914d\u7f6eVSCode SSH\u8bbf\u95ee\u4f5c\u4e3a\u5907\u7528\u65b9\u6848\uff08\u65b9\u6848\u4e8c\uff09 \u8fd9\u6837\u65e2\u4e0d\u9700\u8981\u4fee\u6539compose\u6587\u4ef6\uff0c\u53c8\u63d0\u4f9b\u4e86\u81ea\u52a8\u5316\u548c\u624b\u52a8\u7684\u591a\u79cd\u8bbf\u95ee\u65b9\u5f0f\u3002 \u6545\u969c\u6392\u9664 \u00b6 Samba\u8bbf\u95ee\u95ee\u9898 \u00b6 \u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u963b\u6b62\u4e86445\u548c139\u7aef\u53e3 \u786e\u8ba4\u670d\u52a1\u5668IP\u5730\u5740\u6b63\u786e \u5c1d\u8bd5\u91cd\u542fSamba\u5bb9\u5668\uff1a docker restart samba SSH\u8bbf\u95ee\u95ee\u9898 \u00b6 \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status ssh \u786e\u8ba4\u9632\u706b\u5899\u5141\u8bb822\u7aef\u53e3 \u68c0\u67e5SSH\u5bc6\u94a5\u6743\u9650\uff1a chmod 600 ~/.ssh/id_rsa \u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5 \u00b6 # \u6d4b\u8bd5\u7aef\u53e3\u8fde\u901a\u6027 telnet \u670d\u52a1\u5668IP 445 # Samba telnet \u670d\u52a1\u5668IP 22 # SSH \u91cd\u8981\u63d0\u9192 \u4efb\u4f55\u5bf9HomeAssistant\u4e2d\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u6539\uff0c\u90fd\u9700\u8981\u91cd\u542fHomeAssistant\u624d\u80fd\u751f\u6548\u3002","title":"windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#win1110sambavscode-ssh","text":"","title":"Win11/10\u8bbf\u95eeSamba\u5171\u4eab\u548cVSCode SSH\u8bbf\u95ee\u89e3\u51b3\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_1","text":"Docker\u5b89\u88c5\u7684HomeAssistant\u4f7f\u7528Samba\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\uff0c\u4f46Win11/10\u6709\u65f6\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u65e0\u5bc6\u7801\u7684Samba\u5171\u4eab\u3002","title":"\u95ee\u9898\u63cf\u8ff0"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_2","text":"","title":"\u89e3\u51b3\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#win1110-samba","text":"","title":"\u65b9\u6848\u4e00\uff1a\u4fee\u590dWin11/10 Samba\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#1-smb10","text":"# \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884cPowerShell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol","title":"1. \u542f\u7528SMB1.0\u534f\u8bae\uff08\u4e0d\u63a8\u8350\uff0c\u5b89\u5168\u6027\u8f83\u4f4e\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#2","text":"\u6309 Win+R \u6253\u5f00\u8fd0\u884c\u5bf9\u8bdd\u6846\uff0c\u8f93\u5165 gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u627e\u5230\u5e76\u4fee\u6539\u4ee5\u4e0b\u7b56\u7565\uff1a \u7f51\u7edc\u5b89\u5168: LAN Manager\u8eab\u4efd\u9a8c\u8bc1\u7ea7\u522b \u8bbe\u7f6e\u4e3a \u53d1\u9001LM\u548cNTLM\u54cd\u5e94 \u7f51\u7edc\u5b89\u5168: \u5bf9\u4e8eNTLM SSP(\u5305\u62ec\u5b89\u5168RPC)\u7684\u6700\u5c0f\u4f1a\u8bdd\u5b89\u5168 \u8bbe\u7f6e\u4e3a \u65e0\u8981\u6c42","title":"2. \u4fee\u6539\u672c\u5730\u5b89\u5168\u7b56\u7565\uff08\u63a8\u8350\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#3","text":"# \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f","title":"3. \u4fee\u6539\u6ce8\u518c\u8868\uff08\u9ad8\u7ea7\u7528\u6237\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#4","text":"\u6253\u5f00 \u63a7\u5236\u9762\u677f > \u7528\u6237\u8d26\u6237 > \u51ed\u636e\u7ba1\u7406\u5668 \u9009\u62e9 Windows\u51ed\u636e \u70b9\u51fb \u6dfb\u52a0Windows\u51ed\u636e \u8f93\u5165\uff1a \u4e92\u8054\u7f51\u6216\u7f51\u7edc\u5730\u5740\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP \u7528\u6237\u540d\uff1a\u7559\u7a7a\u6216\u8f93\u5165 guest \u5bc6\u7801\uff1a\u7559\u7a7a","title":"4. \u6dfb\u52a0\u7f51\u7edc\u51ed\u636e"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#5-windows","text":"\u7531\u4e8ecompose-all.yaml\u6587\u4ef6\u4e0d\u80fd\u4fee\u6539\uff0c\u6211\u4eec\u901a\u8fc7Windows\u5ba2\u6237\u7aef\u914d\u7f6e\u6765\u89e3\u51b3\u8bbf\u95ee\u95ee\u9898\uff1a \u65b9\u6cd5A\uff1a\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u6700\u63a8\u8350\uff09 \u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2aPowerShell\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff0c\u53ef\u4ee5\u4e00\u952e\u5b8c\u6210\u6240\u6709\u914d\u7f6e\uff1a \u89c2\u770b\u89c6\u9891\uff1a\u4fee\u590d Windows SMB \u9519\u8bef \u4fee\u590dWindows SMB \u9519\u8bef\u811a\u672c\u4e0b\u8f7d\u5730\u5740 \uff1a http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u4e0b\u8f7d\u811a\u672c\u6587\u4ef6 fixwindows.ps1 curl -o fixwindows.ps1 http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u5c06\u811a\u672c\u4fdd\u5b58\u5230\u672c\u5730\uff08\u5982c\u76d8\u7684\u6839\u76ee\u5f55\uff09 \u53f3\u952e\u70b9\u51fb\u811a\u672c\uff0c\u9009\u62e9\"\u4f7f\u7528PowerShell\u8fd0\u884c\" \u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" # \u5982\u679c\u63d0\u793a\u7981\u6b62\u8fd0\u884c\u811a\u672c\uff0c\u8bf7\u5148\u6267\u884c\u5982\u4e0b\u6307\u4ee4\u540e\uff0c\u518d\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process #\u7136\u540e\u518d\u8fd0\u884c\u811a\u672c .\\fixwindows.ps1 \u6309\u63d0\u793a\u8f93\u5165\u670d\u52a1\u5668IP\u5730\u5740 \u4f7f\u7528\u65b9\u6cd5\uff1a # \u65b9\u5f0f1\uff1a\u76f4\u63a5\u8fd0\u884c\uff08\u4ea4\u4e92\u5f0f\u8f93\u5165IP\uff09 .\\ fixwindows . ps1 # \u65b9\u5f0f2\uff1a\u5e26\u53c2\u6570\u8fd0\u884c .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" # \u65b9\u5f0f3\uff1a\u5b8c\u6574\u53c2\u6570 .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" -ShareName \"HAConfig\" -DriveLetter \"Z\" \u811a\u672c\u529f\u80fd\uff1a \u81ea\u52a8\u4fee\u6539\u6ce8\u518c\u8868\u8bbe\u7f6e \u8c03\u6574Windows\u5b89\u5168\u7b56\u7565 \u5efa\u7acbSamba\u8fde\u63a5\u5e76\u6620\u5c04\u9a71\u52a8\u5668 \u6d4b\u8bd5\u8fde\u63a5\u72b6\u6001 \u53ef\u9009\u521b\u5efa\u684c\u9762\u5feb\u6377\u65b9\u5f0f \u65b9\u6cd5B\uff1a\u901a\u8fc7\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668 \u6253\u5f00\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668 \u53f3\u952e\u70b9\u51fb\"\u6b64\u7535\u8111\"\uff0c\u9009\u62e9\"\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668\" \u9a71\u52a8\u5668\u9009\u62e9\u4e00\u4e2a\u53ef\u7528\u76d8\u7b26\uff08\u5982Z:\uff09 \u6587\u4ef6\u5939\u8f93\u5165\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \u53d6\u6d88\u52fe\u9009 \"\u767b\u5f55\u65f6\u91cd\u65b0\u8fde\u63a5\" \u70b9\u51fb\"\u4f7f\u7528\u5176\u4ed6\u51ed\u636e\u8fde\u63a5\" \u7528\u6237\u540d\u7559\u7a7a\u6216\u8f93\u5165 guest \uff0c\u5bc6\u7801\u7559\u7a7a \u52fe\u9009\"\u8bb0\u4f4f\u6211\u7684\u51ed\u636e\" \u65b9\u6cd5C\uff1a\u901a\u8fc7\u547d\u4ee4\u884c\u5f3a\u5236\u8fde\u63a5 \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd\uff0c\u6267\u884c\uff1a net use \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \"\" /user:\"\" \u65b9\u6cd5D\uff1a\u4fee\u6539Windows\u672c\u5730\u7ec4\u7b56\u7565 \u8fd0\u884c gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u4fee\u6539\uff1a \u7f51\u7edc\u5b89\u5168: \u5bf9\u533f\u540dSID/\u540d\u79f0\u7ffb\u8bd1\u7684\u9650\u5236 \u8bbe\u7f6e\u4e3a \u65e0 \u4fee\u6539\uff1a \u7f51\u7edc\u8bbf\u95ee: \u4e0d\u5141\u8bb8SAM\u8d26\u6237\u7684\u533f\u540d\u679a\u4e3e \u8bbe\u7f6e\u4e3a \u5df2\u7981\u7528","title":"5. \u4f7f\u7528Windows\u5ba2\u6237\u7aef\u5f3a\u5236\u65e0\u5bc6\u7801\u8bbf\u95ee\uff08\u63a8\u8350\u89e3\u51b3\u65b9\u6848\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#vscode-sshhomeassistant","text":"","title":"\u65b9\u6848\u4e8c\uff1a\u4f7f\u7528VSCode SSH\u8bbf\u95eeHomeAssistant\u6302\u8f7d\u76ee\u5f55"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#1-ssh","text":"\u5728HomeAssistant\u4e3b\u673a\u4e0a\u786e\u4fddSSH\u670d\u52a1\u5df2\u542f\u52a8\uff1a # \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001 sudo systemctl status ssh # \u5982\u679c\u672a\u542f\u52a8\uff0c\u542f\u7528\u5e76\u542f\u52a8SSH sudo systemctl enable ssh sudo systemctl start ssh","title":"1. \u786e\u4fddSSH\u670d\u52a1\u8fd0\u884c"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#2-vscode","text":"\u5728VSCode\u4e2d\u5b89\u88c5\u4ee5\u4e0b\u6269\u5c55\uff1a - Remote - SSH - Remote - SSH: Editing Configuration Files","title":"2. \u5b89\u88c5VSCode\u6269\u5c55"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#3-ssh","text":"\u6309 Ctrl+Shift+P \u6253\u5f00\u547d\u4ee4\u9762\u677f \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 Configure SSH Hosts \u9009\u62e9\u914d\u7f6e\u6587\u4ef6\uff08\u901a\u5e38\u662f C:\\Users\\\u7528\u6237\u540d\\.ssh\\config \uff09 \u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a Host homeassistant HostName \u4f60\u7684HomeAssistant\u670d\u52a1\u5668IP User dtuser Port 22","title":"3. \u914d\u7f6eSSH\u8fde\u63a5"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#4_1","text":"\u5728VSCode\u4e2d\u6309 Ctrl+Shift+P \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 homeassistant \u8f93\u5165\u670d\u52a1\u5668\u5bc6\u7801\u8fdb\u884c\u767b\u5f55 \u8fde\u63a5\u6210\u529f\u540e\uff0c\u6253\u5f00\u6587\u4ef6\u5939\uff1a /home/dtuser/opt/ha/config","title":"4. \u8fde\u63a5\u5230\u670d\u52a1\u5668"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#sftp","text":"\u5982\u679cVSCode SSH\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528SFTP\u5ba2\u6237\u7aef\uff1a WinSCP \uff1a\u56fe\u5f62\u754c\u9762SFTP\u5ba2\u6237\u7aef FileZilla \uff1a\u652f\u6301SFTP\u534f\u8bae PuTTY + PSFTP \uff1a\u547d\u4ee4\u884c\u5de5\u5177 \u8fde\u63a5\u4fe1\u606f\uff1a \u534f\u8bae\uff1aSFTP \u4e3b\u673a\uff1a\u4f60\u7684\u670d\u52a1\u5668IP \u7aef\u53e3\uff1a22 \u7528\u6237\u540d\uff1adtuser \u5bc6\u7801\uff1a\uff08\u4f60\u7684\u670d\u52a1\u5668\u5bc6\u7801\uff09","title":"\u65b9\u6848\u4e09\uff1a\u4f7f\u7528SFTP\u5ba2\u6237\u7aef"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_3","text":"\u6700\u4f73\u5b9e\u8df5\u7ec4\u5408 \uff1a \u4f7f\u7528\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u65b9\u6848\u4e00\u7b2c5\u70b9\u65b9\u6cd5A\uff09- \u6700\u7b80\u5355\u9ad8\u6548 \u914d\u7f6eVSCode SSH\u8bbf\u95ee\u4f5c\u4e3a\u5907\u7528\u65b9\u6848\uff08\u65b9\u6848\u4e8c\uff09 \u8fd9\u6837\u65e2\u4e0d\u9700\u8981\u4fee\u6539compose\u6587\u4ef6\uff0c\u53c8\u63d0\u4f9b\u4e86\u81ea\u52a8\u5316\u548c\u624b\u52a8\u7684\u591a\u79cd\u8bbf\u95ee\u65b9\u5f0f\u3002","title":"\u63a8\u8350\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_4","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#samba","text":"\u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u963b\u6b62\u4e86445\u548c139\u7aef\u53e3 \u786e\u8ba4\u670d\u52a1\u5668IP\u5730\u5740\u6b63\u786e \u5c1d\u8bd5\u91cd\u542fSamba\u5bb9\u5668\uff1a docker restart samba","title":"Samba\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#ssh","text":"\u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status ssh \u786e\u8ba4\u9632\u706b\u5899\u5141\u8bb822\u7aef\u53e3 \u68c0\u67e5SSH\u5bc6\u94a5\u6743\u9650\uff1a chmod 600 ~/.ssh/id_rsa","title":"SSH\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_5","text":"# \u6d4b\u8bd5\u7aef\u53e3\u8fde\u901a\u6027 telnet \u670d\u52a1\u5668IP 445 # Samba telnet \u670d\u52a1\u5668IP 22 # SSH \u91cd\u8981\u63d0\u9192 \u4efb\u4f55\u5bf9HomeAssistant\u4e2d\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u6539\uff0c\u90fd\u9700\u8981\u91cd\u542fHomeAssistant\u624d\u80fd\u751f\u6548\u3002","title":"\u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/","text":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant \u00b6 HomeAssistant\u57fa\u4e8eDocker\u5bb9\u5668\u6280\u672f\uff0c\u53ef\u4ee5\u5feb\u901f\u90e8\u7f72\u548c\u7ba1\u7406.\u5e76\u53ef\u4e0e\u5176\u5b83\u4e3b\u673a\u6216\u670d\u52a1\u5668\u5171\u7528\uff0c\u6709\u6548\u8282\u7701\u8d44\u6e90\u3002 \u4f46Docker\u5bb9\u5668\u6280\u672f\u5bf9\u7cfb\u7edf\u8d44\u6e90\u6709\u4e00\u5b9a\u8981\u6c42\uff0c\u4e14\u5bf9\u7f51\u7edc\u73af\u5883\u6709\u4f9d\u8d56\u3002\u5e76\u4e14\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5728\u5168\u65ad\u7f51\u5b8c\u5168\u5168\u79bb\u7ebf\u7684\u60c5\u51b5\u4e0b\u90e8\u7f72\u3002 \u56e0\u6b64\uff0c\u624d\u6709\u4e86\u672c\u6587\u6863\u3002 \u5b89\u88c5\u51c6\u5907 \u00b6 \u4e3a\u4e86\u80fd\u5728\u4efb\u610f\u4e3b\u673a\u4e0a\u7528Docker\u5feb\u901f\u5b89\u88c5HomeAssistant\uff0c\u5efa\u8bae\u63d0\u524d\u51c6\u5907\u597dDocker\u73af\u5883\uff0c\u4f46Docker\u5b98\u7f51\u88ab\u5c01\u9501\uff0c\u5bfc\u81f4Docker\u7684\u5b89\u88c5\uff0c\u53ca\u955c\u50cf\u7684\u62c9\u53d6\u90fd\u6781\u4e3a\u56f0\u96be\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u5b89\u88c5Docker\u53caDocker Compose\uff1a \u5b89\u88c5Docker\u57fa\u7840\u73af\u5883-\u652f\u6301\u79bb\u7ebf\u5b89\u88c5 \u5b89\u88c5\u65b9\u5f0f \u00b6 HKO \u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5 \u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a \u00b6 Home Assistant: http://$(\u4e3b\u673aIP):8123 Node-RED: http://$(\u4e3b\u673aIP):1880 Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 PostgreSQL: http://$(\u4e3b\u673aIP):5432 Samba: //$(\u4e3b\u673aIP)/HAConfig portainer: http://$(\u4e3b\u673aIP):9000 \u4f7f\u7528\u8bf4\u660e \u00b6 \u56e0\u4e3a\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u52a0\u8f7d\u9879\u662f\u6ca1\u6709\u7684\uff0c\u5b98\u65b9\u5bf9Docker\u4e0d\u63d0\u4f9b\u52a0\u8f7d\u9879\u529f\u80fd\uff0c\u4e5f\u6ca1\u529e\u5b89\u88c5\u4e0b\u3002 \u6240\u4ee5\u4f5c\u4e3a\u66ff\u4ee3\uff0c\u6211\u4eec\u628a\u52a0\u8f7d\u9879\u4e2d\u6700\u91cd\u8981\u8981\u7684\u51e0\u4e2a\u63d2\u4ef6\u90fd\u4ee5docker\u7684\u65b9\u5f0f\u5355\u72ec\u63d0\u4f9b\uff0c\u5e76\u80fd\u4e0eHomeAssistant\u76f8\u4e92\u914d\u5408\u5de5\u4f5c\uff0c\u5b83\u4eec\u662f Node-RED, Mosquitto MQTT, PostgreSQL, Samba\u7b49\u3002 \u672c\u6587\u63d0\u4f9b\u7684HomeAssistant\u662f\u81ea\u5df2\u91cd\u65b0\u6253\u5305\u7684docker\u96c6\u6210\u4e86HACS\uff0c\u53ca\u4e00\u4e9b\u65b0\u5b89\u5e38\u7528\u7684\u4e3b\u9898UI\u98ce\u683c\uff0c\u548c\u5c0f\u7c73HOME\u96c6\u6210\u7b49\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u65e0\u9700\u518d\u5b89\u88c5\u6b64\u7c7b\u63d2\u4ef6\u3002 HomeAssistant\u5df2\u914d\u7f6e\u9ed8\u8ba4\u4f7f\u7528\u5bb9\u5668\u63d0\u4f9b\u7684pgsql\u6570\u636e\u5e93\u6765\u5b58\u50a8\u6570\u636e\uff0c\u5e76\u8bbe\u5b9a\u4e865\u5929\u53ef\u80fd\u81ea\u52a8\u6e05\u9664\u6570\u636e\uff0c\u5bb9\u5668\u5185\u7684\u65e5\u5fd7\uff0c\u4fdd\u7559\u7f6e\u4e09\u5929\u3002 \u56e0\u4e3a\u4f7f\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u914d\u7f6e\u6587\u4ef6\u662f\u5b58\u653e\u5728\u4e3b\u673a\u7684 /dt_opt/ha/config \u76ee\u5f55\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7Samba\u5171\u4eab\u8bbf\u95ee\u6b64\u76ee\u5f55\uff0c\u6216\u76f4\u63a5\u5728\u4e3b\u673a\u4e0a\u8bbf\u95ee\u6b64\u76ee\u5f55\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002\u5728HomeAssistant\u4e2d\uff0c\u4e0d\u5728\u6709FileEditor\u63d2\u4ef6\u4e86,\u56e0\u6b64\u53ea\u80fd\u4f7f\u7528\u5171\u4eab\u6587\u4ef6\u5939\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002 \u767b\u5f55\u4fe1\u606f \u00b6 Home Assistant: http://$(\u4e3b\u673aIP):8123 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r Node-RED: http://$(\u4e3b\u673aIP):1880 \u65e0\u7528\u6237\u540d Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r PostgreSQL: http://$(\u4e3b\u673aIP):5432 \u6570\u636e\u5e93\u540d:dtha \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r Samba: //$(\u4e3b\u673aIP)/HAConfig \u65e0\u9700\u8981\u5bc6\u7801\u5373\u53ef\u8bbf\u95ee portainer: http://$(\u4e3b\u673aIP):9000 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r_abcd \u8bf4\u660e \u00b6 \u5173\u4e8eSamba(\u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55) Windows \u7aef\u8bbf\u95ee\u65f6\uff0c\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u56e0\u672c\u670d\u52a1\u914d\u7f6e\u4e86\u5141\u8bb8guest\u8bbf\u95ee\uff0c\u6240\u4ee5\u53ef\u76f4\u63a5\u8bbf\u95ee,\u800c\u65e0\u987b\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u3002\u4f46\u662f\u5bf9\u4e8ewindows10/11,\u6709\u53ef\u80fd\u4f1a\u53cd\u590d\u8981\u6c42\u8f93\u5165\u5bc6\u7801\u800c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u56e0\u4e3a\u5b89\u5168\u7b56\u7565\u95ee\u9898\uff0c\u53ef\u5728 Windows \u672c\u5730\u7ec4\u7b56\u7565\u4e2d\u8c03\u6574\uff1a \u6253\u5f00\u201c\u672c\u5730\u7ec4\u7b56\u7565\u7f16\u8f91\u5668\u201d\uff08gpedit.msc\uff09\uff0c\u8ba1\u7b97\u673a\u914d\u7f6e \u2192 \u7ba1\u7406\u6a21\u677f \u2192 \u7f51\u7edc \u2192 Lanman\u5de5\u4f5c\u7ad9\uff0c\u542f\u7528\u201c\u542f\u7528\u4e0d\u5b89\u5168\u7684\u6765\u5bbe\u767b\u5f55\u201d\u3002\u542f\u7528\u540e\uff0c\u5373\u53ef\u6b63\u5e38\u8bbf\u95ee\u6b64\u5171\u4eab\u7684\u914d\u7f6e\u76ee\u5f55\u3002 \u5982\u4e0b\u56fe\u662f\u4ee5\u5171\u4eab\u7684\u65b9\u5f0f\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55\uff1a \u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u5931\u8d25\u7684\u89e3\u51b3\u529e\u6cd5 windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5 \u5173\u4e8eportainer(\u56fe\u578b\u5316Docker\u7ba1\u7406\u5de5\u5177) Portainer \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u7ba1\u7406UI\uff0c\u53ef\u4ee5\u8ba9\u4f60\u66f4\u5bb9\u6613\u5730\u7ba1\u7406Docker\u5bb9\u5668\u3002\u901a\u8fc7Portainer\uff0c\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u3001\u7ba1\u7406\u548c\u76d1\u63a7Docker\u5bb9\u5668\uff0c\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\uff0c\u7ba1\u7406Docker\u955c\u50cf\u7b49\u3002Portainer\u7684Web\u754c\u9762\u53cb\u597d\uff0c\u9002\u5408Docker\u65b0\u624b\u548c\u9700\u8981\u5feb\u901f\u7ba1\u7406Docker\u73af\u5883\u7684\u7528\u6237\u3002 \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"HomeAssistant\u57fa\u4e8eDocker\u5bb9\u5668\u6280\u672f\uff0c\u53ef\u4ee5\u5feb\u901f\u90e8\u7f72\u548c\u7ba1\u7406.\u5e76\u53ef\u4e0e\u5176\u5b83\u4e3b\u673a\u6216\u670d\u52a1\u5668\u5171\u7528\uff0c\u6709\u6548\u8282\u7701\u8d44\u6e90\u3002 \u4f46Docker\u5bb9\u5668\u6280\u672f\u5bf9\u7cfb\u7edf\u8d44\u6e90\u6709\u4e00\u5b9a\u8981\u6c42\uff0c\u4e14\u5bf9\u7f51\u7edc\u73af\u5883\u6709\u4f9d\u8d56\u3002\u5e76\u4e14\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5728\u5168\u65ad\u7f51\u5b8c\u5168\u5168\u79bb\u7ebf\u7684\u60c5\u51b5\u4e0b\u90e8\u7f72\u3002 \u56e0\u6b64\uff0c\u624d\u6709\u4e86\u672c\u6587\u6863\u3002","title":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_1","text":"\u4e3a\u4e86\u80fd\u5728\u4efb\u610f\u4e3b\u673a\u4e0a\u7528Docker\u5feb\u901f\u5b89\u88c5HomeAssistant\uff0c\u5efa\u8bae\u63d0\u524d\u51c6\u5907\u597dDocker\u73af\u5883\uff0c\u4f46Docker\u5b98\u7f51\u88ab\u5c01\u9501\uff0c\u5bfc\u81f4Docker\u7684\u5b89\u88c5\uff0c\u53ca\u955c\u50cf\u7684\u62c9\u53d6\u90fd\u6781\u4e3a\u56f0\u96be\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u5b89\u88c5Docker\u53caDocker Compose\uff1a \u5b89\u88c5Docker\u57fa\u7840\u73af\u5883-\u652f\u6301\u79bb\u7ebf\u5b89\u88c5","title":"\u5b89\u88c5\u51c6\u5907"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_2","text":"HKO \u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5","title":"\u5b89\u88c5\u65b9\u5f0f"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_3","text":"Home Assistant: http://$(\u4e3b\u673aIP):8123 Node-RED: http://$(\u4e3b\u673aIP):1880 Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 PostgreSQL: http://$(\u4e3b\u673aIP):5432 Samba: //$(\u4e3b\u673aIP)/HAConfig portainer: http://$(\u4e3b\u673aIP):9000","title":"\u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_4","text":"\u56e0\u4e3a\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u52a0\u8f7d\u9879\u662f\u6ca1\u6709\u7684\uff0c\u5b98\u65b9\u5bf9Docker\u4e0d\u63d0\u4f9b\u52a0\u8f7d\u9879\u529f\u80fd\uff0c\u4e5f\u6ca1\u529e\u5b89\u88c5\u4e0b\u3002 \u6240\u4ee5\u4f5c\u4e3a\u66ff\u4ee3\uff0c\u6211\u4eec\u628a\u52a0\u8f7d\u9879\u4e2d\u6700\u91cd\u8981\u8981\u7684\u51e0\u4e2a\u63d2\u4ef6\u90fd\u4ee5docker\u7684\u65b9\u5f0f\u5355\u72ec\u63d0\u4f9b\uff0c\u5e76\u80fd\u4e0eHomeAssistant\u76f8\u4e92\u914d\u5408\u5de5\u4f5c\uff0c\u5b83\u4eec\u662f Node-RED, Mosquitto MQTT, PostgreSQL, Samba\u7b49\u3002 \u672c\u6587\u63d0\u4f9b\u7684HomeAssistant\u662f\u81ea\u5df2\u91cd\u65b0\u6253\u5305\u7684docker\u96c6\u6210\u4e86HACS\uff0c\u53ca\u4e00\u4e9b\u65b0\u5b89\u5e38\u7528\u7684\u4e3b\u9898UI\u98ce\u683c\uff0c\u548c\u5c0f\u7c73HOME\u96c6\u6210\u7b49\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u65e0\u9700\u518d\u5b89\u88c5\u6b64\u7c7b\u63d2\u4ef6\u3002 HomeAssistant\u5df2\u914d\u7f6e\u9ed8\u8ba4\u4f7f\u7528\u5bb9\u5668\u63d0\u4f9b\u7684pgsql\u6570\u636e\u5e93\u6765\u5b58\u50a8\u6570\u636e\uff0c\u5e76\u8bbe\u5b9a\u4e865\u5929\u53ef\u80fd\u81ea\u52a8\u6e05\u9664\u6570\u636e\uff0c\u5bb9\u5668\u5185\u7684\u65e5\u5fd7\uff0c\u4fdd\u7559\u7f6e\u4e09\u5929\u3002 \u56e0\u4e3a\u4f7f\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u914d\u7f6e\u6587\u4ef6\u662f\u5b58\u653e\u5728\u4e3b\u673a\u7684 /dt_opt/ha/config \u76ee\u5f55\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7Samba\u5171\u4eab\u8bbf\u95ee\u6b64\u76ee\u5f55\uff0c\u6216\u76f4\u63a5\u5728\u4e3b\u673a\u4e0a\u8bbf\u95ee\u6b64\u76ee\u5f55\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002\u5728HomeAssistant\u4e2d\uff0c\u4e0d\u5728\u6709FileEditor\u63d2\u4ef6\u4e86,\u56e0\u6b64\u53ea\u80fd\u4f7f\u7528\u5171\u4eab\u6587\u4ef6\u5939\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002","title":"\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_5","text":"Home Assistant: http://$(\u4e3b\u673aIP):8123 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r Node-RED: http://$(\u4e3b\u673aIP):1880 \u65e0\u7528\u6237\u540d Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r PostgreSQL: http://$(\u4e3b\u673aIP):5432 \u6570\u636e\u5e93\u540d:dtha \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r Samba: //$(\u4e3b\u673aIP)/HAConfig \u65e0\u9700\u8981\u5bc6\u7801\u5373\u53ef\u8bbf\u95ee portainer: http://$(\u4e3b\u673aIP):9000 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r_abcd","title":"\u767b\u5f55\u4fe1\u606f"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_6","text":"\u5173\u4e8eSamba(\u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55) Windows \u7aef\u8bbf\u95ee\u65f6\uff0c\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u56e0\u672c\u670d\u52a1\u914d\u7f6e\u4e86\u5141\u8bb8guest\u8bbf\u95ee\uff0c\u6240\u4ee5\u53ef\u76f4\u63a5\u8bbf\u95ee,\u800c\u65e0\u987b\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u3002\u4f46\u662f\u5bf9\u4e8ewindows10/11,\u6709\u53ef\u80fd\u4f1a\u53cd\u590d\u8981\u6c42\u8f93\u5165\u5bc6\u7801\u800c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u56e0\u4e3a\u5b89\u5168\u7b56\u7565\u95ee\u9898\uff0c\u53ef\u5728 Windows \u672c\u5730\u7ec4\u7b56\u7565\u4e2d\u8c03\u6574\uff1a \u6253\u5f00\u201c\u672c\u5730\u7ec4\u7b56\u7565\u7f16\u8f91\u5668\u201d\uff08gpedit.msc\uff09\uff0c\u8ba1\u7b97\u673a\u914d\u7f6e \u2192 \u7ba1\u7406\u6a21\u677f \u2192 \u7f51\u7edc \u2192 Lanman\u5de5\u4f5c\u7ad9\uff0c\u542f\u7528\u201c\u542f\u7528\u4e0d\u5b89\u5168\u7684\u6765\u5bbe\u767b\u5f55\u201d\u3002\u542f\u7528\u540e\uff0c\u5373\u53ef\u6b63\u5e38\u8bbf\u95ee\u6b64\u5171\u4eab\u7684\u914d\u7f6e\u76ee\u5f55\u3002 \u5982\u4e0b\u56fe\u662f\u4ee5\u5171\u4eab\u7684\u65b9\u5f0f\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55\uff1a \u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u5931\u8d25\u7684\u89e3\u51b3\u529e\u6cd5 windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5 \u5173\u4e8eportainer(\u56fe\u578b\u5316Docker\u7ba1\u7406\u5de5\u5177) Portainer \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u7ba1\u7406UI\uff0c\u53ef\u4ee5\u8ba9\u4f60\u66f4\u5bb9\u6613\u5730\u7ba1\u7406Docker\u5bb9\u5668\u3002\u901a\u8fc7Portainer\uff0c\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u3001\u7ba1\u7406\u548c\u76d1\u63a7Docker\u5bb9\u5668\uff0c\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\uff0c\u7ba1\u7406Docker\u955c\u50cf\u7b49\u3002Portainer\u7684Web\u754c\u9762\u53cb\u597d\uff0c\u9002\u5408Docker\u65b0\u624b\u548c\u9700\u8981\u5feb\u901f\u7ba1\u7406Docker\u73af\u5883\u7684\u7528\u6237\u3002 \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u8bf4\u660e"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/","text":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant \u00b6 \u4e00\u952e\u5b89\u88c5\u811a\u672c\u5730\u5740 \u00b6 http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh \u4f7f\u7528\u8bf4\u660e \u00b6 \u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c \u00b6 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh | sudo bash \u5982\u4e0b\u6240\u793a \u00b6","title":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"","title":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_1","text":"http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh","title":"\u4e00\u952e\u5b89\u88c5\u811a\u672c\u5730\u5740"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_2","text":"","title":"\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_3","text":"curl -fsSL http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh | sudo bash","title":"\u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_4","text":"","title":"\u5982\u4e0b\u6240\u793a"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/","text":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1 \u00b6 frpc\u5ba2\u6237\u7aef\u90e8\u7f72\u4e3a\u975e\u5e38\u7b80\u5355\uff0c\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1\u3002 \u5feb\u901f\u5b89\u88c5 \u00b6 # x86_64_amd curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-x86_64.sh | sudo bash # arm64 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-arm.sh | sudo bash \u7136\u540e\u6839\u636e\u63d0\u793a\u8fdb\u884c\u914d\u7f6e\u5373\u53ef\u3002 \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u5730\u5740: 115.190.**.101 <--\u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u5730\u5740-> \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u7aef\u53e3: 0000 <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u53e3-> \u662f\u5426\u4f7f\u7528 token \u9a8c\u8bc1? (y/n): y <- \u670d\u52a1\u7aef\u662f\u5426\u5f00\u542f\u4e86token\u9a8c\u8bc1\uff0c\u5982\u679c\u8f93\u5165Y\uff0c\u5426\u5219\u8f93\u5165N-> \u8bf7\u8f93\u5165 token: **** <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684 token-> \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: no_machine_test <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u540d\u79f0-> \u8bf7\u8f93\u5165\u672c\u5730 IP: 192.168.6.222 \u8bf7\u8f93\u5165\u672c\u5730\u7aef\u53e3: 4000 \u8bf7\u8f93\u5165\u8fdc\u7a0b\u7aef\u53e3: 60009 \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: \u6b63\u5728\u4e0b\u8f7d\u5e76\u5b89\u88c5 frpClient... --2025-09-02 09:50:08-- http://datacdn.data-it.tech/HomeAssistant/tools/frpc/frp_0.64.0_linux_amd64.tar.gz Resolving datacdn.data-it.tech (datacdn.data-it.tech)... 122.228.207.55, 36.25.240.217, 36.25.240.218, ... Connecting to datacdn.data-it.tech (datacdn.data-it.tech)|122.228.207.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13332918 (13M) [application/x-compressed] Saving to: \u2018/tmp/frpc.tar.gz\u2019 /tmp/frpc.tar.gz 100%[========================================================>] 12.71M 4.72MB/s in 2.7s 2025-09-02 09:50:12 (4.72 MB/s) - \u2018/tmp/frpc.tar.gz\u2019 saved [13332918/13332918] Created symlink /etc/systemd/system/multi-user.target.wants/frpc.service \u2192 /etc/systemd/system/frpc.service. frpClient \u5b89\u88c5\u5b8c\u6210\u5e76\u5df2\u542f\u52a8\u3002 \u5982\u9700\u5378\u8f7d\uff0c\u8bf7\u8fd0\u884c: sudo bash ./install-frp-x86_64.sh uninstall /etc/systemd/system/frpc.service [Unit] Description=frp Client Service After=network-online.target Wants=network-online.target [Service] Type=simple User=orangepi WorkingDirectory=/opt/frpc ExecStartPre=/bin/sleep 20 ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml Restart=on-failure [Install] WantedBy=multi-user.target","title":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/#frpc","text":"frpc\u5ba2\u6237\u7aef\u90e8\u7f72\u4e3a\u975e\u5e38\u7b80\u5355\uff0c\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1\u3002","title":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/#_1","text":"# x86_64_amd curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-x86_64.sh | sudo bash # arm64 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-arm.sh | sudo bash \u7136\u540e\u6839\u636e\u63d0\u793a\u8fdb\u884c\u914d\u7f6e\u5373\u53ef\u3002 \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u5730\u5740: 115.190.**.101 <--\u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u5730\u5740-> \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u7aef\u53e3: 0000 <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u53e3-> \u662f\u5426\u4f7f\u7528 token \u9a8c\u8bc1? (y/n): y <- \u670d\u52a1\u7aef\u662f\u5426\u5f00\u542f\u4e86token\u9a8c\u8bc1\uff0c\u5982\u679c\u8f93\u5165Y\uff0c\u5426\u5219\u8f93\u5165N-> \u8bf7\u8f93\u5165 token: **** <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684 token-> \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: no_machine_test <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u540d\u79f0-> \u8bf7\u8f93\u5165\u672c\u5730 IP: 192.168.6.222 \u8bf7\u8f93\u5165\u672c\u5730\u7aef\u53e3: 4000 \u8bf7\u8f93\u5165\u8fdc\u7a0b\u7aef\u53e3: 60009 \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: \u6b63\u5728\u4e0b\u8f7d\u5e76\u5b89\u88c5 frpClient... --2025-09-02 09:50:08-- http://datacdn.data-it.tech/HomeAssistant/tools/frpc/frp_0.64.0_linux_amd64.tar.gz Resolving datacdn.data-it.tech (datacdn.data-it.tech)... 122.228.207.55, 36.25.240.217, 36.25.240.218, ... Connecting to datacdn.data-it.tech (datacdn.data-it.tech)|122.228.207.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13332918 (13M) [application/x-compressed] Saving to: \u2018/tmp/frpc.tar.gz\u2019 /tmp/frpc.tar.gz 100%[========================================================>] 12.71M 4.72MB/s in 2.7s 2025-09-02 09:50:12 (4.72 MB/s) - \u2018/tmp/frpc.tar.gz\u2019 saved [13332918/13332918] Created symlink /etc/systemd/system/multi-user.target.wants/frpc.service \u2192 /etc/systemd/system/frpc.service. frpClient \u5b89\u88c5\u5b8c\u6210\u5e76\u5df2\u542f\u52a8\u3002 \u5982\u9700\u5378\u8f7d\uff0c\u8bf7\u8fd0\u884c: sudo bash ./install-frp-x86_64.sh uninstall /etc/systemd/system/frpc.service [Unit] Description=frp Client Service After=network-online.target Wants=network-online.target [Service] Type=simple User=orangepi WorkingDirectory=/opt/frpc ExecStartPre=/bin/sleep 20 ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml Restart=on-failure [Install] WantedBy=multi-user.target","title":"\u5feb\u901f\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E6%8A%8AHAos%E7%9A%84%E6%BA%90%E6%8D%A2%E6%88%90%E5%9B%BD%E5%86%85%E6%BA%90/","text":"\u8981\u66f4\u6539haos\uff08\u53ef\u80fd\u662f\u6307HaOS\uff0c\u4e00\u4e2a\u57fa\u4e8eLinux\u7684\u64cd\u4f5c\u7cfb\u7edf\uff09\u7684\u8f6f\u4ef6\u6e90\u4e3a\u56fd\u5185\u6e90\uff0c \u9700\u8981\u7f16\u8f91 /etc/apk/repositories \u6587\u4ef6\uff0c\u7136\u540e\u66ff\u6362\u73b0\u6709\u7684\u6e90\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\u3002\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u5907\u4efd\u539f\u59cb\u6587\u4ef6:\u786e\u4fdd\u5728\u4fee\u6539\u4e4b\u524d\u5907\u4efd\u539f\u59cb\u7684 /etc/apk/repositories \u6587\u4ef6\uff0c\u4ee5\u9632\u4fee\u6539\u9519\u8bef\u5bfc\u81f4\u95ee\u9898\u3002 sudo cp /etc/apk/repositories /etc/apk/repositories.bak \u7f16\u8f91\u6587\u4ef6:\u4f7f\u7528\u6587\u672c\u7f16\u8f91\u5668\uff08\u5982vi\u3001nano\u7b49\uff09\u6253\u5f00 /etc/apk/repositories \u6587\u4ef6\u3002 sudo vi /etc/apk/repositories \u66ff\u6362\u6e90:\u5c06\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\u66ff\u6362\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\uff0c\u4f8b\u5982\u963f\u91cc\u4e91\u6216\u6e05\u534e\u5927\u5b66\u7684\u6e90\u3002\\ \u4e0b\u662f\u963f\u91cc\u4e91\u7684\u793a\u4f8b\uff1a https://mirrors.aliyun.com/alpine/latest-stable/main https://mirrors.aliyun.com/alpine/latest-stable/community \u6e05\u534e\u5927\u5b66\u7684\u6e90\u793a\u4f8b\uff1a https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u9009\u62e9\u4e00\u4e2a\u6e90\uff0c\u5e76\u5c06\u539f\u6587\u4ef6\u5185\u5bb9\u66ff\u6362\u3002 \u4fdd\u5b58\u5e76\u9000\u51fa:\u5982\u679c\u4f7f\u7528vi\uff0c\u6309\u4e0bEsc\uff0c\u7136\u540e\u8f93\u5165 :wq \u4fdd\u5b58\u5e76\u9000\u51fa\u3002 \u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868:\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868\uff0c\u4f7f\u66f4\u6539\u751f\u6548\u3002 sudo apk update \u5b8c\u6210\u4ee5\u4e0a\u6b65\u9aa4\u540e\uff0chaos\u7684\u8f6f\u4ef6\u6e90\u5c31\u6210\u529f\u66f4\u6362\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\u4e86\u3002","title":"\u5982\u4f55\u628aHAos\u7684\u6e90\u6362\u6210\u56fd\u5185\u6e90"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/","text":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant \u00b6 \u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u672c\u5730 \u00b6 \u5730\u5740\uff1a wget http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/ha-images1.1.zip \u8bf4\u660e\uff1a\u672c\u79bb\u7ebf\u5305\u5305\u542b\u4e86Home Assistant\u7684\u6240\u6709\u4f9d\u8d56\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728\u6ca1\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e0b\u8fdb\u884c\u5b89\u88c5\u3002\u5927\u7ea6 1.1 GB\u3002 \u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55 \u00b6 sudo apt update sudo mkdir /dt_opt/ sudo unzip ha-images1.1.zip -d /dt_opt/ \u5982\u4e0b\u56fe\u793a\u793a\uff1a \u7ed9\u89e3\u538b\u540e\u7684\u6587\u4ef6\u8d4b\u4e88\u6b63\u786e\u7684\u6743\u9650 \u00b6 sudo chown -R $USER:$USER /dt_opt/ cd /dt_opt/ sudo chmod +x install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a\uff1a \u6267\u884c\u5b89\u88c5\u811a\u672c \u00b6 cd /dt_opt/ sudo ./install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a: \u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a \u00b6 Home Assistant: http://192.168.50.170:8123 Node-RED: http://192.168.50.170:1880 Mosquitto MQTT: 192.168.50.170:1883 PostgreSQL: 192.168.50.170:5432 Samba: //192.168.50.170/HAConfig portainer: http://192.168.50.170:9000","title":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"","title":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_1","text":"\u5730\u5740\uff1a wget http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/ha-images1.1.zip \u8bf4\u660e\uff1a\u672c\u79bb\u7ebf\u5305\u5305\u542b\u4e86Home Assistant\u7684\u6240\u6709\u4f9d\u8d56\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728\u6ca1\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e0b\u8fdb\u884c\u5b89\u88c5\u3002\u5927\u7ea6 1.1 GB\u3002","title":"\u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u672c\u5730"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_2","text":"sudo apt update sudo mkdir /dt_opt/ sudo unzip ha-images1.1.zip -d /dt_opt/ \u5982\u4e0b\u56fe\u793a\u793a\uff1a","title":"\u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_3","text":"sudo chown -R $USER:$USER /dt_opt/ cd /dt_opt/ sudo chmod +x install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u7ed9\u89e3\u538b\u540e\u7684\u6587\u4ef6\u8d4b\u4e88\u6b63\u786e\u7684\u6743\u9650"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_4","text":"cd /dt_opt/ sudo ./install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a:","title":"\u6267\u884c\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_5","text":"Home Assistant: http://192.168.50.170:8123 Node-RED: http://192.168.50.170:1880 Mosquitto MQTT: 192.168.50.170:1883 PostgreSQL: 192.168.50.170:5432 Samba: //192.168.50.170/HAConfig portainer: http://192.168.50.170:9000","title":"\u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/","text":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu 24.04) \u00b6 \u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684Ubuntu 24.04\u7cfb\u7edf\u4e0a\u79bb\u7ebf\u5b89\u88c5Docker\u3002 - \u57fa\u4e8e\u73b0\u5728\u56fd\u5185\u7f51\u7edc\u73af\u5883\uff0c\u5efa\u8bae\u4f7f\u7528\u79bb\u7ebf\u5b89\u88c5\u65b9\u5f0f\u6765\u907f\u514d\u7f51\u7edc\u95ee\u9898\u3002 - \u57fa\u4e8e\u9700\u8981\u5185\u7f51\u90e8\u7f72\u7684\u573a\u666f\uff0c\u672c\u6587\u6863\u4e5f\u9002\u7528\u3002 \u79bb\u7ebf\u5b89\u88c5\u6b65\u9aa4 \u00b6 \u51c6\u5907\u5de5\u4f5c \u00b6 \u5728\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e2d\u4e0b\u8f7dDocker\u7684deb\u5305\u53ca\u5176\u4f9d\u8d56\u5305\u3002 \u5c06\u4e0b\u8f7d\u597d\u7684deb\u5305\u62f7\u8d1d\u5230\u76ee\u6807Ubuntu 24.04\u7cfb\u7edf\u4e2d\u3002 \u4e0b\u8f7dDocker\u53ca\u5176\u4f9d\u8d56\u5305 \u00b6 http://datacdn.data-it.tech/HomeAssistant/tools/docker_offline/docker-offline-packages.tar.gz \u5c06\u4e0b\u8f7d\u5230\u7684docker-offline-packages.tar.gz\u4f20\u8f93\u5230\u76ee\u6807\u7cfb\u7edf \u00b6 \u6bd4\u5982\u4e0b\u8f7d\u5230\u5982\u4e0b\u76ee\u5f55 tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz tst@tst-VMware-Virtual-Platform:~/down$ \u89e3\u538b\u5b89\u88c5\u5305 \u00b6 tar -zxvf docker-offline-packages.tar.gz \u5982\u4e0b\uff1a tst@tst-VMware-Virtual-Platform:~/down$ tar -zxvf docker-offline-packages.tar.gz install-docker.sh offline/ offline/docker-compose/ offline/docker-compose/docker-compose-linux-x86_64 ls offline/deb-packages/ offline/deb-packages/docker-ce-cli_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/containerd.io_1.7.27-1_amd64.deb offline/deb-packages/docker-ce_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/docker-buildx-plugin_0.26.1-1~ubuntu.24.04~noble_amd64.deb offline/scripts/ offline/scripts/offline-install.sh tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz install-docker.sh offline \u79bb\u7ebf\u5b89\u88c5 \u00b6 \u5728\u76ee\u5f55\u4e2d\u6267\u884c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline \u9a8c\u8bc1\u5b89\u88c5 \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1Docker\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker --version \u5982\u679c\u770b\u5230Docker\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u9a8c\u8bc1Docker Compose\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker-compose --version \u5982\u679c\u770b\u5230Docker Compose\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u5e38\u7528\u6307\u4ee4 \u00b6 # \u4e0b\u8f7d ./install-docker.sh --download ./offline # \u4e3b\u811a\u672c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline # \u6253\u5305 tar -czvf docker-offline-packages.tar.gz install-docker.sh offline ## \u9a8c\u8bc1 tar -tzvf docker-offline-packages.tar.gz","title":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu24.04)"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#dockerubuntu-2404","text":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684Ubuntu 24.04\u7cfb\u7edf\u4e0a\u79bb\u7ebf\u5b89\u88c5Docker\u3002 - \u57fa\u4e8e\u73b0\u5728\u56fd\u5185\u7f51\u7edc\u73af\u5883\uff0c\u5efa\u8bae\u4f7f\u7528\u79bb\u7ebf\u5b89\u88c5\u65b9\u5f0f\u6765\u907f\u514d\u7f51\u7edc\u95ee\u9898\u3002 - \u57fa\u4e8e\u9700\u8981\u5185\u7f51\u90e8\u7f72\u7684\u573a\u666f\uff0c\u672c\u6587\u6863\u4e5f\u9002\u7528\u3002","title":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu 24.04)"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_1","text":"","title":"\u79bb\u7ebf\u5b89\u88c5\u6b65\u9aa4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_2","text":"\u5728\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e2d\u4e0b\u8f7dDocker\u7684deb\u5305\u53ca\u5176\u4f9d\u8d56\u5305\u3002 \u5c06\u4e0b\u8f7d\u597d\u7684deb\u5305\u62f7\u8d1d\u5230\u76ee\u6807Ubuntu 24.04\u7cfb\u7edf\u4e2d\u3002","title":"\u51c6\u5907\u5de5\u4f5c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#docker","text":"http://datacdn.data-it.tech/HomeAssistant/tools/docker_offline/docker-offline-packages.tar.gz","title":"\u4e0b\u8f7dDocker\u53ca\u5176\u4f9d\u8d56\u5305"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#docker-offline-packagestargz","text":"\u6bd4\u5982\u4e0b\u8f7d\u5230\u5982\u4e0b\u76ee\u5f55 tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz tst@tst-VMware-Virtual-Platform:~/down$","title":"\u5c06\u4e0b\u8f7d\u5230\u7684docker-offline-packages.tar.gz\u4f20\u8f93\u5230\u76ee\u6807\u7cfb\u7edf"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_3","text":"tar -zxvf docker-offline-packages.tar.gz \u5982\u4e0b\uff1a tst@tst-VMware-Virtual-Platform:~/down$ tar -zxvf docker-offline-packages.tar.gz install-docker.sh offline/ offline/docker-compose/ offline/docker-compose/docker-compose-linux-x86_64 ls offline/deb-packages/ offline/deb-packages/docker-ce-cli_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/containerd.io_1.7.27-1_amd64.deb offline/deb-packages/docker-ce_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/docker-buildx-plugin_0.26.1-1~ubuntu.24.04~noble_amd64.deb offline/scripts/ offline/scripts/offline-install.sh tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz install-docker.sh offline","title":"\u89e3\u538b\u5b89\u88c5\u5305"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_4","text":"\u5728\u76ee\u5f55\u4e2d\u6267\u884c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline","title":"\u79bb\u7ebf\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_5","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1Docker\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker --version \u5982\u679c\u770b\u5230Docker\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u9a8c\u8bc1Docker Compose\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker-compose --version \u5982\u679c\u770b\u5230Docker Compose\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002","title":"\u9a8c\u8bc1\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_6","text":"# \u4e0b\u8f7d ./install-docker.sh --download ./offline # \u4e3b\u811a\u672c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline # \u6253\u5305 tar -czvf docker-offline-packages.tar.gz install-docker.sh offline ## \u9a8c\u8bc1 tar -tzvf docker-offline-packages.tar.gz","title":"\u5e38\u7528\u6307\u4ee4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/","text":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA \u00b6 \u548c\u98ce\u5929\u6c14\u7b80\u4ecb \u00b6 \u548c\u98ce\u5929\u6c14\u662f\u4e00\u4e2a\u63d0\u4f9b\u5929\u6c14\u4fe1\u606f\u7684API\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u96c6\u6210\u5230Home Assistant\u4e2d\u3002 \u96c6\u6210\u6b65\u9aa4 \u00b6 \u5728Home Assistant\u4e2d\u5b89\u88c5\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u3002 \u914d\u7f6e\u548c\u98ce\u5929\u6c14API\u5bc6\u94a5\u3002 \u5728\u81ea\u52a8\u5316\u4e2d\u4f7f\u7528\u548c\u98ce\u5929\u6c14\u63d0\u4f9b\u7684\u5929\u6c14\u6570\u636e\u3002 \u793a\u4f8b \u00b6 \u767b\u5f55\u548c\u98ce\u5929\u6c14\u63a7\u5236\u53f0\uff0chttps://console.qweather.com/project?lang=zh \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5148\u4e3a\u6b64\u4e2d\u5fc3\u521b\u5efa\u4e00\u4e2a\u9879\u76ee\uff0c\u4e3a\u7684\u662f\u4e3a\u6bcf\u4e2a\u4e2d\u5fc3\u4f7f\u7528\u7684api\u8c03\u7528\u6b21\u6570\u7684\u7edf\u8ba1 \u8bb0\u5f55\u4e0b\u6765\u76f8\u5173\u4fe1\u606f \u9879\u76ee\u540d\u79f0\uff1a\u6e56\u5357\u65fa\u65fa \u9879\u76eeID:2HKR2MC5WM API-KEY:885d8b06871b445fbc1beb2eda11cd6c \u5f00\u53d1\u8005ID:Q137B51456 API-Host\uff1and4up3fy3t.re.qweatherapi.com \u67e5\u8be2\u57ce\u5e02\u533a\u57df\u4ee3\u7801\u7684\u7684\u5740\uff1a git clone https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u914d\u7f6e\u53c2\u8003 \u00b6 \u6253\u5f00\u7684\u914d\u7f6e\u6587\u4ef6 configuration.yaml \uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a weather: - platform: heweather location: 101210301 # \u4f60\u7684\u533a\u57df\u4ee3\u7801\u57ce\u5e02id host: nd4up3fy3t.re.qweatherapi.com # API Host key: 885d8b06871b445fbc1beb2eda11cd6c # \u4f60\u7684API KEY \u5176\u4e2d\uff0c\u8981\u66f4\u6362\u7684\u5185\u5bb9\u4e3b\u8981\u6709\uff0c\u533a\u57df\u4ee3\u7801\u57ce\u5e02id\u3001API Host\u548cAPI KEY\u3002 \u5982\u4e0b\u56fe \u83b7\u53d6\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\u7684\u65b9\u6cd5 \u00b6 \u8fd9\u91cc\u4e00\u5b9a\u8981\u914d\u5bf9\u6b63\u786e\u7684\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\uff0c\u5426\u5219\u4f1a\u62a5\u7684\u5929\u6c14\u4e0d\u51c6\u3002 \u53ef\u4ee5\u901a\u8fc7\u6b64\u6587\u6863\u63d0\u4f9b\u7684API\uff0c\u67e5\u8be2 https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u5176\u4e2d: X-QW-Api-Key \u4e3a\u4f60\u7684API\u5bc6\u94a5\u3002 location \u4e3a\u4f60\u8981\u67e5\u8be2\u7684\u57ce\u5e02\u540d\u79f0\u62fc\u97f3. curl -H \"X-QW-Api-Key: 885d8b06871b445fbc1beb2eda11cd6c\" --compressed \\ 'https://nd4up3fy3t.re.qweatherapi.com/geo/v2/city/lookup?location=changsha' \u5982\u4e0b\u56fe\u6240\u793a","title":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#ha","text":"","title":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_1","text":"\u548c\u98ce\u5929\u6c14\u662f\u4e00\u4e2a\u63d0\u4f9b\u5929\u6c14\u4fe1\u606f\u7684API\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u96c6\u6210\u5230Home Assistant\u4e2d\u3002","title":"\u548c\u98ce\u5929\u6c14\u7b80\u4ecb"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_2","text":"\u5728Home Assistant\u4e2d\u5b89\u88c5\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u3002 \u914d\u7f6e\u548c\u98ce\u5929\u6c14API\u5bc6\u94a5\u3002 \u5728\u81ea\u52a8\u5316\u4e2d\u4f7f\u7528\u548c\u98ce\u5929\u6c14\u63d0\u4f9b\u7684\u5929\u6c14\u6570\u636e\u3002","title":"\u96c6\u6210\u6b65\u9aa4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_3","text":"\u767b\u5f55\u548c\u98ce\u5929\u6c14\u63a7\u5236\u53f0\uff0chttps://console.qweather.com/project?lang=zh \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5148\u4e3a\u6b64\u4e2d\u5fc3\u521b\u5efa\u4e00\u4e2a\u9879\u76ee\uff0c\u4e3a\u7684\u662f\u4e3a\u6bcf\u4e2a\u4e2d\u5fc3\u4f7f\u7528\u7684api\u8c03\u7528\u6b21\u6570\u7684\u7edf\u8ba1 \u8bb0\u5f55\u4e0b\u6765\u76f8\u5173\u4fe1\u606f \u9879\u76ee\u540d\u79f0\uff1a\u6e56\u5357\u65fa\u65fa \u9879\u76eeID:2HKR2MC5WM API-KEY:885d8b06871b445fbc1beb2eda11cd6c \u5f00\u53d1\u8005ID:Q137B51456 API-Host\uff1and4up3fy3t.re.qweatherapi.com \u67e5\u8be2\u57ce\u5e02\u533a\u57df\u4ee3\u7801\u7684\u7684\u5740\uff1a git clone https://github.com/qwd/LocationList.git.com/docs/api/geoapi/","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_4","text":"\u6253\u5f00\u7684\u914d\u7f6e\u6587\u4ef6 configuration.yaml \uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a weather: - platform: heweather location: 101210301 # \u4f60\u7684\u533a\u57df\u4ee3\u7801\u57ce\u5e02id host: nd4up3fy3t.re.qweatherapi.com # API Host key: 885d8b06871b445fbc1beb2eda11cd6c # \u4f60\u7684API KEY \u5176\u4e2d\uff0c\u8981\u66f4\u6362\u7684\u5185\u5bb9\u4e3b\u8981\u6709\uff0c\u533a\u57df\u4ee3\u7801\u57ce\u5e02id\u3001API Host\u548cAPI KEY\u3002 \u5982\u4e0b\u56fe","title":"\u914d\u7f6e\u53c2\u8003"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#id","text":"\u8fd9\u91cc\u4e00\u5b9a\u8981\u914d\u5bf9\u6b63\u786e\u7684\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\uff0c\u5426\u5219\u4f1a\u62a5\u7684\u5929\u6c14\u4e0d\u51c6\u3002 \u53ef\u4ee5\u901a\u8fc7\u6b64\u6587\u6863\u63d0\u4f9b\u7684API\uff0c\u67e5\u8be2 https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u5176\u4e2d: X-QW-Api-Key \u4e3a\u4f60\u7684API\u5bc6\u94a5\u3002 location \u4e3a\u4f60\u8981\u67e5\u8be2\u7684\u57ce\u5e02\u540d\u79f0\u62fc\u97f3. curl -H \"X-QW-Api-Key: 885d8b06871b445fbc1beb2eda11cd6c\" --compressed \\ 'https://nd4up3fy3t.re.qweatherapi.com/geo/v2/city/lookup?location=changsha' \u5982\u4e0b\u56fe\u6240\u793a","title":"\u83b7\u53d6\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\u7684\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/","text":"\u4eba\u5b58\u5728\u4f20\u611f\u5668-\u5982\u5395\u98ce\u9669\u63d0\u793a\u914d\u7f6e\u65b9\u6cd5 \u00b6 \u4eba\u5458\u611f\u5e94\u5668\u5361\u7247\u4ee3\u7801\u751f\u6210\u5668 \u5148\u627e\u51fa\u8981\u914d\u7f6e\u7684\u4f20\u611f\u5668\u7684\u5b9e\u4f53ID \u00b6 \u4e0b\u9762\u4ee5\u5927\u8fde\u7684\u8fd9\u4e2a\u4eba\u5b58\u5728\u4f20\u611f\u566801\u4e3a\u4f8b\uff1a \u4eba\u5b58\u5728\u4f20\u611f\u566801 \u5149\u7167\u5ea6\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005 \u65e0\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082 \u6709\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081 \u5b58\u5728\u4f20\u611f\u5668 \u6709\u4eba\u65e0\u4eba \u72b6\u6001\u662f\u5426\u89e6\u53d1 sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078 \u4eea\u8868\u76d8\u914d\u7f6e \u00b6 \u5728\u4eea\u8868\u76d8\uff0c\u76f8\u5e94\u4f4d\u7f6e\uff0c\u65b0\u5efa\u7ec4\u4ef6\uff0c\u8fdb\u5165\u4ee3\u7801\u7f16\u8f91\uff0c\u8d34\u5165\u5982\u4e0b\u683c\u5f0f\u7684YAML\u5185\u5bb9: type : markdown content : > 1\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u533b\u7528\u536b\u751f\u95f4 type : markdown content : > \u533b\u62a4\u536b\u751f\u95f4{% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e8c\u53f7\u536b\u751f\u95f4 type : markdown content : > 2\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e09\u53f7\u536b\u751f\u95f4 type : markdown content : > \u7537\u536b{% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3","title":"\u5982\u5395\u98ce\u9669-\u4eba\u5b58\u5728\u4f20\u611f\u5668\u914d\u7f6e\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#-","text":"\u4eba\u5458\u611f\u5e94\u5668\u5361\u7247\u4ee3\u7801\u751f\u6210\u5668","title":"\u4eba\u5b58\u5728\u4f20\u611f\u5668-\u5982\u5395\u98ce\u9669\u63d0\u793a\u914d\u7f6e\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#id","text":"\u4e0b\u9762\u4ee5\u5927\u8fde\u7684\u8fd9\u4e2a\u4eba\u5b58\u5728\u4f20\u611f\u566801\u4e3a\u4f8b\uff1a \u4eba\u5b58\u5728\u4f20\u611f\u566801 \u5149\u7167\u5ea6\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005 \u65e0\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082 \u6709\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081 \u5b58\u5728\u4f20\u611f\u5668 \u6709\u4eba\u65e0\u4eba \u72b6\u6001\u662f\u5426\u89e6\u53d1 sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078","title":"\u5148\u627e\u51fa\u8981\u914d\u7f6e\u7684\u4f20\u611f\u5668\u7684\u5b9e\u4f53ID"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#_1","text":"\u5728\u4eea\u8868\u76d8\uff0c\u76f8\u5e94\u4f4d\u7f6e\uff0c\u65b0\u5efa\u7ec4\u4ef6\uff0c\u8fdb\u5165\u4ee3\u7801\u7f16\u8f91\uff0c\u8d34\u5165\u5982\u4e0b\u683c\u5f0f\u7684YAML\u5185\u5bb9: type : markdown content : > 1\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u533b\u7528\u536b\u751f\u95f4 type : markdown content : > \u533b\u62a4\u536b\u751f\u95f4{% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e8c\u53f7\u536b\u751f\u95f4 type : markdown content : > 2\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e09\u53f7\u536b\u751f\u95f4 type : markdown content : > \u7537\u536b{% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3","title":"\u4eea\u8868\u76d8\u914d\u7f6e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/","text":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e \u00b6 pre, code { white-space: pre-wrap; word-break: break-all; } \u4e00\u3001\u7b80\u4ecb \u00b6 \u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u670d\u52a1\u201d\uff09\u63d0\u4f9b\u9ad8\u8d28\u91cf\u7684\u6587\u672c\u8f6c\u8bed\u97f3\uff08TTS\uff09\u548c\u8bed\u97f3\u8f6c\u6587\u672c\uff08ASR\uff09\u529f\u80fd\u3002\u4e3a\u4e86\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u90e8\u7f72\u548c\u4f7f\u7528\u8be5\u670d\u52a1\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u57fa\u4e8eDocker\u7684\u90e8\u7f72\u65b9\u6848\u3002\u672c\u6587\u6863\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Docker\u90e8\u7f72\u8be5\u670d\u52a1\u3002 \u672c\u6587\u63d0\u4f9b\u7684\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff0c\u662f\u57fa\u4e8epaddlespeech\u5f00\u53d1\u7684TTS\u548cASR\u670d\u52a1(\u7eafCPU\u670d\u52a1)\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Docker\u5feb\u901f\u90e8\u7f72\u5e76\u4f7f\u7528\u8be5\u670d\u52a1\u3002 \u4e8c\u3001\u73af\u5883\u51c6\u5907 \u00b6 \u5728\u5f00\u59cb\u90e8\u7f72\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u73af\u5883\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a 1. \u5df2\u5b89\u88c5Docker\u548cDocker Compose\u3002 2. \u5177\u5907\u4e00\u5b9a\u7684Linux\u547d\u4ee4\u884c\u64cd\u4f5c\u57fa\u7840\u3002 3. \u786e\u4fdd\u60a8\u7684\u670d\u52a1\u5668\u5177\u5907\u8db3\u591f\u7684\u8ba1\u7b97\u8d44\u6e90\uff08CPU\u3001\u5185\u5b58\u3001GPU\u7b49\uff09\u3002 \u4e09\u3001\u83b7\u53d6Docker\u955c\u50cf \u00b6 \u6211\u4eec\u63d0\u4f9b\u4e86\u9884\u6784\u5efa\u7684Docker\u955c\u50cf\uff0c\u5730\u5740\u4f4d\u4e8e\u4e03\u725b\u4e91\uff0c \u4e0b\u8f7d\u5730\u5740 \u4e3a\uff1a https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/paddlespeech.tar \u56db\u3001\u5728\u7ebf\u90e8\u7f72\u6b65\u9aa4 \u00b6 \u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c \u00b6 curl -fsSL https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/install-paddlespeech.sh | sudo bash \u5982\u4e0b\u56fe\u6240\u793a: \u00b6 \u9996\u6b21\u8fd0\u884c \u00b6 \u4f7f\u7528TTS\u6216asr\u670d\u52a1\uff0c\u9996\u6b21\u8fd0\u884c\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\uff0c\u6a21\u578b\u6587\u4ef6\u8f83\u5927, \u4e0b\u8f7d\u8fc7\u7a0b\u7ea6\u970010\u5206\u949f \uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u5982\u4e0b\u6240\u793a \u00b6 \u6211\u4eec\u53ef\u4ee5\u5982\u7528\u4e0b\u547d\u4ee4\u5b9e\u65f6\u67e5\u770b\u8fd0\u884c\u65e5\u5fd7: docker logs -f paddlespeech TTS\u6a21\u578b\u9996\u6b21\u4f7f\u7528\u65f6\u4f8d\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u542f\u52a8\u670d\u52a1\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 Asr\u6a21\u578b\u9996\u6b21\u4f7f\u7528\u65f6\u4f8d\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea61G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u542f\u52a8\u670d\u52a1\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 \u4e94\u3001\u79bb\u7ebf\u90e8\u7f72\u6b65\u9aa4 \u00b6 \u79bb\u7ebf\u90e8\u7f72\u7684\u76f8\u5173\u6587\u4ef6\u4e0b\u8f7d\u5730\u5740 \u00b6 Docker\u955c\u50cf\u6587\u4ef6: \u4e0b\u8f7d\u5730\u5740 \u6570\u636e\u5377\u6587\u4ef6: \u4ee5\u4e0b\u6587\u4ef6\u8981\u4e0b\u8f7d\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u4e34\u65f6\u8ba4\u7f6e\u7684\u76ee\u5f55,\u4e0einstall-paddlespeech-localh.sh\u6240\u5728\u76ee\u5f55\u540c\u7ea7\u7684\u5b50\u76ee\u5f55data\u76ee\u5f55\u4e0b home_dtuser_opt_paddlespeech_data_logs.tar.gz home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz home_dtuser_opt_paddlespeech_data_output.tar.gz home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u79bb\u7ebf\u5b89\u88c5\u811a\u672c: \u4e0b\u8f7d\u5730\u5740 \u6d4b\u8bd5\u6f14\u793a\u4f7f\u7528\u7f51\u9875: \u4e0b\u8f7d\u5730\u5740 \u79bb\u7ebf\u5b89\u88c5\u5305\u5206\u4e24\u90e8\u4efd\uff0c\u4e00\u90e8\u4efd\u662f\u5bb9\u5668\u955c\u50cf\uff0c\u4e00\u90e8\u4efd\u662f\u6570\u636e\u5377\u6587\u4ef6\uff0c\u5b89\u88c5\u542f\u52a8\u5bb9\u5668\u524d\u5148\u66ff\u6362\u5bf9\u636e\u5377\u7ed1\u5b9a\u7684\u76ee\u5f55\uff0c\u8fd9\u6837\u5bb9\u5668\u542f\u52a8\u540e\u65e0\u987b\u4e0b\u8f7d\u6a21\u578b\uff0c\u53ef\u4ee5\u5728\u65e0\u4e92\u8054\u7f51\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528 1. \u4e0b\u8f7dDocker\u955c\u50cf\u4e0e\u6570\u636e\u5377\u6587\u4ef6 \u00b6 \u5982\u4e0b\u793a\u4f8b\uff0c\u6211\u4eec\u5c06\u6587\u4ef6\u653e\u5230\u7528\u6237\u76ee\u5f55\u7684down\u4e0b,\u8bf7\u4fdd\u6301\u76f8\u5e94\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls data install-paddlespeech-localh.sh tst@tst-VMware-Virtual-Platform:~/down$ tree . \u251c\u2500\u2500 data \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_logs.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_output.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u2502 \u2514\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u2514\u2500\u2500 install-paddlespeech-localh.sh 2 directories, 7 files 2. \u7ed9\u8fd0\u884c\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650 \u00b6 chmod +x install-paddlespeech-localh.sh 3. \u6267\u884c\u5b89\u88c5\u811a\u672c \u00b6 sudo ./install-paddlespeech-localh.sh \u6309\u88c5\u811a\u672c\u5c06\u4f1a\u5148\u89e3\u538b\u6587\u4ef6\uff0c\u5e76\u52a0\u8f7ddocker\u955c\u50cf\uff0c\u7136\u540e\u542f\u52a8\u5bb9\u5668\uff0c\u542f\u52a8\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528docker ps\u547d\u4ee4\u67e5\u770b\u8fd0\u884c\u72b6\u6001\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-paddlespeech-localh.sh [ INFO ] \u5f00\u59cb PaddleSpeech \u79bb\u7ebf\u5b89\u88c5... [ SUCCESS ] \u78c1\u76d8\u7a7a\u95f4\u68c0\u67e5\u901a\u8fc7\uff0855GB\uff09 [ INFO ] \u68c0\u6d4b\u7f51\u7edc\u8fde\u63a5... [ SUCCESS ] \u7f51\u7edc\u8fde\u63a5\u6b63\u5e38 [ INFO ] \u521b\u5efa\u76ee\u5f55\u7ed3\u6784... [ SUCCESS ] \u76ee\u5f55\u7ed3\u6784\u521b\u5efa\u5b8c\u6210 [ INFO ] \u89e3\u538b\u6570\u636e\u5377... [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_logs.tar.gz \u5230 /dt_opt/paddlespeech/data/logs ./ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u5230 /dt_opt/paddlespeech/data/nltk_data ./ ./taggers/ ./taggers/averaged_perceptron_tagger/ ./taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle ./taggers/averaged_perceptron_tagger.zip ./corpora/ ./corpora/cmudict/ ./corpora/cmudict/cmudict ./corpora/cmudict/README ./corpora/cmudict.zip [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_output.tar.gz \u5230 /dt_opt/paddlespeech/data/output ./ ./2753d658-b228-4ae6-94fc-3404a41f4526.wav ./9f24d71e-9f29-4d60-aa13-677fd19bba46.wav ./38ea94c6-e19b-4e41-8cca-454d8e374a15.wav ./d44aa891-c36b-473f-aef3-44484f0cd74b.wav ./c5ef53d3-502b-4f81-9fdd-583836ba7096.wav ./3931cd47-e022-4385-b588-4a61e64e5eed.wav ./1d213380-eee6-43ba-88db-99ba9b5609df.wav ./c85f65de-a4c1-43aa-a251-52ce4e9df271.wav ./7cd5fc65-665b-444c-9c9f-41f1ce8036f8.wav ./f74dbda7-1cf8-4056-bd30-523b74af8b0e.wav [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlenlp_models ./ ./packages/ ./models/ ./models/bert-base-chinese/ ./models/bert-base-chinese/bert-base-chinese-vocab.txt ./models/bert-base-chinese/tokenizer_config.json ./models/bert-base-chinese/vocab.txt ./models/bert-base-chinese/special_tokens_map.json ./models/embeddings/ ./models/.locks/ ./models/.locks/bert-base-chinese/ ./datasets/ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlespeech_models ./ ./conf/ ./conf/cache.yaml ./models/ ./models/G2PWModel_1.1/ ./models/G2PWModel_1.1/config.py ./models/G2PWModel_1.1/MONOPHONIC_CHARS.txt ./models/G2PWModel_1.1/__pycache__/ ./models/G2PWModel_1.1/__pycache__/config.cpython-39.pyc ./models/G2PWModel_1.1/__pycache__/config.cpython-310.pyc ./models/G2PWModel_1.1/record.log ./models/G2PWModel_1.1/bopomofo_to_pinyin_wo_tune_dict.json ./models/G2PWModel_1.1/POLYPHONIC_CHARS.txt ./models/G2PWModel_1.1/char_bopomofo_dict.json ./models/G2PWModel_1.1/g2pW.onnx ./models/G2PWModel_1.1/version ./models/G2PWModel_1.1.zip ./models/conformer_wenetspeech-zh-16k/ ./models/conformer_wenetspeech-zh-16k/1.0/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/preprocess.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/decode.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer_infer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/vocab.txt ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/mean_std.json ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/model.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/wenetspeech.pdparams ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar.gz ./models/fastspeech2_csmsc-zh/ ./models/fastspeech2_csmsc-zh/1.0/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4.zip ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_76000.pdz ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/default.yaml ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/pitch_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/energy_stats.npy ./models/hifigan_csmsc-zh/ ./models/hifigan_csmsc-zh/1.0/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1.zip ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/default.yaml ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/snapshot_iter_2500000.pdz ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/feats_stats.npy ./datasets/ [ SUCCESS ] \u6570\u636e\u5377\u89e3\u538b\u5b8c\u6210 [ INFO ] \u89e3\u538b\u955c\u50cf\u5305... [ SUCCESS ] \u955c\u50cf\u5305\u5df2\u79fb\u52a8\u5230 /dt_opt/paddlespeech/images [ INFO ] \u52a0\u8f7dDocker\u955c\u50cf... daf557c4f08e: Loading layer [================================================== > ] 81 .04MB/81.04MB d593918d433d: Loading layer [================================================== > ] 4 .123MB/4.123MB 7c4cff21e743: Loading layer [================================================== > ] 41 .36MB/41.36MB 25f6bb353e99: Loading layer [================================================== > ] 5 .12kB/5.12kB bc3a46414f17: Loading layer [================================================== > ] 1 .536kB/1.536kB 8fc7185920f1: Loading layer [================================================== > ] 3 .584kB/3.584kB bac2a7f893df: Loading layer [================================================== > ] 847MB/847MB 092bab498a3d: Loading layer [================================================== > ] 13 .31MB/13.31MB 19db93cce63e: Loading layer [================================================== > ] 2 .56kB/2.56kB 2fc7499dded4: Loading layer [================================================== > ] 3 .042GB/3.042GB 7da6b60d7eb7: Loading layer [================================================== > ] 2 .53MB/2.53MB 057242764992 : Loading layer [================================================== > ] 8 .704kB/8.704kB 9a996f3d539d: Loading layer [================================================== > ] 3 .072kB/3.072kB 4cdf0570391d: Loading layer [================================================== > ] 104 .2MB/104.2MB Loaded image: dt_iot/paddlespeech:latest [ SUCCESS ] \u955c\u50cf\u52a0\u8f7d\u6210\u529f [ INFO ] \u751f\u6210docker-compose.yaml... [ SUCCESS ] docker-compose.yaml\u521b\u5efa\u5b8c\u6210 [ INFO ] \u542f\u52a8\u5bb9\u5668... [ + ] Running 2 /2 \u2714 Network dtnet Created 0 .5s \u2714 Container paddlespeech Started 4 .6s [ SUCCESS ] \u5bb9\u5668\u542f\u52a8\u6210\u529f [ SUCCESS ] PaddleSpeech \u79bb\u7ebf\u5b89\u88c5\u5b8c\u6210\uff01 4. \u67e5\u770b\u5bb9\u5668\u8fd0\u884c\u72b6\u6001 \u00b6 docker ps 5. \u5b9e\u65f6\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7 \u00b6 docker logs -f paddlespeech 6. \u7ba1\u7406\u5bb9\u5668 \u00b6 \u8fdb\u5165\u5bb9\u5668\u5668\u7684\u90e8\u7f72\u76ee\u5f55\uff1a /dt_opt/paddlespeech docker ps up -d # \u542f\u52a8\u5bb9\u5668 docker ps down # \u505c\u6b62\u5bb9\u5668 docker ps restart # \u91cd\u542f\u5bb9\u5668 docker ps logs -f paddlespeech # \u5b9e\u65f6\u67e5\u770b\u65e5\u5fd7 docker ps exec -it paddlespeech /bin/bash # \u8fdb\u5165\u5bb9\u5668 docker ps rm -f paddlespeech # \u5220\u9664\u5bb9\u5668 docker rmi dt_iot/paddlespeech:latest # \u5220\u9664\u955c\u50cf docker volume rm paddlespeech_data # \u5220\u9664\u6570\u636e\u5377 docker network rm dtnet # \u5220\u9664\u7f51\u7edc docker system prune -a # \u6e05\u7406\u65e0\u7528\u7684\u955c\u50cf\u3001\u5bb9\u5668\u3001\u6570\u636e\u5377\u3001\u7f51\u7edc\u7b49 \u4ee5\u4e0a\u662f\u5e38\u7528\u547d\u4ee4\uff0c\u4f7f\u7528\u65f6\u6839\u636e\u9700\u8981\u7075\u6d3b\u4f7f\u7528\u3002 7. \u8c03\u6574\u7aef\u53e3 \u00b6 \u627e\u5230\u6587\u4ef6 /dt_opt/paddlespeech/docker-compose.yaml \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u5982\u4e0b\u6240\u793a\uff1a \u66f4\u6539\u7b2c\u4e00\u4e2a\u7aef\u53e3\u4e3a\u9700\u8981\u7684\u7aef\u53e3\u53f7\u5373\u53ef\uff0c\u5982\u4e0b\u6240\u793a: docker-compse down sudo nano ./docker-compose.yaml # \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u7b2c6\u884c # - \"8001:8001\" # \u4fdd\u5b58\u9000\u51fa\uff0c\u91cd\u542f\u5bb9\u5668\u5373\u53ef\u751f\u6548 docker-compose up -d \u516d\u3001\u4f7f\u7528\u8bf4\u660e \u00b6 \u4e3a\u4e86\u65b9\u4fbf\u7684\u6f14\u793a\u5982\u4f55\u8c03\u7528\u8fd9\u4e2aapi\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u7f51\u9875, \u4e0b\u8f7d\u5730\u5740 \u4e3a: https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/tts_demo.zip 1. \u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u670d\u52a1 \u00b6 curl\u793a\u4f8b \u00b6 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/tts \\ --header 'content-type: application/x-www-form-urlencoded' \\ --data 'text=\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' \\ --data lang=zh \\ --data spk_id=0 HTTTP API\u8bf4\u660e \u00b6 POST /tts HTTP / 1.1 Content-Type : application/x-www-form-urlencoded Host : ikuai.m-iot.tech:58150 Content-Length : 103 text = %E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5 & lang = zh & spk_id = 0 Java \u793a\u4f8b \u00b6 //asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/tts\" ) . setHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . setBody ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); //nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/tts\" )) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); //okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"application/x-www-form-urlencoded\" ); RequestBody body = RequestBody . create ( mediaType , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/tts\" ) . post ( body ) . addHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . build (); Response response = client . newCall ( request ). execute (); //unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/tts\" ) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . body ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . asString (); javaScript \u793a\u4f8b \u00b6 //Xhr const data = 'text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0' ; const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/tts' ); xhr . setRequestHeader ( 'content-type' , 'application/x-www-form-urlencoded' ); xhr . send ( data ); //Axios import axios from 'axios' ; const encodedParams = new URLSearchParams (); encodedParams . set ( 'text' , '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' ); encodedParams . set ( 'lang' , 'zh' ); encodedParams . set ( 'spk_id' , '0' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/tts' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : encodedParams , }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } //Fetch const url = 'http://ikuai.m-iot.tech:58150/tts' ; const options = { method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, body : new URLSearchParams ({ text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' }) }; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //JQuery const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/tts' , method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : { text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' } }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); }); C# \u793a\u4f8b \u00b6 //httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/tts\" ), Content = new FormUrlEncodedContent ( new Dictionary < string , string > { { \"text\" , \"\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5\" }, { \"lang\" , \"zh\" }, { \"spk_id\" , \"0\" }, }), }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/tts\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ); request . AddParameter ( \"application/x-www-form-urlencoded\" , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" , ParameterType . RequestBody ); var response = client . Execute ( request ); go \u793a\u4f8b \u00b6 package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/tts\" payload := strings . NewReader ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"application/x-www-form-urlencoded\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) } \u8fd4\u56de\u7ed3\u679c \u00b6 Preparing request to http://ikuai.m-iot.tech:58150/tts Current time is 2025-09-21T07:49:17.236Z POST http://ikuai.m-iot.tech:58150/tts Accept: application/json, text/plain, */* Content-Type: application/x-www-form-urlencoded User-Agent: bruno-runtime/2.3.0 text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0 SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 07:49:18 GMT server: uvicorn content-type: audio/wav content-disposition: attachment; filename=\"7b41c15b-e0a4-4ba5-aeb1-ceff058c90e6.wav\" content-length: 89444 last-modified: Sun, 21 Sep 2025 07:49:20 GMT etag: d85eaa2cadf7182ac9b54763e6a97e2c request-duration: 2224 Request completed in 2224 ms 2. \u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u670d\u52a1 \u00b6 \u4e0a\u4f20\u6587\u4ef6\u8c03\u7528\u793a\u4f8b \u00b6 curl\u793a\u4f8b \u00b6 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \\ --form format=wav \\ --form sample_rate=16000 \u76f4\u63a5\u4e0a\u4f20\u6587\u4ef6\uff0c\u6587\u4ef6\u683c\u5f0f\u652f\u6301wav\u3001m4a\u3001mp3\u7b49\u5e38\u89c1\u97f3\u9891\u683c\u5f0f\uff0c\u670d\u52a1\u7aef\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3awav\u683c\u5f0f\u8fdb\u884c\u8bc6\u522b\u3002 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \u4f20\u5165\u53c2\u6570\u53ef\u4ee5\u53ea\u6709file\u4e0elang\u8fd9\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u5b83\u53c2\u6570\uff0c\u53ef\u4ee5\u5ffd\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a HTTP \u793a\u4f8b\u8bf4\u660e \u00b6 POST /asr HTTP / 1.1 Content-Type : multipart/form-data; boundary=---011000010111000001101001 Host : ikuai.m-iot.tech:58150 Content-Length : 239 -----011000010111000001101001 Content-Disposition: form-data; name=\"file\" C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a -----011000010111000001101001 Content-Disposition: form-data; name=\"lang\" zh -----011000010111000001101001-- java \u793a\u4f8b \u00b6 // asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString (); javascript \u793a\u4f8b \u00b6 //xhr const data = new FormData (); data . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); data . append ( 'lang' , 'zh' ); const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/asr' ); xhr . send ( data ); // Axios import axios from 'axios' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/asr' , headers : { 'content-type' : 'multipart/form-data; boundary=---011000010111000001101001' }, data : '[form]' }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } // fetch const url = 'http://ikuai.m-iot.tech:58150/asr' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' }; options . body = form ; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //jquery const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/asr' , method : 'POST' , headers : {}, processData : false , contentType : false , mimeType : 'multipart/form-data' , data : form }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); }); C# \u793a\u4f8b \u00b6 //httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/asr\" ), Content = new MultipartFormDataContent { new StringContent ([ \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" ]) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"file\" , FileName = \"C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a\" , } } }, new StringContent ( \"zh\" ) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"lang\" , } } }, }, }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //Restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/asr\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ); request . AddParameter ( \"multipart/form-data; boundary=---011000010111000001101001\" , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" , ParameterType . RequestBody ); var response = client . Execute ( request ); go \u793a\u4f8b \u00b6 package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/asr\" payload := strings . NewReader ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) } java \u793a\u4f8b \u00b6 // asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString (); \u8fd4\u56de\u7ed3\u679c \u00b6 { \"result\" : \"\u5582\u8bed\u97f3\u6d4b\u8bd5\u8bed\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\" , \"file_size\" : 185334 , \"wav_info\" : { \"n_channels\" : 1 , \"sample_width\" : 2 , \"framerate\" : 16000 , \"n_frames\" : 115029 , \"duration\" : 7.1893125 }, \"ffmpeg_log\" : \"\" } body { \"_overheadLength\" : 252 , \"_valueLength\" : 2 , \"_valuesToMeasure\" : [ { \"fd\" : null , \"path\" : \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" , \"flags\" : \"r\" , \"mode\" : 438 , \"end\" : null , \"bytesRead\" : 0 , \"_events\" : {}, \"_readableState\" : { \"highWaterMark\" : 65536 , \"buffer\" : [], \"bufferIndex\" : 0 , \"length\" : 0 , \"pipes\" : [], \"awaitDrainWriters\" : null }, \"_eventsCount\" : 3 } ], \"writable\" : false , \"readable\" : true , \"dataSize\" : 0 , \"maxDataSize\" : 2097152 , \"pauseStreams\" : true , \"_released\" : false , \"_streams\" : [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\" , { \"source\" : \"[Circular]\" , \"dataSize\" : 0 , \"maxDataSize\" : null , \"pauseStream\" : true , \"_maxDataSizeExceeded\" : false , \"_released\" : false , \"_bufferedEvents\" : [ { \"0\" : \"pause\" } ], \"_events\" : {}, \"_eventsCount\" : 1 }, null , \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\" , \"zh\" , null ], \"_currentStream\" : null , \"_insideLoop\" : false , \"_pendingNext\" : false , \"_boundary\" : \"--------------------------147555471668548578107544\" } ***Network Logs *** Preparing request to http://ikuai.m-iot.tech:58150/asr Current time is 2025-09-21T08:22:20.590Z POST http://ikuai.m-iot.tech:58150/asr Accept: application/json, text/plain, */* Content-Type: multipart/form-data; boundary=--------------------------147555471668548578107544 User-Agent: bruno-runtime/2.3.0 { \"_overheadLength\": 252, \"_valueLength\": 2, \"_valuesToMeasure\": [ { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 } ], \"writable\": false, \"readable\": true, \"dataSize\": 0, \"maxDataSize\": 2097152, \"pauseStreams\": true, \"_released\": false, \"_streams\": [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\", { \"source\": { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 }, \"dataSize\": 0, \"maxDataSize\": null, \"pauseStream\": true, \"_maxDataSizeExceeded\": false, \"_released\": false, \"_bufferedEvents\": [ { \"0\": \"pause\" } ], \"_events\": {}, \"_eventsCount\": 1 }, null, \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\", \"zh\", null ], \"_currentStream\": null, \"_insideLoop\": false, \"_pendingNext\": false, \"_boundary\": \"--------------------------147555471668548578107544\" } SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 08:22:21 GMT server: uvicorn content-length: 201 content-type: application/json request-duration: 6989 Request completed in 6989 ms \u6d4f\u89c8\u5668\u5f55\u97f3\u8bc6\u522b\u793a\u4f8b \u00b6 \u8bf4\u660e paddlespeech\u4e2d\u7528\u7684\u4e00\u4e2a\u5e93\u6709\u53ef\u80fd\u662f\u5355\u7ebf\u7a0b\u7684\uff0c\u6240\u4ee5\u5728\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u54cd\u5e94\u53d8\u6162\u7684\u60c5\u51b5\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u5b9e\u4f8b\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002 \u5b9e\u9645\u4f7f\u7528\u65f6,\u5982\u679c\u60f3\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u66f4\u6539\u73af\u5883\u53d8\u91cf\u4e2d\u7684PYTHONUNBUFFFERED=4,\u6216\u66f4\u9ad8\u4e00\u4e2a\u9002\u5408\u7684\u6570\u5b57\uff0c\u6765\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\u3002 \u300a\u5b8c\u300b","title":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#docker-","text":"pre, code { white-space: pre-wrap; word-break: break-all; }","title":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_1","text":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u670d\u52a1\u201d\uff09\u63d0\u4f9b\u9ad8\u8d28\u91cf\u7684\u6587\u672c\u8f6c\u8bed\u97f3\uff08TTS\uff09\u548c\u8bed\u97f3\u8f6c\u6587\u672c\uff08ASR\uff09\u529f\u80fd\u3002\u4e3a\u4e86\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u90e8\u7f72\u548c\u4f7f\u7528\u8be5\u670d\u52a1\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u57fa\u4e8eDocker\u7684\u90e8\u7f72\u65b9\u6848\u3002\u672c\u6587\u6863\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Docker\u90e8\u7f72\u8be5\u670d\u52a1\u3002 \u672c\u6587\u63d0\u4f9b\u7684\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff0c\u662f\u57fa\u4e8epaddlespeech\u5f00\u53d1\u7684TTS\u548cASR\u670d\u52a1(\u7eafCPU\u670d\u52a1)\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Docker\u5feb\u901f\u90e8\u7f72\u5e76\u4f7f\u7528\u8be5\u670d\u52a1\u3002","title":"\u4e00\u3001\u7b80\u4ecb"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_2","text":"\u5728\u5f00\u59cb\u90e8\u7f72\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u73af\u5883\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a 1. \u5df2\u5b89\u88c5Docker\u548cDocker Compose\u3002 2. \u5177\u5907\u4e00\u5b9a\u7684Linux\u547d\u4ee4\u884c\u64cd\u4f5c\u57fa\u7840\u3002 3. \u786e\u4fdd\u60a8\u7684\u670d\u52a1\u5668\u5177\u5907\u8db3\u591f\u7684\u8ba1\u7b97\u8d44\u6e90\uff08CPU\u3001\u5185\u5b58\u3001GPU\u7b49\uff09\u3002","title":"\u4e8c\u3001\u73af\u5883\u51c6\u5907"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#docker","text":"\u6211\u4eec\u63d0\u4f9b\u4e86\u9884\u6784\u5efa\u7684Docker\u955c\u50cf\uff0c\u5730\u5740\u4f4d\u4e8e\u4e03\u725b\u4e91\uff0c \u4e0b\u8f7d\u5730\u5740 \u4e3a\uff1a https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/paddlespeech.tar","title":"\u4e09\u3001\u83b7\u53d6Docker\u955c\u50cf"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_3","text":"","title":"\u56db\u3001\u5728\u7ebf\u90e8\u7f72\u6b65\u9aa4"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_4","text":"curl -fsSL https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/install-paddlespeech.sh | sudo bash","title":"\u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_5","text":"","title":"\u5982\u4e0b\u56fe\u6240\u793a:"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_6","text":"\u4f7f\u7528TTS\u6216asr\u670d\u52a1\uff0c\u9996\u6b21\u8fd0\u884c\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\uff0c\u6a21\u578b\u6587\u4ef6\u8f83\u5927, \u4e0b\u8f7d\u8fc7\u7a0b\u7ea6\u970010\u5206\u949f \uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002","title":"\u9996\u6b21\u8fd0\u884c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_7","text":"\u6211\u4eec\u53ef\u4ee5\u5982\u7528\u4e0b\u547d\u4ee4\u5b9e\u65f6\u67e5\u770b\u8fd0\u884c\u65e5\u5fd7: docker logs -f paddlespeech TTS\u6a21\u578b\u9996\u6b21\u4f7f\u7528\u65f6\u4f8d\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u542f\u52a8\u670d\u52a1\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 Asr\u6a21\u578b\u9996\u6b21\u4f7f\u7528\u65f6\u4f8d\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea61G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u542f\u52a8\u670d\u52a1\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002","title":"\u5982\u4e0b\u6240\u793a"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_8","text":"","title":"\u4e94\u3001\u79bb\u7ebf\u90e8\u7f72\u6b65\u9aa4"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_9","text":"Docker\u955c\u50cf\u6587\u4ef6: \u4e0b\u8f7d\u5730\u5740 \u6570\u636e\u5377\u6587\u4ef6: \u4ee5\u4e0b\u6587\u4ef6\u8981\u4e0b\u8f7d\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u4e34\u65f6\u8ba4\u7f6e\u7684\u76ee\u5f55,\u4e0einstall-paddlespeech-localh.sh\u6240\u5728\u76ee\u5f55\u540c\u7ea7\u7684\u5b50\u76ee\u5f55data\u76ee\u5f55\u4e0b home_dtuser_opt_paddlespeech_data_logs.tar.gz home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz home_dtuser_opt_paddlespeech_data_output.tar.gz home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u79bb\u7ebf\u5b89\u88c5\u811a\u672c: \u4e0b\u8f7d\u5730\u5740 \u6d4b\u8bd5\u6f14\u793a\u4f7f\u7528\u7f51\u9875: \u4e0b\u8f7d\u5730\u5740 \u79bb\u7ebf\u5b89\u88c5\u5305\u5206\u4e24\u90e8\u4efd\uff0c\u4e00\u90e8\u4efd\u662f\u5bb9\u5668\u955c\u50cf\uff0c\u4e00\u90e8\u4efd\u662f\u6570\u636e\u5377\u6587\u4ef6\uff0c\u5b89\u88c5\u542f\u52a8\u5bb9\u5668\u524d\u5148\u66ff\u6362\u5bf9\u636e\u5377\u7ed1\u5b9a\u7684\u76ee\u5f55\uff0c\u8fd9\u6837\u5bb9\u5668\u542f\u52a8\u540e\u65e0\u987b\u4e0b\u8f7d\u6a21\u578b\uff0c\u53ef\u4ee5\u5728\u65e0\u4e92\u8054\u7f51\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528","title":"\u79bb\u7ebf\u90e8\u7f72\u7684\u76f8\u5173\u6587\u4ef6\u4e0b\u8f7d\u5730\u5740"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#1-docker","text":"\u5982\u4e0b\u793a\u4f8b\uff0c\u6211\u4eec\u5c06\u6587\u4ef6\u653e\u5230\u7528\u6237\u76ee\u5f55\u7684down\u4e0b,\u8bf7\u4fdd\u6301\u76f8\u5e94\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls data install-paddlespeech-localh.sh tst@tst-VMware-Virtual-Platform:~/down$ tree . \u251c\u2500\u2500 data \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_logs.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_output.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u2502 \u2514\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u2514\u2500\u2500 install-paddlespeech-localh.sh 2 directories, 7 files","title":"1. \u4e0b\u8f7dDocker\u955c\u50cf\u4e0e\u6570\u636e\u5377\u6587\u4ef6"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#2","text":"chmod +x install-paddlespeech-localh.sh","title":"2. \u7ed9\u8fd0\u884c\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#3","text":"sudo ./install-paddlespeech-localh.sh \u6309\u88c5\u811a\u672c\u5c06\u4f1a\u5148\u89e3\u538b\u6587\u4ef6\uff0c\u5e76\u52a0\u8f7ddocker\u955c\u50cf\uff0c\u7136\u540e\u542f\u52a8\u5bb9\u5668\uff0c\u542f\u52a8\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528docker ps\u547d\u4ee4\u67e5\u770b\u8fd0\u884c\u72b6\u6001\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-paddlespeech-localh.sh [ INFO ] \u5f00\u59cb PaddleSpeech \u79bb\u7ebf\u5b89\u88c5... [ SUCCESS ] \u78c1\u76d8\u7a7a\u95f4\u68c0\u67e5\u901a\u8fc7\uff0855GB\uff09 [ INFO ] \u68c0\u6d4b\u7f51\u7edc\u8fde\u63a5... [ SUCCESS ] \u7f51\u7edc\u8fde\u63a5\u6b63\u5e38 [ INFO ] \u521b\u5efa\u76ee\u5f55\u7ed3\u6784... [ SUCCESS ] \u76ee\u5f55\u7ed3\u6784\u521b\u5efa\u5b8c\u6210 [ INFO ] \u89e3\u538b\u6570\u636e\u5377... [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_logs.tar.gz \u5230 /dt_opt/paddlespeech/data/logs ./ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u5230 /dt_opt/paddlespeech/data/nltk_data ./ ./taggers/ ./taggers/averaged_perceptron_tagger/ ./taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle ./taggers/averaged_perceptron_tagger.zip ./corpora/ ./corpora/cmudict/ ./corpora/cmudict/cmudict ./corpora/cmudict/README ./corpora/cmudict.zip [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_output.tar.gz \u5230 /dt_opt/paddlespeech/data/output ./ ./2753d658-b228-4ae6-94fc-3404a41f4526.wav ./9f24d71e-9f29-4d60-aa13-677fd19bba46.wav ./38ea94c6-e19b-4e41-8cca-454d8e374a15.wav ./d44aa891-c36b-473f-aef3-44484f0cd74b.wav ./c5ef53d3-502b-4f81-9fdd-583836ba7096.wav ./3931cd47-e022-4385-b588-4a61e64e5eed.wav ./1d213380-eee6-43ba-88db-99ba9b5609df.wav ./c85f65de-a4c1-43aa-a251-52ce4e9df271.wav ./7cd5fc65-665b-444c-9c9f-41f1ce8036f8.wav ./f74dbda7-1cf8-4056-bd30-523b74af8b0e.wav [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlenlp_models ./ ./packages/ ./models/ ./models/bert-base-chinese/ ./models/bert-base-chinese/bert-base-chinese-vocab.txt ./models/bert-base-chinese/tokenizer_config.json ./models/bert-base-chinese/vocab.txt ./models/bert-base-chinese/special_tokens_map.json ./models/embeddings/ ./models/.locks/ ./models/.locks/bert-base-chinese/ ./datasets/ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlespeech_models ./ ./conf/ ./conf/cache.yaml ./models/ ./models/G2PWModel_1.1/ ./models/G2PWModel_1.1/config.py ./models/G2PWModel_1.1/MONOPHONIC_CHARS.txt ./models/G2PWModel_1.1/__pycache__/ ./models/G2PWModel_1.1/__pycache__/config.cpython-39.pyc ./models/G2PWModel_1.1/__pycache__/config.cpython-310.pyc ./models/G2PWModel_1.1/record.log ./models/G2PWModel_1.1/bopomofo_to_pinyin_wo_tune_dict.json ./models/G2PWModel_1.1/POLYPHONIC_CHARS.txt ./models/G2PWModel_1.1/char_bopomofo_dict.json ./models/G2PWModel_1.1/g2pW.onnx ./models/G2PWModel_1.1/version ./models/G2PWModel_1.1.zip ./models/conformer_wenetspeech-zh-16k/ ./models/conformer_wenetspeech-zh-16k/1.0/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/preprocess.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/decode.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer_infer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/vocab.txt ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/mean_std.json ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/model.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/wenetspeech.pdparams ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar.gz ./models/fastspeech2_csmsc-zh/ ./models/fastspeech2_csmsc-zh/1.0/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4.zip ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_76000.pdz ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/default.yaml ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/pitch_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/energy_stats.npy ./models/hifigan_csmsc-zh/ ./models/hifigan_csmsc-zh/1.0/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1.zip ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/default.yaml ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/snapshot_iter_2500000.pdz ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/feats_stats.npy ./datasets/ [ SUCCESS ] \u6570\u636e\u5377\u89e3\u538b\u5b8c\u6210 [ INFO ] \u89e3\u538b\u955c\u50cf\u5305... [ SUCCESS ] \u955c\u50cf\u5305\u5df2\u79fb\u52a8\u5230 /dt_opt/paddlespeech/images [ INFO ] \u52a0\u8f7dDocker\u955c\u50cf... daf557c4f08e: Loading layer [================================================== > ] 81 .04MB/81.04MB d593918d433d: Loading layer [================================================== > ] 4 .123MB/4.123MB 7c4cff21e743: Loading layer [================================================== > ] 41 .36MB/41.36MB 25f6bb353e99: Loading layer [================================================== > ] 5 .12kB/5.12kB bc3a46414f17: Loading layer [================================================== > ] 1 .536kB/1.536kB 8fc7185920f1: Loading layer [================================================== > ] 3 .584kB/3.584kB bac2a7f893df: Loading layer [================================================== > ] 847MB/847MB 092bab498a3d: Loading layer [================================================== > ] 13 .31MB/13.31MB 19db93cce63e: Loading layer [================================================== > ] 2 .56kB/2.56kB 2fc7499dded4: Loading layer [================================================== > ] 3 .042GB/3.042GB 7da6b60d7eb7: Loading layer [================================================== > ] 2 .53MB/2.53MB 057242764992 : Loading layer [================================================== > ] 8 .704kB/8.704kB 9a996f3d539d: Loading layer [================================================== > ] 3 .072kB/3.072kB 4cdf0570391d: Loading layer [================================================== > ] 104 .2MB/104.2MB Loaded image: dt_iot/paddlespeech:latest [ SUCCESS ] \u955c\u50cf\u52a0\u8f7d\u6210\u529f [ INFO ] \u751f\u6210docker-compose.yaml... [ SUCCESS ] docker-compose.yaml\u521b\u5efa\u5b8c\u6210 [ INFO ] \u542f\u52a8\u5bb9\u5668... [ + ] Running 2 /2 \u2714 Network dtnet Created 0 .5s \u2714 Container paddlespeech Started 4 .6s [ SUCCESS ] \u5bb9\u5668\u542f\u52a8\u6210\u529f [ SUCCESS ] PaddleSpeech \u79bb\u7ebf\u5b89\u88c5\u5b8c\u6210\uff01","title":"3. \u6267\u884c\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#4","text":"docker ps","title":"4. \u67e5\u770b\u5bb9\u5668\u8fd0\u884c\u72b6\u6001"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#5","text":"docker logs -f paddlespeech","title":"5. \u5b9e\u65f6\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#6","text":"\u8fdb\u5165\u5bb9\u5668\u5668\u7684\u90e8\u7f72\u76ee\u5f55\uff1a /dt_opt/paddlespeech docker ps up -d # \u542f\u52a8\u5bb9\u5668 docker ps down # \u505c\u6b62\u5bb9\u5668 docker ps restart # \u91cd\u542f\u5bb9\u5668 docker ps logs -f paddlespeech # \u5b9e\u65f6\u67e5\u770b\u65e5\u5fd7 docker ps exec -it paddlespeech /bin/bash # \u8fdb\u5165\u5bb9\u5668 docker ps rm -f paddlespeech # \u5220\u9664\u5bb9\u5668 docker rmi dt_iot/paddlespeech:latest # \u5220\u9664\u955c\u50cf docker volume rm paddlespeech_data # \u5220\u9664\u6570\u636e\u5377 docker network rm dtnet # \u5220\u9664\u7f51\u7edc docker system prune -a # \u6e05\u7406\u65e0\u7528\u7684\u955c\u50cf\u3001\u5bb9\u5668\u3001\u6570\u636e\u5377\u3001\u7f51\u7edc\u7b49 \u4ee5\u4e0a\u662f\u5e38\u7528\u547d\u4ee4\uff0c\u4f7f\u7528\u65f6\u6839\u636e\u9700\u8981\u7075\u6d3b\u4f7f\u7528\u3002","title":"6. \u7ba1\u7406\u5bb9\u5668"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#7","text":"\u627e\u5230\u6587\u4ef6 /dt_opt/paddlespeech/docker-compose.yaml \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u5982\u4e0b\u6240\u793a\uff1a \u66f4\u6539\u7b2c\u4e00\u4e2a\u7aef\u53e3\u4e3a\u9700\u8981\u7684\u7aef\u53e3\u53f7\u5373\u53ef\uff0c\u5982\u4e0b\u6240\u793a: docker-compse down sudo nano ./docker-compose.yaml # \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u7b2c6\u884c # - \"8001:8001\" # \u4fdd\u5b58\u9000\u51fa\uff0c\u91cd\u542f\u5bb9\u5668\u5373\u53ef\u751f\u6548 docker-compose up -d","title":"7. \u8c03\u6574\u7aef\u53e3"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_10","text":"\u4e3a\u4e86\u65b9\u4fbf\u7684\u6f14\u793a\u5982\u4f55\u8c03\u7528\u8fd9\u4e2aapi\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u7f51\u9875, \u4e0b\u8f7d\u5730\u5740 \u4e3a: https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/tts_demo.zip","title":"\u516d\u3001\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#1-tts","text":"","title":"1. \u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u670d\u52a1"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#curl","text":"curl --request POST \\ --url http://ikuai.m-iot.tech:58150/tts \\ --header 'content-type: application/x-www-form-urlencoded' \\ --data 'text=\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' \\ --data lang=zh \\ --data spk_id=0","title":"curl\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#htttp-api","text":"POST /tts HTTP / 1.1 Content-Type : application/x-www-form-urlencoded Host : ikuai.m-iot.tech:58150 Content-Length : 103 text = %E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5 & lang = zh & spk_id = 0","title":"HTTTP API\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java","text":"//asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/tts\" ) . setHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . setBody ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); //nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/tts\" )) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); //okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"application/x-www-form-urlencoded\" ); RequestBody body = RequestBody . create ( mediaType , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/tts\" ) . post ( body ) . addHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . build (); Response response = client . newCall ( request ). execute (); //unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/tts\" ) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . body ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . asString ();","title":"Java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#javascript","text":"//Xhr const data = 'text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0' ; const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/tts' ); xhr . setRequestHeader ( 'content-type' , 'application/x-www-form-urlencoded' ); xhr . send ( data ); //Axios import axios from 'axios' ; const encodedParams = new URLSearchParams (); encodedParams . set ( 'text' , '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' ); encodedParams . set ( 'lang' , 'zh' ); encodedParams . set ( 'spk_id' , '0' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/tts' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : encodedParams , }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } //Fetch const url = 'http://ikuai.m-iot.tech:58150/tts' ; const options = { method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, body : new URLSearchParams ({ text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' }) }; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //JQuery const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/tts' , method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : { text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' } }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); });","title":"javaScript \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#c","text":"//httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/tts\" ), Content = new FormUrlEncodedContent ( new Dictionary < string , string > { { \"text\" , \"\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5\" }, { \"lang\" , \"zh\" }, { \"spk_id\" , \"0\" }, }), }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/tts\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ); request . AddParameter ( \"application/x-www-form-urlencoded\" , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" , ParameterType . RequestBody ); var response = client . Execute ( request );","title":"C# \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#go","text":"package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/tts\" payload := strings . NewReader ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"application/x-www-form-urlencoded\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) }","title":"go \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_11","text":"Preparing request to http://ikuai.m-iot.tech:58150/tts Current time is 2025-09-21T07:49:17.236Z POST http://ikuai.m-iot.tech:58150/tts Accept: application/json, text/plain, */* Content-Type: application/x-www-form-urlencoded User-Agent: bruno-runtime/2.3.0 text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0 SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 07:49:18 GMT server: uvicorn content-type: audio/wav content-disposition: attachment; filename=\"7b41c15b-e0a4-4ba5-aeb1-ceff058c90e6.wav\" content-length: 89444 last-modified: Sun, 21 Sep 2025 07:49:20 GMT etag: d85eaa2cadf7182ac9b54763e6a97e2c request-duration: 2224 Request completed in 2224 ms","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#2-asr","text":"","title":"2. \u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u670d\u52a1"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_12","text":"","title":"\u4e0a\u4f20\u6587\u4ef6\u8c03\u7528\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#curl_1","text":"curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \\ --form format=wav \\ --form sample_rate=16000 \u76f4\u63a5\u4e0a\u4f20\u6587\u4ef6\uff0c\u6587\u4ef6\u683c\u5f0f\u652f\u6301wav\u3001m4a\u3001mp3\u7b49\u5e38\u89c1\u97f3\u9891\u683c\u5f0f\uff0c\u670d\u52a1\u7aef\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3awav\u683c\u5f0f\u8fdb\u884c\u8bc6\u522b\u3002 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \u4f20\u5165\u53c2\u6570\u53ef\u4ee5\u53ea\u6709file\u4e0elang\u8fd9\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u5b83\u53c2\u6570\uff0c\u53ef\u4ee5\u5ffd\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a","title":"curl\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#http","text":"POST /asr HTTP / 1.1 Content-Type : multipart/form-data; boundary=---011000010111000001101001 Host : ikuai.m-iot.tech:58150 Content-Length : 239 -----011000010111000001101001 Content-Disposition: form-data; name=\"file\" C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a -----011000010111000001101001 Content-Disposition: form-data; name=\"lang\" zh -----011000010111000001101001--","title":"HTTP \u793a\u4f8b\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java_1","text":"// asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString ();","title":"java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#javascript_1","text":"//xhr const data = new FormData (); data . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); data . append ( 'lang' , 'zh' ); const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/asr' ); xhr . send ( data ); // Axios import axios from 'axios' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/asr' , headers : { 'content-type' : 'multipart/form-data; boundary=---011000010111000001101001' }, data : '[form]' }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } // fetch const url = 'http://ikuai.m-iot.tech:58150/asr' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' }; options . body = form ; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //jquery const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/asr' , method : 'POST' , headers : {}, processData : false , contentType : false , mimeType : 'multipart/form-data' , data : form }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); });","title":"javascript \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#c_1","text":"//httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/asr\" ), Content = new MultipartFormDataContent { new StringContent ([ \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" ]) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"file\" , FileName = \"C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a\" , } } }, new StringContent ( \"zh\" ) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"lang\" , } } }, }, }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //Restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/asr\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ); request . AddParameter ( \"multipart/form-data; boundary=---011000010111000001101001\" , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" , ParameterType . RequestBody ); var response = client . Execute ( request );","title":"C# \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#go_1","text":"package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/asr\" payload := strings . NewReader ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) }","title":"go \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java_2","text":"// asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString ();","title":"java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_13","text":"{ \"result\" : \"\u5582\u8bed\u97f3\u6d4b\u8bd5\u8bed\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\" , \"file_size\" : 185334 , \"wav_info\" : { \"n_channels\" : 1 , \"sample_width\" : 2 , \"framerate\" : 16000 , \"n_frames\" : 115029 , \"duration\" : 7.1893125 }, \"ffmpeg_log\" : \"\" } body { \"_overheadLength\" : 252 , \"_valueLength\" : 2 , \"_valuesToMeasure\" : [ { \"fd\" : null , \"path\" : \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" , \"flags\" : \"r\" , \"mode\" : 438 , \"end\" : null , \"bytesRead\" : 0 , \"_events\" : {}, \"_readableState\" : { \"highWaterMark\" : 65536 , \"buffer\" : [], \"bufferIndex\" : 0 , \"length\" : 0 , \"pipes\" : [], \"awaitDrainWriters\" : null }, \"_eventsCount\" : 3 } ], \"writable\" : false , \"readable\" : true , \"dataSize\" : 0 , \"maxDataSize\" : 2097152 , \"pauseStreams\" : true , \"_released\" : false , \"_streams\" : [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\" , { \"source\" : \"[Circular]\" , \"dataSize\" : 0 , \"maxDataSize\" : null , \"pauseStream\" : true , \"_maxDataSizeExceeded\" : false , \"_released\" : false , \"_bufferedEvents\" : [ { \"0\" : \"pause\" } ], \"_events\" : {}, \"_eventsCount\" : 1 }, null , \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\" , \"zh\" , null ], \"_currentStream\" : null , \"_insideLoop\" : false , \"_pendingNext\" : false , \"_boundary\" : \"--------------------------147555471668548578107544\" } ***Network Logs *** Preparing request to http://ikuai.m-iot.tech:58150/asr Current time is 2025-09-21T08:22:20.590Z POST http://ikuai.m-iot.tech:58150/asr Accept: application/json, text/plain, */* Content-Type: multipart/form-data; boundary=--------------------------147555471668548578107544 User-Agent: bruno-runtime/2.3.0 { \"_overheadLength\": 252, \"_valueLength\": 2, \"_valuesToMeasure\": [ { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 } ], \"writable\": false, \"readable\": true, \"dataSize\": 0, \"maxDataSize\": 2097152, \"pauseStreams\": true, \"_released\": false, \"_streams\": [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\", { \"source\": { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 }, \"dataSize\": 0, \"maxDataSize\": null, \"pauseStream\": true, \"_maxDataSizeExceeded\": false, \"_released\": false, \"_bufferedEvents\": [ { \"0\": \"pause\" } ], \"_events\": {}, \"_eventsCount\": 1 }, null, \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\", \"zh\", null ], \"_currentStream\": null, \"_insideLoop\": false, \"_pendingNext\": false, \"_boundary\": \"--------------------------147555471668548578107544\" } SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 08:22:21 GMT server: uvicorn content-length: 201 content-type: application/json request-duration: 6989 Request completed in 6989 ms","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_14","text":"\u8bf4\u660e paddlespeech\u4e2d\u7528\u7684\u4e00\u4e2a\u5e93\u6709\u53ef\u80fd\u662f\u5355\u7ebf\u7a0b\u7684\uff0c\u6240\u4ee5\u5728\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u54cd\u5e94\u53d8\u6162\u7684\u60c5\u51b5\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u5b9e\u4f8b\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002 \u5b9e\u9645\u4f7f\u7528\u65f6,\u5982\u679c\u60f3\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u66f4\u6539\u73af\u5883\u53d8\u91cf\u4e2d\u7684PYTHONUNBUFFFERED=4,\u6216\u66f4\u9ad8\u4e00\u4e2a\u9002\u5408\u7684\u6570\u5b57\uff0c\u6765\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\u3002 \u300a\u5b8c\u300b","title":"\u6d4f\u89c8\u5668\u5f55\u97f3\u8bc6\u522b\u793a\u4f8b"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/","text":"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357 \u00b6 1. \u524d\u63d0\u6761\u4ef6 \u00b6 \u5df2\u5b89\u88c5\u5e76\u914d\u7f6e\u597dHome Assistant \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86MQTT Broker \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86Node-RED \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff08\u5982Miaomiaoc CN BLT 3\uff09 \u5df2\u7ecf\u83b7\u53d6\u5230\u4e86\u80dc\u900f\u7684MQTT\u670d\u52a1\u5668Broker\u5730\u5740\u548c\u7aef\u53e3 2. \u5728Home Assistant\u4e2d\u914d\u7f6e\u4f20\u611f\u5668\u81ea\u52a8\u5316 \u00b6 1.\u627e\u5230\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u00b6 \u900f\u6790\u4e2d\u5fc3\u53ef\u80fd\u5b89\u88c5\u4e86\u591a\u4e2a\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff0c\u9996\u5148\u9700\u8981\u627e\u5230\u5bf9\u5e94\u7684\u5b9e\u4f53ID\u3002 \u53ef\u4ee5\u5728Home Assistant\u7684\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u5f53\u524d\u6240\u6709\u4f20\u611f\u5668\u7684\u72b6\u6001\u3002 \u4e5f\u53ef\u4ee5\u5728\u5df2\u7ecf\u8bbe\u5907\u4e0e\u670d\u52a1\uff0c\u96c6\u6210\uff0c\u4e2d\u627e\u5230\u7c73\u5bb6\u7684\u8bbe\u5907\uff0c\u627e\u5230\u90a3\u4e2a\u4f20\u611f\u5668 \u627e\u5230\u9700\u8981\u914d\u7f6e\u4e3a\u73af\u5883\u6e29\u5ea6\u7684\u4f20\u611f\u5668 \u70b9\u51fb\u6e29\u5ea6\u5b9e\u4f53 \u70b9\u51fb\u8bbe\u7f6e\u56fe\u6807 \u5982\u672c\u4f8b\u83b7\u53d6\u5230\u7684\u5b9e\u4f53ID\u4e3a sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u3002\u8bb0\u4f4f\u6b64ID\uff0c\u540e\u9762\u5f88\u591a\u5730\u65b9\u90fd\u4f1a\u7528\u5230. 2. \u521b\u5efa\u81ea\u52a8\u5316\u89c4\u5219 \u00b6 \u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5f53\u4f20\u611f\u5668\u72b6\u6001\u66f4\u65b0\u65f6\u53ca\u6bcf\u969430\u79d2\uff0c\u5c06\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230Home Assistant\u5185\u90e8\u96c6\u6210\u7684\u7684MQTT\u670d\u52a1\u5668\u3002 \u8fdb\u5165 \"\u914d\u7f6e\" \u2192 \"\u81ea\u52a8\u5316\u548c\u573a\u666f\" \u2192 \"\u81ea\u52a8\u5316\"\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684 \"+\" \u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\u89c4\u5219\u3002 \u8fdb\u5165\u81ea\u52a8\u5316\u89c4\u5219\u7f16\u8f91\u754c\u9762\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\"\u521b\u5efa\u81ea\u52a8\u5316\"\u6309\u94ae\u3002\u5728\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\u9009\u62e9\"\u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\"\u3002 \u5728\u65b0\u5efa\u81ea\u52a8\u5316\u754c\u9762\uff0c\u70b9\u53f3\u4e0a\u89d2\u7684\u4e09\u4e2a\u70b9\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5728\u5f39\u51fa\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u8fdb\u5165YHAML\u7f16\u8f91,\u8fdb\u5165\u4ee3\u7801\u6a21\u5f0f\uff0c\u5982\u4e0b\u6240\u793a \u5728\u8fd9\u4e2a\u5927\u7684\u6587\u672c\u6846\u4e2d\u7c98\u5165\u5982\u4e0b\u4ee3\u7801\uff1a alias : \u53d1\u5e03\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u5230MQTT description : \u5f53\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u53d8\u5316\u6216\u6bcf30\u79d2\u5b9a\u65f6\u65f6\uff0c\u81ea\u52a8\u53d1\u5e03\u5230MQTT\u4f9bNode-RED\u4f7f\u7528 triggers : - entity_id : sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 trigger : state - seconds : /30 trigger : time_pattern conditions : - condition : template value_template : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') not in ['unavailable', 'unknown', 'None'] and states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') | float(-999) != -999 }} actions : - data : topic : >- homeassistant/sensor/sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1/state payload : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') }} retain : false qos : 0 action : mqtt.publish mode : single \u6ce8\u610f: \u4ee5\u4e0a\u4ee3\u7801\u4e2d\u7684 sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u662f\u793a\u4f8b\u5b9e\u4f53ID\uff0c\u8bf7\u66ff\u6362\u4e3a\u4f60 \u5b9e\u9645\u7684\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u3002 \u653e\u7f6e\u5b8c\u6210\u540e\uff0c\u5982\u4e0b\u56fe\u793a\u610f \u89c2\u5bdf\u4e0a\u6b21\u89e6\u53d1\u5217\u662f\u5426\u4f1a\u6bcf\u969430\u79d2\u6267\u884c\u4e00\u6b21 \u8fd4\u56de\u5230\u4f20\u611f\u5668\u7684\u8bbe\u5907\u754c\u9762\u4e5f\u80fd\u770b\u5230\u8bbe\u5907\u7684\u81ea\u52a8\u5316\u4e0b\u9762\u6709\u4e00\u6761\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5982\u4e0b\u56fe \u5230\u6b64\uff0c\u81ea\u52a8\u5316\u89c4\u5219\u5df2\u914d\u7f6e\u5b8c\u6210\u3002 3. \u5728Node-RED\u4e2d\u914d\u7f6eMQTT\u63a5\u6536\u8f6c\u53d1 \u00b6 1. \u6253\u5f00Node-RED\u7f16\u8f91\u5668 \u00b6 \u6253\u5f00nod-red\u7f16\u8f91\u5668\uff0c\u6709\u7684HA\u53ef\u80fd\u662f\u914d\u7f6e\u5728\u5de6\u4fa7\u822a\u83dc\u5355\u4e2d\uff0c\u5982\u4e0b\u56fe\u5fd7\u793a\uff0c\u70b9\u51fb\u5373\u53ef\u8fdb\u5165 \u6709\u7684\u662f\u6ca1\u6709\u914d\u7f6enode-red\u5230\u5de6\u4fa7\u5bfc\u822a\u83dc\u5355\u7684\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u70b9\u51fb\"\u8bbe\u7f6e-\u52a0\u8f7d\u9879\"\u8fdb\u5165\u52a0\u8f7d\u9879\u9875\u9762 \u627e\u5230Node-RED\u52a0\u8f7d\u9879\uff0c\u70b9\u51fb\u8fdb\u5165 \u8fdb\u5165\u754c\u9762\u5982\u4e0b\uff1a 2. \u521b\u5efa\u65b0\u5de5\u4f5c\u6d41 \u00b6 \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\"\u83dc\u5355\"\u6309\u94ae\uff0c\u518d\u70b9\u5bfc\u5165\u3002 \u5728\u6b64\u5904\u8d34\u5165\u5de5\u4f5c\u6d41\u4ee3\u7801\uff0c\u6ce8\u610f\uff1a\u8981\u9009\u62e9\u5bfc\u5165\u5230\u65b0\u6d41\u7a0b \u5de5\u4f5c\u6d41\u4ee3\u7801\u5982\u4e0b [ { \"id\" : \"1407d4531e19a951\" , \"type\" : \"tab\" , \"label\" : \"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u6570\u636e\u8f6c\u53d1\" , \"disabled\" : false , \"info\" : \"\u4eceHomeAssistant\u83b7\u53d6\u6e29\u5ea6\u4f20\u611f\u5668\u6570\u636e\u5e76\u53d1\u5e03\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\" }, { \"id\" : \"97e254f4a87ddde9\" , \"type\" : \"mqtt in\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8ba2\u9605HA\u6e29\u5ea6\u4f20\u611f\u5668\" , \"topic\" : \"homeassistant/sensor/+/state\" , \"qos\" : \"0\" , \"datatype\" : \"auto\" , \"broker\" : \"mqtt-ha-broker\" , \"nl\" : false , \"rap\" : true , \"rh\" : 0 , \"inputs\" : 0 , \"x\" : 150 , \"y\" : 100 , \"wires\" : [ [ \"44d729e67618e4f2\" ] ] }, { \"id\" : \"44d729e67618e4f2\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u5904\u7406\u6e29\u5ea6\u6570\u636e\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst targetDeviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\n\\n// \u4ecetopic\u4e2d\u63d0\u53d6\u5f53\u524d\u8bbe\u5907ID\\nconst topicParts = msg.topic.split('/');\\nconst currentDeviceId = topicParts.length >= 3 ? topicParts[2] : \\\"\\\";\\n\\n// \u53ea\u5904\u7406\u76ee\u6807\u8bbe\u5907\u7684\u6d88\u606f\\nif (currentDeviceId !== targetDeviceId) {\\n node.log(\\\"\u5ffd\u7565\u8bbe\u5907\u6d88\u606f: \\\" + currentDeviceId + \\\" (\u76ee\u6807\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n return null;\\n}\\n\\n// \u751f\u6210\u552f\u4e00\u7684\u6d88\u606fID\\nconst messageId = \\\"temp_\\\" + Date.now() + \\\"_\\\" + Math.floor(Math.random() * 1000);\\nconst timestamp = Date.now();\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u89e3\u6790\u6e29\u5ea6\u503c\\nlet temperature = parseFloat(msg.payload);\\nif (isNaN(temperature)) {\\n node.warn(\\\"\u63a5\u6536\u5230\u65e0\u6548\u7684\u6e29\u5ea6\u503c: \\\" + msg.payload);\\n return null;\\n}\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u683c\u5f0f\u5316\u6570\u636e\\nconst protocolMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": targetDeviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"value\\\": temperature,\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"quality\\\": \\\"good\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6e\u8f93\u51fa\u6d88\u606f\\nmsg.payload = JSON.stringify(protocolMessage);\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${targetDeviceId}/properties`;\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u6e29\u5ea6\u6570\u636e\u5df2\u5904\u7406: \\\" + temperature + \\\"\u00b0C (\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 420 , \"y\" : 100 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"573842ea77192dbb\" , \"type\" : \"mqtt out\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u5230\u516c\u53f8MQTT\" , \"topic\" : \"\" , \"qos\" : \"\" , \"retain\" : \"\" , \"respTopic\" : \"\" , \"contentType\" : \"\" , \"userProps\" : \"\" , \"correl\" : \"\" , \"expiry\" : \"\" , \"broker\" : \"mqtt-company-broker\" , \"x\" : 990 , \"y\" : 80 , \"wires\" : [] }, { \"id\" : \"4c630c164e08dc2c\" , \"type\" : \"debug\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8c03\u8bd5\u8f93\u51fa\" , \"active\" : true , \"tosidebar\" : true , \"console\" : false , \"tostatus\" : false , \"complete\" : \"payload\" , \"targetType\" : \"msg\" , \"statusVal\" : \"\" , \"statusType\" : \"auto\" , \"x\" : 1040 , \"y\" : 360 , \"wires\" : [] }, { \"id\" : \"495c392574ee1bf4\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u8bbe\u5907\u7269\u6a21\u578b\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"60\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"5\" , \"topic\" : \"shengtou/sensor/TH001_HA/model\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 170 , \"y\" : 180 , \"wires\" : [ [ \"3aea3ce2deb4ea99\" ] ] }, { \"id\" : \"3aea3ce2deb4ea99\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u7269\u6a21\u578b\u6570\u636e\" , \"func\" : \"const messageId = \\\"mdl_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u7269\u6a21\u578b\u5b9a\u4e49\\nconst modelMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"model\\\": {\\n \\\"deviceInfo\\\": {\\n \\\"manufacturer\\\": \\\"\u5c0f\u7c73\\\",\\n \\\"model\\\": \\\"MIAOMIAOC_CN_BLT_3_11A1SBR5K5O01_T2\\\",\\n \\\"version\\\": \\\"1.0.0\\\",\\n \\\"description\\\": \\\"\u7c73\u5bb6\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668(\u901a\u8fc7HomeAssistant\u96c6\u6210)\\\"\\n },\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"dataType\\\": \\\"float\\\",\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"range\\\": {\\n \\\"min\\\": -40,\\n \\\"max\\\": 85\\n },\\n \\\"precision\\\": 1,\\n \\\"description\\\": \\\"\u73af\u5883\u6e29\u5ea6\\\"\\n }\\n },\\n \\\"events\\\": {\\n \\\"startup\\\": {\\n \\\"eventType\\\": \\\"info\\\",\\n \\\"description\\\": \\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\\\"\\n }\\n },\\n \\\"alarms\\\": {\\n \\\"TEMP_HIGH\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u9ad8\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 35.0\\n },\\n \\\"TEMP_LOW\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u4f4e\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 0.0\\n }\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/model`;\\nmsg.payload = JSON.stringify(modelMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u7269\u6a21\u578b\u6570\u636e\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 160 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"70e1e283448c941e\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"120\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"10\" , \"topic\" : \"shengtou/sensor/TH001_HA/status\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 240 , \"wires\" : [ [ \"ae74b6d386748045\" ] ] }, { \"id\" : \"ae74b6d386748045\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u72b6\u6001\u6570\u636e\" , \"func\" : \"const messageId = \\\"sts_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u8ba1\u7b97\u8bbe\u5907\u8fd0\u884c\u65f6\u95f4\uff08\u4ece\u7b2c\u4e00\u6b21\u542f\u52a8\u5f00\u59cb\uff09\\nif (!context.get(\\\"startTime\\\")) {\\n context.set(\\\"startTime\\\", timestamp);\\n}\\nconst startTime = context.get(\\\"startTime\\\");\\nconst uptime = timestamp - startTime;\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u72b6\u6001\u6570\u636e\\nconst statusMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"status\\\": {\\n \\\"online\\\": true,\\n \\\"lastHeartbeat\\\": timestamp,\\n \\\"uptime\\\": uptime\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/status`;\\nmsg.payload = JSON.stringify(statusMessage);\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\u5df2\u53d1\u9001\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 240 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"7f9acf10d0c6085d\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u521d\u59cb\u5316\u5168\u5c40\u914d\u7f6e\" , \"props\" : [ { \"p\" : \"payload\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"1\" , \"topic\" : \"\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 150 , \"y\" : 40 , \"wires\" : [ [ \"6f6b825dfc5e9512\" ] ] }, { \"id\" : \"6f6b825dfc5e9512\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\" , \"func\" : \"// \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf\\nglobal.set(\\\"nameSpace\\\", \\\"Environment\\\");\\nglobal.set(\\\"clientCode\\\", \\\"Data-It_XzOffice\\\");\\nglobal.set(\\\"deviceId\\\", \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\");\\n\\nnode.log(\\\"\u5168\u5c40\u914d\u7f6e\u5df2\u8bbe\u7f6e: nameSpace=\\\" + global.get(\\\"nameSpace\\\") + \\\", clientCode=\\\" + global.get(\\\"clientCode\\\") + \\\", deviceId=\\\" + global.get(\\\"deviceId\\\"));\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 360 , \"y\" : 40 , \"wires\" : [ [ \"794c422d39898a7f\" ] ] }, { \"id\" : \"794c422d39898a7f\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u66f4\u65b0MQTT\u8ba2\u9605Topic\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u751f\u6210HomeAssistant MQTT\u8ba2\u9605Topic\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst haTopic = `homeassistant/sensor/${deviceId}/state`;\\n\\n// \u5c06Topic\u4fdd\u5b58\u5230\u5168\u5c40\u53d8\u91cf\u4f9b\u5176\u4ed6\u5730\u65b9\u4f7f\u7528\\nglobal.set(\\\"haSubscribeTopic\\\", haTopic);\\n\\nnode.log(\\\"HomeAssistant\u8ba2\u9605Topic\u5df2\u66f4\u65b0: \\\" + haTopic);\\nnode.log(\\\"\u6ce8\u610f\uff1a\u5982\u9700\u66f4\u6539MQTT In\u8282\u70b9\u7684\u8ba2\u9605Topic\uff0c\u8bf7\u624b\u52a8\u4fee\u6539\u4e3a: \\\" + haTopic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 590 , \"y\" : 40 , \"wires\" : [ [] ] }, { \"id\" : \"3bf854e9bd3e6937\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u542f\u52a8\u4e8b\u4ef6\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"15\" , \"topic\" : \"shengtou/sensor/TH001_HA/events\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 340 , \"wires\" : [ [ \"26f6196b2d6fba29\" ] ] }, { \"id\" : \"26f6196b2d6fba29\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u542f\u52a8\u4e8b\u4ef6\" , \"func\" : \"const messageId = \\\"evt_startup_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u4e8b\u4ef6\u6570\u636e\\nconst eventMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"events\\\": [\\n {\\n \\\"eventType\\\": \\\"startup\\\",\\n \\\"eventLevel\\\": \\\"info\\\",\\n \\\"eventCode\\\": \\\"EVT_001\\\",\\n \\\"description\\\": \\\"HomeAssistant\u6e29\u5ea6\u4f20\u611f\u5668\u4ee3\u7406\u8bbe\u5907\u542f\u52a8\u5b8c\u6210\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n ]\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/events`;\\nmsg.payload = JSON.stringify(eventMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 380 , \"y\" : 320 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"mqtt-ha-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"HomeAssistant MQTT\" , \"broker\" : \"192.168.50.83\" , \"port\" : \"1883\" , \"clientid\" : \"\" , \"autoConnect\" : true , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"autoUnsubscribe\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"\" , \"willQos\" : \"0\" , \"willPayload\" : \"\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" }, { \"id\" : \"mqtt-company-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"\u516c\u53f8MQTT\u670d\u52a1\u5668\" , \"broker\" : \"mqtt-test.ihemodialysis.com\" , \"port\" : \"62183\" , \"clientid\" : \"\" , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"shengtou/sensor/TH001_HA/status\" , \"willQos\" : \"0\" , \"willPayload\" : \"{\\\"messageId\\\":\\\"sts_offline\\\",\\\"timestamp\\\":0,\\\"deviceId\\\":\\\"TH001_HA\\\",\\\"deviceType\\\":\\\"sensor\\\",\\\"version\\\":\\\"1.0\\\",\\\"data\\\":{\\\"status\\\":{\\\"online\\\":false,\\\"lastHeartbeat\\\":0,\\\"uptime\\\":0}}}\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" } ] \u5f53\u7136\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4ece \u5de5\u4f5c\u6d41\u6587\u4ef6 \u5bfc\u5165\u65b0\u65b0\u5de5\u4f5c\u6d41\u3002 \u70b9\u51fb\u4e0a\u8ff0\u94fe\u63a5\u540e\uff0c\u4e0b\u8f7d\u6587\u4ef6\uff0c\u5e76\u89e3\u538b\uff0c\u5f97\u5230\u4e00\u4e2a\u540d\u4e3a flows.json \u7684\u6587\u4ef6\u3002 \u70b9\u51fb\u5bfc\u5165\u8282\u70b9\u6587\u4ef6\uff0c \u90e8\u7f72\u6210\u529f\u540e\uff0c\u4f1a\u51fa\u73b0\u5982\u4e0b\u56fe\u6240\u793a\u7684\u5de5\u4f5c\u6d41 \u6b64\u65f6\uff0c\u5de5\u4f5c\u6d41\u5df2\u521b\u5b8c\u6210. 3. \u914d\u7f6eMQTT\u8282\u70b9 \u00b6 \u5de5\u4f5c\u6d41\u4e2d\u6709\u4e24\u4e2aMQTT\u8282\u70b9\uff0c\u5206\u522b\u662fHome Assistant\u7684MQTT Broker\u548c\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u8fd9\u4e24\u4e2a\u8282\u70b9\u7684\u914d\u7f6e\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u8c03\u6574\u3002 \u9996\u5148\uff0c\u8981\u5148\u914d\u7f6eHome Assistant\u7684MQTT Broker\u8282\u70b9\uff0c\u786e\u4fdd\u5176\u8fde\u63a5\u4fe1\u606f\u6b63\u786e\u65e0\u8bef\u3002 \u5728\u6211\u4eec\u6ca1\u6709\u914d\u7f6emqtt in \u7684\u8fde\u63a5\u4fe1\u606f\u65f6\uff0c\u6211\u4eec\u53d1\u73b0\u8fd9\u4e2a\u8282\u70b9\u4e00\u76f4\u5904\u7406\u8fde\u63a5\u4e2d \u53cc\u51fb\u8be5\u8282\u70b9\uff0c\u8fdb\u5165\u914d\u7f6e\u754c\u9762 \u70b9\u51fb\u7f16\u8f91\u56fe\u6807 \u5728\u7f16\u8f91mqtt-broker\u8282\u70b9\u7684\u754c\u9762\u4e2d\u7684\u8fde\u63a5\u53c2\u6570\u9009\u9879\u5361\u4e2d\uff0c\u8f93\u5165\u6b63\u786e\u7684\u670d\u52a1\u7aef\u4e0e\u7aef\u53e3\u53f7 \u5982\u679cMQTT\u6709\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u8bf7\u5728\u8ba4\u8bc1\u9009\u9879\u5361\u4e2d\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u540e\uff0c\u7136\u540e\u70b9\u66f4\u65b0 \u7136\u540e\uff0c\u518d\u70b9\u51fb\u5b8c\u6210 \u6700\u540e\u70b9\u51fb\u90e8\u7f72 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u6b64\u8282\u70b9\u4f1a\u53d8\u4e3a\u5df2\u8054\u63a5 \u5bf9\u4e8e\"\u53d1\u5e03\u5230\u516c\u53f8MQTT\"\u8282\u70b9\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u8fde\u63a5\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u4e5f\u65f6\u540c\u6837\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u53cc\u51fb \u7136\u540e\uff0c\u66f4\u65b0\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72\u5373\u53ef\u3002 \u67e5\u627eHomeAssistant\u7684Mqtt\u914d\u7f6e\u4fe1\u606f \u5bf9\u4e8eHomeAssistant\u6211\u4eec\u4e00\u822c\u90fd\u662f\u63d0\u524d\u90e8\u7f72\u4e86\u5185\u7f6e\u7684MQTT Broker,\u5728\u4e0d\u77e5\u7aef\u53e3\u4e0e\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u6211\u6837\u53ef\u4ee5\u5728HomeAssistant\u4e2d\u53bb\u67e5\u627e \u8fdb\u5165\u8bbe\u7f6e\u52a0\u8f7d\u9879 \u627e\u5230Mosquitto broker\u8fd9\u4e2a\u9009\u9879\u5361,\u70b9\u51fb\u8fdb\u5165 \u70b9\u51fb\u914d\u7f6e\u9009\u9879\u5361 \u5728\u8fd9\u91cc\u53ef\u4ee5\u770b\u5230MQTT\u7684\u7aef\u53e3\u53f7\u4e0e\u7528\u6237\u540d\u5bc6\u7801\u7b49\u4fe1\u606f\uff0c\u53ca\u4e0b\u9762\u7684mqtt\u5f00\u653e\u7684\u7aef\u53e3\u4fe1\u606f\uff0cip\u5730\u5740\uff0c\u5c31\u662fha\u4e3b\u673a\u6240\u5728\u7684Ip\u5730\u5740\u3002\u4ee5\u4e0a\u4fe1\u606f\uff0c\u7528\u6765\u914d\u7f6e\u5de5\u4f5c\u6d41\u7684mqtt in\u7684\u53c2\u6570\u3002 \u516c\u53f8mqtt\u670d\u52a1\u7aef\u53e3\u4fe1\u606f \u8fd9\u4e2a\u53c2\u6570\uff0c\u8bf7\u5411\u516c\u53f8\u7ba1\u7406\u5458\u83b7\u53d6\uff0c\u6216\u8005\u5728\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u67e5\u770b\u3002 4.\u914d\u7f6e\u5de5\u4f5c\u6d41\u5168\u5c40\u53d8\u91cf \u00b6 \u53cc\u51fb\u5de5\u4f5c\u6d41\u7684\u8282\u70b9\"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\",\u6253\u5f00\u7f16\u8f91function\u8282\u70b9 \u5bf9\u5982\u4e0b\u4e09\u884c,\u8fdb\u884c\u66f4\u6539 // \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf global . set ( \"nameSpace\" , \"Environment\" ); //\u547d\u540d\u7a7a\u95f4\uff0c\u9ed8\u8ba4\u4e3a\uff1aEnvironment\uff0c\u5982\u679c\u6709\u9700\u8981\uff0c\u4ee5\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u540e\uff0c\u66f4\u6539. global . set ( \"clientCode\" , \"Data-It_XzOffice\" ); // \u5ba2\u6237\u7aef\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4e3a\uff1aData-It_XzOffice\uff0c\u4e00\u5b9a\u8981\u6539\u4e3a\u4e2d\u5fc3\u5bf9\u5c31\u7684ClientCode\uff0c global . set ( \"deviceId\" , \"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\" ); //\u4e00\u5b9a\u8981\u6539\u4e3a\u4e4b\u524d\u6211\u4eec\u5b9a\u7684\u4f20\u611f\u5668\u5b9e\u4f53ID \u5982\u679c\u4e0d\u786e\u5b9a\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u3002 \u7136\u540e\uff0c\u70b9\u51fb\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72 \u7136\u540e\uff0c\u4e0b\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u4e00\u5b9a\u8981\u6267\u884c \u8fd9\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u5fc5\u987b\u6267\u884c\uff0c\u5426\u5219\u5de5\u4f5c\u6d41\u6ca1\u6709\u628a\u5168\u5c40\u53d8\u91cf\u5199\u5165\u5de5\u4f5c\u6d41\uff0c\u4f1a\u5bfc\u81f4\u53d1\u5e03\u6570\u636e\u4e0d\u6b63\u786e\u3002 \u7136\u540e\uff0c\u6211\u6837\u5c31\u53ef\u4ee5\u7528\u5728debug\u7684\u65e5\u5fd7\u4e2d\u770b\u5230\u6211\u4eec\u53d1\u5e03\u7684\u8282\u70b9\u6570\u636e\u4e86\uff0c \u6b64\u56fe\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5230mqtt\u53d1\u5e03\u5230\u516c\u53f8\u7684\u6570\u636e\uff0cclientCode\uff0cdeviceid\u662f\u5426\u6b63\u5e38\u4e86\u3002 5. \u6d4b\u8bd5\u5de5\u4f5c\u6d41\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38 \u00b6 \u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5de5\u5177\u6765\u67e5\u770b\u516c\u53f8mqtt\u670d\u52a1\u6536\u5230\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38\u5982\u4e0b\u56fe \u8fd9\u91cc\u6211\u63a8\u8350\u4f7f\u7528\u5de5\u5177 MQTTX \u4e0b\u8f7d\u5730\u5740\u4e3a\uff1ahttps://mqttx.app/downloads \u81f3\u6b64,\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230\u80dc\u900f\u7684\u5de5\u4f5c\u6d41\u914d\u7f6e\u5b8c\u6210\u3002","title":"\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#_1","text":"","title":"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1","text":"\u5df2\u5b89\u88c5\u5e76\u914d\u7f6e\u597dHome Assistant \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86MQTT Broker \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86Node-RED \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff08\u5982Miaomiaoc CN BLT 3\uff09 \u5df2\u7ecf\u83b7\u53d6\u5230\u4e86\u80dc\u900f\u7684MQTT\u670d\u52a1\u5668Broker\u5730\u5740\u548c\u7aef\u53e3","title":"1. \u524d\u63d0\u6761\u4ef6"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2-home-assistant","text":"","title":"2. \u5728Home Assistant\u4e2d\u914d\u7f6e\u4f20\u611f\u5668\u81ea\u52a8\u5316"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1id","text":"\u900f\u6790\u4e2d\u5fc3\u53ef\u80fd\u5b89\u88c5\u4e86\u591a\u4e2a\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff0c\u9996\u5148\u9700\u8981\u627e\u5230\u5bf9\u5e94\u7684\u5b9e\u4f53ID\u3002 \u53ef\u4ee5\u5728Home Assistant\u7684\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u5f53\u524d\u6240\u6709\u4f20\u611f\u5668\u7684\u72b6\u6001\u3002 \u4e5f\u53ef\u4ee5\u5728\u5df2\u7ecf\u8bbe\u5907\u4e0e\u670d\u52a1\uff0c\u96c6\u6210\uff0c\u4e2d\u627e\u5230\u7c73\u5bb6\u7684\u8bbe\u5907\uff0c\u627e\u5230\u90a3\u4e2a\u4f20\u611f\u5668 \u627e\u5230\u9700\u8981\u914d\u7f6e\u4e3a\u73af\u5883\u6e29\u5ea6\u7684\u4f20\u611f\u5668 \u70b9\u51fb\u6e29\u5ea6\u5b9e\u4f53 \u70b9\u51fb\u8bbe\u7f6e\u56fe\u6807 \u5982\u672c\u4f8b\u83b7\u53d6\u5230\u7684\u5b9e\u4f53ID\u4e3a sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u3002\u8bb0\u4f4f\u6b64ID\uff0c\u540e\u9762\u5f88\u591a\u5730\u65b9\u90fd\u4f1a\u7528\u5230.","title":"1.\u627e\u5230\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2","text":"\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5f53\u4f20\u611f\u5668\u72b6\u6001\u66f4\u65b0\u65f6\u53ca\u6bcf\u969430\u79d2\uff0c\u5c06\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230Home Assistant\u5185\u90e8\u96c6\u6210\u7684\u7684MQTT\u670d\u52a1\u5668\u3002 \u8fdb\u5165 \"\u914d\u7f6e\" \u2192 \"\u81ea\u52a8\u5316\u548c\u573a\u666f\" \u2192 \"\u81ea\u52a8\u5316\"\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684 \"+\" \u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\u89c4\u5219\u3002 \u8fdb\u5165\u81ea\u52a8\u5316\u89c4\u5219\u7f16\u8f91\u754c\u9762\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\"\u521b\u5efa\u81ea\u52a8\u5316\"\u6309\u94ae\u3002\u5728\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\u9009\u62e9\"\u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\"\u3002 \u5728\u65b0\u5efa\u81ea\u52a8\u5316\u754c\u9762\uff0c\u70b9\u53f3\u4e0a\u89d2\u7684\u4e09\u4e2a\u70b9\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5728\u5f39\u51fa\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u8fdb\u5165YHAML\u7f16\u8f91,\u8fdb\u5165\u4ee3\u7801\u6a21\u5f0f\uff0c\u5982\u4e0b\u6240\u793a \u5728\u8fd9\u4e2a\u5927\u7684\u6587\u672c\u6846\u4e2d\u7c98\u5165\u5982\u4e0b\u4ee3\u7801\uff1a alias : \u53d1\u5e03\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u5230MQTT description : \u5f53\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u53d8\u5316\u6216\u6bcf30\u79d2\u5b9a\u65f6\u65f6\uff0c\u81ea\u52a8\u53d1\u5e03\u5230MQTT\u4f9bNode-RED\u4f7f\u7528 triggers : - entity_id : sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 trigger : state - seconds : /30 trigger : time_pattern conditions : - condition : template value_template : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') not in ['unavailable', 'unknown', 'None'] and states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') | float(-999) != -999 }} actions : - data : topic : >- homeassistant/sensor/sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1/state payload : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') }} retain : false qos : 0 action : mqtt.publish mode : single \u6ce8\u610f: \u4ee5\u4e0a\u4ee3\u7801\u4e2d\u7684 sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u662f\u793a\u4f8b\u5b9e\u4f53ID\uff0c\u8bf7\u66ff\u6362\u4e3a\u4f60 \u5b9e\u9645\u7684\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u3002 \u653e\u7f6e\u5b8c\u6210\u540e\uff0c\u5982\u4e0b\u56fe\u793a\u610f \u89c2\u5bdf\u4e0a\u6b21\u89e6\u53d1\u5217\u662f\u5426\u4f1a\u6bcf\u969430\u79d2\u6267\u884c\u4e00\u6b21 \u8fd4\u56de\u5230\u4f20\u611f\u5668\u7684\u8bbe\u5907\u754c\u9762\u4e5f\u80fd\u770b\u5230\u8bbe\u5907\u7684\u81ea\u52a8\u5316\u4e0b\u9762\u6709\u4e00\u6761\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5982\u4e0b\u56fe \u5230\u6b64\uff0c\u81ea\u52a8\u5316\u89c4\u5219\u5df2\u914d\u7f6e\u5b8c\u6210\u3002","title":"2. \u521b\u5efa\u81ea\u52a8\u5316\u89c4\u5219"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#3-node-redmqtt","text":"","title":"3. \u5728Node-RED\u4e2d\u914d\u7f6eMQTT\u63a5\u6536\u8f6c\u53d1"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1-node-red","text":"\u6253\u5f00nod-red\u7f16\u8f91\u5668\uff0c\u6709\u7684HA\u53ef\u80fd\u662f\u914d\u7f6e\u5728\u5de6\u4fa7\u822a\u83dc\u5355\u4e2d\uff0c\u5982\u4e0b\u56fe\u5fd7\u793a\uff0c\u70b9\u51fb\u5373\u53ef\u8fdb\u5165 \u6709\u7684\u662f\u6ca1\u6709\u914d\u7f6enode-red\u5230\u5de6\u4fa7\u5bfc\u822a\u83dc\u5355\u7684\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u70b9\u51fb\"\u8bbe\u7f6e-\u52a0\u8f7d\u9879\"\u8fdb\u5165\u52a0\u8f7d\u9879\u9875\u9762 \u627e\u5230Node-RED\u52a0\u8f7d\u9879\uff0c\u70b9\u51fb\u8fdb\u5165 \u8fdb\u5165\u754c\u9762\u5982\u4e0b\uff1a","title":"1. \u6253\u5f00Node-RED\u7f16\u8f91\u5668"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2_1","text":"\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\"\u83dc\u5355\"\u6309\u94ae\uff0c\u518d\u70b9\u5bfc\u5165\u3002 \u5728\u6b64\u5904\u8d34\u5165\u5de5\u4f5c\u6d41\u4ee3\u7801\uff0c\u6ce8\u610f\uff1a\u8981\u9009\u62e9\u5bfc\u5165\u5230\u65b0\u6d41\u7a0b \u5de5\u4f5c\u6d41\u4ee3\u7801\u5982\u4e0b [ { \"id\" : \"1407d4531e19a951\" , \"type\" : \"tab\" , \"label\" : \"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u6570\u636e\u8f6c\u53d1\" , \"disabled\" : false , \"info\" : \"\u4eceHomeAssistant\u83b7\u53d6\u6e29\u5ea6\u4f20\u611f\u5668\u6570\u636e\u5e76\u53d1\u5e03\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\" }, { \"id\" : \"97e254f4a87ddde9\" , \"type\" : \"mqtt in\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8ba2\u9605HA\u6e29\u5ea6\u4f20\u611f\u5668\" , \"topic\" : \"homeassistant/sensor/+/state\" , \"qos\" : \"0\" , \"datatype\" : \"auto\" , \"broker\" : \"mqtt-ha-broker\" , \"nl\" : false , \"rap\" : true , \"rh\" : 0 , \"inputs\" : 0 , \"x\" : 150 , \"y\" : 100 , \"wires\" : [ [ \"44d729e67618e4f2\" ] ] }, { \"id\" : \"44d729e67618e4f2\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u5904\u7406\u6e29\u5ea6\u6570\u636e\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst targetDeviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\n\\n// \u4ecetopic\u4e2d\u63d0\u53d6\u5f53\u524d\u8bbe\u5907ID\\nconst topicParts = msg.topic.split('/');\\nconst currentDeviceId = topicParts.length >= 3 ? topicParts[2] : \\\"\\\";\\n\\n// \u53ea\u5904\u7406\u76ee\u6807\u8bbe\u5907\u7684\u6d88\u606f\\nif (currentDeviceId !== targetDeviceId) {\\n node.log(\\\"\u5ffd\u7565\u8bbe\u5907\u6d88\u606f: \\\" + currentDeviceId + \\\" (\u76ee\u6807\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n return null;\\n}\\n\\n// \u751f\u6210\u552f\u4e00\u7684\u6d88\u606fID\\nconst messageId = \\\"temp_\\\" + Date.now() + \\\"_\\\" + Math.floor(Math.random() * 1000);\\nconst timestamp = Date.now();\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u89e3\u6790\u6e29\u5ea6\u503c\\nlet temperature = parseFloat(msg.payload);\\nif (isNaN(temperature)) {\\n node.warn(\\\"\u63a5\u6536\u5230\u65e0\u6548\u7684\u6e29\u5ea6\u503c: \\\" + msg.payload);\\n return null;\\n}\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u683c\u5f0f\u5316\u6570\u636e\\nconst protocolMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": targetDeviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"value\\\": temperature,\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"quality\\\": \\\"good\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6e\u8f93\u51fa\u6d88\u606f\\nmsg.payload = JSON.stringify(protocolMessage);\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${targetDeviceId}/properties`;\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u6e29\u5ea6\u6570\u636e\u5df2\u5904\u7406: \\\" + temperature + \\\"\u00b0C (\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 420 , \"y\" : 100 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"573842ea77192dbb\" , \"type\" : \"mqtt out\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u5230\u516c\u53f8MQTT\" , \"topic\" : \"\" , \"qos\" : \"\" , \"retain\" : \"\" , \"respTopic\" : \"\" , \"contentType\" : \"\" , \"userProps\" : \"\" , \"correl\" : \"\" , \"expiry\" : \"\" , \"broker\" : \"mqtt-company-broker\" , \"x\" : 990 , \"y\" : 80 , \"wires\" : [] }, { \"id\" : \"4c630c164e08dc2c\" , \"type\" : \"debug\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8c03\u8bd5\u8f93\u51fa\" , \"active\" : true , \"tosidebar\" : true , \"console\" : false , \"tostatus\" : false , \"complete\" : \"payload\" , \"targetType\" : \"msg\" , \"statusVal\" : \"\" , \"statusType\" : \"auto\" , \"x\" : 1040 , \"y\" : 360 , \"wires\" : [] }, { \"id\" : \"495c392574ee1bf4\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u8bbe\u5907\u7269\u6a21\u578b\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"60\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"5\" , \"topic\" : \"shengtou/sensor/TH001_HA/model\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 170 , \"y\" : 180 , \"wires\" : [ [ \"3aea3ce2deb4ea99\" ] ] }, { \"id\" : \"3aea3ce2deb4ea99\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u7269\u6a21\u578b\u6570\u636e\" , \"func\" : \"const messageId = \\\"mdl_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u7269\u6a21\u578b\u5b9a\u4e49\\nconst modelMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"model\\\": {\\n \\\"deviceInfo\\\": {\\n \\\"manufacturer\\\": \\\"\u5c0f\u7c73\\\",\\n \\\"model\\\": \\\"MIAOMIAOC_CN_BLT_3_11A1SBR5K5O01_T2\\\",\\n \\\"version\\\": \\\"1.0.0\\\",\\n \\\"description\\\": \\\"\u7c73\u5bb6\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668(\u901a\u8fc7HomeAssistant\u96c6\u6210)\\\"\\n },\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"dataType\\\": \\\"float\\\",\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"range\\\": {\\n \\\"min\\\": -40,\\n \\\"max\\\": 85\\n },\\n \\\"precision\\\": 1,\\n \\\"description\\\": \\\"\u73af\u5883\u6e29\u5ea6\\\"\\n }\\n },\\n \\\"events\\\": {\\n \\\"startup\\\": {\\n \\\"eventType\\\": \\\"info\\\",\\n \\\"description\\\": \\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\\\"\\n }\\n },\\n \\\"alarms\\\": {\\n \\\"TEMP_HIGH\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u9ad8\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 35.0\\n },\\n \\\"TEMP_LOW\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u4f4e\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 0.0\\n }\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/model`;\\nmsg.payload = JSON.stringify(modelMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u7269\u6a21\u578b\u6570\u636e\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 160 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"70e1e283448c941e\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"120\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"10\" , \"topic\" : \"shengtou/sensor/TH001_HA/status\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 240 , \"wires\" : [ [ \"ae74b6d386748045\" ] ] }, { \"id\" : \"ae74b6d386748045\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u72b6\u6001\u6570\u636e\" , \"func\" : \"const messageId = \\\"sts_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u8ba1\u7b97\u8bbe\u5907\u8fd0\u884c\u65f6\u95f4\uff08\u4ece\u7b2c\u4e00\u6b21\u542f\u52a8\u5f00\u59cb\uff09\\nif (!context.get(\\\"startTime\\\")) {\\n context.set(\\\"startTime\\\", timestamp);\\n}\\nconst startTime = context.get(\\\"startTime\\\");\\nconst uptime = timestamp - startTime;\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u72b6\u6001\u6570\u636e\\nconst statusMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"status\\\": {\\n \\\"online\\\": true,\\n \\\"lastHeartbeat\\\": timestamp,\\n \\\"uptime\\\": uptime\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/status`;\\nmsg.payload = JSON.stringify(statusMessage);\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\u5df2\u53d1\u9001\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 240 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"7f9acf10d0c6085d\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u521d\u59cb\u5316\u5168\u5c40\u914d\u7f6e\" , \"props\" : [ { \"p\" : \"payload\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"1\" , \"topic\" : \"\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 150 , \"y\" : 40 , \"wires\" : [ [ \"6f6b825dfc5e9512\" ] ] }, { \"id\" : \"6f6b825dfc5e9512\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\" , \"func\" : \"// \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf\\nglobal.set(\\\"nameSpace\\\", \\\"Environment\\\");\\nglobal.set(\\\"clientCode\\\", \\\"Data-It_XzOffice\\\");\\nglobal.set(\\\"deviceId\\\", \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\");\\n\\nnode.log(\\\"\u5168\u5c40\u914d\u7f6e\u5df2\u8bbe\u7f6e: nameSpace=\\\" + global.get(\\\"nameSpace\\\") + \\\", clientCode=\\\" + global.get(\\\"clientCode\\\") + \\\", deviceId=\\\" + global.get(\\\"deviceId\\\"));\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 360 , \"y\" : 40 , \"wires\" : [ [ \"794c422d39898a7f\" ] ] }, { \"id\" : \"794c422d39898a7f\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u66f4\u65b0MQTT\u8ba2\u9605Topic\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u751f\u6210HomeAssistant MQTT\u8ba2\u9605Topic\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst haTopic = `homeassistant/sensor/${deviceId}/state`;\\n\\n// \u5c06Topic\u4fdd\u5b58\u5230\u5168\u5c40\u53d8\u91cf\u4f9b\u5176\u4ed6\u5730\u65b9\u4f7f\u7528\\nglobal.set(\\\"haSubscribeTopic\\\", haTopic);\\n\\nnode.log(\\\"HomeAssistant\u8ba2\u9605Topic\u5df2\u66f4\u65b0: \\\" + haTopic);\\nnode.log(\\\"\u6ce8\u610f\uff1a\u5982\u9700\u66f4\u6539MQTT In\u8282\u70b9\u7684\u8ba2\u9605Topic\uff0c\u8bf7\u624b\u52a8\u4fee\u6539\u4e3a: \\\" + haTopic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 590 , \"y\" : 40 , \"wires\" : [ [] ] }, { \"id\" : \"3bf854e9bd3e6937\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u542f\u52a8\u4e8b\u4ef6\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"15\" , \"topic\" : \"shengtou/sensor/TH001_HA/events\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 340 , \"wires\" : [ [ \"26f6196b2d6fba29\" ] ] }, { \"id\" : \"26f6196b2d6fba29\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u542f\u52a8\u4e8b\u4ef6\" , \"func\" : \"const messageId = \\\"evt_startup_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u4e8b\u4ef6\u6570\u636e\\nconst eventMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"events\\\": [\\n {\\n \\\"eventType\\\": \\\"startup\\\",\\n \\\"eventLevel\\\": \\\"info\\\",\\n \\\"eventCode\\\": \\\"EVT_001\\\",\\n \\\"description\\\": \\\"HomeAssistant\u6e29\u5ea6\u4f20\u611f\u5668\u4ee3\u7406\u8bbe\u5907\u542f\u52a8\u5b8c\u6210\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n ]\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/events`;\\nmsg.payload = JSON.stringify(eventMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 380 , \"y\" : 320 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"mqtt-ha-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"HomeAssistant MQTT\" , \"broker\" : \"192.168.50.83\" , \"port\" : \"1883\" , \"clientid\" : \"\" , \"autoConnect\" : true , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"autoUnsubscribe\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"\" , \"willQos\" : \"0\" , \"willPayload\" : \"\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" }, { \"id\" : \"mqtt-company-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"\u516c\u53f8MQTT\u670d\u52a1\u5668\" , \"broker\" : \"mqtt-test.ihemodialysis.com\" , \"port\" : \"62183\" , \"clientid\" : \"\" , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"shengtou/sensor/TH001_HA/status\" , \"willQos\" : \"0\" , \"willPayload\" : \"{\\\"messageId\\\":\\\"sts_offline\\\",\\\"timestamp\\\":0,\\\"deviceId\\\":\\\"TH001_HA\\\",\\\"deviceType\\\":\\\"sensor\\\",\\\"version\\\":\\\"1.0\\\",\\\"data\\\":{\\\"status\\\":{\\\"online\\\":false,\\\"lastHeartbeat\\\":0,\\\"uptime\\\":0}}}\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" } ] \u5f53\u7136\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4ece \u5de5\u4f5c\u6d41\u6587\u4ef6 \u5bfc\u5165\u65b0\u65b0\u5de5\u4f5c\u6d41\u3002 \u70b9\u51fb\u4e0a\u8ff0\u94fe\u63a5\u540e\uff0c\u4e0b\u8f7d\u6587\u4ef6\uff0c\u5e76\u89e3\u538b\uff0c\u5f97\u5230\u4e00\u4e2a\u540d\u4e3a flows.json \u7684\u6587\u4ef6\u3002 \u70b9\u51fb\u5bfc\u5165\u8282\u70b9\u6587\u4ef6\uff0c \u90e8\u7f72\u6210\u529f\u540e\uff0c\u4f1a\u51fa\u73b0\u5982\u4e0b\u56fe\u6240\u793a\u7684\u5de5\u4f5c\u6d41 \u6b64\u65f6\uff0c\u5de5\u4f5c\u6d41\u5df2\u521b\u5b8c\u6210.","title":"2. \u521b\u5efa\u65b0\u5de5\u4f5c\u6d41"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#3-mqtt","text":"\u5de5\u4f5c\u6d41\u4e2d\u6709\u4e24\u4e2aMQTT\u8282\u70b9\uff0c\u5206\u522b\u662fHome Assistant\u7684MQTT Broker\u548c\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u8fd9\u4e24\u4e2a\u8282\u70b9\u7684\u914d\u7f6e\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u8c03\u6574\u3002 \u9996\u5148\uff0c\u8981\u5148\u914d\u7f6eHome Assistant\u7684MQTT Broker\u8282\u70b9\uff0c\u786e\u4fdd\u5176\u8fde\u63a5\u4fe1\u606f\u6b63\u786e\u65e0\u8bef\u3002 \u5728\u6211\u4eec\u6ca1\u6709\u914d\u7f6emqtt in \u7684\u8fde\u63a5\u4fe1\u606f\u65f6\uff0c\u6211\u4eec\u53d1\u73b0\u8fd9\u4e2a\u8282\u70b9\u4e00\u76f4\u5904\u7406\u8fde\u63a5\u4e2d \u53cc\u51fb\u8be5\u8282\u70b9\uff0c\u8fdb\u5165\u914d\u7f6e\u754c\u9762 \u70b9\u51fb\u7f16\u8f91\u56fe\u6807 \u5728\u7f16\u8f91mqtt-broker\u8282\u70b9\u7684\u754c\u9762\u4e2d\u7684\u8fde\u63a5\u53c2\u6570\u9009\u9879\u5361\u4e2d\uff0c\u8f93\u5165\u6b63\u786e\u7684\u670d\u52a1\u7aef\u4e0e\u7aef\u53e3\u53f7 \u5982\u679cMQTT\u6709\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u8bf7\u5728\u8ba4\u8bc1\u9009\u9879\u5361\u4e2d\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u540e\uff0c\u7136\u540e\u70b9\u66f4\u65b0 \u7136\u540e\uff0c\u518d\u70b9\u51fb\u5b8c\u6210 \u6700\u540e\u70b9\u51fb\u90e8\u7f72 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u6b64\u8282\u70b9\u4f1a\u53d8\u4e3a\u5df2\u8054\u63a5 \u5bf9\u4e8e\"\u53d1\u5e03\u5230\u516c\u53f8MQTT\"\u8282\u70b9\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u8fde\u63a5\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u4e5f\u65f6\u540c\u6837\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u53cc\u51fb \u7136\u540e\uff0c\u66f4\u65b0\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72\u5373\u53ef\u3002 \u67e5\u627eHomeAssistant\u7684Mqtt\u914d\u7f6e\u4fe1\u606f \u5bf9\u4e8eHomeAssistant\u6211\u4eec\u4e00\u822c\u90fd\u662f\u63d0\u524d\u90e8\u7f72\u4e86\u5185\u7f6e\u7684MQTT Broker,\u5728\u4e0d\u77e5\u7aef\u53e3\u4e0e\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u6211\u6837\u53ef\u4ee5\u5728HomeAssistant\u4e2d\u53bb\u67e5\u627e \u8fdb\u5165\u8bbe\u7f6e\u52a0\u8f7d\u9879 \u627e\u5230Mosquitto broker\u8fd9\u4e2a\u9009\u9879\u5361,\u70b9\u51fb\u8fdb\u5165 \u70b9\u51fb\u914d\u7f6e\u9009\u9879\u5361 \u5728\u8fd9\u91cc\u53ef\u4ee5\u770b\u5230MQTT\u7684\u7aef\u53e3\u53f7\u4e0e\u7528\u6237\u540d\u5bc6\u7801\u7b49\u4fe1\u606f\uff0c\u53ca\u4e0b\u9762\u7684mqtt\u5f00\u653e\u7684\u7aef\u53e3\u4fe1\u606f\uff0cip\u5730\u5740\uff0c\u5c31\u662fha\u4e3b\u673a\u6240\u5728\u7684Ip\u5730\u5740\u3002\u4ee5\u4e0a\u4fe1\u606f\uff0c\u7528\u6765\u914d\u7f6e\u5de5\u4f5c\u6d41\u7684mqtt in\u7684\u53c2\u6570\u3002 \u516c\u53f8mqtt\u670d\u52a1\u7aef\u53e3\u4fe1\u606f \u8fd9\u4e2a\u53c2\u6570\uff0c\u8bf7\u5411\u516c\u53f8\u7ba1\u7406\u5458\u83b7\u53d6\uff0c\u6216\u8005\u5728\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u67e5\u770b\u3002","title":"3. \u914d\u7f6eMQTT\u8282\u70b9"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#4","text":"\u53cc\u51fb\u5de5\u4f5c\u6d41\u7684\u8282\u70b9\"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\",\u6253\u5f00\u7f16\u8f91function\u8282\u70b9 \u5bf9\u5982\u4e0b\u4e09\u884c,\u8fdb\u884c\u66f4\u6539 // \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf global . set ( \"nameSpace\" , \"Environment\" ); //\u547d\u540d\u7a7a\u95f4\uff0c\u9ed8\u8ba4\u4e3a\uff1aEnvironment\uff0c\u5982\u679c\u6709\u9700\u8981\uff0c\u4ee5\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u540e\uff0c\u66f4\u6539. global . set ( \"clientCode\" , \"Data-It_XzOffice\" ); // \u5ba2\u6237\u7aef\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4e3a\uff1aData-It_XzOffice\uff0c\u4e00\u5b9a\u8981\u6539\u4e3a\u4e2d\u5fc3\u5bf9\u5c31\u7684ClientCode\uff0c global . set ( \"deviceId\" , \"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\" ); //\u4e00\u5b9a\u8981\u6539\u4e3a\u4e4b\u524d\u6211\u4eec\u5b9a\u7684\u4f20\u611f\u5668\u5b9e\u4f53ID \u5982\u679c\u4e0d\u786e\u5b9a\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u3002 \u7136\u540e\uff0c\u70b9\u51fb\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72 \u7136\u540e\uff0c\u4e0b\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u4e00\u5b9a\u8981\u6267\u884c \u8fd9\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u5fc5\u987b\u6267\u884c\uff0c\u5426\u5219\u5de5\u4f5c\u6d41\u6ca1\u6709\u628a\u5168\u5c40\u53d8\u91cf\u5199\u5165\u5de5\u4f5c\u6d41\uff0c\u4f1a\u5bfc\u81f4\u53d1\u5e03\u6570\u636e\u4e0d\u6b63\u786e\u3002 \u7136\u540e\uff0c\u6211\u6837\u5c31\u53ef\u4ee5\u7528\u5728debug\u7684\u65e5\u5fd7\u4e2d\u770b\u5230\u6211\u4eec\u53d1\u5e03\u7684\u8282\u70b9\u6570\u636e\u4e86\uff0c \u6b64\u56fe\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5230mqtt\u53d1\u5e03\u5230\u516c\u53f8\u7684\u6570\u636e\uff0cclientCode\uff0cdeviceid\u662f\u5426\u6b63\u5e38\u4e86\u3002","title":"4.\u914d\u7f6e\u5de5\u4f5c\u6d41\u5168\u5c40\u53d8\u91cf"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#5","text":"\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5de5\u5177\u6765\u67e5\u770b\u516c\u53f8mqtt\u670d\u52a1\u6536\u5230\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38\u5982\u4e0b\u56fe \u8fd9\u91cc\u6211\u63a8\u8350\u4f7f\u7528\u5de5\u5177 MQTTX \u4e0b\u8f7d\u5730\u5740\u4e3a\uff1ahttps://mqttx.app/downloads \u81f3\u6b64,\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230\u80dc\u900f\u7684\u5de5\u4f5c\u6d41\u914d\u7f6e\u5b8c\u6210\u3002","title":"5. \u6d4b\u8bd5\u5de5\u4f5c\u6d41\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38"},{"location":"Usages/backupAndRestore/BackupToFile/","text":"\u5907\u4efd\u5230\u6587\u4ef6 \u00b6","title":"BackupToFile"},{"location":"Usages/backupAndRestore/BackupToFile/#_1","text":"","title":"\u5907\u4efd\u5230\u6587\u4ef6"},{"location":"Usages/backupAndRestore/RestoreFromFile/","text":"\u4ece\u5907\u4efd\u6587\u4ef6\u6587\u4ef6\u4e2d\u6062\u590d \u00b6 HomeAssistant\u652f\u6301\u4ece\u5907\u4efd\u6587\u4ef6\u4e32\u6062\u590d\u5df2\u914d\u7f6e\u597d\u7684HomeAssistant","title":"RestoreFromFile"},{"location":"Usages/backupAndRestore/RestoreFromFile/#_1","text":"HomeAssistant\u652f\u6301\u4ece\u5907\u4efd\u6587\u4ef6\u4e32\u6062\u590d\u5df2\u914d\u7f6e\u597d\u7684HomeAssistant","title":"\u4ece\u5907\u4efd\u6587\u4ef6\u6587\u4ef6\u4e2d\u6062\u590d"},{"location":"Usages/initConfig/initConfig/","text":"\u521d\u59cb\u5316\u914d\u7f6eHomeAssistant \u00b6 \u9996\u6b21\u6253\u5f00HomeAssistant \u00b6 \u9996\u6b21\u6253\u5f00HomeAssistant\u901a\u8fc7,\u8def\u7531\u5668\u4e3a\u5176\u5206\u914d\u7684IP\u5730\u5740\u52a0\u7aef\u53e3\u53f7\u5373\u53ef\u8fdb\u884cHomeAssistant. \u683c\u5f0f\u5982\u4e0b: http://Ip:Port \u5982:http://192.168.3.2:8123 \u57fa\u4e2d:8123\u4e3a\u5176\u9ed8\u8ba4\u7684\u7aef\u53e3\u540e,\u5f53\u7136,\u7cfb\u7edf\u521d\u59cb\u5316\u6210\u529f\u540e,\u53ef\u4ee5\u6539. \u5982\u4e0b\u56fe\u6240\u793a: \u70b9\u51fb\"\u521b\u5efa\u6211\u667a\u80fd\u5bb6\u5bb6\u5c45\"\u6309\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5728\u8fd9\u91cc\u6211\u4eec\u8f93\u5165\u59d3\u540d,\u7528\u6237\u540d,\u5bc6\u7801,\u786e\u8ba4\u5bc6\u7801 \u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u7edf\u4e00\u7684\u4fe1\u606f \u59d3\u540d:\u5cb1\u7279\u667a\u80fd \u7528\u6237\u540d:dtuser \u5bc6\u7801:****** \u786e\u8ba4\u5bc6\u7801:***** \u6ce8\u610f:\u4e0a\u8ff0\u5bc6\u7801\u4e3a\u4e86\u5b89\u5168,\u6ca1\u6709\u663e\u793a,\u8bf7\u54a8\u8be2\u7cfb\u7edf\u7ba1\u7406\u5458\u83b7\u53d6\u771f\u6b63\u7684\u5bc6\u7801. \u70b9\u51fb\"\u521b\u5efa\u5e10\u6237\", \u8fd9\u4e00\u6b65,\u4f1a\u8981\u6c42\u4f60\u8f93\u5165\u4f4d\u7f6e,\u8f93\u5165\u57ce\u5e02\u70b9\u83b7\u53d6,\u5982\u679c\u53d6\u4e0b\u5230\u4f1a\u62a5\u9519.\u6ca1\u5173\u7cfb,\u76f4\u63a5\u4e0b\u4e00\u6b65\u5373\u53ef,\u7cfb\u7edf\u914d\u7f6e\u5b8c\u6210\u540e,\u8fd8\u53ef\u66f4\u6539. \u8fd9\u4e00\u6b65\u662f\u8981\u6c42,\u4f60\u8f93\u4e0b\u6240\u5c5e\u7684\u56fd\u5bb6\u4e0e\u5730\u533a,\u5b83\u4f1a\u81ea\u52a8\u5224\u65ad\u51fa\u6765,\u56fd\u5bb6,\u76f4\u63a5\u70b9\u4e0b\u4e00\u6b65\u5373\u53ef. \u6b64\u65f6,\u5b83\u53ef\u80fd\u8fd8\u4f1a\u5f39\u51fa\u4e00\u4e2a\u5bf9\u8bdd\u6846\u6846,\u5e2e\u4f60\u68c0\u6d4b\u4f4d\u7f6e ,\u70b9\u786e\u5b9a\u5373\u53ef \u5982\u679c\u4e0d\u60f3\u8ba9\u5176\u68c0\u6d4b,\u76f4\u63a5\u70b9\u53d6\u6d88\u5373\u53ef,\u56e0\u4e3a\u5176\u68c0\u6d4b\u6298\u53ef\u80fd\u5f88\u6162,\u6240\u4ee5,\u76f4\u63a5\u70b9\u53d6\u6d88,\u9009\u62e9\u4e2d\u56fd\u5373\u53ef. \u8fd9\u91cc\u7684\u51e0\u9879,\u5168\u90e8\u4e0d\u7528\u9009,\u76f4\u63a5\u4e0b\u4e00\u6b65 \u8fd9\u4e00\u6b65,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u626b\u63cf\u5c40\u57df\u7f51\u4e2d\u7684\u80fd\u76f4\u63a5\u5165\u7684\u8bbe\u5907.\u76f4\u63a5\u70b9\u51fb\u5b8c\u6210, \u7136\u540e,\u7cfb\u7edf\u4f1a\u8f6c\u5230\u5982\u4e0b\u754c\u9762 \u53ef\u80fd\u8981\u6301\u7eed\u4e00\u9635,\u7b49\u5f85\u5176\u5b8c\u6210\u5373\u53ef. \u5f00\u59cb\u7b2c\u4e00\u6b21,\u53ef\u80fd\u5f88\u6162 \u9996\u6b21\u5b8c\u6210\u5982\u4e0b\u663e\u793a \u66f4\u65b0\u5fc5\u8981\u7684\u7ec4\u4ef6 \u00b6 \u9996\u6b21\u767b\u5f55,\u53ef\u80fd\u4f1a\u663e\u793a\u66f4\u65b0,\u5982\u6b64\u65f6\u663e\u793a \u63d0\u793a\u66f4\u65b0Home Assistnat Operating System Update,\u70b9\u51fb\u5982\u4e0b\u6309\u94ae,\u4ee5\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\uff0c\u70b9\u66f4\u65b0\u6309\u94ae \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u7cfb\u7edf\u5c06\u4f1a\uff0c\u8fdb\u884c\u66f4\u65b0 \u6ce8\u610f\uff0c\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u4e00\u822c\u662f\u4ece\u4e24\u4e2a\u5730\u65b9\u83b7\u53d6\u66f4\u65b0\u5305\uff0c\u4e00\u662fgithub\u4e00\u4e2a\u662fdocker\u7684\u4ed3\u5e93\uff0c\u6240\u4ee5\uff0c \u8981\u4fdd\u6301\u79d1\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u3002\u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u4f30\u8ba1\u8981\u51e0\u5206\u949f\uff0c\u9700\u8981\u8010\u5fc3\u7b49\u7b49\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u66f4\u65b0\u5931\u8d25\uff0c\u7136\u540e\uff0c\u518d\u6b21\u66f4\u65b0\u3002 \u66f4\u65b0\u65f6,\u5982\u679c\u7f51\u7edc\u6709\u95ee\u9898\u53ef\u80fd\u4f1a\u51fa\u5728\u65e5\u5fd7 \u4e2d\u62a5\u51fa\u5982\u4e0b\u9519\u8bef aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.439 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') [09:26:17] INFO: Home Assistant Core finish process exit code 0 [09:26:17] INFO: Home Assistant Core service shutdown s6-rc: info: service legacy-services successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun home-assistant (no readiness notification) s6-rc: info: service legacy-services successfully started 2025-04-16 17:28:26.876 ERROR (MainThread) [homeassistant.components.homeassistant_alerts.coordinator] Timeout fetching homeassistant_alerts data 2025-04-16 17:51:56.276 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.update 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain cloud.tts 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain mobile_app.notify 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain backup.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain energy.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain sun.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain homeassistant.scene 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.binary_sensor 2025-04-16 17:51:56.280 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.sensor \u4e0a\u8ff0\u9519\u8bef\u591a\u662f\u7531\u4e8e\u7f51\u7edc\u95ee\u9898\u5f15\u8d77\u7684,\u8981\u53bb\u68c0\u662f\u79d1\u5b66\u4e0a\u7f51\u662f\u5426\u8fd8\u6b63\u5e38. \u66f4\u5b8c\u5b8c\u6210\u540e,\u518d\u6b21\u542f\u52a8\u540e,\u4f1a\u663e\u793a\u6ca1\u6709\u53ef\u7528\u7684\u66f4\u65b0 \u914d\u7f6e-\u901a\u7528 \u00b6 \u70b9\u51fb,\u5f00\u59cb,\u901a\u7528 \u66f4\u6539\u540d\u79f0\u4e3a:\u5cb1\u7279\u667a\u80fd \u5176\u5b83\u7684\u4e0d\u53d8 #### \u914d\u7f6e-\u7f51\u7edc-\u4e3b\u673a\u540d \u628a\u4e3b\u673a\u540d\u914d\u7f6e\u6210\u4e3a\u5c40\u57df\u7f51\u4e2d\u552f\u4e00\u7684,\u5b9e\u9645\u8ba9\u5c31\u662f\u8ba1\u7b97\u673a\u540d,\u56e0\u4e3a\u540c\u4e00\u5c40\u57df\u7f51\u4e2d,\u8ba1\u7b97\u673a\u540d,\u4e0d\u5141\u8bb8\u76f8\u540c \u914d\u7f6e-\u8bbe\u7f6e-\u52a0\u8f7d\u9879 \u00b6 \u52a0\u8f7d\u9879\u4e2d\u6709\u8bb8\u591a\u5fc5\u88c5\u7ec4\u4ef6,\u9700\u8981\u4e00\u4e00\u5b89\u88c5,\u9996\u6b21\u8fdb\u5165\u65f6,\u53ef\u80fd\u4f1a\u663e\u793a\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u4e0b\u89d2\u7684\"\u52a0\u8f7d\u9879\u5546\u5e97\" \u5b89\u88c5File editor \u00b6 File editor \u662f\u4e00\u4e2a\u7528\u4e8e\u4fee\u6539HA\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u96c6\u6210\u5de5\u5177,\u5c5e\u5fc5\u88c5\u9879,\u70b9\u51fb\u5b89\u88c5 \u70b9\u51fb\u5b89\u88c5,\u7cfb\u7edf\u4f1a\u5728\u540e\u53f0\u81ea\u52a8\u5b89\u88c5\u6b64\u63d2\u4ef6, \u5b89\u88c5\u5b8c\u6210\u540e,\u4f1a\u81ea\u52a8\u91cd\u542f \u6709\u65f6\u4e5f\u4f1a\u63d0\u793a\u5b89\u88c5\u5931\u8d25 \u8fd9\u79cd\u7ecf\u67e5\u770b\u65e5\u5fd7 \u591a\u4e3a\u7f51\u5f3a\u884c\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee.docker.io,\u8fd9\u662f\u56e0\u4e3a\u79d1\u5b66\u4e0a\u98ce\u7684\u539f\u56e0,\u91cd\u70b9\u6392\u67e5\u7f51\u7edc,\u5b89\u88c5\u6210\u529f\u540e,\u518d\u6b21\u8fdb\u5165\u4f1a\u663e\u793a\u5982\u4e0b\u754c\u9762 \u52fe\u9009,\u5f00\u673a\u542f\u52a8,\u81ea\u52a8\u6062\u590d,\u663e\u793a\u4e8e\u4fa7\u8fb9\u680f \u70b9\u51fb\u542f\u52a8,\u6216\u91cd\u542f,\u5c06\u4f1a\u5728\u4fa7\u8fb9\u680f\u770b\u5230\u6b64\u56fe\u6807,\u70b9\u51fb\u6253\u5f00\u7f51\u9875\u754c\u9762 \u80fd\u770b\u5230\u5982\u4e0b\u754c\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u6b64\u65f6\u52a0\u8f7d\u9879\u4e2d,\u5c31\u591a\u51fa\u4e86File editor\u9009\u9879 \u5b89\u88c5Samba share\u63d2\u4ef6 \u00b6 Samba share\u63d2\u4ef6\u662f\u4e00\u4e2a\u63d0\u4f9b\u5171\u4eab\u76ee\u5f55\u7684\u65b9\u5f0f\u5141\u884c\u5176\u5b83\u8ba1\u7b97\u673a\u7528\u8fd9\u79cd\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91ha\u7684\u6587\u4ef6\u7684\u7ec4\u4ef6. \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5931\u8d25\u65f6,\u4f1a\u6709\u5982\u4e0b\u63d0\u4e0b\u63d0\u793a \u6253\u5f00\u81ea\u52a8\u6062\u590d \u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5230\u914d\u7f6e\u9009\u9879\u4e2d \u6b64\u5904\u6211\u4eec\u8bbe\u7f6e\u5982\u4e0b\u4fe1\u606f Username:dtuser Password:***** # \u6b64\u5904\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 Workgroup:WORKGROUP # \u4fdd\u6301\u4e0d\u53d8 \u66f4\u6539\u5b8c\u6210\u540e,\u6709\u5982\u4e0b\u914d\u7f6e \u914d\u7f6e \u5b8c\u6210\u540e,\u70b9\u51fb\u542f\u52a8 \u542f\u52a8\u6210\u529f\u540e,\u4f1a\u51fa\u4e0b\u56fe\u663e\u793a \u6b64\u65f6,\u5982\u679c,\u4e0eHA\u5728\u540c\u4e00\u5c40\u57df\u7f51\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u67e5\u770bHA\u7684\u6587\u4ef6\u76ee\u5f55 \u5728\u5730\u5740\u680f\u8f93\u5165\\HA\u7684IP \u8f93\u5165\u9884\u8bbe\u7684\u7528\u6237\u540d\u4e0e\u5bc6\u7801,\u5373\u53ef\u67e5\u770b,\u7f16\u8f91HA\u7684\u5404\u79cd\u6587\u4ef6\u3002 \u5b89\u88c5Terminal & SSH \u00b6 Terminal & SSH \u63d2\u4ef6\u4e3aHA\u63d0\u4f9b\u4e86\u5728web\u7aef\u4f7f\u7528\u63a7\u5236\u53f0\u7ec8\u7aef\u529f\u80fd,\u53ca\u5f00\u542f\u4e86ssh\u670d\u52a1,\u4f7f\u4e4b\u53ef\u4ee5\u8fdc\u7a0b\u4f7f\u7528SSH\u8bbf\u95eeHA\u7ec8\u7aef\u3002 \u5728\u641c\u7d22\u4e2d\u8f93\u5165Terminal & SSH \u7ed3\u679c\u6709\u53ef\u80fd\u663e\u793a \u641c\u7d22\u4e0d\u5230\uff0c\u8fd9\u65f6\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u4ed3\u5e93\u6ca1\u6709\u914d\u7f6e\uff0c\u8fd8\u662f\u4f7f\u7528\u7684\u9ed8\u8ba4\u7684\u4ed3\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u589e\u52a0\u4e00\u4e0b\u4ed3\u5e93\uff0c\u5982\u4e0b\uff1a https://github.com/AlexxIT/hassio-addons \u70b9\u51fb\u53f3\u4e0a\u89e3\u7684\u4e09\u4e2a\u70b9,\u9009\u4e2d\u4ed3\u5e93 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165,\u6211\u4eec\u8bb0\u5f55\u7684\u4ed3\u5e93\u5730\u5740,\u7136\u540e\u70b9\u6dfb\u52a0 \u5b8c\u6210\u540e,\u70b9\u51fb\u5173\u95ed. \u7136\u540e,\u70b9\u51fb\u8fd4\u56de,\u91cd\u65b0\u641c\u7d22 \u8fd9\u6b21\u627e\u5230\u4e86Advance SSH & Web Terminal \u70b9\u51fb\u5b89\u88c5,\u6253\u5f00\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u5b89\u88c5,\u6709\u65f6\u4f1a\u5b89\u88c5\u5931\u8d25, \u5931\u8d25\u540e,\u9700\u518d\u6b21\u5b89\u88c5,\u540c\u65f6\u68c0\u67e5\u65e5\u5fd7\u4e2d\u63d0\u5230\u7684\u54ea\u4e2a\u7f51\u5740\u65e0\u6cd5\u8bbf\u95ee ,\u628a\u5176\u52a0\u79d1\u5b66\u4e0a\u7f51\u7684\u4ee3\u7406\u540d\u5355\u4e2d. \u5b89\u88c5\u5b8c\u6210\u540e,\u5c31\u53d8\u6210\u5982\u4e0b \u5f00\u542f\u81ea\u52a8\u6062\u5f97,\u663e\u793a\u4fa7\u8fb9\u680f \u63a5\u4e0b\u6765,\u6211\u4eec\u914d\u7f6essh\u7684\u767b\u5f55\u4fe1\u606f,\u5982\u4e0b \u76f8\u5173\u4fe1\u606f\u5982\u4e0b: username:dtuser passsword:**** # \u6b64\u5904\u9700\u8981\u54a8\u8be2\u7ba1\u7406\u5458 \u5176\u5b83\u914d\u7f6e\u9009\u9879\u5982\u4e0b,\u6ce8\u610f\u9009\u9879,\u9009\u9519\u4e86ssh\u53ef\u80fd\u542f\u4e0d\u8d77\u6765,sftp\u5173\u95ed,zsh\u5173\u95ed.compatibility_mode\u8981\u5f00\u542f \u7136\u540e,\u70b9\u51fb\u542f\u52a8\u6309\u94ae \u542f\u52a8\u540e\u5982\u4e0b \u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u5730\u65b9\u8fdb\u5165 \u5728\u65e5\u5fd7 \u7aef\u80fd\u770b\u5230 ssh\u5df2\u542f\u52a8\u6210\u529f s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-ssh: starting s6-rc: info: service init-mysql: starting s6-rc: info: service init-mosquitto: starting s6-rc: info: service init-docker: starting s6-rc: info: service init-docker successfully started s6-rc: info: service init-mysql successfully started s6-rc: info: service init-mosquitto successfully started [14:51:05] WARNING: [14:51:05] WARNING: Logging in with a SSH password is security wise, a bad idea! [14:51:05] WARNING: Please, consider using a public/private key pair. [14:51:05] WARNING: What is this? https://kb.iu.edu/d/aews [14:51:05] WARNING: [14:51:05] NOTICE: RSA host key missing, generating one... Generating public/private rsa key pair. Your identification has been saved in /data/ssh_host_rsa_key Your public key has been saved in /data/ssh_host_rsa_key.pub The key fingerprint is: SHA256:+9pEl2QvyUqsu4B3gnPjhL/Ab71iBIDjWRdYvgZeg0c root@a0d7b954-ssh The key's randomart image is: +---[RSA 3072]----+ | . oE. | |o .o+. | |..o+.= o | | o. = o . + + | | . + S + * . | | ..+. = o . | | B.B.+ o | | X+=.= | | o=o=+o | +----[SHA256]-----+ [14:51:08] NOTICE: ED25519 host key missing, generating one... Generating public/private ed25519 key pair. Your identification has been saved in /data/ssh_host_ed25519_key Your public key has been saved in /data/ssh_host_ed25519_key.pub The key fingerprint is: SHA256:MgbUsAJ+23skjVTwD0pWVRBCmZ0BjU3jwV/99gGnNVc root@a0d7b954-ssh The key's randomart image is: +--[ED25519 256]--+ |. o+o*%O*. . E| |.. . .=+o*o o =.| | ...o+ o .. . = +| | ..*.+ o . . .o| | . =+oS. .o| | .+o .| | . . | | . | | | +----[SHA256]-----+ s6-rc: info: service init-ssh successfully started s6-rc: info: service init-user: starting [14:51:08] NOTICE: Session sharing has been disabled! s6-rc: info: service init-user successfully started s6-rc: info: service ttyd: starting s6-rc: info: service sshd: starting s6-rc: info: service sshd successfully started s6-rc: info: service ttyd successfully started s6-rc: info: service legacy-services: starting [14:51:09] INFO: Starting the ttyd daemon... [14:51:09] INFO: Starting the SSH daemon... s6-rc: info: service legacy-services successfully started Server listening on 0.0.0.0 port 22. Server listening on :: port 22. \u914d\u7f6e\u6210\u529f\u540e,\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u6765\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u8fdc\u7a0bSSH\u8fde\u5165 \u8f93\u5165yes\u540e\u4f1a\u8981\u6c42 \u8f93\u5165\u5bc6\u7801,\u9a8c\u8bc1\u6b63\u786e\u540e,\u4f1a\u8fdb\u5165\u770b\u5230\u5982\u4e2a\u56fe,\u5c31\u8bf4\u660essh\u5df2\u6b63\u5e38\u7684\u5f00\u542f\u6210\u529f\u4e86 \u4ee5\u4e0b\u754c\u9762\u662f\u5728ha\u4e2d\u770b\u5230\u7684\u5185\u7f6e\u7684ssh \u5176\u5b83,\u5f53\u8bbf\u95ee\u4e00\u4e9b\u7cfb\u7edf\u64cd\u4f5c\u65e0\u6743\u9650\u65f6,\u53ef\u4ee5\u5173\u95ed\u4fdd\u62a4\u5f00\u5173 \u5b89\u88c5Mosquitto broker \u00b6 Mosquitto broker\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u63d2\u4ef6,\u5176\u63d0\u4f9b\u7684MQTT \u670d\u52a1\u4e3a\u516c\u53f8\u5927\u591a\u6570\u6570\u8bbe\u5907\u6298\u96c6\u6210\uff0cmqtt\u901a\u4fe1\u901a\u9053\uff0c\u6240\u4ee5\uff0c\u6b64\u4e3a\u5fc5\u88c5\u63d2\u4ef6\u3002 \u70b9\u51fb\u5b89\u88c5 \u770b\u5230\u5982\u4e0b\u754c\u9762\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\uff0c \u63a5\u4e0b\u6765\u662f\u914d\u7f6emqtt \u5f00\u542f\u81ea\u52a8\u6062\u590d \u00b6 \u914d\u7f6emqtt\u7684\u7528\u6237\u540d\u5bc6\u7801\u53ca\u5b9a\u5236\u914d\u7f6e \u00b6 username:dtuser password:****** #\u6b64\u5904\u7684\u5bc6\u7801\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 \u914d\u7f6e\u5b8c\u6210\u540e,\u542f\u52a8mqtt\u670d\u52a1 \u65e5\u5fd7\u4e2d\u663e\u793a\u5982\u4e0b\u4fe1\u606f,\u8bf4\u660e\u6210\u529f s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting cont-init: info: running /etc/cont-init.d/mosquitto.sh [16:33:27] INFO: Setting up user dtuser [16:33:28] INFO: SSL is not enabled cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0 cont-init: info: running /etc/cont-init.d/nginx.sh cont-init: info: /etc/cont-init.d/nginx.sh exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun mosquitto (no readiness notification) services-up: info: copying legacy longrun nginx (no readiness notification) [16:33:29] INFO: Starting NGINX for authentication handling... s6-rc: info: service legacy-services successfully started [16:33:29] INFO: Starting mosquitto MQTT broker... 2025-04-17 16:33:29: Warning: Mosquitto should not be run as root/administrator. 2025-04-17 16:33:29: mosquitto version 2.0.20 starting 2025-04-17 16:33:29: Config loaded from /etc/mosquitto/mosquitto.conf. 2025-04-17 16:33:29: Loading plugin: /usr/share/mosquitto/go-auth.so 2025-04-17 16:33:29: \u251c\u2500\u2500 Username/password checking enabled. 2025-04-17 16:33:29: \u251c\u2500\u2500 TLS-PSK checking enabled. 2025-04-17 16:33:29: \u2514\u2500\u2500 Extended authentication not enabled. 2025-04-17 16:33:29: Opening ipv4 listen socket on port 1883. 2025-04-17 16:33:29: Opening ipv6 listen socket on port 1883. 2025-04-17 16:33:29: Opening websockets listen socket on port 1884. 2025-04-17 16:33:29: mosquitto version 2.0.20 running 2025-04-17 16:33:29: New connection from ::1:56336 on port 1883. 2025-04-17 16:33:29: Client <unknown> disconnected due to protocol error. [16:33:30] INFO: Successfully send discovery information to Home Assistant. [16:33:31] INFO: Successfully send service information to the Supervisor. \u5f53\u6d88\u606f,\u63d0\u793a\u53d1\u73b0\u8bbe\u5907\u65f6,\u70b9\u51fb,\u5f39\u51fa\u7684\u6d88\u606f\u4e2d,\u70b9check it out,\u7136\u540e,\u770b\u5230\u5df2\u53d1\u73b0mqtt,\u70b9\u51fb\u6dfb\u52a0 \u7136\u540e,\u70b9\u51fb\u5b8c\u6210 \u7136\u540e\u5c31\u4f1a\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u96c6\u6210\u4e2d,\u663e\u793aMqtt,\u4ee5\u540e,\u6240\u6709\u589e\u52a0\u7684MQTT\u7c7b\u8bbe\u5907\uff0c\u90fd\u4f1a\u663e\u793a\u5728\u8fd9\u4e2a\u7c7b\u522b\u4e2d\u3002 \u5b89\u88c5Node-RED\u63d2\u4ef6 \u00b6 Node-Red\u63d2\u4ef6\u662f\u6211\u4eec\u96c6\u4e2d\u5404\u79cd\u8bbe\u5907\u7684\u91cd\u8981\u6d88\u606f\u5904\u7406\u8f6c\u6362\u63d2\u4ef6,\u5c5e\u5fc5\u88c5\u63d2\u4ef6. \u5728\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22nod\u663e\u793a\u5982\u4e0b \u70b9\u51fb,\u8fdb\u5165\u8be6\u7ec6\u9875\u9762 \u70b9\u51fb\u5b89\u88c5 \u5982\u679c\u5b89\u88c5\u51fa\u9519,\u591a\u534a\u662f\u79d1\u5b66\u4e0a\u7f51\u7684\u95ee\u9898, \u5982\u73b0\u5982\u4e0b\u9875\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u5f00\u542f\u81ea\u52a8\u6062\u590d,\u5173\u95ed\u4fa7\u8fb9\u680f \u914d\u7f6enod-red \u6b64\u5904\u7684\u914d\u7f6e\u4fe1\u606f\u4e3a username:admin password:**** #\u6b64\u5904\u7684\u5bc6\u7801,\u8bf7\u5411\u7ba1\u7406\u5458\u83b7\u53d6 ### \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5173\u95edssl \u7136\u540e\u542f\u52a8node-red \u70b9\u51fb\u6253\u5f00web-\u9875\u9762\u5982\u4e0b \u5b89\u88c5go2rtc\u63d2\u4ef6 \u00b6 go2rtc\u63d2\u4ef6\u662f\u4e3a\u4e86\u5bf9\u89c6\u6d41\u8f6c\u53d1\u7528\u7684\u4e13\u7528\u63d2\u4ef6,\u5982\u679c\u60f3\u628a\u76d1\u63a7\u89c6\u9891\u6d41\u63a5\u5165,\u5219\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u63d2\u4ef6,\u5b89\u88c5\u65b9\u6cd5\u662f,\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22go2rtc, \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5b8c\u6210\u540e\u5f00\u542f\u81ea\u52a8\u6062\u590d,\u81ea\u52a8\u66f4\u65b0 \u5176\u8bbe\u7f6e\u4e2d\u57fa\u672c\u6ca1\u4ec0\u4e48\u8981\u6539\u7684. \u5b89\u88c5VLC\u53ef\u4ee5\u64ad\u653e\u89c6\u9891\u7b49\u529f\u80fd,\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u5b89\u88c5 \u00b6 \u5728\u52a0\u8f7d\u5546\u5e97\u4e2d\u641c\u7d22vlc \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u6210\u529f\u5982\u4e0b\u6240\u793a \u914d\u7f6e\u4e2d\u57fa\u672c\u6ca1\u8981\u8981\u914d\u7f6e\u7684\u4e1c\u897f \u5229\u7528 Docker \u5b89\u88c5 PostgreSQL \u00b6 \u867d\u7136 Home Assistant OS \u672c\u8eab\u4e0d\u5141\u8bb8\u76f4\u63a5\u8bbf\u95ee\u7cfb\u7edf\u5e95\u5c42\uff0c\u4f46\u5b83\u5185\u7f6e\u4e86 Docker \u652f\u6301\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c PostgreSQL \u7684 Docker \u5bb9\u5668\u3002 \u6b65\u9aa4 \u00b6 \u786e\u4fdd\u60a8\u6709 SSH \u8bbf\u95ee\u6743\u9650 \u5b89\u88c5 Home Assistant \u7684 SSH & Web Terminal Add-on\uff08\u9ad8\u7ea7\u6a21\u5f0f\uff09\u3002 \u5f00\u542f SSH \u8bbf\u95ee\uff0c\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u524d\u5f80 Supervisor > Add-on Store \u3002 \u641c\u7d22\u5e76\u5b89\u88c5 SSH & Web Terminal \uff08\u5b98\u65b9\u63d2\u4ef6\uff09\u3002 \u914d\u7f6e SSH \u63d2\u4ef6\uff0c\u786e\u4fdd protected \u8bbe\u7f6e\u4e3a false \uff0c\u7136\u540e\u542f\u52a8\u5b83\u3002 \u8fd0\u884c PostgreSQL \u5bb9\u5668 \u5728 SSH \u6216 Web Terminal \u4e2d\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD= **pwd** \\ -e POSTGRES_DB=dtha \\ -v /db/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ postgres \u66ff\u6362 **pwd** \u4e3a\u60a8\u60f3\u8981\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u5bc6\u7801,\u4e9b\u5bc6\u7801,\u9700\u8981\u7ba1\u7406\u5458\u54a8\u8be2 \u6570\u636e\u5e93\u540d\u79f0\u4e3a dtha \uff0c\u7528\u6237\u540d\u4e3a dtuser \u3002 \u6570\u636e\u5c06\u5b58\u50a8\u5728 /mnt/data/supervisor/postgresql \uff0c\u786e\u4fdd\u6570\u636e\u5728\u91cd\u542f\u540e\u4e0d\u4f1a\u4e22\u5931\u3002 \u767b\u5f55ssh,\u5e76\u67e5\u770b\u5df2\u5b89\u88c5\u7684docker\u955c\u50cf\u5982\u4e0b \u5148\u521b\u5efapgsql\u5b58\u50a8\u5377\u9700\u8981\u7684\u76ee\u5f55,\u8fd9\u4e2a\u6211\u4eec\u7edf\u4e00\u5b9a\u4e3a\u5982\u4e0b\u76ee\u5f55,\u5e76\u7ed9777\u6743\u9650 /db/pgsqldata \u5373\u5728\u6839\u76ee\u5f55\u4e0b,\u521b\u5efadb\u76ee\u5f55,\u7136\u540e\u5728db\u76ee\u5f55\u4e2d\u521b\u5efapgsqldata,\u5e76\u7ed9\u8db3\u6743\u9650 / # cd homeassistant homeassistant # ls automations.yaml configuration.yaml home-assistant.log home-assistant.log.fault home-assistant_v2.db-shm scenes.yaml secrets.yaml blueprints deps home-assistant.log.1 home-assistant_v2.db home-assistant_v2.db-wal scripts.yaml tts homeassistant # mkdir db homeassistant # sudo chmod -R 7777 ./db homeassistant # cd db db # ls db # pwd /homeassistant/db db # sudo mkdir pgsqldata db # sudo chmod -R 7777 ./pgsqldata db # ls pgsqldata db # cd pgsqldata pgsqldata # ls -l ./ total 0 pgsqldata # cd .. db # ls -l ./ total 4 drwsrwsrwt 2 root root 4096 Apr 18 16:30 pgsqldata \u63a5\u4e0b\u6765,\u62c9\u53d6\u955cpgsql\u7684\u955c\u50cf,\u5e76\u6307\u5411/mnt/data/pgsqldata,\u6b64\u5904\u8981\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u76ee\u5f55\u90fd\u6709\u5199\u5165\u6743\u9650,homeAssitant\u4e2d\u5927\u90e8\u4efd\u76ee\u5f55\u90fd\u6ca1\u6709\u5199\u5165\u6743\u9650,\u8981\u6ce8\u610f\u627e\u6709\u5199\u5165\u6743\u9650\u7684\u76ee\u5f55 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7cfb\u7edf\u4f1a\u81ea\u52a8\u62c9\u53d6\u955c\u50cf,\u5e76\u542f\u52a8,\u6b64\u8fc7\u7a0b\u52a1\u5fc5\u4fdd\u8bc1\u79d2\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u5982\u4e0b\u56fe,\u6240\u793a, \u8bf4\u660e\u76ee\u5f55\u6ca1\u6709\u6743\u9650, chown -R root:root mnt/data/pgsqldata chmod -R 7777 /mnt/data/pgsqldata \u7ed9\u591f\u76ee\u5f55\u6743\u9650\u540e,\u518d\u6b21\u8fd0\u884c,\u5b89\u88c5\u6307\u4ee4 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: docker: Error response from daemon: Conflict. The container name \"/postgresql\" is already in use by container \"f5b838e28f30ff3bde9f90276b8aa4924b4f1ecec2cdbd4e38dfe27e2c988edb\". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help \u4e0a\u8ff0\u8bf4\u660epgswl\u7684\u5bb9\u5668\u5df2\u7ecf\u5b58\u5728,\u9700\u8981\u5220\u9664 docker stop postgresql docker rm postgresql \u7136\u540e,\u518d\u6b21\u6267\u884c,\u5373\u53ef\u6210\u529f data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7528ps -a \u67e5\u8be2\u4e00\u4e0b,\u5982\u4e0b\u56fe\u6240\u793a,\u8bf4\u660edocker \u542f\u52a8\u6210\u529f, \u4e3a\u4e86\u9a8c\u8bc1\u91cd\u65b0\u542f\u52a8\u540e,pgsql\u5bb9\u5668\u662f\u5426\u542f\u52a8,\u53ef\u4ee5\u91cd\u542f\u540e,\u518d\u6b21\u67e5\u770b\u4e00\u4e0b,\u6b64\u5bb9\u5668\u662f\u5426\u8ddf\u968f\u7cfb\u7edf\u542f\u52a8\u6210\u529f. \u63a5\u4e0b\u6765,\u6211\u4eec\u53ef\u4ee5\u5728\u5c40\u57df\u7f51\u4e2d\u627e\u53f0\u673a\u5668\u6765\u505a\u4e00\u4e0b\u6570\u636e\u5e93\u8fde\u63a5\u6d4b\u8bd5 \u5982\u4e0a\u56fe,\u8bf4\u660epgsql\u5df2\u7ecf\u5b89\u88c5\u6210\u529f\u4e86,\u5e76\u80fd\u6b63\u5e38\u8bbf\u95ee. \u66f4\u6539homeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3apgSql \u00b6 HomeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3asqlite,\u6211\u4eec\u9700\u8981\u628a\u5176\u6362\u6210\u6211\u4eec\u65b0\u5b89\u88c5\u7684pgsql, \u901a\u8fc7\u6211\u4eec\u5b89\u88c5\u7684\u63d2\u4ef6File editor \u6253\u5f00\u914d\u7f6e\u6587\u4ef6 /homeassistant/configruration.yaml \u589e\u52a0recorder\u4e2d\u7684\u914d\u7f6e\u5982\u4e0b \u7136\u540e,\u4fdd\u5b58\u9000\u51fa,\u91cd\u542f,\u770b\u770bha\u6709\u6ed1\u7684\u7ed9\u51fa\u9519\u8bef\u63d0\u793a,\u4e5f\u53ef\u4ee5\u901a\u8fc7,\u8fde\u63a5\u5de5\u5177\u6765\u67e5\u770b,ha\u6709\u6ca1\u6709\u5728\u6570\u636e\u5e93\u4e2d\u5efa\u8868,\u5199\u5165\u6570\u636e \u5982\u4e0a\u56fe,\u8bf4\u660e\u6570\u636e\u5df2\u529f\u529f\u6298\u5199\u5165PGSQL,\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u628a\u7cfb\u7edf\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u5220\u9664\u4e86 \u8fd9\u4e2a\u6587\u4ef6\u662fhomeAssistant\u9ed8\u8ba4\u7684sqlite\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u4e86\uff0c\u70b9\u53f3\u5219\u7684\u4e09\u4e2a\u70b9\uff0c\u5728\u5f39\u51fa\u7684\u83dc\u5355\u4e2d\uff0c\u70b9delete \u70b9\u51fbyes\u786e\u8ba4 \u7136\u540e\u91cd\u542f,\u518d\u6b21\u67e5\u770b,\u662f\u5426\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6, \u5982\u679c\u6ca1\u6709\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6 ,\u8bf4\u660e,\u7cfb\u7edf\u5df2\u7ecf\u5728\u7528pgsql\u4e86 \u5b89\u88c5HACS \u00b6 hacs\u7b80\u4ecb \u00b6 HACS\uff0c\u5168\u79f0 Home Assistant Community Store\uff08Home Assistant \u793e\u533a\u5546\u5e97\uff09\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e Home Assistant \u7684\u7b2c\u4e09\u65b9\u6269\u5c55\u63d2\u4ef6\u7ba1\u7406\u5668\u3002\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u65b9\u4fbf\u7684\u65b9\u5f0f\u6765\u5b89\u88c5\u548c\u7ba1\u7406\u793e\u533a\u5f00\u53d1\u7684\u81ea\u5b9a\u4e49\u96c6\u6210\u3001\u63d2\u4ef6\u3001\u4e3b\u9898\u548c\u5176\u4ed6\u6269\u5c55\u7ec4\u4ef6\u3002 \u8fd9\u4e2a\u63d2\u4ef6\u96c6\u4e2d\u4e86\u8bb8\u591a\u5927\u5c4f\u7528\u7684\u4e3b\u9898\u4e0e\u63d2\u4ef6\uff0c\u5c5e\u4e8e\u5fc5\u88c5\u63d2\u4ef6\uff0e \u5b89\u88c5hacs \u00b6 \u8fdb\u5165ssh\u767b \u5f55\u540e,\u8f93\u5165\u5982\u4e0b\u6307\u4ee4 wget -O - https://get.hacs.xyz | bash - \u56de\u8f66\u540e,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7dHACS\uff0c\u5e76\u653e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u4e14\u63d0\u793a\u91cd\u542f\uff0c\u6211\u4eec\u6309\u8981\u6c42\u91cd\u542f\uff0c\u5373\u53ef\u3002 \u542f\u7528HACS \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5728 Home Assistant \u7684\u754c\u9762\u4e2d\u542f\u7528 HACS\uff1a \u6253\u5f00 Home Assistant UI\u3002 \u70b9\u51fb \u8bbe\u7f6e > \u8bbe\u5907\u4e0e\u670d\u52a1 > \u96c6\u6210 \u3002 \u70b9\u51fb\u53f3\u4e0b\u89d2 \u6dfb\u52a0\u96c6\u6210 \u3002 \u641c\u7d22\u5e76\u9009\u62e9 HACS \uff0c\u7136\u540e\u6309\u7167\u5c4f\u5e55\u4e0a\u7684\u63d0\u793a\u5b8c\u6210\u8bbe\u7f6e\u3002 \u70b9\u51fb\u540e,\u5728\u5f39\u51fa\u7684\u7a97\u53e3\u4e2d,\u5168\u6253\u52fe,\u70b9\u63d0\u4ea4 \u5f15\u65f6,\u5f39\u51fa\u65b0\u7684\u7a97\u53e3,\u9a8c\u8bc1github\u6388\u6743 \u70b9\u51fb\u8fd9\u4e2agithub\u94fe\u63a5,\u5e76\u8bb0\u4f4f\u4e0b\u65b9\u7684\u6388\u6743\u7801\u540e\u9762\u4f1a\u7528\u5230 \u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d,\u8f93\u5165,\u8bb0\u4f4f\u7684\u6388\u6743\u7801,\u70b9Continue \u63d0\u793a\u5177\u4f53\u7684\u6388\u6743\u5bf9\u50cf\u4e3ahacs,\u70b9\u51fbAutuorize hacs \u6388\u6743\u6210\u529f \u8fd4\u56dehacs\u540e,\u63d0\u793a\u6210\u529f,\u5e76\u663e\u793a\u5df2\u53d1\u73b0\u5982\u4e0b\u8bbe\u5907,hacs,\u9009\u62e9\u533a\u57df,\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e2a\u533a\u57df,\u7136\u540e\u70b9\u5b8c\u6210 \u770b\u5230\u5982\u4e0b\u754c\u9762hacs\u5c31\u5b89\u88c5\u597d\u4e86 \u70b9\u51fb\u914d\u7f6e,\u542f\u7528App Daemon apps discovery & tgracking. \u4ee5\u4e0a\u914d\u7f6e \u5b8c\u6210\u540e,\u91cd\u65b0\u542f\u52a8HA\uff0c\u5219\u53ef\u4ee5\u5728\u5de6\u4fa7\u680f\u4e2d\u627e\u5230HACS\u83dc\u5355\u4e86 \u66f4\u6539HomeAssistant\u5de6\u4e0a\u89d2LOGO\u6807\u9898 \u00b6 homeAssistant \u5de6\u4e0a\u89d2\u9ed8\u8ba4\u7684\u6807\u9898\u4e3a Home Assistant \u6211\u4eec\u5e0c\u671b\u6539\u6210\u81ea\u5df2\u7684\u6807\u8bc6\u5982:\u5cb1\u7279\u667a\u80fd \u4e0b\u8f7d\u7b2c\u4e09\u65b9\u63d2\u4ef6hass-favicon\u7684Releases\u5230\u672c\u5730\u76ee\u5f55 \u00b6 \u70b9\u51fb\u94fe\u63a5 ,\u5230\u5176github\u7684\u5b98\u65b9\u9875\u9762 \u4e0b\u8f7d\u5176\u6e90\u7801 \u89e3\u538b\u4e0b\u8f7d\u7684\u6e90\u7801 \u00b6 \u5c06\u63d2\u4ef6\u590d\u5236\u5230ha\u4e0a \u00b6 \u6253\u5f00\u6e90\u7801\u76ee\u5f55,\u8fdb\u5165custom_commponents\u76ee\u5f55,\u628afavicon\u76ee\u5f55\u6574\u4f53\u590d\u5236 \u7136\u540e,\u8fdb\u5165ha\u7684config-custom_compoents\u76ee\u5f55\u7c98\u8d34,\u590d\u5236\u5230\u7684favicon \u7136\u540e\u521b\u5efa\u76ee\u5f55 \\\\ha-o[\\config\\www\\favicons \u5e76\u628a\u80dc\u900f\u7684logo\u6587\u4ef6st-logo.,png\u653e\u5230\u76ee\u5f55\u4e2d \u7136\u540e\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u5185\u5bb9 \u7136\u540e,\u91cd\u542fHomeAssistant\u5373\u53ef \u91cd\u542f\u540e,\u5de6\u4e0a\u811a\u7684LOGO\uff0c\u5df2\u53d8\u4e3a\u5cb1\u7279\u667a\u80fd. \u5b89\u88c5\u7c73\u5bb6\u96c6\u6210\u63d2\u4ef6 \u00b6 \u7c73\u5bb6\u96c6\u6210\u662f\u4e00\u4e2a\u7531\u5c0f\u7c73\u5b98\u65b9\u63d0\u4f9b\u652f\u6301\u7684 Home Assistant \u7684\u96c6\u6210\u7ec4\u4ef6\uff0c\u5b83\u53ef\u4ee5\u8ba9\u60a8\u5728 Home Assistant \u4e2d\u4f7f\u7528\u5c0f\u7c73 IoT \u667a\u80fd\u8bbe\u5907\u3002 \u8fd9\u4e2a\u63d2\u4ef6,\u53ef\u4ee5\u76f4\u63a5\u628a\u6240\u6709\u5c0f\u7c73\u7684\u5404\u79cd\u4f20\u611f\u5668\u96c6\u6210\u5230HomeAssistant\u4e2d,\u6240\u4ee5\u8fd9\u4e2a\u662f\u5fc5\u88c5\u63d2\u4ef6. \u5176\u5b98\u65b9\u4ed3\u5e93\u5730\u5740\u4e3a: Xiaomi Home Integration for Home Assistant https://github.com/XiaoMi/ha_xiaomi_home \u5176\u5b89\u88c5\u65b9\u6cd5\u6709\u4e09\u79cd,\u6211\u4eec\u4e3a\u4e86\u65b9\u4fbf\u9009\u62e9\u7b2c\u4e00\u79cd,\u5176\u5b83\u4e24\u79cd\u65b9\u6cd5,\u53ef\u4ee5\u81ea\u884c\u5c1d\u8bd5.\u5b98\u65b9\u63cf\u8ff0\u7684\u65b9\u88c5\u4e3b\u5f0f\u5982\u4e0b: cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config \u5176\u4e5f\u63d0\u4f9b \u4e2d\u6587\u7684\u5b89\u88c5\u8bf4\u660e \u5b89\u88c5 \u00b6 \u9996\u5148,\u767b\u5f55SSH.\u7136\u540e\u8fdb\u5165config\u76ee\u5f55 \u5148\u62c9\u53d6\u4ee3\u7801 config # git clone https://github.com/XiaoMi/ha_xiaomi_home.git Cloning into 'ha_xiaomi_home'... remote: Enumerating objects: 1322, done. remote: Counting objects: 100% (761/761), done. remote: Compressing objects: 100% (342/342), done. remote: Total 1322 (delta 628), reused 419 (delta 419), pack-reused 561 (from 2) Receiving objects: 100% (1322/1322), 847.87 KiB | 1.64 MiB/s, done. Resolving deltas: 100% (817/817), done. \u7136\u540e,\u518d\u5207\u6362\u5230ha_xiaomi_home\u76ee\u5f55 cd ha_xiaomi_home \u7136\u540e\u6267\u884c\u5b89\u88c5\u6307\u4ee4 ./install.sh /config # Xiaomi Home installation is completed. Please restart Home Assistant. \u5b89\u88c5\u5b8c\u6210,\u63d0\u793a\u9700\u8981\u91cd\u542f. \u914d\u7f6e \u00b6 \u5728\u91cd\u65b0\u542f\u52a8\u540e,\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210\u4e2d,\u641c\u7d22\u201c Xiaomi Home \u201d \u70b9\u51fb,\u4f1a\u63d0\u793a\u98ce\u9669\u63d0\u793a \u52fe\u9009,\u6211\u77e5\u6089,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u4f1a\u8fdb\u5165\u57fa\u7840\u914d\u7f6e\u9875\u9762,\u5982\u4e0b\u56fe \u52fe\u9009\u96c6\u6210\u7f51\u7edc\u914d\u7f6e,\u540c\u86d9,\u6ce8\u610f\u4e00\u4e0b,\u8ba4\u8bc1\u8df3\u8f6c\u5730\u5740,\u6b64\u5904\u663e\u6b3e\u4e3ahttp://homeassistant.lcaol:8123,\u8fd9\u4e2a\u5730\u5740,\u4f30\u8ba1\u4e0d\u53ef\u80fd\u901a\u8fc7,\u53ea\u56e0\u4e3a\u6211\u4eec\u662f\u5728\u5c40\u57df\u7f51\u5176\u5b83\u673a\u5668\u64cd\u4f5c\u8fd9\u4e00\u6b65\u7684,\u5b9e\u9645\u4e0a\u6211\u4eec\u7684\u5730\u5740,\u5e94\u662f\u5730\u5740\u680f\u4e2d\u6298\u5b9e\u9645\u5730\u5740,\u5982\u4e0a\u56fe,\u6211\u4eec\u7684\u8ba4\u8bc1\u5730\u5740\u662f:http://192.168.3.2:8123, \u5728\u4e0b\u4e00\u6b65\u8df3\u8f6c\u8f6c\u5c0f\u7c73\u540e,\u6253\u5f00\u7684\u7f51\u5740\u65f6,\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u4f30\u8ba1\u662f\u6253\u4e0d\u5f00\u7684,\u9700\u8981\u628a\u90a3\u4e2a\u5730\u5740\u7684\u524d\u534a\u6bb5,\u6362\u6210\u8fd9\u4e2a\u5b9e\u9645\u5730\u5740. \u70b9\u51fb\u4e0b\u4e00\u6b65, \u6b64\u5904\u4e3a\u68c0\u6d4b\u7f51\u7edc,\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u65f6,\u624d\u80fd\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5f53\u5f39\u51fa\u5982\u4e0b\u754c\u9762\u65f6,\u8bf4\u660e\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u4e86, \u70b9\u51fb,\"\u8bf7\u70b9\u6b64\u5904\u8fdb\u884c\u767b\u5f55\", \u6b64\u65f6,\u8df3\u8f6c\u5230\u5c0f\u7c73\u6298\u8ba4\u8bc1\u7f51\u9875,\u6b64\u65f6\u8f93\u5165\u6b63\u786e\u7c73\u5bb6\u5e10\u53f7\u4e0e\u5bc6\u7801,\u70b9\u767b\u5f55 \u5f39\u51fa \u53cb\u60c5\u63d0\u793a,\u70b9\u51fb,\u540c\u610f\u5e76\u7ee7\u7eed \u5c0f\u7c73\u7684\u5b89\u5168\u9a8c\u8bc1,\u70b9\u4e0b\u4e00\u6b65, \u70b9\u51fb \u53d1\u9001\u9a8c\u8bc1\u7801 \u8f93\u5165\u9a8c\u8bc1\u7801\u540e,\u70b9\u786e\u5b9a \u8df3\u8f6c\u5230\u4e86\u8ba4\u8bc1\u7a97\u53e3,\u4f46\u662f\u5374\u662f\u65e0\u65b9\u8bbf\u95ee\u6b64\u9875\u9762,\u8bf4\u660e\u8ba4\u8bc1\u5730\u5740,\u9519\u4e86,\u6211\u4eec\u9700\u8981\u628a\u5b83\u6362\u6210\u6211\u4eec\u6b63\u786e\u7684HA\u5730\u5740\uff1ahttp://192.168.3.2:8123,\u5982\u4e0b\u56fe\u6240\u793a \u624b\u5de5\u5c06\u6b63\u786e\u7684\u5730\u5740\u66ff\u6362\u5730\u5740\u5934\u90e8\u540e,\u56de\u8f66,\u6253\u5f00\u8fd9\u4e2a\u5730\u5740,\u7c7b\u4f3c\u5982\u4e0b\u683c\u5f0f: http://192.168.3.2:8123/api/webhook/3062281226000218850?code=C3_B7440E147BCCA71A76831877D510611F&state=d90a727abad348efee834884dae174b80a15de14 \u5982\u679c,\u7528\u4e0a\u8ff0\u65b9\u5f0f,\u4ecd\u7136\u4e0d\u80fd\u8bbf\u95ee,\u5219\u53ef\u7528\u5982\u4e0b\u65b9\u6cd5,\u66f4\u6539host\u6587\u4ef6,\u5f3a\u884c\u6307\u5b9a\u672c\u5730DNS,\u6307\u5411homeassistant.local,\u65b9\u6cd5\u5982\u4e0b: \u4fee\u6539 Windows hosts \u6587\u4ef6\u7684\u65b9\u6cd5 \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u7528\u8bb0\u4e8b\u672c\u6253\u5f00\u5982\u4e0b\u6587\u4ef6 :C:\\Windows\\System32\\drivers\\etc\\hosts \u5728\u6700\u540e\u4e00\u884c\u589e\u52a0 192.168.3.2 homeassistant.local \u5982\u4e0b\u56fe \u7136\u540e,\u518d\u91cd\u65b0\u8bd5\u8fc7\u4e00\u6b21 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd,\u5c31\u4f1a\u81ea\u52a8\u8ba4\u8bc1\u901a\u8fc7 \u53ef\u4ee5\u6839\u636e\u63d0\u793a\u81ea\u52a8\u9009 \u5219\u623f\u95f4\u540c\u6b65\u6a21\u5f0f,\u8fd9\u4e2a\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u5c06\u63d0\u793a\u63d2\u4ef6\u96c6\u6210\u6210\u529f.\u5982\u4e0b\u793a\u610f\u56fe \u770b\u5230\u5982\u4e0b\u56fe,\u5c31\u8bf4\u660e\u96c6\u6210\u5b8c\u6210\u4e86 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u6982\u89c8\u4e2d,\u5c31\u5df2\u7ecf\u81ea\u52a8\u589e\u52a0\u4e86\u8bb8\u591a\u8bbe\u5907. \u5b89\u88c5WebRTC Camera \u00b6 WebRTC camera\u63d2\u4ef6\u4ee5\u5b9e\u73b0\u9891\u6d41\u64ad\u653e.\u5982\u679cha\u8981\u63a5\u5165\u89c6\u9891\u76d1\u63a7,\u5219\u9700\u8981\u5b89\u88c5\u8fd9\u4e2a\u7ec4\u4ef6, \u4ed3\u5e93\u5730\u5740 : https://github.com/AlexxIT/WebRTC \u8fd9\u4e2a\u63d2\u4ef6\u4e5f\u6709\u591a\u79cd\u5b89\u88c5\u65b9\u6cd5,hacs\u5b89\u88c5,\u76f4\u63a5\u590d\u5236\u7b49\u65b9\u6cd5,\u56e0\u4e3a\u4e0a\u6587,\u6211\u4eec\u5df2\u7ecf\u5b89\u88c5\u8fc7\u4e86HACS\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u4f7f\u7528HACS\u65b9\u5f0f\u5b89\u88c5\u3002 \u70b9\u51fb\u540e\uff0c\u5f39\u51fa\u5982\u4e0b\u9875\u9762 \u70b9\u51fbDownLoad\u6309\u94ae \u70b9\u51fbDownLoad \u5f53\u7136,\u6211\u4eec\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u6298\u7248\u672c \u5f53\u5f39\u51fa\u7a97\u53e3\u81ea\u52a8\u6d88\u5931,\u70b9\u51fb\u4e0a\u65b9\u7684\u8fd4\u56de( \u6ce8\u610f:\u4e0d\u4f1a\u81ea\u52a8\u8fd4\u56de,\u987b\u4eba\u5de5\u8fd4\u56de ),\u8fd4\u56de\u5982\u4e0b\u56fe \u770b\u5230\u4e0a\u65b9\u7684\u7b49\u5f85\u91cd\u542f,\u8bf4\u660e\u7ec4\u4ef6\u5df2\u7ecf\u5b89\u88c5\u4e0a,\u9700\u8981\u91cd\u542f,\u6211\u4eec\u6267\u884c\u91cd\u542f. \u91cd\u542f\u5b8c\u6210\u540e,\u4f1a\u770b\u5230,Downloaded\u4e2d\u5df2\u7ecf\u663e\u793a,\u4e86\u5b89\u88c5\u6210\u529f\u6298WebRTC Camera\u7ec4\u4ef6. \u7136\u540e,\u8fdb\u5165\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210,\u641c\u7d22WebRTC \u70b9\u51fbWebRtc Camera \u5f39\u51fago2rtc url\u5730\u5740\u7a97\u53e3,\u6b64\u63d2\u4ef6,\u6211\u4eec\u4e4b\u524d\u5df2\u88c5\u8fc7,\u5c31\u5728\u672c\u673a,\u6240\u5730\u5740\u4e0d\u7528\u6539,\u76f4\u63a5\u70b9\u63d0\u4ea4 \u70b9\u5b8c\u6210.WebRTC\u5b89\u88c5\u6210\u529f.\u5982\u4e0b\u56fe\u6240\u793a \u4e3a\u4e86\u6f14\u793a\u5982\u4f55\u663e\u793a\u76d1\u63a7\u89c6\u9891,\u6211\u4eec\u65b0\u589e\u52a0\u4e00\u4e2asample\u7684\u4eea\u8868\u76d8. \u70b9\u51fb,\u6dfb\u52a0\u4eea\u8868\u76d8 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d,\u8f93\u5165\u4eea\u8868\u76d8\u6807\u9898 \u8fd9\u6837\u6211\u6837\u5c31\u589e\u52a0\u4e86\u4e00\u4e2a\u4eea\u8868\u76d8dashboard-sampale,\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u4e2a\u4eea\u8868\u76d8\u4e2d\u589e\u52a0\u6f14\u793a\u7528\u7684\u7ec4\u4ef6,\u6b64\u5904,\u6211\u4eec\u60f3\u589e\u52a0\u4e00\u4e2a\u6f14\u793a\u7528\u7684\u76d1\u63a7\u6444\u50cf\u5934.\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u7f16\u8f91\u6309\u94ae. \u70b9\u51fb\u521b\u5efa\u4e00\u4e2a\u7ec4\u4ef6 \u7136\u540e,\u65b0\u5efa\u5361\u7247,\u9009\u62e9\u81ea\u5b9a\u4e49WebRTC\u5361\u7247,\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a\u7ec4\u4ef6,\u5219\u9700\u8981\u5237\u65b0\u51e0\u6b21,\u5c31\u80fd\u770b\u5230\u8fd9\u4e2a\u7ec4\u4ef6. \u6211\u6837\u5728\u5361\u7247\u8bbe\u7f6e\u4e2d\u8f93\u5165url\u7684\u89c6\u9891\u6d41\u5730\u5740 type: custom:webrtc-camera url: \"rtsp://admin:Camera_data2018@192.168.50.131:554/stream2\" \u5b89\u88c5motionEye \u00b6 motionEye \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6444\u50cf\u5934\u8f6f\u4ef6\uff08\u79f0\u4e3a motion\uff09\u7684\u524d\u7aef\u3002\u672c\u63d2\u4ef6\u540c\u65f6\u63d0\u4f9b\u4e86\u524d\u7aef\u548c\u6444\u50cf\u5934\u8f6f\u4ef6\uff0c\u8ba9\u60a8\u53ef\u4ee5\u5c06\u6444\u50cf\u5934\u6dfb\u52a0\u5230 Hass.io \uff08Home Assistant\uff09\u7cfb\u7edf\u4e2d\u3002 motionEye \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ed\u8def\u7535\u89c6\uff08CCTV\uff09\u548c\u7f51\u7edc\u89c6\u9891\u5f55\u50cf\u673a\uff08NVR\uff09\uff0c\u5b83\u8bbe\u8ba1\u4f18\u96c5\u4e14\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002\u5b83\u53ef\u4ee5\u7528\u4f5c\u5a74\u513f\u76d1\u89c6\u5668\u3001\u5efa\u7b51\u5de5\u5730\u76d1\u63a7\u3001\u5546\u5e97\u6444\u50cf\u5934\u5f55\u50cf\u673a\u3001\u82b1\u56ed\u5b89\u9632\u7b49\u3002 motionEye \u7684\u4e00\u4e9b\u7279\u70b9\uff1a \u00b6 \u652f\u6301\u5927\u91cf\u6444\u50cf\u5934\uff0c\u5305\u62ec IP \u6444\u50cf\u5934\u3002 \u53ef\u4ee5\u901a\u8fc7\u5c06\u591a\u4e2a motionEye \u5b9e\u4f8b\u8fde\u63a5\u5728\u4e00\u8d77\u6dfb\u52a0\u591a\u4e2a\u6444\u50cf\u5934\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u7f51\u7edc\u4e2d\u4f7f\u7528\u8fd0\u884c MotionEyeOS \u7684 Pi Zero \u548c Pi \u6444\u50cf\u5934\u3002 \u652f\u6301\u5c06\u5f55\u50cf\u4e0a\u4f20\u5230 Google Drive \u548c Dropbox\u3002 \u652f\u6301\u8fd0\u52a8\u68c0\u6d4b\uff0c\u5305\u62ec\u90ae\u4ef6\u901a\u77e5\u548c\u8ba1\u5212\u4efb\u52a1\u3002 \u53ef\u4ee5\u8fde\u7eed\u5f55\u50cf\u3001\u8fd0\u52a8\u5f55\u50cf\u6216\u5ef6\u65f6\u5f55\u50cf\uff0c\u5e76\u652f\u6301\u4fdd\u7559\u8bbe\u7f6e\u3002 \u652f\u6301\u914d\u7f6e\u4e2d\u7684\u201c\u64cd\u4f5c\u6309\u94ae\u201d\u3002 \u5b89\u88c5\u65b9\u6cd5 \u00b6 \u5728\u8bbe\u7f6e-\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22\"motionEye\", \u70b9\u51fb\u67e5\u770b\u8be6\u60c5\u9875,\u5e76\u5b89\u88c5 motioneye\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u4e3aadmin,\u5bc6\u7801\u4e3a\u7a7a.","title":"\u7cfb\u7edf\u521d\u59cb\u5316\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#homeassistant","text":"","title":"\u521d\u59cb\u5316\u914d\u7f6eHomeAssistant"},{"location":"Usages/initConfig/initConfig/#homeassistant_1","text":"\u9996\u6b21\u6253\u5f00HomeAssistant\u901a\u8fc7,\u8def\u7531\u5668\u4e3a\u5176\u5206\u914d\u7684IP\u5730\u5740\u52a0\u7aef\u53e3\u53f7\u5373\u53ef\u8fdb\u884cHomeAssistant. \u683c\u5f0f\u5982\u4e0b: http://Ip:Port \u5982:http://192.168.3.2:8123 \u57fa\u4e2d:8123\u4e3a\u5176\u9ed8\u8ba4\u7684\u7aef\u53e3\u540e,\u5f53\u7136,\u7cfb\u7edf\u521d\u59cb\u5316\u6210\u529f\u540e,\u53ef\u4ee5\u6539. \u5982\u4e0b\u56fe\u6240\u793a: \u70b9\u51fb\"\u521b\u5efa\u6211\u667a\u80fd\u5bb6\u5bb6\u5c45\"\u6309\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5728\u8fd9\u91cc\u6211\u4eec\u8f93\u5165\u59d3\u540d,\u7528\u6237\u540d,\u5bc6\u7801,\u786e\u8ba4\u5bc6\u7801 \u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u7edf\u4e00\u7684\u4fe1\u606f \u59d3\u540d:\u5cb1\u7279\u667a\u80fd \u7528\u6237\u540d:dtuser \u5bc6\u7801:****** \u786e\u8ba4\u5bc6\u7801:***** \u6ce8\u610f:\u4e0a\u8ff0\u5bc6\u7801\u4e3a\u4e86\u5b89\u5168,\u6ca1\u6709\u663e\u793a,\u8bf7\u54a8\u8be2\u7cfb\u7edf\u7ba1\u7406\u5458\u83b7\u53d6\u771f\u6b63\u7684\u5bc6\u7801. \u70b9\u51fb\"\u521b\u5efa\u5e10\u6237\", \u8fd9\u4e00\u6b65,\u4f1a\u8981\u6c42\u4f60\u8f93\u5165\u4f4d\u7f6e,\u8f93\u5165\u57ce\u5e02\u70b9\u83b7\u53d6,\u5982\u679c\u53d6\u4e0b\u5230\u4f1a\u62a5\u9519.\u6ca1\u5173\u7cfb,\u76f4\u63a5\u4e0b\u4e00\u6b65\u5373\u53ef,\u7cfb\u7edf\u914d\u7f6e\u5b8c\u6210\u540e,\u8fd8\u53ef\u66f4\u6539. \u8fd9\u4e00\u6b65\u662f\u8981\u6c42,\u4f60\u8f93\u4e0b\u6240\u5c5e\u7684\u56fd\u5bb6\u4e0e\u5730\u533a,\u5b83\u4f1a\u81ea\u52a8\u5224\u65ad\u51fa\u6765,\u56fd\u5bb6,\u76f4\u63a5\u70b9\u4e0b\u4e00\u6b65\u5373\u53ef. \u6b64\u65f6,\u5b83\u53ef\u80fd\u8fd8\u4f1a\u5f39\u51fa\u4e00\u4e2a\u5bf9\u8bdd\u6846\u6846,\u5e2e\u4f60\u68c0\u6d4b\u4f4d\u7f6e ,\u70b9\u786e\u5b9a\u5373\u53ef \u5982\u679c\u4e0d\u60f3\u8ba9\u5176\u68c0\u6d4b,\u76f4\u63a5\u70b9\u53d6\u6d88\u5373\u53ef,\u56e0\u4e3a\u5176\u68c0\u6d4b\u6298\u53ef\u80fd\u5f88\u6162,\u6240\u4ee5,\u76f4\u63a5\u70b9\u53d6\u6d88,\u9009\u62e9\u4e2d\u56fd\u5373\u53ef. \u8fd9\u91cc\u7684\u51e0\u9879,\u5168\u90e8\u4e0d\u7528\u9009,\u76f4\u63a5\u4e0b\u4e00\u6b65 \u8fd9\u4e00\u6b65,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u626b\u63cf\u5c40\u57df\u7f51\u4e2d\u7684\u80fd\u76f4\u63a5\u5165\u7684\u8bbe\u5907.\u76f4\u63a5\u70b9\u51fb\u5b8c\u6210, \u7136\u540e,\u7cfb\u7edf\u4f1a\u8f6c\u5230\u5982\u4e0b\u754c\u9762 \u53ef\u80fd\u8981\u6301\u7eed\u4e00\u9635,\u7b49\u5f85\u5176\u5b8c\u6210\u5373\u53ef. \u5f00\u59cb\u7b2c\u4e00\u6b21,\u53ef\u80fd\u5f88\u6162 \u9996\u6b21\u5b8c\u6210\u5982\u4e0b\u663e\u793a","title":"\u9996\u6b21\u6253\u5f00HomeAssistant"},{"location":"Usages/initConfig/initConfig/#_1","text":"\u9996\u6b21\u767b\u5f55,\u53ef\u80fd\u4f1a\u663e\u793a\u66f4\u65b0,\u5982\u6b64\u65f6\u663e\u793a \u63d0\u793a\u66f4\u65b0Home Assistnat Operating System Update,\u70b9\u51fb\u5982\u4e0b\u6309\u94ae,\u4ee5\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\uff0c\u70b9\u66f4\u65b0\u6309\u94ae \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u7cfb\u7edf\u5c06\u4f1a\uff0c\u8fdb\u884c\u66f4\u65b0 \u6ce8\u610f\uff0c\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u4e00\u822c\u662f\u4ece\u4e24\u4e2a\u5730\u65b9\u83b7\u53d6\u66f4\u65b0\u5305\uff0c\u4e00\u662fgithub\u4e00\u4e2a\u662fdocker\u7684\u4ed3\u5e93\uff0c\u6240\u4ee5\uff0c \u8981\u4fdd\u6301\u79d1\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u3002\u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u4f30\u8ba1\u8981\u51e0\u5206\u949f\uff0c\u9700\u8981\u8010\u5fc3\u7b49\u7b49\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u66f4\u65b0\u5931\u8d25\uff0c\u7136\u540e\uff0c\u518d\u6b21\u66f4\u65b0\u3002 \u66f4\u65b0\u65f6,\u5982\u679c\u7f51\u7edc\u6709\u95ee\u9898\u53ef\u80fd\u4f1a\u51fa\u5728\u65e5\u5fd7 \u4e2d\u62a5\u51fa\u5982\u4e0b\u9519\u8bef aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.439 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') [09:26:17] INFO: Home Assistant Core finish process exit code 0 [09:26:17] INFO: Home Assistant Core service shutdown s6-rc: info: service legacy-services successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun home-assistant (no readiness notification) s6-rc: info: service legacy-services successfully started 2025-04-16 17:28:26.876 ERROR (MainThread) [homeassistant.components.homeassistant_alerts.coordinator] Timeout fetching homeassistant_alerts data 2025-04-16 17:51:56.276 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.update 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain cloud.tts 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain mobile_app.notify 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain backup.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain energy.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain sun.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain homeassistant.scene 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.binary_sensor 2025-04-16 17:51:56.280 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.sensor \u4e0a\u8ff0\u9519\u8bef\u591a\u662f\u7531\u4e8e\u7f51\u7edc\u95ee\u9898\u5f15\u8d77\u7684,\u8981\u53bb\u68c0\u662f\u79d1\u5b66\u4e0a\u7f51\u662f\u5426\u8fd8\u6b63\u5e38. \u66f4\u5b8c\u5b8c\u6210\u540e,\u518d\u6b21\u542f\u52a8\u540e,\u4f1a\u663e\u793a\u6ca1\u6709\u53ef\u7528\u7684\u66f4\u65b0","title":"\u66f4\u65b0\u5fc5\u8981\u7684\u7ec4\u4ef6"},{"location":"Usages/initConfig/initConfig/#-","text":"\u70b9\u51fb,\u5f00\u59cb,\u901a\u7528 \u66f4\u6539\u540d\u79f0\u4e3a:\u5cb1\u7279\u667a\u80fd \u5176\u5b83\u7684\u4e0d\u53d8 #### \u914d\u7f6e-\u7f51\u7edc-\u4e3b\u673a\u540d \u628a\u4e3b\u673a\u540d\u914d\u7f6e\u6210\u4e3a\u5c40\u57df\u7f51\u4e2d\u552f\u4e00\u7684,\u5b9e\u9645\u8ba9\u5c31\u662f\u8ba1\u7b97\u673a\u540d,\u56e0\u4e3a\u540c\u4e00\u5c40\u57df\u7f51\u4e2d,\u8ba1\u7b97\u673a\u540d,\u4e0d\u5141\u8bb8\u76f8\u540c","title":"\u914d\u7f6e-\u901a\u7528"},{"location":"Usages/initConfig/initConfig/#-_1","text":"\u52a0\u8f7d\u9879\u4e2d\u6709\u8bb8\u591a\u5fc5\u88c5\u7ec4\u4ef6,\u9700\u8981\u4e00\u4e00\u5b89\u88c5,\u9996\u6b21\u8fdb\u5165\u65f6,\u53ef\u80fd\u4f1a\u663e\u793a\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u4e0b\u89d2\u7684\"\u52a0\u8f7d\u9879\u5546\u5e97\"","title":"\u914d\u7f6e-\u8bbe\u7f6e-\u52a0\u8f7d\u9879"},{"location":"Usages/initConfig/initConfig/#file-editor","text":"File editor \u662f\u4e00\u4e2a\u7528\u4e8e\u4fee\u6539HA\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u96c6\u6210\u5de5\u5177,\u5c5e\u5fc5\u88c5\u9879,\u70b9\u51fb\u5b89\u88c5 \u70b9\u51fb\u5b89\u88c5,\u7cfb\u7edf\u4f1a\u5728\u540e\u53f0\u81ea\u52a8\u5b89\u88c5\u6b64\u63d2\u4ef6, \u5b89\u88c5\u5b8c\u6210\u540e,\u4f1a\u81ea\u52a8\u91cd\u542f \u6709\u65f6\u4e5f\u4f1a\u63d0\u793a\u5b89\u88c5\u5931\u8d25 \u8fd9\u79cd\u7ecf\u67e5\u770b\u65e5\u5fd7 \u591a\u4e3a\u7f51\u5f3a\u884c\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee.docker.io,\u8fd9\u662f\u56e0\u4e3a\u79d1\u5b66\u4e0a\u98ce\u7684\u539f\u56e0,\u91cd\u70b9\u6392\u67e5\u7f51\u7edc,\u5b89\u88c5\u6210\u529f\u540e,\u518d\u6b21\u8fdb\u5165\u4f1a\u663e\u793a\u5982\u4e0b\u754c\u9762 \u52fe\u9009,\u5f00\u673a\u542f\u52a8,\u81ea\u52a8\u6062\u590d,\u663e\u793a\u4e8e\u4fa7\u8fb9\u680f \u70b9\u51fb\u542f\u52a8,\u6216\u91cd\u542f,\u5c06\u4f1a\u5728\u4fa7\u8fb9\u680f\u770b\u5230\u6b64\u56fe\u6807,\u70b9\u51fb\u6253\u5f00\u7f51\u9875\u754c\u9762 \u80fd\u770b\u5230\u5982\u4e0b\u754c\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u6b64\u65f6\u52a0\u8f7d\u9879\u4e2d,\u5c31\u591a\u51fa\u4e86File editor\u9009\u9879","title":"\u5b89\u88c5File editor"},{"location":"Usages/initConfig/initConfig/#samba-share","text":"Samba share\u63d2\u4ef6\u662f\u4e00\u4e2a\u63d0\u4f9b\u5171\u4eab\u76ee\u5f55\u7684\u65b9\u5f0f\u5141\u884c\u5176\u5b83\u8ba1\u7b97\u673a\u7528\u8fd9\u79cd\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91ha\u7684\u6587\u4ef6\u7684\u7ec4\u4ef6. \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5931\u8d25\u65f6,\u4f1a\u6709\u5982\u4e0b\u63d0\u4e0b\u63d0\u793a \u6253\u5f00\u81ea\u52a8\u6062\u590d \u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5230\u914d\u7f6e\u9009\u9879\u4e2d \u6b64\u5904\u6211\u4eec\u8bbe\u7f6e\u5982\u4e0b\u4fe1\u606f Username:dtuser Password:***** # \u6b64\u5904\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 Workgroup:WORKGROUP # \u4fdd\u6301\u4e0d\u53d8 \u66f4\u6539\u5b8c\u6210\u540e,\u6709\u5982\u4e0b\u914d\u7f6e \u914d\u7f6e \u5b8c\u6210\u540e,\u70b9\u51fb\u542f\u52a8 \u542f\u52a8\u6210\u529f\u540e,\u4f1a\u51fa\u4e0b\u56fe\u663e\u793a \u6b64\u65f6,\u5982\u679c,\u4e0eHA\u5728\u540c\u4e00\u5c40\u57df\u7f51\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u67e5\u770bHA\u7684\u6587\u4ef6\u76ee\u5f55 \u5728\u5730\u5740\u680f\u8f93\u5165\\HA\u7684IP \u8f93\u5165\u9884\u8bbe\u7684\u7528\u6237\u540d\u4e0e\u5bc6\u7801,\u5373\u53ef\u67e5\u770b,\u7f16\u8f91HA\u7684\u5404\u79cd\u6587\u4ef6\u3002","title":"\u5b89\u88c5Samba share\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#terminal-ssh","text":"Terminal & SSH \u63d2\u4ef6\u4e3aHA\u63d0\u4f9b\u4e86\u5728web\u7aef\u4f7f\u7528\u63a7\u5236\u53f0\u7ec8\u7aef\u529f\u80fd,\u53ca\u5f00\u542f\u4e86ssh\u670d\u52a1,\u4f7f\u4e4b\u53ef\u4ee5\u8fdc\u7a0b\u4f7f\u7528SSH\u8bbf\u95eeHA\u7ec8\u7aef\u3002 \u5728\u641c\u7d22\u4e2d\u8f93\u5165Terminal & SSH \u7ed3\u679c\u6709\u53ef\u80fd\u663e\u793a \u641c\u7d22\u4e0d\u5230\uff0c\u8fd9\u65f6\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u4ed3\u5e93\u6ca1\u6709\u914d\u7f6e\uff0c\u8fd8\u662f\u4f7f\u7528\u7684\u9ed8\u8ba4\u7684\u4ed3\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u589e\u52a0\u4e00\u4e0b\u4ed3\u5e93\uff0c\u5982\u4e0b\uff1a https://github.com/AlexxIT/hassio-addons \u70b9\u51fb\u53f3\u4e0a\u89e3\u7684\u4e09\u4e2a\u70b9,\u9009\u4e2d\u4ed3\u5e93 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165,\u6211\u4eec\u8bb0\u5f55\u7684\u4ed3\u5e93\u5730\u5740,\u7136\u540e\u70b9\u6dfb\u52a0 \u5b8c\u6210\u540e,\u70b9\u51fb\u5173\u95ed. \u7136\u540e,\u70b9\u51fb\u8fd4\u56de,\u91cd\u65b0\u641c\u7d22 \u8fd9\u6b21\u627e\u5230\u4e86Advance SSH & Web Terminal \u70b9\u51fb\u5b89\u88c5,\u6253\u5f00\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u5b89\u88c5,\u6709\u65f6\u4f1a\u5b89\u88c5\u5931\u8d25, \u5931\u8d25\u540e,\u9700\u518d\u6b21\u5b89\u88c5,\u540c\u65f6\u68c0\u67e5\u65e5\u5fd7\u4e2d\u63d0\u5230\u7684\u54ea\u4e2a\u7f51\u5740\u65e0\u6cd5\u8bbf\u95ee ,\u628a\u5176\u52a0\u79d1\u5b66\u4e0a\u7f51\u7684\u4ee3\u7406\u540d\u5355\u4e2d. \u5b89\u88c5\u5b8c\u6210\u540e,\u5c31\u53d8\u6210\u5982\u4e0b \u5f00\u542f\u81ea\u52a8\u6062\u5f97,\u663e\u793a\u4fa7\u8fb9\u680f \u63a5\u4e0b\u6765,\u6211\u4eec\u914d\u7f6essh\u7684\u767b\u5f55\u4fe1\u606f,\u5982\u4e0b \u76f8\u5173\u4fe1\u606f\u5982\u4e0b: username:dtuser passsword:**** # \u6b64\u5904\u9700\u8981\u54a8\u8be2\u7ba1\u7406\u5458 \u5176\u5b83\u914d\u7f6e\u9009\u9879\u5982\u4e0b,\u6ce8\u610f\u9009\u9879,\u9009\u9519\u4e86ssh\u53ef\u80fd\u542f\u4e0d\u8d77\u6765,sftp\u5173\u95ed,zsh\u5173\u95ed.compatibility_mode\u8981\u5f00\u542f \u7136\u540e,\u70b9\u51fb\u542f\u52a8\u6309\u94ae \u542f\u52a8\u540e\u5982\u4e0b \u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u5730\u65b9\u8fdb\u5165 \u5728\u65e5\u5fd7 \u7aef\u80fd\u770b\u5230 ssh\u5df2\u542f\u52a8\u6210\u529f s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-ssh: starting s6-rc: info: service init-mysql: starting s6-rc: info: service init-mosquitto: starting s6-rc: info: service init-docker: starting s6-rc: info: service init-docker successfully started s6-rc: info: service init-mysql successfully started s6-rc: info: service init-mosquitto successfully started [14:51:05] WARNING: [14:51:05] WARNING: Logging in with a SSH password is security wise, a bad idea! [14:51:05] WARNING: Please, consider using a public/private key pair. [14:51:05] WARNING: What is this? https://kb.iu.edu/d/aews [14:51:05] WARNING: [14:51:05] NOTICE: RSA host key missing, generating one... Generating public/private rsa key pair. Your identification has been saved in /data/ssh_host_rsa_key Your public key has been saved in /data/ssh_host_rsa_key.pub The key fingerprint is: SHA256:+9pEl2QvyUqsu4B3gnPjhL/Ab71iBIDjWRdYvgZeg0c root@a0d7b954-ssh The key's randomart image is: +---[RSA 3072]----+ | . oE. | |o .o+. | |..o+.= o | | o. = o . + + | | . + S + * . | | ..+. = o . | | B.B.+ o | | X+=.= | | o=o=+o | +----[SHA256]-----+ [14:51:08] NOTICE: ED25519 host key missing, generating one... Generating public/private ed25519 key pair. Your identification has been saved in /data/ssh_host_ed25519_key Your public key has been saved in /data/ssh_host_ed25519_key.pub The key fingerprint is: SHA256:MgbUsAJ+23skjVTwD0pWVRBCmZ0BjU3jwV/99gGnNVc root@a0d7b954-ssh The key's randomart image is: +--[ED25519 256]--+ |. o+o*%O*. . E| |.. . .=+o*o o =.| | ...o+ o .. . = +| | ..*.+ o . . .o| | . =+oS. .o| | .+o .| | . . | | . | | | +----[SHA256]-----+ s6-rc: info: service init-ssh successfully started s6-rc: info: service init-user: starting [14:51:08] NOTICE: Session sharing has been disabled! s6-rc: info: service init-user successfully started s6-rc: info: service ttyd: starting s6-rc: info: service sshd: starting s6-rc: info: service sshd successfully started s6-rc: info: service ttyd successfully started s6-rc: info: service legacy-services: starting [14:51:09] INFO: Starting the ttyd daemon... [14:51:09] INFO: Starting the SSH daemon... s6-rc: info: service legacy-services successfully started Server listening on 0.0.0.0 port 22. Server listening on :: port 22. \u914d\u7f6e\u6210\u529f\u540e,\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u6765\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u8fdc\u7a0bSSH\u8fde\u5165 \u8f93\u5165yes\u540e\u4f1a\u8981\u6c42 \u8f93\u5165\u5bc6\u7801,\u9a8c\u8bc1\u6b63\u786e\u540e,\u4f1a\u8fdb\u5165\u770b\u5230\u5982\u4e2a\u56fe,\u5c31\u8bf4\u660essh\u5df2\u6b63\u5e38\u7684\u5f00\u542f\u6210\u529f\u4e86 \u4ee5\u4e0b\u754c\u9762\u662f\u5728ha\u4e2d\u770b\u5230\u7684\u5185\u7f6e\u7684ssh \u5176\u5b83,\u5f53\u8bbf\u95ee\u4e00\u4e9b\u7cfb\u7edf\u64cd\u4f5c\u65e0\u6743\u9650\u65f6,\u53ef\u4ee5\u5173\u95ed\u4fdd\u62a4\u5f00\u5173","title":"\u5b89\u88c5Terminal & SSH"},{"location":"Usages/initConfig/initConfig/#mosquitto-broker","text":"Mosquitto broker\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u63d2\u4ef6,\u5176\u63d0\u4f9b\u7684MQTT \u670d\u52a1\u4e3a\u516c\u53f8\u5927\u591a\u6570\u6570\u8bbe\u5907\u6298\u96c6\u6210\uff0cmqtt\u901a\u4fe1\u901a\u9053\uff0c\u6240\u4ee5\uff0c\u6b64\u4e3a\u5fc5\u88c5\u63d2\u4ef6\u3002 \u70b9\u51fb\u5b89\u88c5 \u770b\u5230\u5982\u4e0b\u754c\u9762\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\uff0c \u63a5\u4e0b\u6765\u662f\u914d\u7f6emqtt","title":"\u5b89\u88c5Mosquitto broker"},{"location":"Usages/initConfig/initConfig/#_2","text":"","title":"\u5f00\u542f\u81ea\u52a8\u6062\u590d"},{"location":"Usages/initConfig/initConfig/#mqtt","text":"username:dtuser password:****** #\u6b64\u5904\u7684\u5bc6\u7801\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 \u914d\u7f6e\u5b8c\u6210\u540e,\u542f\u52a8mqtt\u670d\u52a1 \u65e5\u5fd7\u4e2d\u663e\u793a\u5982\u4e0b\u4fe1\u606f,\u8bf4\u660e\u6210\u529f s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting cont-init: info: running /etc/cont-init.d/mosquitto.sh [16:33:27] INFO: Setting up user dtuser [16:33:28] INFO: SSL is not enabled cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0 cont-init: info: running /etc/cont-init.d/nginx.sh cont-init: info: /etc/cont-init.d/nginx.sh exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun mosquitto (no readiness notification) services-up: info: copying legacy longrun nginx (no readiness notification) [16:33:29] INFO: Starting NGINX for authentication handling... s6-rc: info: service legacy-services successfully started [16:33:29] INFO: Starting mosquitto MQTT broker... 2025-04-17 16:33:29: Warning: Mosquitto should not be run as root/administrator. 2025-04-17 16:33:29: mosquitto version 2.0.20 starting 2025-04-17 16:33:29: Config loaded from /etc/mosquitto/mosquitto.conf. 2025-04-17 16:33:29: Loading plugin: /usr/share/mosquitto/go-auth.so 2025-04-17 16:33:29: \u251c\u2500\u2500 Username/password checking enabled. 2025-04-17 16:33:29: \u251c\u2500\u2500 TLS-PSK checking enabled. 2025-04-17 16:33:29: \u2514\u2500\u2500 Extended authentication not enabled. 2025-04-17 16:33:29: Opening ipv4 listen socket on port 1883. 2025-04-17 16:33:29: Opening ipv6 listen socket on port 1883. 2025-04-17 16:33:29: Opening websockets listen socket on port 1884. 2025-04-17 16:33:29: mosquitto version 2.0.20 running 2025-04-17 16:33:29: New connection from ::1:56336 on port 1883. 2025-04-17 16:33:29: Client <unknown> disconnected due to protocol error. [16:33:30] INFO: Successfully send discovery information to Home Assistant. [16:33:31] INFO: Successfully send service information to the Supervisor. \u5f53\u6d88\u606f,\u63d0\u793a\u53d1\u73b0\u8bbe\u5907\u65f6,\u70b9\u51fb,\u5f39\u51fa\u7684\u6d88\u606f\u4e2d,\u70b9check it out,\u7136\u540e,\u770b\u5230\u5df2\u53d1\u73b0mqtt,\u70b9\u51fb\u6dfb\u52a0 \u7136\u540e,\u70b9\u51fb\u5b8c\u6210 \u7136\u540e\u5c31\u4f1a\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u96c6\u6210\u4e2d,\u663e\u793aMqtt,\u4ee5\u540e,\u6240\u6709\u589e\u52a0\u7684MQTT\u7c7b\u8bbe\u5907\uff0c\u90fd\u4f1a\u663e\u793a\u5728\u8fd9\u4e2a\u7c7b\u522b\u4e2d\u3002","title":"\u914d\u7f6emqtt\u7684\u7528\u6237\u540d\u5bc6\u7801\u53ca\u5b9a\u5236\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#node-red","text":"Node-Red\u63d2\u4ef6\u662f\u6211\u4eec\u96c6\u4e2d\u5404\u79cd\u8bbe\u5907\u7684\u91cd\u8981\u6d88\u606f\u5904\u7406\u8f6c\u6362\u63d2\u4ef6,\u5c5e\u5fc5\u88c5\u63d2\u4ef6. \u5728\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22nod\u663e\u793a\u5982\u4e0b \u70b9\u51fb,\u8fdb\u5165\u8be6\u7ec6\u9875\u9762 \u70b9\u51fb\u5b89\u88c5 \u5982\u679c\u5b89\u88c5\u51fa\u9519,\u591a\u534a\u662f\u79d1\u5b66\u4e0a\u7f51\u7684\u95ee\u9898, \u5982\u73b0\u5982\u4e0b\u9875\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u5f00\u542f\u81ea\u52a8\u6062\u590d,\u5173\u95ed\u4fa7\u8fb9\u680f \u914d\u7f6enod-red \u6b64\u5904\u7684\u914d\u7f6e\u4fe1\u606f\u4e3a username:admin password:**** #\u6b64\u5904\u7684\u5bc6\u7801,\u8bf7\u5411\u7ba1\u7406\u5458\u83b7\u53d6 ### \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5173\u95edssl \u7136\u540e\u542f\u52a8node-red \u70b9\u51fb\u6253\u5f00web-\u9875\u9762\u5982\u4e0b","title":"\u5b89\u88c5Node-RED\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#go2rtc","text":"go2rtc\u63d2\u4ef6\u662f\u4e3a\u4e86\u5bf9\u89c6\u6d41\u8f6c\u53d1\u7528\u7684\u4e13\u7528\u63d2\u4ef6,\u5982\u679c\u60f3\u628a\u76d1\u63a7\u89c6\u9891\u6d41\u63a5\u5165,\u5219\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u63d2\u4ef6,\u5b89\u88c5\u65b9\u6cd5\u662f,\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22go2rtc, \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5b8c\u6210\u540e\u5f00\u542f\u81ea\u52a8\u6062\u590d,\u81ea\u52a8\u66f4\u65b0 \u5176\u8bbe\u7f6e\u4e2d\u57fa\u672c\u6ca1\u4ec0\u4e48\u8981\u6539\u7684.","title":"\u5b89\u88c5go2rtc\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#vlc","text":"\u5728\u52a0\u8f7d\u5546\u5e97\u4e2d\u641c\u7d22vlc \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u6210\u529f\u5982\u4e0b\u6240\u793a \u914d\u7f6e\u4e2d\u57fa\u672c\u6ca1\u8981\u8981\u914d\u7f6e\u7684\u4e1c\u897f","title":"\u5b89\u88c5VLC\u53ef\u4ee5\u64ad\u653e\u89c6\u9891\u7b49\u529f\u80fd,\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u5b89\u88c5"},{"location":"Usages/initConfig/initConfig/#docker-postgresql","text":"\u867d\u7136 Home Assistant OS \u672c\u8eab\u4e0d\u5141\u8bb8\u76f4\u63a5\u8bbf\u95ee\u7cfb\u7edf\u5e95\u5c42\uff0c\u4f46\u5b83\u5185\u7f6e\u4e86 Docker \u652f\u6301\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c PostgreSQL \u7684 Docker \u5bb9\u5668\u3002","title":"\u5229\u7528 Docker \u5b89\u88c5 PostgreSQL"},{"location":"Usages/initConfig/initConfig/#_3","text":"\u786e\u4fdd\u60a8\u6709 SSH \u8bbf\u95ee\u6743\u9650 \u5b89\u88c5 Home Assistant \u7684 SSH & Web Terminal Add-on\uff08\u9ad8\u7ea7\u6a21\u5f0f\uff09\u3002 \u5f00\u542f SSH \u8bbf\u95ee\uff0c\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u524d\u5f80 Supervisor > Add-on Store \u3002 \u641c\u7d22\u5e76\u5b89\u88c5 SSH & Web Terminal \uff08\u5b98\u65b9\u63d2\u4ef6\uff09\u3002 \u914d\u7f6e SSH \u63d2\u4ef6\uff0c\u786e\u4fdd protected \u8bbe\u7f6e\u4e3a false \uff0c\u7136\u540e\u542f\u52a8\u5b83\u3002 \u8fd0\u884c PostgreSQL \u5bb9\u5668 \u5728 SSH \u6216 Web Terminal \u4e2d\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD= **pwd** \\ -e POSTGRES_DB=dtha \\ -v /db/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ postgres \u66ff\u6362 **pwd** \u4e3a\u60a8\u60f3\u8981\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u5bc6\u7801,\u4e9b\u5bc6\u7801,\u9700\u8981\u7ba1\u7406\u5458\u54a8\u8be2 \u6570\u636e\u5e93\u540d\u79f0\u4e3a dtha \uff0c\u7528\u6237\u540d\u4e3a dtuser \u3002 \u6570\u636e\u5c06\u5b58\u50a8\u5728 /mnt/data/supervisor/postgresql \uff0c\u786e\u4fdd\u6570\u636e\u5728\u91cd\u542f\u540e\u4e0d\u4f1a\u4e22\u5931\u3002 \u767b\u5f55ssh,\u5e76\u67e5\u770b\u5df2\u5b89\u88c5\u7684docker\u955c\u50cf\u5982\u4e0b \u5148\u521b\u5efapgsql\u5b58\u50a8\u5377\u9700\u8981\u7684\u76ee\u5f55,\u8fd9\u4e2a\u6211\u4eec\u7edf\u4e00\u5b9a\u4e3a\u5982\u4e0b\u76ee\u5f55,\u5e76\u7ed9777\u6743\u9650 /db/pgsqldata \u5373\u5728\u6839\u76ee\u5f55\u4e0b,\u521b\u5efadb\u76ee\u5f55,\u7136\u540e\u5728db\u76ee\u5f55\u4e2d\u521b\u5efapgsqldata,\u5e76\u7ed9\u8db3\u6743\u9650 / # cd homeassistant homeassistant # ls automations.yaml configuration.yaml home-assistant.log home-assistant.log.fault home-assistant_v2.db-shm scenes.yaml secrets.yaml blueprints deps home-assistant.log.1 home-assistant_v2.db home-assistant_v2.db-wal scripts.yaml tts homeassistant # mkdir db homeassistant # sudo chmod -R 7777 ./db homeassistant # cd db db # ls db # pwd /homeassistant/db db # sudo mkdir pgsqldata db # sudo chmod -R 7777 ./pgsqldata db # ls pgsqldata db # cd pgsqldata pgsqldata # ls -l ./ total 0 pgsqldata # cd .. db # ls -l ./ total 4 drwsrwsrwt 2 root root 4096 Apr 18 16:30 pgsqldata \u63a5\u4e0b\u6765,\u62c9\u53d6\u955cpgsql\u7684\u955c\u50cf,\u5e76\u6307\u5411/mnt/data/pgsqldata,\u6b64\u5904\u8981\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u76ee\u5f55\u90fd\u6709\u5199\u5165\u6743\u9650,homeAssitant\u4e2d\u5927\u90e8\u4efd\u76ee\u5f55\u90fd\u6ca1\u6709\u5199\u5165\u6743\u9650,\u8981\u6ce8\u610f\u627e\u6709\u5199\u5165\u6743\u9650\u7684\u76ee\u5f55 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7cfb\u7edf\u4f1a\u81ea\u52a8\u62c9\u53d6\u955c\u50cf,\u5e76\u542f\u52a8,\u6b64\u8fc7\u7a0b\u52a1\u5fc5\u4fdd\u8bc1\u79d2\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u5982\u4e0b\u56fe,\u6240\u793a, \u8bf4\u660e\u76ee\u5f55\u6ca1\u6709\u6743\u9650, chown -R root:root mnt/data/pgsqldata chmod -R 7777 /mnt/data/pgsqldata \u7ed9\u591f\u76ee\u5f55\u6743\u9650\u540e,\u518d\u6b21\u8fd0\u884c,\u5b89\u88c5\u6307\u4ee4 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: docker: Error response from daemon: Conflict. The container name \"/postgresql\" is already in use by container \"f5b838e28f30ff3bde9f90276b8aa4924b4f1ecec2cdbd4e38dfe27e2c988edb\". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help \u4e0a\u8ff0\u8bf4\u660epgswl\u7684\u5bb9\u5668\u5df2\u7ecf\u5b58\u5728,\u9700\u8981\u5220\u9664 docker stop postgresql docker rm postgresql \u7136\u540e,\u518d\u6b21\u6267\u884c,\u5373\u53ef\u6210\u529f data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7528ps -a \u67e5\u8be2\u4e00\u4e0b,\u5982\u4e0b\u56fe\u6240\u793a,\u8bf4\u660edocker \u542f\u52a8\u6210\u529f, \u4e3a\u4e86\u9a8c\u8bc1\u91cd\u65b0\u542f\u52a8\u540e,pgsql\u5bb9\u5668\u662f\u5426\u542f\u52a8,\u53ef\u4ee5\u91cd\u542f\u540e,\u518d\u6b21\u67e5\u770b\u4e00\u4e0b,\u6b64\u5bb9\u5668\u662f\u5426\u8ddf\u968f\u7cfb\u7edf\u542f\u52a8\u6210\u529f. \u63a5\u4e0b\u6765,\u6211\u4eec\u53ef\u4ee5\u5728\u5c40\u57df\u7f51\u4e2d\u627e\u53f0\u673a\u5668\u6765\u505a\u4e00\u4e0b\u6570\u636e\u5e93\u8fde\u63a5\u6d4b\u8bd5 \u5982\u4e0a\u56fe,\u8bf4\u660epgsql\u5df2\u7ecf\u5b89\u88c5\u6210\u529f\u4e86,\u5e76\u80fd\u6b63\u5e38\u8bbf\u95ee.","title":"\u6b65\u9aa4"},{"location":"Usages/initConfig/initConfig/#homeassistantpgsql","text":"HomeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3asqlite,\u6211\u4eec\u9700\u8981\u628a\u5176\u6362\u6210\u6211\u4eec\u65b0\u5b89\u88c5\u7684pgsql, \u901a\u8fc7\u6211\u4eec\u5b89\u88c5\u7684\u63d2\u4ef6File editor \u6253\u5f00\u914d\u7f6e\u6587\u4ef6 /homeassistant/configruration.yaml \u589e\u52a0recorder\u4e2d\u7684\u914d\u7f6e\u5982\u4e0b \u7136\u540e,\u4fdd\u5b58\u9000\u51fa,\u91cd\u542f,\u770b\u770bha\u6709\u6ed1\u7684\u7ed9\u51fa\u9519\u8bef\u63d0\u793a,\u4e5f\u53ef\u4ee5\u901a\u8fc7,\u8fde\u63a5\u5de5\u5177\u6765\u67e5\u770b,ha\u6709\u6ca1\u6709\u5728\u6570\u636e\u5e93\u4e2d\u5efa\u8868,\u5199\u5165\u6570\u636e \u5982\u4e0a\u56fe,\u8bf4\u660e\u6570\u636e\u5df2\u529f\u529f\u6298\u5199\u5165PGSQL,\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u628a\u7cfb\u7edf\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u5220\u9664\u4e86 \u8fd9\u4e2a\u6587\u4ef6\u662fhomeAssistant\u9ed8\u8ba4\u7684sqlite\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u4e86\uff0c\u70b9\u53f3\u5219\u7684\u4e09\u4e2a\u70b9\uff0c\u5728\u5f39\u51fa\u7684\u83dc\u5355\u4e2d\uff0c\u70b9delete \u70b9\u51fbyes\u786e\u8ba4 \u7136\u540e\u91cd\u542f,\u518d\u6b21\u67e5\u770b,\u662f\u5426\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6, \u5982\u679c\u6ca1\u6709\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6 ,\u8bf4\u660e,\u7cfb\u7edf\u5df2\u7ecf\u5728\u7528pgsql\u4e86","title":"\u66f4\u6539homeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3apgSql"},{"location":"Usages/initConfig/initConfig/#hacs","text":"","title":"\u5b89\u88c5HACS"},{"location":"Usages/initConfig/initConfig/#hacs_1","text":"HACS\uff0c\u5168\u79f0 Home Assistant Community Store\uff08Home Assistant \u793e\u533a\u5546\u5e97\uff09\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e Home Assistant \u7684\u7b2c\u4e09\u65b9\u6269\u5c55\u63d2\u4ef6\u7ba1\u7406\u5668\u3002\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u65b9\u4fbf\u7684\u65b9\u5f0f\u6765\u5b89\u88c5\u548c\u7ba1\u7406\u793e\u533a\u5f00\u53d1\u7684\u81ea\u5b9a\u4e49\u96c6\u6210\u3001\u63d2\u4ef6\u3001\u4e3b\u9898\u548c\u5176\u4ed6\u6269\u5c55\u7ec4\u4ef6\u3002 \u8fd9\u4e2a\u63d2\u4ef6\u96c6\u4e2d\u4e86\u8bb8\u591a\u5927\u5c4f\u7528\u7684\u4e3b\u9898\u4e0e\u63d2\u4ef6\uff0c\u5c5e\u4e8e\u5fc5\u88c5\u63d2\u4ef6\uff0e","title":"hacs\u7b80\u4ecb"},{"location":"Usages/initConfig/initConfig/#hacs_2","text":"\u8fdb\u5165ssh\u767b \u5f55\u540e,\u8f93\u5165\u5982\u4e0b\u6307\u4ee4 wget -O - https://get.hacs.xyz | bash - \u56de\u8f66\u540e,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7dHACS\uff0c\u5e76\u653e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u4e14\u63d0\u793a\u91cd\u542f\uff0c\u6211\u4eec\u6309\u8981\u6c42\u91cd\u542f\uff0c\u5373\u53ef\u3002","title":"\u5b89\u88c5hacs"},{"location":"Usages/initConfig/initConfig/#hacs_3","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5728 Home Assistant \u7684\u754c\u9762\u4e2d\u542f\u7528 HACS\uff1a \u6253\u5f00 Home Assistant UI\u3002 \u70b9\u51fb \u8bbe\u7f6e > \u8bbe\u5907\u4e0e\u670d\u52a1 > \u96c6\u6210 \u3002 \u70b9\u51fb\u53f3\u4e0b\u89d2 \u6dfb\u52a0\u96c6\u6210 \u3002 \u641c\u7d22\u5e76\u9009\u62e9 HACS \uff0c\u7136\u540e\u6309\u7167\u5c4f\u5e55\u4e0a\u7684\u63d0\u793a\u5b8c\u6210\u8bbe\u7f6e\u3002 \u70b9\u51fb\u540e,\u5728\u5f39\u51fa\u7684\u7a97\u53e3\u4e2d,\u5168\u6253\u52fe,\u70b9\u63d0\u4ea4 \u5f15\u65f6,\u5f39\u51fa\u65b0\u7684\u7a97\u53e3,\u9a8c\u8bc1github\u6388\u6743 \u70b9\u51fb\u8fd9\u4e2agithub\u94fe\u63a5,\u5e76\u8bb0\u4f4f\u4e0b\u65b9\u7684\u6388\u6743\u7801\u540e\u9762\u4f1a\u7528\u5230 \u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d,\u8f93\u5165,\u8bb0\u4f4f\u7684\u6388\u6743\u7801,\u70b9Continue \u63d0\u793a\u5177\u4f53\u7684\u6388\u6743\u5bf9\u50cf\u4e3ahacs,\u70b9\u51fbAutuorize hacs \u6388\u6743\u6210\u529f \u8fd4\u56dehacs\u540e,\u63d0\u793a\u6210\u529f,\u5e76\u663e\u793a\u5df2\u53d1\u73b0\u5982\u4e0b\u8bbe\u5907,hacs,\u9009\u62e9\u533a\u57df,\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e2a\u533a\u57df,\u7136\u540e\u70b9\u5b8c\u6210 \u770b\u5230\u5982\u4e0b\u754c\u9762hacs\u5c31\u5b89\u88c5\u597d\u4e86 \u70b9\u51fb\u914d\u7f6e,\u542f\u7528App Daemon apps discovery & tgracking. \u4ee5\u4e0a\u914d\u7f6e \u5b8c\u6210\u540e,\u91cd\u65b0\u542f\u52a8HA\uff0c\u5219\u53ef\u4ee5\u5728\u5de6\u4fa7\u680f\u4e2d\u627e\u5230HACS\u83dc\u5355\u4e86","title":"\u542f\u7528HACS"},{"location":"Usages/initConfig/initConfig/#homeassistantlogo","text":"homeAssistant \u5de6\u4e0a\u89d2\u9ed8\u8ba4\u7684\u6807\u9898\u4e3a Home Assistant \u6211\u4eec\u5e0c\u671b\u6539\u6210\u81ea\u5df2\u7684\u6807\u8bc6\u5982:\u5cb1\u7279\u667a\u80fd","title":"\u66f4\u6539HomeAssistant\u5de6\u4e0a\u89d2LOGO\u6807\u9898"},{"location":"Usages/initConfig/initConfig/#hass-faviconreleases","text":"\u70b9\u51fb\u94fe\u63a5 ,\u5230\u5176github\u7684\u5b98\u65b9\u9875\u9762 \u4e0b\u8f7d\u5176\u6e90\u7801","title":"\u4e0b\u8f7d\u7b2c\u4e09\u65b9\u63d2\u4ef6hass-favicon\u7684Releases\u5230\u672c\u5730\u76ee\u5f55"},{"location":"Usages/initConfig/initConfig/#_4","text":"","title":"\u89e3\u538b\u4e0b\u8f7d\u7684\u6e90\u7801"},{"location":"Usages/initConfig/initConfig/#ha","text":"\u6253\u5f00\u6e90\u7801\u76ee\u5f55,\u8fdb\u5165custom_commponents\u76ee\u5f55,\u628afavicon\u76ee\u5f55\u6574\u4f53\u590d\u5236 \u7136\u540e,\u8fdb\u5165ha\u7684config-custom_compoents\u76ee\u5f55\u7c98\u8d34,\u590d\u5236\u5230\u7684favicon \u7136\u540e\u521b\u5efa\u76ee\u5f55 \\\\ha-o[\\config\\www\\favicons \u5e76\u628a\u80dc\u900f\u7684logo\u6587\u4ef6st-logo.,png\u653e\u5230\u76ee\u5f55\u4e2d \u7136\u540e\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u5185\u5bb9 \u7136\u540e,\u91cd\u542fHomeAssistant\u5373\u53ef \u91cd\u542f\u540e,\u5de6\u4e0a\u811a\u7684LOGO\uff0c\u5df2\u53d8\u4e3a\u5cb1\u7279\u667a\u80fd.","title":"\u5c06\u63d2\u4ef6\u590d\u5236\u5230ha\u4e0a"},{"location":"Usages/initConfig/initConfig/#_5","text":"\u7c73\u5bb6\u96c6\u6210\u662f\u4e00\u4e2a\u7531\u5c0f\u7c73\u5b98\u65b9\u63d0\u4f9b\u652f\u6301\u7684 Home Assistant \u7684\u96c6\u6210\u7ec4\u4ef6\uff0c\u5b83\u53ef\u4ee5\u8ba9\u60a8\u5728 Home Assistant \u4e2d\u4f7f\u7528\u5c0f\u7c73 IoT \u667a\u80fd\u8bbe\u5907\u3002 \u8fd9\u4e2a\u63d2\u4ef6,\u53ef\u4ee5\u76f4\u63a5\u628a\u6240\u6709\u5c0f\u7c73\u7684\u5404\u79cd\u4f20\u611f\u5668\u96c6\u6210\u5230HomeAssistant\u4e2d,\u6240\u4ee5\u8fd9\u4e2a\u662f\u5fc5\u88c5\u63d2\u4ef6. \u5176\u5b98\u65b9\u4ed3\u5e93\u5730\u5740\u4e3a: Xiaomi Home Integration for Home Assistant https://github.com/XiaoMi/ha_xiaomi_home \u5176\u5b89\u88c5\u65b9\u6cd5\u6709\u4e09\u79cd,\u6211\u4eec\u4e3a\u4e86\u65b9\u4fbf\u9009\u62e9\u7b2c\u4e00\u79cd,\u5176\u5b83\u4e24\u79cd\u65b9\u6cd5,\u53ef\u4ee5\u81ea\u884c\u5c1d\u8bd5.\u5b98\u65b9\u63cf\u8ff0\u7684\u65b9\u88c5\u4e3b\u5f0f\u5982\u4e0b: cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config \u5176\u4e5f\u63d0\u4f9b \u4e2d\u6587\u7684\u5b89\u88c5\u8bf4\u660e","title":"\u5b89\u88c5\u7c73\u5bb6\u96c6\u6210\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#_6","text":"\u9996\u5148,\u767b\u5f55SSH.\u7136\u540e\u8fdb\u5165config\u76ee\u5f55 \u5148\u62c9\u53d6\u4ee3\u7801 config # git clone https://github.com/XiaoMi/ha_xiaomi_home.git Cloning into 'ha_xiaomi_home'... remote: Enumerating objects: 1322, done. remote: Counting objects: 100% (761/761), done. remote: Compressing objects: 100% (342/342), done. remote: Total 1322 (delta 628), reused 419 (delta 419), pack-reused 561 (from 2) Receiving objects: 100% (1322/1322), 847.87 KiB | 1.64 MiB/s, done. Resolving deltas: 100% (817/817), done. \u7136\u540e,\u518d\u5207\u6362\u5230ha_xiaomi_home\u76ee\u5f55 cd ha_xiaomi_home \u7136\u540e\u6267\u884c\u5b89\u88c5\u6307\u4ee4 ./install.sh /config # Xiaomi Home installation is completed. Please restart Home Assistant. \u5b89\u88c5\u5b8c\u6210,\u63d0\u793a\u9700\u8981\u91cd\u542f.","title":"\u5b89\u88c5"},{"location":"Usages/initConfig/initConfig/#_7","text":"\u5728\u91cd\u65b0\u542f\u52a8\u540e,\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210\u4e2d,\u641c\u7d22\u201c Xiaomi Home \u201d \u70b9\u51fb,\u4f1a\u63d0\u793a\u98ce\u9669\u63d0\u793a \u52fe\u9009,\u6211\u77e5\u6089,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u4f1a\u8fdb\u5165\u57fa\u7840\u914d\u7f6e\u9875\u9762,\u5982\u4e0b\u56fe \u52fe\u9009\u96c6\u6210\u7f51\u7edc\u914d\u7f6e,\u540c\u86d9,\u6ce8\u610f\u4e00\u4e0b,\u8ba4\u8bc1\u8df3\u8f6c\u5730\u5740,\u6b64\u5904\u663e\u6b3e\u4e3ahttp://homeassistant.lcaol:8123,\u8fd9\u4e2a\u5730\u5740,\u4f30\u8ba1\u4e0d\u53ef\u80fd\u901a\u8fc7,\u53ea\u56e0\u4e3a\u6211\u4eec\u662f\u5728\u5c40\u57df\u7f51\u5176\u5b83\u673a\u5668\u64cd\u4f5c\u8fd9\u4e00\u6b65\u7684,\u5b9e\u9645\u4e0a\u6211\u4eec\u7684\u5730\u5740,\u5e94\u662f\u5730\u5740\u680f\u4e2d\u6298\u5b9e\u9645\u5730\u5740,\u5982\u4e0a\u56fe,\u6211\u4eec\u7684\u8ba4\u8bc1\u5730\u5740\u662f:http://192.168.3.2:8123, \u5728\u4e0b\u4e00\u6b65\u8df3\u8f6c\u8f6c\u5c0f\u7c73\u540e,\u6253\u5f00\u7684\u7f51\u5740\u65f6,\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u4f30\u8ba1\u662f\u6253\u4e0d\u5f00\u7684,\u9700\u8981\u628a\u90a3\u4e2a\u5730\u5740\u7684\u524d\u534a\u6bb5,\u6362\u6210\u8fd9\u4e2a\u5b9e\u9645\u5730\u5740. \u70b9\u51fb\u4e0b\u4e00\u6b65, \u6b64\u5904\u4e3a\u68c0\u6d4b\u7f51\u7edc,\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u65f6,\u624d\u80fd\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5f53\u5f39\u51fa\u5982\u4e0b\u754c\u9762\u65f6,\u8bf4\u660e\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u4e86, \u70b9\u51fb,\"\u8bf7\u70b9\u6b64\u5904\u8fdb\u884c\u767b\u5f55\", \u6b64\u65f6,\u8df3\u8f6c\u5230\u5c0f\u7c73\u6298\u8ba4\u8bc1\u7f51\u9875,\u6b64\u65f6\u8f93\u5165\u6b63\u786e\u7c73\u5bb6\u5e10\u53f7\u4e0e\u5bc6\u7801,\u70b9\u767b\u5f55 \u5f39\u51fa \u53cb\u60c5\u63d0\u793a,\u70b9\u51fb,\u540c\u610f\u5e76\u7ee7\u7eed \u5c0f\u7c73\u7684\u5b89\u5168\u9a8c\u8bc1,\u70b9\u4e0b\u4e00\u6b65, \u70b9\u51fb \u53d1\u9001\u9a8c\u8bc1\u7801 \u8f93\u5165\u9a8c\u8bc1\u7801\u540e,\u70b9\u786e\u5b9a \u8df3\u8f6c\u5230\u4e86\u8ba4\u8bc1\u7a97\u53e3,\u4f46\u662f\u5374\u662f\u65e0\u65b9\u8bbf\u95ee\u6b64\u9875\u9762,\u8bf4\u660e\u8ba4\u8bc1\u5730\u5740,\u9519\u4e86,\u6211\u4eec\u9700\u8981\u628a\u5b83\u6362\u6210\u6211\u4eec\u6b63\u786e\u7684HA\u5730\u5740\uff1ahttp://192.168.3.2:8123,\u5982\u4e0b\u56fe\u6240\u793a \u624b\u5de5\u5c06\u6b63\u786e\u7684\u5730\u5740\u66ff\u6362\u5730\u5740\u5934\u90e8\u540e,\u56de\u8f66,\u6253\u5f00\u8fd9\u4e2a\u5730\u5740,\u7c7b\u4f3c\u5982\u4e0b\u683c\u5f0f: http://192.168.3.2:8123/api/webhook/3062281226000218850?code=C3_B7440E147BCCA71A76831877D510611F&state=d90a727abad348efee834884dae174b80a15de14 \u5982\u679c,\u7528\u4e0a\u8ff0\u65b9\u5f0f,\u4ecd\u7136\u4e0d\u80fd\u8bbf\u95ee,\u5219\u53ef\u7528\u5982\u4e0b\u65b9\u6cd5,\u66f4\u6539host\u6587\u4ef6,\u5f3a\u884c\u6307\u5b9a\u672c\u5730DNS,\u6307\u5411homeassistant.local,\u65b9\u6cd5\u5982\u4e0b: \u4fee\u6539 Windows hosts \u6587\u4ef6\u7684\u65b9\u6cd5 \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u7528\u8bb0\u4e8b\u672c\u6253\u5f00\u5982\u4e0b\u6587\u4ef6 :C:\\Windows\\System32\\drivers\\etc\\hosts \u5728\u6700\u540e\u4e00\u884c\u589e\u52a0 192.168.3.2 homeassistant.local \u5982\u4e0b\u56fe \u7136\u540e,\u518d\u91cd\u65b0\u8bd5\u8fc7\u4e00\u6b21 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd,\u5c31\u4f1a\u81ea\u52a8\u8ba4\u8bc1\u901a\u8fc7 \u53ef\u4ee5\u6839\u636e\u63d0\u793a\u81ea\u52a8\u9009 \u5219\u623f\u95f4\u540c\u6b65\u6a21\u5f0f,\u8fd9\u4e2a\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u5c06\u63d0\u793a\u63d2\u4ef6\u96c6\u6210\u6210\u529f.\u5982\u4e0b\u793a\u610f\u56fe \u770b\u5230\u5982\u4e0b\u56fe,\u5c31\u8bf4\u660e\u96c6\u6210\u5b8c\u6210\u4e86 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u6982\u89c8\u4e2d,\u5c31\u5df2\u7ecf\u81ea\u52a8\u589e\u52a0\u4e86\u8bb8\u591a\u8bbe\u5907.","title":"\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#webrtc-camera","text":"WebRTC camera\u63d2\u4ef6\u4ee5\u5b9e\u73b0\u9891\u6d41\u64ad\u653e.\u5982\u679cha\u8981\u63a5\u5165\u89c6\u9891\u76d1\u63a7,\u5219\u9700\u8981\u5b89\u88c5\u8fd9\u4e2a\u7ec4\u4ef6, \u4ed3\u5e93\u5730\u5740 : https://github.com/AlexxIT/WebRTC \u8fd9\u4e2a\u63d2\u4ef6\u4e5f\u6709\u591a\u79cd\u5b89\u88c5\u65b9\u6cd5,hacs\u5b89\u88c5,\u76f4\u63a5\u590d\u5236\u7b49\u65b9\u6cd5,\u56e0\u4e3a\u4e0a\u6587,\u6211\u4eec\u5df2\u7ecf\u5b89\u88c5\u8fc7\u4e86HACS\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u4f7f\u7528HACS\u65b9\u5f0f\u5b89\u88c5\u3002 \u70b9\u51fb\u540e\uff0c\u5f39\u51fa\u5982\u4e0b\u9875\u9762 \u70b9\u51fbDownLoad\u6309\u94ae \u70b9\u51fbDownLoad \u5f53\u7136,\u6211\u4eec\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u6298\u7248\u672c \u5f53\u5f39\u51fa\u7a97\u53e3\u81ea\u52a8\u6d88\u5931,\u70b9\u51fb\u4e0a\u65b9\u7684\u8fd4\u56de( \u6ce8\u610f:\u4e0d\u4f1a\u81ea\u52a8\u8fd4\u56de,\u987b\u4eba\u5de5\u8fd4\u56de ),\u8fd4\u56de\u5982\u4e0b\u56fe \u770b\u5230\u4e0a\u65b9\u7684\u7b49\u5f85\u91cd\u542f,\u8bf4\u660e\u7ec4\u4ef6\u5df2\u7ecf\u5b89\u88c5\u4e0a,\u9700\u8981\u91cd\u542f,\u6211\u4eec\u6267\u884c\u91cd\u542f. \u91cd\u542f\u5b8c\u6210\u540e,\u4f1a\u770b\u5230,Downloaded\u4e2d\u5df2\u7ecf\u663e\u793a,\u4e86\u5b89\u88c5\u6210\u529f\u6298WebRTC Camera\u7ec4\u4ef6. \u7136\u540e,\u8fdb\u5165\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210,\u641c\u7d22WebRTC \u70b9\u51fbWebRtc Camera \u5f39\u51fago2rtc url\u5730\u5740\u7a97\u53e3,\u6b64\u63d2\u4ef6,\u6211\u4eec\u4e4b\u524d\u5df2\u88c5\u8fc7,\u5c31\u5728\u672c\u673a,\u6240\u5730\u5740\u4e0d\u7528\u6539,\u76f4\u63a5\u70b9\u63d0\u4ea4 \u70b9\u5b8c\u6210.WebRTC\u5b89\u88c5\u6210\u529f.\u5982\u4e0b\u56fe\u6240\u793a \u4e3a\u4e86\u6f14\u793a\u5982\u4f55\u663e\u793a\u76d1\u63a7\u89c6\u9891,\u6211\u4eec\u65b0\u589e\u52a0\u4e00\u4e2asample\u7684\u4eea\u8868\u76d8. \u70b9\u51fb,\u6dfb\u52a0\u4eea\u8868\u76d8 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d,\u8f93\u5165\u4eea\u8868\u76d8\u6807\u9898 \u8fd9\u6837\u6211\u6837\u5c31\u589e\u52a0\u4e86\u4e00\u4e2a\u4eea\u8868\u76d8dashboard-sampale,\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u4e2a\u4eea\u8868\u76d8\u4e2d\u589e\u52a0\u6f14\u793a\u7528\u7684\u7ec4\u4ef6,\u6b64\u5904,\u6211\u4eec\u60f3\u589e\u52a0\u4e00\u4e2a\u6f14\u793a\u7528\u7684\u76d1\u63a7\u6444\u50cf\u5934.\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u7f16\u8f91\u6309\u94ae. \u70b9\u51fb\u521b\u5efa\u4e00\u4e2a\u7ec4\u4ef6 \u7136\u540e,\u65b0\u5efa\u5361\u7247,\u9009\u62e9\u81ea\u5b9a\u4e49WebRTC\u5361\u7247,\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a\u7ec4\u4ef6,\u5219\u9700\u8981\u5237\u65b0\u51e0\u6b21,\u5c31\u80fd\u770b\u5230\u8fd9\u4e2a\u7ec4\u4ef6. \u6211\u6837\u5728\u5361\u7247\u8bbe\u7f6e\u4e2d\u8f93\u5165url\u7684\u89c6\u9891\u6d41\u5730\u5740 type: custom:webrtc-camera url: \"rtsp://admin:Camera_data2018@192.168.50.131:554/stream2\"","title":"\u5b89\u88c5WebRTC Camera"},{"location":"Usages/initConfig/initConfig/#motioneye","text":"motionEye \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6444\u50cf\u5934\u8f6f\u4ef6\uff08\u79f0\u4e3a motion\uff09\u7684\u524d\u7aef\u3002\u672c\u63d2\u4ef6\u540c\u65f6\u63d0\u4f9b\u4e86\u524d\u7aef\u548c\u6444\u50cf\u5934\u8f6f\u4ef6\uff0c\u8ba9\u60a8\u53ef\u4ee5\u5c06\u6444\u50cf\u5934\u6dfb\u52a0\u5230 Hass.io \uff08Home Assistant\uff09\u7cfb\u7edf\u4e2d\u3002 motionEye \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ed\u8def\u7535\u89c6\uff08CCTV\uff09\u548c\u7f51\u7edc\u89c6\u9891\u5f55\u50cf\u673a\uff08NVR\uff09\uff0c\u5b83\u8bbe\u8ba1\u4f18\u96c5\u4e14\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002\u5b83\u53ef\u4ee5\u7528\u4f5c\u5a74\u513f\u76d1\u89c6\u5668\u3001\u5efa\u7b51\u5de5\u5730\u76d1\u63a7\u3001\u5546\u5e97\u6444\u50cf\u5934\u5f55\u50cf\u673a\u3001\u82b1\u56ed\u5b89\u9632\u7b49\u3002","title":"\u5b89\u88c5motionEye"},{"location":"Usages/initConfig/initConfig/#motioneye_1","text":"\u652f\u6301\u5927\u91cf\u6444\u50cf\u5934\uff0c\u5305\u62ec IP \u6444\u50cf\u5934\u3002 \u53ef\u4ee5\u901a\u8fc7\u5c06\u591a\u4e2a motionEye \u5b9e\u4f8b\u8fde\u63a5\u5728\u4e00\u8d77\u6dfb\u52a0\u591a\u4e2a\u6444\u50cf\u5934\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u7f51\u7edc\u4e2d\u4f7f\u7528\u8fd0\u884c MotionEyeOS \u7684 Pi Zero \u548c Pi \u6444\u50cf\u5934\u3002 \u652f\u6301\u5c06\u5f55\u50cf\u4e0a\u4f20\u5230 Google Drive \u548c Dropbox\u3002 \u652f\u6301\u8fd0\u52a8\u68c0\u6d4b\uff0c\u5305\u62ec\u90ae\u4ef6\u901a\u77e5\u548c\u8ba1\u5212\u4efb\u52a1\u3002 \u53ef\u4ee5\u8fde\u7eed\u5f55\u50cf\u3001\u8fd0\u52a8\u5f55\u50cf\u6216\u5ef6\u65f6\u5f55\u50cf\uff0c\u5e76\u652f\u6301\u4fdd\u7559\u8bbe\u7f6e\u3002 \u652f\u6301\u914d\u7f6e\u4e2d\u7684\u201c\u64cd\u4f5c\u6309\u94ae\u201d\u3002","title":"motionEye \u7684\u4e00\u4e9b\u7279\u70b9\uff1a"},{"location":"Usages/initConfig/initConfig/#_8","text":"\u5728\u8bbe\u7f6e-\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22\"motionEye\", \u70b9\u51fb\u67e5\u770b\u8be6\u60c5\u9875,\u5e76\u5b89\u88c5 motioneye\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u4e3aadmin,\u5bc6\u7801\u4e3a\u7a7a.","title":"\u5b89\u88c5\u65b9\u6cd5"},{"location":"Usages/initConfig/installHacs/","text":"","title":"installHacs"},{"location":"Usages/netconfig/netconfig/","text":"\u914d\u7f6e\u7f51\u7edc \u00b6 \u516c\u53f8\u4f7f\u7528\u7684X86\u5c0f\u5de5\u63a7\u673a,\u5927\u591a\u6709\u591a\u4e2a\u7f51\u5361,\u4e00\u822c\u4e00\u4e2a\u65e0\u7ebf\u7f51\u5361,\u4e24\u4e2a\u6709\u7ebf\u7f51\u5361.\u591a\u6570\u60c5\u51b5\u4e0b,\u6211\u4eec\u53ef\u80fd\u662f\u4f7f\u7528\u7684WIFI\u7f51\u7edc\uff0c\u8fd9\u6837\u6bd4\u8f83\u65b9\u4fbf\uff0c\u6709\u65f6\u4e3a\u4e86HA\u63d0\u4f9b\u7684\u670d\u52a1\u6298\u7a33\u5b9a\u6027\uff0c\u6211\u4eec\u5c3d\u91cf\u4f7f\u7528LAN\u7ebf\u7f51\u7edc\uff0c\u907f\u514d\u65e0\u7ebf\u7f51\u4fe1\u53f7\u8d28\u91cf\u7684\u95ee\u9898\u3002\u6240\u4ee5\u5c31\u6d89\u53ca\u5230\u914d\u7f51\u7684\u95ee\u9898\u3002 HomeAssistant\u7684\u7f51\u7edc\u914d\u7f6e,\u5728\u7cfb\u7edf\u6ca1\u6709\u5b89\u88c5\u6210\u529f\u4e4b\u524d,\u4e0d\u80fd\u901a\u8fc7web\u8fdb\u5165\u7f51\u9875\u754c\u9762\u65f6,\u914d\u7f6e\u7f51\u7edc\u53ea\u80fd\u901a\u8fc7\u81ea\u5e26\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4\u6765\u8fdb\u884c. \u719f\u6089\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4 \u00b6 HomeAssistant Cli \u63d0\u4f9b\u4e86\u9ed8\u4fe1\u6298network\u914d\u7f6e\u547d\u4ee4\u5982\u4e0b: ha netWork Useage: ha network [command] Examples: ha network info ha network interface options Available Commands: info Shows information about the host network reload Reload Network information the host scan Scan for Access Points on a wireless interface. update Update settings of a network interface vlan Create a new VLAN on an ethernet interface Flags: -h, --help help for network Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is'supervisor') --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API Use \"ha network [command] --help\" for more information about a command. \u8fd9\u4e2aha network\u547d\u4ee4,\u5927\u7ea6\u5982\u4e0b\u51e0\u4e2a\u529f\u80fd info \u663e\u793a\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f reload \u91cd\u65b0\u52a0\u8f7d\u7f51\u7edc scan \u626b\u63cf\u7f51\u7edc update \u914d\u7f6e\u7f51\u7edc \u6211\u4eec\u5728\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u65f6,\u53ef\u4ee5\u4f7f\u7528\u5176\u7b80\u5199,\u6bd4\u5982\u7701\u53bb\u524d\u9762\u7684ha,\u8fd8\u53ef\u4ee5\u7701\u53bb\u540e\u9762\u7684work \u6bd4\u5982,\u6211\u4eec\u60f3\u67e5\u770b\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f,\u53ef\u4ee5\u7528\u5982\u4e0b\u547d\u4ee4\u6765\u8fdb\u884c net info \u8fd9\u6761\u547d\u4ee4\u5c31\u4f1a\u628a\u6240\u6709\u7684\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f\u5168\u90e8\u663e\u793a\u51fa\u6765,\u53ea\u662f\u5982\u679c\u7f51\u5361\u8f83\u591a,\u6211\u4eec\u6ca1\u6709\u6cd5\u5728\u4e00\u5c4f\u5168\u90e8\u9605\u8bfb\u5b8c,\u6240\u4ee5\u8fd9\u5c31\u5f15\u53d1\u53e6\u4e00\u4e2a\u95ee\u9898.netwrok\u6240\u6709\u7684\u5b50\u547d\u4ee4,\u540e\u9762\u90fd\u662f\u53ef\u4ee5\u6216\u5fc5\u987b\u8ddf\u7740\u64cd\u4f5c\u5bf9\u50cf\u6765\u8fdb\u884c\u7684,\u5177\u4f53\u7684\u5c31\u662f,\u64cd\u4f5c\u6216\u663e\u793a\u54ea\u4e2a\u7f51\u5361\u63a5\u53e3.\u4e00\u822c\u60c5\u51b5\u4e0b\u662f\u5982\u4e0b\u578b\u5f0f net [command] [interface] \u5373 net [\u5b50\u547d\u4ee4] [\u7f51\u5361\u540d\u79f0] \u90a3\u4e48\u5982\u4f55\u67e5\u770b\u7f51\u5361\u540d\u79f0\u5462,\u5728haos \u7684cli\u63a7\u5236\u53f0\u754c\u9762,\u4efb\u610f\u65f6\u95f4,\u540c\u65f6\u6309\u4e0b ctrl+c \u540e,ha\u7684\u754c\u9762\u8fd4\u56de\u5230\u5f85\u673a\u754c\u9762,\u5982\u4e0b\u56fe\u6240\u793a. \u56fe\u4e2d\u5171\u663e\u793a\u4e86\u4e09\u4e2a\u7f51\u5361\u63a5\u53e3: wlp3s0 \u8fd9\u4e2a\u662f\u65e0\u7ebf\u7f51\u5361\u63a5\u53e3\u7684\u540d\u79f0,\u4e00\u822c\u60c5\u51b5\u4e0bw\u5b57\u7b26\u6253\u5934\u7684\u6211\u4e3a\u65e0\u7ebf\u7f51\u5361 enp2s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA1,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 enp4s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA2,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 \u67e5\u770b\u5230\u4e86\u8fd9\u4e09\u4e2a\u7f51\u5361\u540d\u79f0,\u6211\u4eec\u5c31\u53ef\u4ee5\u5bf9\u7f51\u5361\u8fdb\u884c\u67e5\u770b\u4fe1\u606f\u914d\u7f6e\u7b49. \u5bf9\u6709\u521d\u88c5\u7684HAOS\u8fd8\u6709\u51c6\u5907\u8fdb\u884cUdate\u7684\u5c0f\u4e3b\u673a,\u6700\u597d,\u5c31\u662f\u5728\u8def\u7531\u5668\u7aef \u9ed8\u8ba4\u63d0\u4f9b\u79d1\u5b66\u4e0a\u7f51 ,\u5426\u5219\u5728\u65b0\u5b89\u88c5\u6298\u521d\u59cb\u5316\u90a3\u91cc\u5c31\u4f1a\u88ab\u6c38\u8fdc\u5361\u4f4f,\u65e0\u6cd5\u5b89\u88c5\u6210\u529f,\u5982\u679c\u662f\u81ea\u52a8\u66f4\u65b0,\u90a3\u4e48\u5c06\u4f1a\u66f4\u65b0\u5931\u8d25. \u914d\u7f6e\u7f51\u7edc \u00b6 \u4e00\u822c\u60c5\u51b5\u4e0b,\u5bf9\u4e8eenp2s0,enp4s0,\u5982\u679c\u8def\u7531\u5668\u7aef\u63d0\u4f9b\u4e86\u81ea\u52a8\u83b7\u53d6IP\u5730\u5740\u529f\u80fd\uff0c\u5219\u65e0\u9700\u914d\u7f6e\uff0c\u7f51\u7ebf\u63d2\u5165\u5373\u53ef\u4f7f\u7528\u3002 \u4f46\u662f\u5bf9\u4e8e\u6bd4\u8f83\u590d\u6742\u7684\u7f51\u7edc\u5219\u9700\u8981\u914d\u7f6e\uff0c\u540c\u6837\uff0c\u5982\u679c\u60f3\u4f7f\u7528wifi\u7f51\u7edc,\u4e5f\u9700\u8981\u914d\u7f6e . \u914d\u7f6e\u7f51\u7edc\u7684\u547d\u4ee4\u5982\u4e0b: ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled Disable interface -h, --help help for update --ipv4-address stringArray IPv4 address for the interface in the 192.168.1.5/24 --ipv4-gateway string The IPv4 gateway the interface should use --ipv4-method string Method on IPv4: static|auto|disabled --ipv4-nameserver stringArray IPv4 address of upstream DNS servers. Use multiple times for multiple servers. --ipv6-address stringArray IPv6 address for the interface in the 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string The IPv6 gateway the interface should use --ipv6-method string Method on IPv6: static|auto|disabled --ipv6-nameserver stringArray IPv6 address for upstream DNS servers. Use multiple times for multiple servers. --wifi-auth string Used authentication: open, wep, wpa-psk --wifi-mode string Wifi mode: infrastructure, adhoc, mesh or ap --wifi-psk string Shared authentication key for wep or wpa --wifi-ssid string SSID for wifi connection Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is `supervisor`) --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API \u8fd9\u6761\u547d\u4ee4ha network update [interface] [flags],\u63d0\u4f9b\u4e86\u5f88\u591a\u529f\u80fd,\u5b83\u53ef\u4ee5\u914d\u7f6ewif\u7f51\u7edc,\u53ef\u4ee5\u5bf9\u6307\u5b9a\u7684\u7f51\u5361\u914d\u7f6eip4/6\u7684IP\u5730\u5740\uff0c\u7f51\u5173\uff0c\u662f\u5426\u542f\u7528\u7b49.\u56e0\u6b64\u53ef\u4ee5\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u7075\u6d3b\u4f7f\u7528. \u5177\u4f53\u7528\u6cd5\u7b80\u8bd1\u5982\u4e0b ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled \u7981\u7528\u63a5\u53e3 -h, --help \u663e\u793a\u66f4\u65b0\u7684\u5e2e\u52a9\u4fe1\u606f --ipv4-address stringArray \u63a5\u53e3\u7684 IPv4 \u5730\u5740\uff0c\u4f8b\u5982 192.168.1.5/24 --ipv4-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv4 \u7f51\u5173 --ipv4-method string IPv4 \u65b9\u6cd5: static|auto|disabled --ipv4-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv4 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --ipv6-address stringArray \u63a5\u53e3\u7684 IPv6 \u5730\u5740\uff0c\u4f8b\u5982 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv6 \u7f51\u5173 --ipv6-method string IPv6 \u65b9\u6cd5: static|auto|disabled --ipv6-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv6 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --wifi-auth string \u4f7f\u7528\u7684\u8ba4\u8bc1\u65b9\u5f0f: open, wep, wpa-psk --wifi-mode string WiFi \u6a21\u5f0f: infrastructure, adhoc, mesh \u6216 ap --wifi-psk string WEP \u6216 WPA \u7684\u5171\u4eab\u8ba4\u8bc1\u5bc6\u94a5 --wifi-ssid string WiFi \u8fde\u63a5\u7684 SSID Global Flags: --api-token string Home Assistant Supervisor API \u4ee4\u724c --config string \u53ef\u9009\u7684\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff08\u9ed8\u8ba4\u503c\u4e3a $HOME/.homeassistant.yaml\uff09 --endpoint string Home Assistant Supervisor \u7684\u7aef\u70b9\uff08\u9ed8\u8ba4\u503c\u4e3a `supervisor`\uff09 --log-level string \u65e5\u5fd7\u7ea7\u522b\uff08\u9ed8\u8ba4\u503c\u4e3a Warn\uff09 --no-progress \u7981\u7528\u8fdb\u5ea6\u6761 --raw-json \u4ee5\u539f\u59cb JSON \u683c\u5f0f\u8f93\u51fa API \u6570\u636e FATA[0000] Error while executing rootCmd: accepts 1 arg(s), received 0 \u4e0b\u9762,\u6211\u4eec\u5c31\u4ee5\u914d\u7f6ewifi\u8054\u63a5\u5230\u7f51\u7edc\u4e3a\u4f8b\u8bf4\u660e\u4e00\u4e0b: \u6bd4\u5982\u6211\u4eec\u9ed8\u8ba4\u7684WIFI\u70ed\u70b9\u5982\u4e0b: wifi info: ssid:DT_IoT_GateWay passWord:HnczjTyrb0 \u90a3\u6839\u636e\u6211\u4eec\u4e0a\u6587\u67e5\u770b\u5230\u7684\u65e0\u7ebf\u7f51\u5361\u7684\u540d\u79f0: wlp3s0 \u6211\u4eec\u4f7f\u7528\u5982\u4e0b\u914d\u7f6e\u547d\u4ee4,\u6765\u8ba9haos\u5c0f\u5de5\u63a7\u673a\u8054\u4e0awifi\u7f51\u7edc: ha network update wlp3s0 --wifi-auth wpa-psk --wifi-psk \"HmczjTYrb0\" --wifi-mode infrastructure --wifi-ssid \"DT_IoT_GateWay\" --ipv4-method auto --ipv6-method disabled \u8fd9\u6761\u547d\u4ee4\u89e3\u91ca\u5982\u4e0b: \u6307\u5b9awifi\u7684\u5bc6\u7801\u65b9\u5f0f\u4e3a:wpa-psk (--wifi-auth wpa-psk). \u6307\u5b9awif\u7684\u5bc6\u7801\u4e3a:HnczjTyrb0 (--wifi-psk \"HmczjYrb0\"). \u6307\u5b9a\u7f51\u5361\u63a5\u53e3\u6a21\u5f0f\u4e3a:infrastructure \u5373\u5e38\u89c4\u6a21\u5f0f (--wifi-mode infrastructure). \u6307\u5b9a\u8981\u8054\u63a5\u7684\u7f51\u7edcSSID:DT_IoT_GateWay (--wifi-ssid \"DT_IoT_GateWay\"). \u6307\u5b9aIP\u5730\u5740\u83b7\u53d6\u65b9\u5f0f\uff08\u9759\u6001\u3001\u81ea\u52a8\u3001\u7981\u7528\uff09\uff1a\u81ea\u52a8 ( --ipv4-method auto). \u6307\u5b9a\u662f\u5426\u7981\u7528IpV6:\u7981\u7528 (--ipv6-method disabled) \u5982\u4e0b\u56fe\u6240\u793a,\u6211\u4eec\u6210\u529f\u7684\u4f7f\u7528\u8fd9\u6761\u6307\u4ee4,\u914d\u7f6e\u597d\u4e86wifi\u7f51\u7edc: \u5982\u4e0b\u6240\u793a,\u914d\u7f51\u6210\u529f\u540e,\u8def\u7531\u5668\u5df2\u81ea\u52a8\u4e3a\u5176\u5206\u914d\u597d\u4e86ip\u5730\u5740: \u6b64\u65f6,\u6211\u4eec\u5728\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u7f51\u5740 http://192.168.3.2:8123 \u5373\u53ef\u8fdb\u5165haos\u7684web\u9875\u9762. \u4e0b\u56fe\u662f\u65e0\u7ebf\u7f51\u5361\u4e0e\u6709\u7ebf\u7f51\u5361\u540c\u65f6\u542f\u7528\u7684\u60c5\u51b5,\u53ef\u4ee5\u770b\u5230,\u4e24\u4e2a\u7f51\u5361\u90fd\u88ab\u6b63\u786e\u7684\u5206\u914d\u5230\u4e86IP\u5730\u5740\uff1a \u5728\u7cfb\u7edf\u5b89\u88c5\u597d\u521d\u59cb\u5316\u5b8c\u6210\u540e\u914d\u7f6e\u7f51\u7edc \u00b6 \u7cfb\u7edf\u521d\u59cb\u5316\u5b8c\u6210\u540e,\u4ecd\u7136\u53ef\u4ee5\u8c03\u6574\u914d\u7f6e\u7f51\u7edc, \u8bbe\u7f6e-\u7cfb\u7edf-\u7f51\u7edc \u4e2d\u914d\u7f6e\u7f51\u7edc\u63a5\u53e3\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u914d\u7f6e \u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u7684\u4e09\u5757\u7f51\u5361,wlp3s0,enp2s0,enp4s0,\u53ef\u5728\u6b64\u5904\u914d\u7f6e,\u6bcf\u4e2a\u7f51\u5361\u7684IP\uff0c\u5b50\u7f51\uff0c\u7f51\u5173\uff0cDNS\u7b49\uff0c\u4e5f\u53ef\u4ee5\u914d\u7f6ewi-fi\u70ed\u70b9.","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_1","text":"\u516c\u53f8\u4f7f\u7528\u7684X86\u5c0f\u5de5\u63a7\u673a,\u5927\u591a\u6709\u591a\u4e2a\u7f51\u5361,\u4e00\u822c\u4e00\u4e2a\u65e0\u7ebf\u7f51\u5361,\u4e24\u4e2a\u6709\u7ebf\u7f51\u5361.\u591a\u6570\u60c5\u51b5\u4e0b,\u6211\u4eec\u53ef\u80fd\u662f\u4f7f\u7528\u7684WIFI\u7f51\u7edc\uff0c\u8fd9\u6837\u6bd4\u8f83\u65b9\u4fbf\uff0c\u6709\u65f6\u4e3a\u4e86HA\u63d0\u4f9b\u7684\u670d\u52a1\u6298\u7a33\u5b9a\u6027\uff0c\u6211\u4eec\u5c3d\u91cf\u4f7f\u7528LAN\u7ebf\u7f51\u7edc\uff0c\u907f\u514d\u65e0\u7ebf\u7f51\u4fe1\u53f7\u8d28\u91cf\u7684\u95ee\u9898\u3002\u6240\u4ee5\u5c31\u6d89\u53ca\u5230\u914d\u7f51\u7684\u95ee\u9898\u3002 HomeAssistant\u7684\u7f51\u7edc\u914d\u7f6e,\u5728\u7cfb\u7edf\u6ca1\u6709\u5b89\u88c5\u6210\u529f\u4e4b\u524d,\u4e0d\u80fd\u901a\u8fc7web\u8fdb\u5165\u7f51\u9875\u754c\u9762\u65f6,\u914d\u7f6e\u7f51\u7edc\u53ea\u80fd\u901a\u8fc7\u81ea\u5e26\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4\u6765\u8fdb\u884c.","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_2","text":"HomeAssistant Cli \u63d0\u4f9b\u4e86\u9ed8\u4fe1\u6298network\u914d\u7f6e\u547d\u4ee4\u5982\u4e0b: ha netWork Useage: ha network [command] Examples: ha network info ha network interface options Available Commands: info Shows information about the host network reload Reload Network information the host scan Scan for Access Points on a wireless interface. update Update settings of a network interface vlan Create a new VLAN on an ethernet interface Flags: -h, --help help for network Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is'supervisor') --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API Use \"ha network [command] --help\" for more information about a command. \u8fd9\u4e2aha network\u547d\u4ee4,\u5927\u7ea6\u5982\u4e0b\u51e0\u4e2a\u529f\u80fd info \u663e\u793a\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f reload \u91cd\u65b0\u52a0\u8f7d\u7f51\u7edc scan \u626b\u63cf\u7f51\u7edc update \u914d\u7f6e\u7f51\u7edc \u6211\u4eec\u5728\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u65f6,\u53ef\u4ee5\u4f7f\u7528\u5176\u7b80\u5199,\u6bd4\u5982\u7701\u53bb\u524d\u9762\u7684ha,\u8fd8\u53ef\u4ee5\u7701\u53bb\u540e\u9762\u7684work \u6bd4\u5982,\u6211\u4eec\u60f3\u67e5\u770b\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f,\u53ef\u4ee5\u7528\u5982\u4e0b\u547d\u4ee4\u6765\u8fdb\u884c net info \u8fd9\u6761\u547d\u4ee4\u5c31\u4f1a\u628a\u6240\u6709\u7684\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f\u5168\u90e8\u663e\u793a\u51fa\u6765,\u53ea\u662f\u5982\u679c\u7f51\u5361\u8f83\u591a,\u6211\u4eec\u6ca1\u6709\u6cd5\u5728\u4e00\u5c4f\u5168\u90e8\u9605\u8bfb\u5b8c,\u6240\u4ee5\u8fd9\u5c31\u5f15\u53d1\u53e6\u4e00\u4e2a\u95ee\u9898.netwrok\u6240\u6709\u7684\u5b50\u547d\u4ee4,\u540e\u9762\u90fd\u662f\u53ef\u4ee5\u6216\u5fc5\u987b\u8ddf\u7740\u64cd\u4f5c\u5bf9\u50cf\u6765\u8fdb\u884c\u7684,\u5177\u4f53\u7684\u5c31\u662f,\u64cd\u4f5c\u6216\u663e\u793a\u54ea\u4e2a\u7f51\u5361\u63a5\u53e3.\u4e00\u822c\u60c5\u51b5\u4e0b\u662f\u5982\u4e0b\u578b\u5f0f net [command] [interface] \u5373 net [\u5b50\u547d\u4ee4] [\u7f51\u5361\u540d\u79f0] \u90a3\u4e48\u5982\u4f55\u67e5\u770b\u7f51\u5361\u540d\u79f0\u5462,\u5728haos \u7684cli\u63a7\u5236\u53f0\u754c\u9762,\u4efb\u610f\u65f6\u95f4,\u540c\u65f6\u6309\u4e0b ctrl+c \u540e,ha\u7684\u754c\u9762\u8fd4\u56de\u5230\u5f85\u673a\u754c\u9762,\u5982\u4e0b\u56fe\u6240\u793a. \u56fe\u4e2d\u5171\u663e\u793a\u4e86\u4e09\u4e2a\u7f51\u5361\u63a5\u53e3: wlp3s0 \u8fd9\u4e2a\u662f\u65e0\u7ebf\u7f51\u5361\u63a5\u53e3\u7684\u540d\u79f0,\u4e00\u822c\u60c5\u51b5\u4e0bw\u5b57\u7b26\u6253\u5934\u7684\u6211\u4e3a\u65e0\u7ebf\u7f51\u5361 enp2s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA1,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 enp4s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA2,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 \u67e5\u770b\u5230\u4e86\u8fd9\u4e09\u4e2a\u7f51\u5361\u540d\u79f0,\u6211\u4eec\u5c31\u53ef\u4ee5\u5bf9\u7f51\u5361\u8fdb\u884c\u67e5\u770b\u4fe1\u606f\u914d\u7f6e\u7b49. \u5bf9\u6709\u521d\u88c5\u7684HAOS\u8fd8\u6709\u51c6\u5907\u8fdb\u884cUdate\u7684\u5c0f\u4e3b\u673a,\u6700\u597d,\u5c31\u662f\u5728\u8def\u7531\u5668\u7aef \u9ed8\u8ba4\u63d0\u4f9b\u79d1\u5b66\u4e0a\u7f51 ,\u5426\u5219\u5728\u65b0\u5b89\u88c5\u6298\u521d\u59cb\u5316\u90a3\u91cc\u5c31\u4f1a\u88ab\u6c38\u8fdc\u5361\u4f4f,\u65e0\u6cd5\u5b89\u88c5\u6210\u529f,\u5982\u679c\u662f\u81ea\u52a8\u66f4\u65b0,\u90a3\u4e48\u5c06\u4f1a\u66f4\u65b0\u5931\u8d25.","title":"\u719f\u6089\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4"},{"location":"Usages/netconfig/netconfig/#_3","text":"\u4e00\u822c\u60c5\u51b5\u4e0b,\u5bf9\u4e8eenp2s0,enp4s0,\u5982\u679c\u8def\u7531\u5668\u7aef\u63d0\u4f9b\u4e86\u81ea\u52a8\u83b7\u53d6IP\u5730\u5740\u529f\u80fd\uff0c\u5219\u65e0\u9700\u914d\u7f6e\uff0c\u7f51\u7ebf\u63d2\u5165\u5373\u53ef\u4f7f\u7528\u3002 \u4f46\u662f\u5bf9\u4e8e\u6bd4\u8f83\u590d\u6742\u7684\u7f51\u7edc\u5219\u9700\u8981\u914d\u7f6e\uff0c\u540c\u6837\uff0c\u5982\u679c\u60f3\u4f7f\u7528wifi\u7f51\u7edc,\u4e5f\u9700\u8981\u914d\u7f6e . \u914d\u7f6e\u7f51\u7edc\u7684\u547d\u4ee4\u5982\u4e0b: ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled Disable interface -h, --help help for update --ipv4-address stringArray IPv4 address for the interface in the 192.168.1.5/24 --ipv4-gateway string The IPv4 gateway the interface should use --ipv4-method string Method on IPv4: static|auto|disabled --ipv4-nameserver stringArray IPv4 address of upstream DNS servers. Use multiple times for multiple servers. --ipv6-address stringArray IPv6 address for the interface in the 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string The IPv6 gateway the interface should use --ipv6-method string Method on IPv6: static|auto|disabled --ipv6-nameserver stringArray IPv6 address for upstream DNS servers. Use multiple times for multiple servers. --wifi-auth string Used authentication: open, wep, wpa-psk --wifi-mode string Wifi mode: infrastructure, adhoc, mesh or ap --wifi-psk string Shared authentication key for wep or wpa --wifi-ssid string SSID for wifi connection Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is `supervisor`) --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API \u8fd9\u6761\u547d\u4ee4ha network update [interface] [flags],\u63d0\u4f9b\u4e86\u5f88\u591a\u529f\u80fd,\u5b83\u53ef\u4ee5\u914d\u7f6ewif\u7f51\u7edc,\u53ef\u4ee5\u5bf9\u6307\u5b9a\u7684\u7f51\u5361\u914d\u7f6eip4/6\u7684IP\u5730\u5740\uff0c\u7f51\u5173\uff0c\u662f\u5426\u542f\u7528\u7b49.\u56e0\u6b64\u53ef\u4ee5\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u7075\u6d3b\u4f7f\u7528. \u5177\u4f53\u7528\u6cd5\u7b80\u8bd1\u5982\u4e0b ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled \u7981\u7528\u63a5\u53e3 -h, --help \u663e\u793a\u66f4\u65b0\u7684\u5e2e\u52a9\u4fe1\u606f --ipv4-address stringArray \u63a5\u53e3\u7684 IPv4 \u5730\u5740\uff0c\u4f8b\u5982 192.168.1.5/24 --ipv4-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv4 \u7f51\u5173 --ipv4-method string IPv4 \u65b9\u6cd5: static|auto|disabled --ipv4-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv4 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --ipv6-address stringArray \u63a5\u53e3\u7684 IPv6 \u5730\u5740\uff0c\u4f8b\u5982 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv6 \u7f51\u5173 --ipv6-method string IPv6 \u65b9\u6cd5: static|auto|disabled --ipv6-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv6 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --wifi-auth string \u4f7f\u7528\u7684\u8ba4\u8bc1\u65b9\u5f0f: open, wep, wpa-psk --wifi-mode string WiFi \u6a21\u5f0f: infrastructure, adhoc, mesh \u6216 ap --wifi-psk string WEP \u6216 WPA \u7684\u5171\u4eab\u8ba4\u8bc1\u5bc6\u94a5 --wifi-ssid string WiFi \u8fde\u63a5\u7684 SSID Global Flags: --api-token string Home Assistant Supervisor API \u4ee4\u724c --config string \u53ef\u9009\u7684\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff08\u9ed8\u8ba4\u503c\u4e3a $HOME/.homeassistant.yaml\uff09 --endpoint string Home Assistant Supervisor \u7684\u7aef\u70b9\uff08\u9ed8\u8ba4\u503c\u4e3a `supervisor`\uff09 --log-level string \u65e5\u5fd7\u7ea7\u522b\uff08\u9ed8\u8ba4\u503c\u4e3a Warn\uff09 --no-progress \u7981\u7528\u8fdb\u5ea6\u6761 --raw-json \u4ee5\u539f\u59cb JSON \u683c\u5f0f\u8f93\u51fa API \u6570\u636e FATA[0000] Error while executing rootCmd: accepts 1 arg(s), received 0 \u4e0b\u9762,\u6211\u4eec\u5c31\u4ee5\u914d\u7f6ewifi\u8054\u63a5\u5230\u7f51\u7edc\u4e3a\u4f8b\u8bf4\u660e\u4e00\u4e0b: \u6bd4\u5982\u6211\u4eec\u9ed8\u8ba4\u7684WIFI\u70ed\u70b9\u5982\u4e0b: wifi info: ssid:DT_IoT_GateWay passWord:HnczjTyrb0 \u90a3\u6839\u636e\u6211\u4eec\u4e0a\u6587\u67e5\u770b\u5230\u7684\u65e0\u7ebf\u7f51\u5361\u7684\u540d\u79f0: wlp3s0 \u6211\u4eec\u4f7f\u7528\u5982\u4e0b\u914d\u7f6e\u547d\u4ee4,\u6765\u8ba9haos\u5c0f\u5de5\u63a7\u673a\u8054\u4e0awifi\u7f51\u7edc: ha network update wlp3s0 --wifi-auth wpa-psk --wifi-psk \"HmczjTYrb0\" --wifi-mode infrastructure --wifi-ssid \"DT_IoT_GateWay\" --ipv4-method auto --ipv6-method disabled \u8fd9\u6761\u547d\u4ee4\u89e3\u91ca\u5982\u4e0b: \u6307\u5b9awifi\u7684\u5bc6\u7801\u65b9\u5f0f\u4e3a:wpa-psk (--wifi-auth wpa-psk). \u6307\u5b9awif\u7684\u5bc6\u7801\u4e3a:HnczjTyrb0 (--wifi-psk \"HmczjYrb0\"). \u6307\u5b9a\u7f51\u5361\u63a5\u53e3\u6a21\u5f0f\u4e3a:infrastructure \u5373\u5e38\u89c4\u6a21\u5f0f (--wifi-mode infrastructure). \u6307\u5b9a\u8981\u8054\u63a5\u7684\u7f51\u7edcSSID:DT_IoT_GateWay (--wifi-ssid \"DT_IoT_GateWay\"). \u6307\u5b9aIP\u5730\u5740\u83b7\u53d6\u65b9\u5f0f\uff08\u9759\u6001\u3001\u81ea\u52a8\u3001\u7981\u7528\uff09\uff1a\u81ea\u52a8 ( --ipv4-method auto). \u6307\u5b9a\u662f\u5426\u7981\u7528IpV6:\u7981\u7528 (--ipv6-method disabled) \u5982\u4e0b\u56fe\u6240\u793a,\u6211\u4eec\u6210\u529f\u7684\u4f7f\u7528\u8fd9\u6761\u6307\u4ee4,\u914d\u7f6e\u597d\u4e86wifi\u7f51\u7edc: \u5982\u4e0b\u6240\u793a,\u914d\u7f51\u6210\u529f\u540e,\u8def\u7531\u5668\u5df2\u81ea\u52a8\u4e3a\u5176\u5206\u914d\u597d\u4e86ip\u5730\u5740: \u6b64\u65f6,\u6211\u4eec\u5728\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u7f51\u5740 http://192.168.3.2:8123 \u5373\u53ef\u8fdb\u5165haos\u7684web\u9875\u9762. \u4e0b\u56fe\u662f\u65e0\u7ebf\u7f51\u5361\u4e0e\u6709\u7ebf\u7f51\u5361\u540c\u65f6\u542f\u7528\u7684\u60c5\u51b5,\u53ef\u4ee5\u770b\u5230,\u4e24\u4e2a\u7f51\u5361\u90fd\u88ab\u6b63\u786e\u7684\u5206\u914d\u5230\u4e86IP\u5730\u5740\uff1a","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_4","text":"\u7cfb\u7edf\u521d\u59cb\u5316\u5b8c\u6210\u540e,\u4ecd\u7136\u53ef\u4ee5\u8c03\u6574\u914d\u7f6e\u7f51\u7edc, \u8bbe\u7f6e-\u7cfb\u7edf-\u7f51\u7edc \u4e2d\u914d\u7f6e\u7f51\u7edc\u63a5\u53e3\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u914d\u7f6e \u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u7684\u4e09\u5757\u7f51\u5361,wlp3s0,enp2s0,enp4s0,\u53ef\u5728\u6b64\u5904\u914d\u7f6e,\u6bcf\u4e2a\u7f51\u5361\u7684IP\uff0c\u5b50\u7f51\uff0c\u7f51\u5173\uff0cDNS\u7b49\uff0c\u4e5f\u53ef\u4ee5\u914d\u7f6ewi-fi\u70ed\u70b9.","title":"\u5728\u7cfb\u7edf\u5b89\u88c5\u597d\u521d\u59cb\u5316\u5b8c\u6210\u540e\u914d\u7f6e\u7f51\u7edc"},{"location":"install-guide/BackupAndRestore/","text":"\u7cfb\u7edf\u7684\u5907\u4efd\u4e0e\u8fd8\u539f(\u786c\u76d8) \u00b6 HomeAssistant \u7684\u5b89\u88c5\u914d\u7f6e\u8fc7\u7a0b\u8f83\u591a,\u8017\u65f6\u8f83\u957f,\u4e3a\u6b64\u6211\u4eec\u7814\u7a76\u4e86\u4e00\u4e2a,\u5feb\u901f\u7684\u5c06\u63d0\u524d\u88c5\u597d\u7684HomeAssistant\u786c\u76d8,\u6574\u5907\u5907\u4efd\u4e0e\u6062\u590d\u7684\u529e\u6cd5. \u955c\u50cf\u6587\u4ef6\u4e0b\u8f7d \u00b6 \u955c\u50cf\u6587\u4ef6\u662f\u6211\u4eec\u63d0\u524d\u5236\u4f5c\u597d\u5e76\u5907\u4efd\u78c1\u76d8\u653e\u5230\u4e91\u7aef\u7684\uff0c\u6587\u4ef6\u8f83\u5927\uff0c\u9700\u8981\u5728\u5236\u4f5c\u597dWINpe\u7cfb\u7edf\u540e,\u4e0b\u8f7d\u5e76\u653e\u5230U\u76d8\u4e2d\u3002 \u70b9\u51fb\u6b64\u4e0b\u8f7d \u5de5\u5177\u7684\u51c6\u5907 \u00b6 \u5907\u4efd\u8fd8\u539f\u786c\u76d8\uff0c\u6211\u4eec\u5747\u662f\u5730windowsPE\u4e2d\u8fdb\u884c\u7684,\u4e3a\u6b64\u6211\u4eec\u9700\u51c6\u5907\u5982\u4e0b\u5de5\u5177: windowsPE(\u5fc5\u987b) windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u5176\u81ea\u5e26\u7684Diskgenus\u5e94\u5f53\u662f\u5df2\u7ecf\u662f\u4e13\u4e1a\u7834\u89e3\u7248\u4e86,\u53ef\u4ee5\u64cd\u4f5c\u5927\u4e8e4G\u7684\u955c\u50cf\u3002\u6240\u4ee5\u4e00\u822c\u60c5\u51b5\u4e0b\u4e0d\u5fc5\u518d\u53e6\u5916\u627e\u5de5\u5177\u3002\u5f53\u9009\u7b2c\u4e09\u65b9PE\uff0c\u6216\u7b2c\u4e09\u65b9PE\u5e26\u7684Diskgenus\u4e0d\u80fd\u6ee1\u8db3\u9700\u8981,\u4e0d\u80fd\u6b63\u5e38\u7684\u5907\u4efd\u4e0e\u8fd8\u539f\u955c\u50cf\u65f6,\u9700\u8981\u9009\u75282\u63d0\u4f9b\u7684\u4e13\u4e1a\u7248 ,\u5e76\u5c06\u5176\u590d\u5236\u5230U\u76d8\u4e2d\u3002 Diskgenus\u4e13\u4e1a\u7834\u89e3\u7248.(\u53ef\u9009) \u200b \u70b9\u51fb\u6b64\u5904\u4e0b\u8f7d \u7528winPE\u5f15\u5bfcU\u76d8\uff0c\u5f15\u5bfc\u7cfb\u7edf\uff0c\u8fdb\u5165PE,\u542f\u52a8SiskGenius \u5206\u533a\u52a9\u624b\u7a0b\u5e8f,\u9009\u4e2d\u8981\u64cd\u4f5c\u7684\u78c1\u76d8.\u7136\u540e,\u70b9\u51fb \u83dc\u5355 \u78c1\u76d8 \u4ece\u786c\u76d8\u955c\u50cf\u6062\u590d \u00b6 \u9009\u62e9\u201c\u4ece\u6620\u50cf\u6062\u590d\u78c1\u76d8\",\u7136\u540e\u9009\u62e9U\u76d8\u4e2d\uff0c\u63d0\u524d\u51c6\u5907\u597d\u7684*.pmfx\u6587\u4ef6,\u7136\u540e\u9009\u62e9\u76ee\u6807\u78c1\u76d8,\u8fd8\u539f\u65b9\u5f0f\u4e3a:\u8fd8\u539f\u6240\u6709\u6247\u533a,\u7136\u540e\u70b9\u51fb\u5f00\u59cb,\u7cfb\u7edf\u5c31\u4f1a\u5f00\u59cb\u8fd8\u539f. \u8fd8\u539f\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a: \u7136\u540e,\u79fb\u9664U\u76d8\uff0c\u91cd\u65b0\u542f\u52a8\uff0c\u5373\u53ef\u5b8c\u6210\u5b89\u88c5\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5907\u4efd\u6574\u4e2a\u786c\u76d8 \u00b6 \u9009\u62e9\"\u5907\u4efd\u78c1\u78c1\u76d8\u5230\u6620\\\u50cf\u6587\u4ef6\",\u5907\u4efd\u6a21\u5f0f\u4e3a:\u6240\u6709\u6247\u533a,\u9009\u62e9\u955c\u50cf\u6587\u4ef6,\u4e3a\u4e0b\u8f7d\u597d\u5e76\u63d0\u524d\u653e\u5165U\u76d8\u7684\u6269\u5c55\u540d\u4e3apmfx\u7684\u6620\u50cf\u6587\u4ef6,\u7136\u540e\u70b9\u51fb\"\u5f00\u59cb\" \u5927\u7ea6\u534a\u4e2a\u591a\u5c0f\u65f6,\u80fd\u5199\u5165\u5b8c\u6210.\u5982\u4e0b\u56fe\u6240\u793a,\u6620\u50cf\u6587\u4ef6\u5df2\u751f\u6210\u7ea6\u67095G\uff0c\u4fdd\u5b58\u5230\u5408\u9002\u7684\u5730\u65b9\uff0c\u53ef\u4ee5\u7528\u6765\u88c5\u673a\u6216\u8fd8\u539f\u7528\u3002","title":"BackupAndRestore"},{"location":"install-guide/BackupAndRestore/#_1","text":"HomeAssistant \u7684\u5b89\u88c5\u914d\u7f6e\u8fc7\u7a0b\u8f83\u591a,\u8017\u65f6\u8f83\u957f,\u4e3a\u6b64\u6211\u4eec\u7814\u7a76\u4e86\u4e00\u4e2a,\u5feb\u901f\u7684\u5c06\u63d0\u524d\u88c5\u597d\u7684HomeAssistant\u786c\u76d8,\u6574\u5907\u5907\u4efd\u4e0e\u6062\u590d\u7684\u529e\u6cd5.","title":"\u7cfb\u7edf\u7684\u5907\u4efd\u4e0e\u8fd8\u539f(\u786c\u76d8)"},{"location":"install-guide/BackupAndRestore/#_2","text":"\u955c\u50cf\u6587\u4ef6\u662f\u6211\u4eec\u63d0\u524d\u5236\u4f5c\u597d\u5e76\u5907\u4efd\u78c1\u76d8\u653e\u5230\u4e91\u7aef\u7684\uff0c\u6587\u4ef6\u8f83\u5927\uff0c\u9700\u8981\u5728\u5236\u4f5c\u597dWINpe\u7cfb\u7edf\u540e,\u4e0b\u8f7d\u5e76\u653e\u5230U\u76d8\u4e2d\u3002 \u70b9\u51fb\u6b64\u4e0b\u8f7d","title":"\u955c\u50cf\u6587\u4ef6\u4e0b\u8f7d"},{"location":"install-guide/BackupAndRestore/#_3","text":"\u5907\u4efd\u8fd8\u539f\u786c\u76d8\uff0c\u6211\u4eec\u5747\u662f\u5730windowsPE\u4e2d\u8fdb\u884c\u7684,\u4e3a\u6b64\u6211\u4eec\u9700\u51c6\u5907\u5982\u4e0b\u5de5\u5177: windowsPE(\u5fc5\u987b) windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u5176\u81ea\u5e26\u7684Diskgenus\u5e94\u5f53\u662f\u5df2\u7ecf\u662f\u4e13\u4e1a\u7834\u89e3\u7248\u4e86,\u53ef\u4ee5\u64cd\u4f5c\u5927\u4e8e4G\u7684\u955c\u50cf\u3002\u6240\u4ee5\u4e00\u822c\u60c5\u51b5\u4e0b\u4e0d\u5fc5\u518d\u53e6\u5916\u627e\u5de5\u5177\u3002\u5f53\u9009\u7b2c\u4e09\u65b9PE\uff0c\u6216\u7b2c\u4e09\u65b9PE\u5e26\u7684Diskgenus\u4e0d\u80fd\u6ee1\u8db3\u9700\u8981,\u4e0d\u80fd\u6b63\u5e38\u7684\u5907\u4efd\u4e0e\u8fd8\u539f\u955c\u50cf\u65f6,\u9700\u8981\u9009\u75282\u63d0\u4f9b\u7684\u4e13\u4e1a\u7248 ,\u5e76\u5c06\u5176\u590d\u5236\u5230U\u76d8\u4e2d\u3002 Diskgenus\u4e13\u4e1a\u7834\u89e3\u7248.(\u53ef\u9009) \u200b \u70b9\u51fb\u6b64\u5904\u4e0b\u8f7d \u7528winPE\u5f15\u5bfcU\u76d8\uff0c\u5f15\u5bfc\u7cfb\u7edf\uff0c\u8fdb\u5165PE,\u542f\u52a8SiskGenius \u5206\u533a\u52a9\u624b\u7a0b\u5e8f,\u9009\u4e2d\u8981\u64cd\u4f5c\u7684\u78c1\u76d8.\u7136\u540e,\u70b9\u51fb \u83dc\u5355 \u78c1\u76d8","title":"\u5de5\u5177\u7684\u51c6\u5907"},{"location":"install-guide/BackupAndRestore/#_4","text":"\u9009\u62e9\u201c\u4ece\u6620\u50cf\u6062\u590d\u78c1\u76d8\",\u7136\u540e\u9009\u62e9U\u76d8\u4e2d\uff0c\u63d0\u524d\u51c6\u5907\u597d\u7684*.pmfx\u6587\u4ef6,\u7136\u540e\u9009\u62e9\u76ee\u6807\u78c1\u76d8,\u8fd8\u539f\u65b9\u5f0f\u4e3a:\u8fd8\u539f\u6240\u6709\u6247\u533a,\u7136\u540e\u70b9\u51fb\u5f00\u59cb,\u7cfb\u7edf\u5c31\u4f1a\u5f00\u59cb\u8fd8\u539f. \u8fd8\u539f\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a: \u7136\u540e,\u79fb\u9664U\u76d8\uff0c\u91cd\u65b0\u542f\u52a8\uff0c\u5373\u53ef\u5b8c\u6210\u5b89\u88c5\uff0c\u5982\u4e0b\u56fe\u6240\u793a","title":"\u4ece\u786c\u76d8\u955c\u50cf\u6062\u590d"},{"location":"install-guide/BackupAndRestore/#_5","text":"\u9009\u62e9\"\u5907\u4efd\u78c1\u78c1\u76d8\u5230\u6620\\\u50cf\u6587\u4ef6\",\u5907\u4efd\u6a21\u5f0f\u4e3a:\u6240\u6709\u6247\u533a,\u9009\u62e9\u955c\u50cf\u6587\u4ef6,\u4e3a\u4e0b\u8f7d\u597d\u5e76\u63d0\u524d\u653e\u5165U\u76d8\u7684\u6269\u5c55\u540d\u4e3apmfx\u7684\u6620\u50cf\u6587\u4ef6,\u7136\u540e\u70b9\u51fb\"\u5f00\u59cb\" \u5927\u7ea6\u534a\u4e2a\u591a\u5c0f\u65f6,\u80fd\u5199\u5165\u5b8c\u6210.\u5982\u4e0b\u56fe\u6240\u793a,\u6620\u50cf\u6587\u4ef6\u5df2\u751f\u6210\u7ea6\u67095G\uff0c\u4fdd\u5b58\u5230\u5408\u9002\u7684\u5730\u65b9\uff0c\u53ef\u4ee5\u7528\u6765\u88c5\u673a\u6216\u8fd8\u539f\u7528\u3002","title":"\u5907\u4efd\u6574\u4e2a\u786c\u76d8"},{"location":"install-guide/LinuxInstall/","text":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf \u00b6 \u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf\u684c\u9762\u7248 \uff0c\u4fdd\u5b58\u4e3aubuntu24.04-desktip-amd.iso\u3002 \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528)\u3002 \u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u8bf7\u53c2\u8003\u5176\u5b83\u6559\u7a0b\u3002 \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u628a\u4e0b\u8f7d\u7684ubuntu24.04-desktip-amd.iso\u653e\u5230\u65b0\u5b89\u88c5\u7684Ubuntu\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u6298\u4efb\u610f\u76ee\u5f55,\u5982,\u653e\u5230 \u8fd9\u4e2a\u76ee\u5f55. \u7136\u540e,\u627e\u5230ubuntu\u81ea\u5e26\u7684\u542f\u52a8\u76d8\u5236\u4f5c\u5de5\u5177,\u5982\u56fe\u6240\u793a c\u8fd0\u884c\u542f\u52a8\u76d8\u521b\u5efa\u5668,\u5982\u4e0b \u5148\u62e9\u521a\u521a\u653e\u7f6e\u7684ubuntu24.04-desktip-amd.iso\u4f5c\u4e3a\u6e90\u955c\u50cf,\u7136\u540e\u628a\u8981\u5236\u4f5c\u542f\u52a8\u76d8\u7684U\u76d8\u63d2\u5165USB\u53e3\uff0c\u7136\u540e\uff0c\u9009 \u62e9\u4f5c\u4e3a\u8981\u4f7f\u7528\u7684\u78c1\u76d8\uff0c\u5f53\u7136\u53ef\u4ee5\u63d0\u524d\u63d2\u5165U\u76d8\u3002\u7136\u540e\u70b9\u51fb\u5236\u4f5c\u542f\u52a8\u76d8\u3002 \u5728\u5f39\u51fa\u7684\u786e\u8ba4\u6846\u4e2d\uff0c\u70b9\u51fb\u662f\uff0c \u7136\u540e\u8f93\u51fa\u5f53\u524d\u7684\u7528\u6237\u5bf9\u5e94\u7684\u5bc6\u7801\uff0c\u786e\u8ba4\uff0c \u7cfb\u7edf\u5c06\u4f1a\u81ea\u52a8\u5f00\u542f\u628aubuntu live \u542f\u52a8\u5f15\u5bfc\u76d8\u4fe1\u606f, \u5199\u5165U\u76d8\uff0c \u63d0\u793a\u5b8c\u6210\u65f6\uff0c\u70b9\u9000\u51fa\uff0c\u5f39\u51fa\u5982\u4e0b\u63d0\u793a \uff0c\u8bf4\u660e\u542f\u52a8U\u76d8\u5236\u4f5c\u6210\u529f\u4e86\u3002 \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u628aU\u76d8\u63d2\u5165\u5165X86\u5c0f\u5de5\u63a7\u673a\u5e76\u786e\u4fdd \u6b63\u786e\u914d\u7f6e\u4e86Bios \u542f\u52a8\u540e,\u6309F11\u5176\u5b83\u4e3b\u673a\u53ef\u80fd\u6709\u6240\u4e0d\u540c(\u53ef\u4ee5\u67e5\u4e3b\u677f\u8bf4\u660e\u4e66,\u6216\u54a8\u8be2\u4e3b\u677f\u5382\u5bb6),\u9009\u62e9\u4ee5U\u76d8\u5f15\u5bfc\u3002 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a,\u662f\u542f\u52a8\u65f6,\u6309F11\u4e0d\u653e,\u8fdb\u5165\u7cfb\u7edf\u5f15\u5bfc\u83dc\u5355,\u6839\u636eU\u76d8\u7684\u4e0d\u540c,U\u76d8\u5f15\u5bfc\u76d8\u4e2d\u7684\u7cfb\u7edf\u7c7b\u522b\u4e0d\u540c,\u663e\u793a\u7684\u5185\u5bb9\u7565\u6709\u4e0d\u540c,\u5982\u4e0b\u56fe\u6240\u793a \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5f53\u7cfb\u7edf\u542f\u52a8\u65f6,\u8bf7\u786e\u4fdd\u9009\u62e9\u201cTry or Install Ubuntu\". \u7cfb\u7edf\u542f\u4f1a\u542f\u52a8U\u76d8\u4e2d\u7684Ubuntu live\u7cfb\u7edf, \u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d, \u4f1a\u6709\u51e0\u4e2a\u9009\u9879\u8981\u9009\u62e9\u5982\u4e0b\u56fe\u6240\u793a, \u9009\u62e9\u8bed\u8a00 \u6b64\u5904\u76f4\u63a5\u4e0b\u4e00\u6b65 \u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7f51\u7edc\u8fde\u63a5\u53ef\u4ee5\u9009\u76f4\u63a5\u8fde\u63a5,\u4e5f\u53ef\u4ee5\u9009\u62e9wifi\u5f53\u7136,wifi\u5357\u8981\u914d\u7f6e\u70ed\u70b9. \u540c\u65f6,\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d,\u8981\u4fdd\u6301\u7f51\u7edc\u7545\u901a( *\u4e00\u5b9a\u8981\u80fd\u6b63\u5e38\u8bbf\u95eeGoogle\u53caHomeAssistant\u5b98\u7f51 ),\u80fd\u6b63\u5e38\u7684\u8bbf\u95ee\u5e76\u4e0b\u8f7dHomeAssistantOS\u7684\u955c\u50cf. \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u8fdb\u5165Ubuntu Live\u7cfb\u7edf\u540e,\u6253\u5f00\u6d4f\u89c8\u5668,\u8bbf\u95eeHomeAssistant\u7684 \u5b98\u65b9\u6587\u6863 , \u8fdb\u5165HomeAssistant\u5b98\u7f51,\u70b9\\\u51fb\u83dc\u5355Installstatiion,\u8fdb\u5165\u5b89\u88c5\u8bf4\u660e \u627e\u5230GenericX86-84,\u5e76\u6253\u5f00\u8fd9\u4e2a\u5728\u9875\u9762 \u627e\u5230\u9875\u9762\u4e2d\u7684\u955c\u50cf\u4e0b\u8f7d\u5730\u5740\u5982\u4e0b\u56fe \u4e0b\u8f7d HomeAssistOs-x86-64\u955c\u50cf \u5f00\u59cb\u4e0b\u8f7d\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u5b8c\u6210\u540e \u6587\u4ef6\u4fdd\u5b58\u5728/home/Downloads/hos_Generic-86-64-15.1.img.xz \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u5728Ubuntu Live\u7684\u7cfb\u7edf\u4e2d,\u627e\u5230\u663e\u793a\u5e94\u7528\u7a0b\u5e8f(\u4e00\u822c\u5728\u5de6\u4e0a\u89d2\u6216\u53f3\u4e0b\u89d2), \u641c\u7d22\u5e76\u627e\u5230Disks\u5e94\u7528\u7a0b\u5e8f,\u5e76\u6253\u5f00Disks\u5e94\u7528\u7a0b\u5e8f. \u5728\u5de6\u4fa7\u5217\u8868\u4e2d\u627e\u5230\u5e76\u9009\u62e9\u4f60\u7684\u76ee\u6807\u78c1\u76d8(\u4e00\u822c\u4e3a\u4f60\u8981\u5b89\u88c5HAOS\u7684\u786c\u76d8) \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u83dc\u5355\u56fe\u6807\uff08\u4e09\u4e2a\u70b9\uff09\uff0c\u9009\u62e9\u201c\u6062\u590d\u78c1\u76d8\u955c\u50cf\u201d \u6d4f\u89c8\u5e76\u9009\u62e9\u4f60\u4e0b\u8f7d\u7684HAOS\u955c\u50cf\u6587\u4ef6\u3002 \u70b9\u51fb,\u5e76\u6d4f\u89c8\u5230\u4e0b\u8f7d\u7684\u6587\u4ef6 hos_Generic-86-64-15.1.img.xz \u786e\u8ba4\u76ee\u6807\u78c1\u76d8\uff0c\u5e76\u5f00\u59cb\u955c\u50cf\u6062\u590d\u8fc7\u7a0b\u3002 \u786e\u8ba4\u6807\u786c\u76d8\u6b63\u786e\u540e,\u7ee7\u7eed \u63d0\u793a\u786e\u8ba4\u65f6\u70b9\u51fb Restore \u63d0\u793a\u6388\u6743\u65f6,\u70b9\u51fb Authenticate \u786e\u5b9a\u540e,\u5c31\u4f1a\u5f00\u59cb\u628a\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8 \u8bf7\u6ce8\u610f,\u8fd9\u4e2a\u8fc7\u7a0b\u4e00\u5c06\u4f1a,\u6e05\u9664\u786c\u76d8\u4e0a\u539f\u6709\u7684\u6570\u636e,\u8bf7\u786e\u4fdd\u5df2\u5907\u4efd\u91cd\u8981\u6570\u636e. \u5199\u5165\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u6b64\u65f6,\u5c31\u5df2\u7ecf\u6210\u529f\u7684\u628aHA\u955c\u50cf\u5199\u5165\u5230\u786c\u548c\u808b\u4e2d\u4e86 \u79fb\u9664U\u76d8 \u4e00\u65e6Home Assistant\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u5b8c\u6210\uff0c\u5173\u95ed\u7cfb\u7edf\u3002 \u5f53Ubuntu\u5173\u95ed\u540e\uff0c\u79fb\u9664USB\u95ea\u5b58\u9a71\u52a8\u5668\uff08Ubuntu\u4f1a\u901a\u77e5\u60a8\u53ef\u4ee5\u5b89\u5168\u79fb\u9664\uff09\u3002 \u91cd\u542f\u7cfb\u7edf. \u73b0\u5728\uff0c\u60a8\u7684Home Assistant\u670d\u52a1\u5668\u5df2\u7ecf\u8bbe\u7f6e\u5b8c\u6bd5\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528\u5b83\u3002 \u8fdb\u5165HA cli\u754c\u9762 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/LinuxInstall/#linux","text":"\u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf\u684c\u9762\u7248 \uff0c\u4fdd\u5b58\u4e3aubuntu24.04-desktip-amd.iso\u3002 \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528)\u3002 \u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u8bf7\u53c2\u8003\u5176\u5b83\u6559\u7a0b\u3002 \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u628a\u4e0b\u8f7d\u7684ubuntu24.04-desktip-amd.iso\u653e\u5230\u65b0\u5b89\u88c5\u7684Ubuntu\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u6298\u4efb\u610f\u76ee\u5f55,\u5982,\u653e\u5230 \u8fd9\u4e2a\u76ee\u5f55. \u7136\u540e,\u627e\u5230ubuntu\u81ea\u5e26\u7684\u542f\u52a8\u76d8\u5236\u4f5c\u5de5\u5177,\u5982\u56fe\u6240\u793a c\u8fd0\u884c\u542f\u52a8\u76d8\u521b\u5efa\u5668,\u5982\u4e0b \u5148\u62e9\u521a\u521a\u653e\u7f6e\u7684ubuntu24.04-desktip-amd.iso\u4f5c\u4e3a\u6e90\u955c\u50cf,\u7136\u540e\u628a\u8981\u5236\u4f5c\u542f\u52a8\u76d8\u7684U\u76d8\u63d2\u5165USB\u53e3\uff0c\u7136\u540e\uff0c\u9009 \u62e9\u4f5c\u4e3a\u8981\u4f7f\u7528\u7684\u78c1\u76d8\uff0c\u5f53\u7136\u53ef\u4ee5\u63d0\u524d\u63d2\u5165U\u76d8\u3002\u7136\u540e\u70b9\u51fb\u5236\u4f5c\u542f\u52a8\u76d8\u3002 \u5728\u5f39\u51fa\u7684\u786e\u8ba4\u6846\u4e2d\uff0c\u70b9\u51fb\u662f\uff0c \u7136\u540e\u8f93\u51fa\u5f53\u524d\u7684\u7528\u6237\u5bf9\u5e94\u7684\u5bc6\u7801\uff0c\u786e\u8ba4\uff0c \u7cfb\u7edf\u5c06\u4f1a\u81ea\u52a8\u5f00\u542f\u628aubuntu live \u542f\u52a8\u5f15\u5bfc\u76d8\u4fe1\u606f, \u5199\u5165U\u76d8\uff0c \u63d0\u793a\u5b8c\u6210\u65f6\uff0c\u70b9\u9000\u51fa\uff0c\u5f39\u51fa\u5982\u4e0b\u63d0\u793a \uff0c\u8bf4\u660e\u542f\u52a8U\u76d8\u5236\u4f5c\u6210\u529f\u4e86\u3002 \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u628aU\u76d8\u63d2\u5165\u5165X86\u5c0f\u5de5\u63a7\u673a\u5e76\u786e\u4fdd \u6b63\u786e\u914d\u7f6e\u4e86Bios \u542f\u52a8\u540e,\u6309F11\u5176\u5b83\u4e3b\u673a\u53ef\u80fd\u6709\u6240\u4e0d\u540c(\u53ef\u4ee5\u67e5\u4e3b\u677f\u8bf4\u660e\u4e66,\u6216\u54a8\u8be2\u4e3b\u677f\u5382\u5bb6),\u9009\u62e9\u4ee5U\u76d8\u5f15\u5bfc\u3002 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a,\u662f\u542f\u52a8\u65f6,\u6309F11\u4e0d\u653e,\u8fdb\u5165\u7cfb\u7edf\u5f15\u5bfc\u83dc\u5355,\u6839\u636eU\u76d8\u7684\u4e0d\u540c,U\u76d8\u5f15\u5bfc\u76d8\u4e2d\u7684\u7cfb\u7edf\u7c7b\u522b\u4e0d\u540c,\u663e\u793a\u7684\u5185\u5bb9\u7565\u6709\u4e0d\u540c,\u5982\u4e0b\u56fe\u6240\u793a \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5f53\u7cfb\u7edf\u542f\u52a8\u65f6,\u8bf7\u786e\u4fdd\u9009\u62e9\u201cTry or Install Ubuntu\". \u7cfb\u7edf\u542f\u4f1a\u542f\u52a8U\u76d8\u4e2d\u7684Ubuntu live\u7cfb\u7edf, \u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d, \u4f1a\u6709\u51e0\u4e2a\u9009\u9879\u8981\u9009\u62e9\u5982\u4e0b\u56fe\u6240\u793a, \u9009\u62e9\u8bed\u8a00 \u6b64\u5904\u76f4\u63a5\u4e0b\u4e00\u6b65 \u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7f51\u7edc\u8fde\u63a5\u53ef\u4ee5\u9009\u76f4\u63a5\u8fde\u63a5,\u4e5f\u53ef\u4ee5\u9009\u62e9wifi\u5f53\u7136,wifi\u5357\u8981\u914d\u7f6e\u70ed\u70b9. \u540c\u65f6,\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d,\u8981\u4fdd\u6301\u7f51\u7edc\u7545\u901a( *\u4e00\u5b9a\u8981\u80fd\u6b63\u5e38\u8bbf\u95eeGoogle\u53caHomeAssistant\u5b98\u7f51 ),\u80fd\u6b63\u5e38\u7684\u8bbf\u95ee\u5e76\u4e0b\u8f7dHomeAssistantOS\u7684\u955c\u50cf. \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u8fdb\u5165Ubuntu Live\u7cfb\u7edf\u540e,\u6253\u5f00\u6d4f\u89c8\u5668,\u8bbf\u95eeHomeAssistant\u7684 \u5b98\u65b9\u6587\u6863 , \u8fdb\u5165HomeAssistant\u5b98\u7f51,\u70b9\\\u51fb\u83dc\u5355Installstatiion,\u8fdb\u5165\u5b89\u88c5\u8bf4\u660e \u627e\u5230GenericX86-84,\u5e76\u6253\u5f00\u8fd9\u4e2a\u5728\u9875\u9762 \u627e\u5230\u9875\u9762\u4e2d\u7684\u955c\u50cf\u4e0b\u8f7d\u5730\u5740\u5982\u4e0b\u56fe \u4e0b\u8f7d HomeAssistOs-x86-64\u955c\u50cf \u5f00\u59cb\u4e0b\u8f7d\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u5b8c\u6210\u540e \u6587\u4ef6\u4fdd\u5b58\u5728/home/Downloads/hos_Generic-86-64-15.1.img.xz \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u5728Ubuntu Live\u7684\u7cfb\u7edf\u4e2d,\u627e\u5230\u663e\u793a\u5e94\u7528\u7a0b\u5e8f(\u4e00\u822c\u5728\u5de6\u4e0a\u89d2\u6216\u53f3\u4e0b\u89d2), \u641c\u7d22\u5e76\u627e\u5230Disks\u5e94\u7528\u7a0b\u5e8f,\u5e76\u6253\u5f00Disks\u5e94\u7528\u7a0b\u5e8f. \u5728\u5de6\u4fa7\u5217\u8868\u4e2d\u627e\u5230\u5e76\u9009\u62e9\u4f60\u7684\u76ee\u6807\u78c1\u76d8(\u4e00\u822c\u4e3a\u4f60\u8981\u5b89\u88c5HAOS\u7684\u786c\u76d8) \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u83dc\u5355\u56fe\u6807\uff08\u4e09\u4e2a\u70b9\uff09\uff0c\u9009\u62e9\u201c\u6062\u590d\u78c1\u76d8\u955c\u50cf\u201d \u6d4f\u89c8\u5e76\u9009\u62e9\u4f60\u4e0b\u8f7d\u7684HAOS\u955c\u50cf\u6587\u4ef6\u3002 \u70b9\u51fb,\u5e76\u6d4f\u89c8\u5230\u4e0b\u8f7d\u7684\u6587\u4ef6 hos_Generic-86-64-15.1.img.xz \u786e\u8ba4\u76ee\u6807\u78c1\u76d8\uff0c\u5e76\u5f00\u59cb\u955c\u50cf\u6062\u590d\u8fc7\u7a0b\u3002 \u786e\u8ba4\u6807\u786c\u76d8\u6b63\u786e\u540e,\u7ee7\u7eed \u63d0\u793a\u786e\u8ba4\u65f6\u70b9\u51fb Restore \u63d0\u793a\u6388\u6743\u65f6,\u70b9\u51fb Authenticate \u786e\u5b9a\u540e,\u5c31\u4f1a\u5f00\u59cb\u628a\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8 \u8bf7\u6ce8\u610f,\u8fd9\u4e2a\u8fc7\u7a0b\u4e00\u5c06\u4f1a,\u6e05\u9664\u786c\u76d8\u4e0a\u539f\u6709\u7684\u6570\u636e,\u8bf7\u786e\u4fdd\u5df2\u5907\u4efd\u91cd\u8981\u6570\u636e. \u5199\u5165\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u6b64\u65f6,\u5c31\u5df2\u7ecf\u6210\u529f\u7684\u628aHA\u955c\u50cf\u5199\u5165\u5230\u786c\u548c\u808b\u4e2d\u4e86 \u79fb\u9664U\u76d8 \u4e00\u65e6Home Assistant\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u5b8c\u6210\uff0c\u5173\u95ed\u7cfb\u7edf\u3002 \u5f53Ubuntu\u5173\u95ed\u540e\uff0c\u79fb\u9664USB\u95ea\u5b58\u9a71\u52a8\u5668\uff08Ubuntu\u4f1a\u901a\u77e5\u60a8\u53ef\u4ee5\u5b89\u5168\u79fb\u9664\uff09\u3002 \u91cd\u542f\u7cfb\u7edf. \u73b0\u5728\uff0c\u60a8\u7684Home Assistant\u670d\u52a1\u5668\u5df2\u7ecf\u8bbe\u7f6e\u5b8c\u6bd5\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528\u5b83\u3002 \u8fdb\u5165HA cli\u754c\u9762 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/WinPeInstall/","text":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf \u00b6 windows Pe\u4e0b\u5199\u5165\u786c\u76d8\u955c\u50cf\u7684\u4e3b\u8981\u601d\u8def\u662f\u4f7f\u7528Roadkilnet\u5f00\u53d1\u7684Rodakill's Disk Image\u5de5\u5177\u628aHA\u7684\u955c\u50cf\u5199\u5165\u786c\u76d8. \u4e0b\u8f7dDisk Image \u00b6 DiskImage\u7684\u5b98\u65b9\u4e0b\u8f7d\u5730\u5740\u4e3a ) https://roadkil.net/program.php?ProgramID=12&Action=NewOSID&DownloadVersion=12&Installer=NO \u8fdb\u5165\u7f51\u7ad9\u7684\u4e0b\u8f7d\u9875\u9762,\u5982\u4e0b,\u9009\u62e9windows8 10 or 11\u548cStand Alone Version\u7248\u672c,\u7136\u540e\u70b9\u51fb\u4e0b\u8f7d \u4e0b\u8f7d\u5b8c\u6210\u540e,\u5f97\u5230\u5982\u4e0bDiskImage_1_6_WinAll .exe\u6587\u4ef6 ,\u4fdd\u5b58\u597d,\u540e\u9762\u9700\u8981\u4fdd\u5b58\u4e48U\u76d8\u3002 \u5236\u4f5cWindowsPE\u5f15\u5bfcU\u76d8 \u00b6 windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u4e0b\u8f7d\u5b89\u88c5\u7a0b\u5e8f\u5982\u4e0b: \u8fd0\u884cWePev2.3.exe \u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\u5b89\u88c5\u5230U\u76d8\u56fe\u6807 \u9009\u62e9\u6b63\u786e\u7684\u4ea7\uff0c\u5e76\u914d\u597d\u5377\u6807\uff0c\u70b9\u51fb\u7acb\u5373\u5b89\u88c5\u5230U\u76d8\uff0c \u63d0\u793a\u5f00\u59cb\u5236\u4f5cU\u76d8 \u7a0d\u7b49\u7247\u523b \u7cfb\u7edf\u63d0\u793a\u5236\u4f5c\u5b8c\u6210 \u4e0b\u8f7d\u5e76\u89e3\u538bHAOS\u955c\u50cf\u5230U\u76d8 \u00b6 \u70b9\u51fb\u8bbf\u95ee Ha-os-GenerricX86-64\u9875\u9762 ,\u627e\u5230\u4e0b\u955c\u50cf\u7684\u4e0b\u8f7d\u94fe\u63a5 \u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u5982\u4e0b\u94fe\u63a5 \u4e0b\u8f7d,\u4f46\u5c3d\u91cf\u8fd8\u662f\u6309\u4e0a\u8ff0\u65b9\u6cd5\u4e0b\u8f7d,\u4fdd\u8bc1\u6bcf\u6b21\u4e0b\u8f7d\u7684\u90fd\u662f\u5b98\u7f51\u6700\u65b0\u7684\u7248\u672c. \u4e0b\u8f7d\u5b8c\u6210\u540e\u5982\u4e0b \u89e3\u538b\u8fd9\u4e2a\u6587\u4ef6 \u5f97\u5230haos_generic-x86-64-15.1.img,\u628a\u8fd9\u4e2a\u6587\u4ef6\u590d\u5236\u5230U\u76d8\u4e2d\u4efb\u610f\u76ee\u5f55 \u6bd4\u5982\uff0c\u6211\u653e\u5230\u4e86\u5982\u4e0b\u76ee\u5f55 \u628a\u4e4b\u524d\u4e0b\u8f7d\u597d\u7684Disk Image\u653e\u5165U\u76d8 \u00b6 \u81f3\u6b64WINpe\u5f15\u5bfcU\u76d8\u5c31\u5236\u4f5c\u597d\u4e86\u3002 \u7528\u6b64U\u76d8\u5f15\u5bfc\u5c0f\u5de5\u63a7\u673a\uff0c\u6ce8\u610f\u610f\u8981\u6b63\u786e\u7684\u914d\u7f6eBIOS\uff0c\u53ca\u8981\u7528\u6b63\u786e\u7684\u6539\u53d8\u542f\u52a8\u987a\u5e8f\u7684\u65b9\u6cd5\u5982F11\u5e38\u6309, \u5f15\u5bfc\u6210\u529f\u767d\u5e26 ,\u76f4\u5165PE\u542f\u52a8\u754c\u9762\uff0c\u9009 \u7b2c\u4e00\u9879\u9ed8\u8ba4\uff0c\u7ee7\u7eed \u7a0d\u5019\u4f1a\u8fdb\u5165PE\u7cfb\u7edf \u627e\u5230\u5e76\u542f\u52a8diskImage\u5199\u76d8\u5de5\u5177 \u70b9YES\u7ee7\u7eed \u9009 \u62e9\u4e0b\u8f7d\u597d\u7684HAOS\u7684\u5b89\u88c5\u955c\u50cfimg\u6587\u4ef6 \u63d0\u793a\u6570\u636e\u6709\u4e22\u5931\u98ce\u9669\u65f6,\u70b9\u662f \u6ce8\u610f\u5728\u5199\u5165\u4e4b\u524d,\u4e00\u5b9a\u8981\u786e\u8ba4\u662f\u786c\u76d8\u800c\u975eU\u76d8\uff0c\u4e00\u822c\u4e3aphysical disk 0 \u5199\u5165\u5b8c\u6210\u540e\u4f1a\u63d0\u793a\u5199\u5165\u6210\u529f \u91cd\u65b0\u542f\u52a8\u8fdb\u5165HA cli\u754c\u9762 \u00b6 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf"},{"location":"install-guide/WinPeInstall/#windows-pe-ha","text":"windows Pe\u4e0b\u5199\u5165\u786c\u76d8\u955c\u50cf\u7684\u4e3b\u8981\u601d\u8def\u662f\u4f7f\u7528Roadkilnet\u5f00\u53d1\u7684Rodakill's Disk Image\u5de5\u5177\u628aHA\u7684\u955c\u50cf\u5199\u5165\u786c\u76d8.","title":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf"},{"location":"install-guide/WinPeInstall/#disk-image","text":"DiskImage\u7684\u5b98\u65b9\u4e0b\u8f7d\u5730\u5740\u4e3a ) https://roadkil.net/program.php?ProgramID=12&Action=NewOSID&DownloadVersion=12&Installer=NO \u8fdb\u5165\u7f51\u7ad9\u7684\u4e0b\u8f7d\u9875\u9762,\u5982\u4e0b,\u9009\u62e9windows8 10 or 11\u548cStand Alone Version\u7248\u672c,\u7136\u540e\u70b9\u51fb\u4e0b\u8f7d \u4e0b\u8f7d\u5b8c\u6210\u540e,\u5f97\u5230\u5982\u4e0bDiskImage_1_6_WinAll .exe\u6587\u4ef6 ,\u4fdd\u5b58\u597d,\u540e\u9762\u9700\u8981\u4fdd\u5b58\u4e48U\u76d8\u3002","title":"\u4e0b\u8f7dDisk Image"},{"location":"install-guide/WinPeInstall/#windowspeu","text":"windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u4e0b\u8f7d\u5b89\u88c5\u7a0b\u5e8f\u5982\u4e0b: \u8fd0\u884cWePev2.3.exe \u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\u5b89\u88c5\u5230U\u76d8\u56fe\u6807 \u9009\u62e9\u6b63\u786e\u7684\u4ea7\uff0c\u5e76\u914d\u597d\u5377\u6807\uff0c\u70b9\u51fb\u7acb\u5373\u5b89\u88c5\u5230U\u76d8\uff0c \u63d0\u793a\u5f00\u59cb\u5236\u4f5cU\u76d8 \u7a0d\u7b49\u7247\u523b \u7cfb\u7edf\u63d0\u793a\u5236\u4f5c\u5b8c\u6210","title":"\u5236\u4f5cWindowsPE\u5f15\u5bfcU\u76d8"},{"location":"install-guide/WinPeInstall/#haosu","text":"\u70b9\u51fb\u8bbf\u95ee Ha-os-GenerricX86-64\u9875\u9762 ,\u627e\u5230\u4e0b\u955c\u50cf\u7684\u4e0b\u8f7d\u94fe\u63a5 \u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u5982\u4e0b\u94fe\u63a5 \u4e0b\u8f7d,\u4f46\u5c3d\u91cf\u8fd8\u662f\u6309\u4e0a\u8ff0\u65b9\u6cd5\u4e0b\u8f7d,\u4fdd\u8bc1\u6bcf\u6b21\u4e0b\u8f7d\u7684\u90fd\u662f\u5b98\u7f51\u6700\u65b0\u7684\u7248\u672c. \u4e0b\u8f7d\u5b8c\u6210\u540e\u5982\u4e0b \u89e3\u538b\u8fd9\u4e2a\u6587\u4ef6 \u5f97\u5230haos_generic-x86-64-15.1.img,\u628a\u8fd9\u4e2a\u6587\u4ef6\u590d\u5236\u5230U\u76d8\u4e2d\u4efb\u610f\u76ee\u5f55 \u6bd4\u5982\uff0c\u6211\u653e\u5230\u4e86\u5982\u4e0b\u76ee\u5f55","title":"\u4e0b\u8f7d\u5e76\u89e3\u538bHAOS\u955c\u50cf\u5230U\u76d8"},{"location":"install-guide/WinPeInstall/#disk-imageu","text":"\u81f3\u6b64WINpe\u5f15\u5bfcU\u76d8\u5c31\u5236\u4f5c\u597d\u4e86\u3002 \u7528\u6b64U\u76d8\u5f15\u5bfc\u5c0f\u5de5\u63a7\u673a\uff0c\u6ce8\u610f\u610f\u8981\u6b63\u786e\u7684\u914d\u7f6eBIOS\uff0c\u53ca\u8981\u7528\u6b63\u786e\u7684\u6539\u53d8\u542f\u52a8\u987a\u5e8f\u7684\u65b9\u6cd5\u5982F11\u5e38\u6309, \u5f15\u5bfc\u6210\u529f\u767d\u5e26 ,\u76f4\u5165PE\u542f\u52a8\u754c\u9762\uff0c\u9009 \u7b2c\u4e00\u9879\u9ed8\u8ba4\uff0c\u7ee7\u7eed \u7a0d\u5019\u4f1a\u8fdb\u5165PE\u7cfb\u7edf \u627e\u5230\u5e76\u542f\u52a8diskImage\u5199\u76d8\u5de5\u5177 \u70b9YES\u7ee7\u7eed \u9009 \u62e9\u4e0b\u8f7d\u597d\u7684HAOS\u7684\u5b89\u88c5\u955c\u50cfimg\u6587\u4ef6 \u63d0\u793a\u6570\u636e\u6709\u4e22\u5931\u98ce\u9669\u65f6,\u70b9\u662f \u6ce8\u610f\u5728\u5199\u5165\u4e4b\u524d,\u4e00\u5b9a\u8981\u786e\u8ba4\u662f\u786c\u76d8\u800c\u975eU\u76d8\uff0c\u4e00\u822c\u4e3aphysical disk 0 \u5199\u5165\u5b8c\u6210\u540e\u4f1a\u63d0\u793a\u5199\u5165\u6210\u529f","title":"\u628a\u4e4b\u524d\u4e0b\u8f7d\u597d\u7684Disk Image\u653e\u5165U\u76d8"},{"location":"install-guide/WinPeInstall/#ha-cli","text":"\u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u91cd\u65b0\u542f\u52a8\u8fdb\u5165HA cli\u754c\u9762"},{"location":"install-guide/configX86Bios/","text":"\u901a\u7528\u8bbe\u7f6e \u00b6 \u8981\u542f\u52a8Home Assistant\u64cd\u4f5c\u7cfb\u7edf\uff0cBIOS\u9700\u8981\u542f\u7528UEFI\u542f\u52a8\u6a21\u5f0f\u5e76\u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4ee5\u4e0b\u622a\u56fe\u6765\u81ea\u7b2c\u4e03\u4ee3\u82f1\u7279\u5c14NUC\u7cfb\u7edf\u3002\u60a8\u7684\u7cfb\u7edf\u4e0a\u7684BIOS\u83dc\u5355\u53ef\u80fd\u770b\u8d77\u6765\u4e0d\u540c\uff0c\u4f46\u9009\u9879\u5e94\u8be5\u4ecd\u7136\u5b58\u5728\u5e76\u5177\u6709\u7c7b\u4f3c\u7684\u540d\u79f0\u3002 \u8981\u8fdb\u5165BIOS\uff0c\u8bf7\u542f\u52a8\u60a8\u7684x86-64\u786c\u4ef6\u5e76\u53cd\u590d\u6309\u4e0bF2\u952e\uff08\u5728\u67d0\u4e9b\u7cfb\u7edf\u4e0a\uff0c\u8fd9\u53ef\u80fd\u662fDel\u3001F1\u6216F10\u952e\uff09\u3002 \u786e\u4fdd\u542f\u7528\u4e86UEFI\u542f\u52a8\u6a21\u5f0f\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4fdd\u5b58\u66f4\u6539\u5e76\u9000\u51fa\u3002 BIOS\u914d\u7f6e\u73b0\u5df2\u5b8c\u6210\u3002 \u516c\u53f8\u5c0f\u5de5\u63a7\u673a(1900)\u914d\u7f6e \u00b6 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a\u8fdb\u5165Bios\u7684\u65b9\u5f0f,\u662f\u5f00\u673a\u65f6,\u6309DEL\u952e,\u8fdb\u5165\u5982\u4e0b\u754c\u9762 \u8fdb\u5165Bios\u540e,\u8981\u8c03OS Selection,\u9ed8\u8ba4\u4e3awindows7\u9700\u8981\u8c03\u6574\u4e3aLinux\u5982\u4e0b\u56fe \u7136\u540e\u4fdd\u5b58,\u9000\u51fa \u63d0\u793a\u4fdd\u5b58\u65f6,\u9009\u62e9YES","title":"configX86Bios"},{"location":"install-guide/configX86Bios/#_1","text":"\u8981\u542f\u52a8Home Assistant\u64cd\u4f5c\u7cfb\u7edf\uff0cBIOS\u9700\u8981\u542f\u7528UEFI\u542f\u52a8\u6a21\u5f0f\u5e76\u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4ee5\u4e0b\u622a\u56fe\u6765\u81ea\u7b2c\u4e03\u4ee3\u82f1\u7279\u5c14NUC\u7cfb\u7edf\u3002\u60a8\u7684\u7cfb\u7edf\u4e0a\u7684BIOS\u83dc\u5355\u53ef\u80fd\u770b\u8d77\u6765\u4e0d\u540c\uff0c\u4f46\u9009\u9879\u5e94\u8be5\u4ecd\u7136\u5b58\u5728\u5e76\u5177\u6709\u7c7b\u4f3c\u7684\u540d\u79f0\u3002 \u8981\u8fdb\u5165BIOS\uff0c\u8bf7\u542f\u52a8\u60a8\u7684x86-64\u786c\u4ef6\u5e76\u53cd\u590d\u6309\u4e0bF2\u952e\uff08\u5728\u67d0\u4e9b\u7cfb\u7edf\u4e0a\uff0c\u8fd9\u53ef\u80fd\u662fDel\u3001F1\u6216F10\u952e\uff09\u3002 \u786e\u4fdd\u542f\u7528\u4e86UEFI\u542f\u52a8\u6a21\u5f0f\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4fdd\u5b58\u66f4\u6539\u5e76\u9000\u51fa\u3002 BIOS\u914d\u7f6e\u73b0\u5df2\u5b8c\u6210\u3002","title":"\u901a\u7528\u8bbe\u7f6e"},{"location":"install-guide/configX86Bios/#1900","text":"\u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a\u8fdb\u5165Bios\u7684\u65b9\u5f0f,\u662f\u5f00\u673a\u65f6,\u6309DEL\u952e,\u8fdb\u5165\u5982\u4e0b\u754c\u9762 \u8fdb\u5165Bios\u540e,\u8981\u8c03OS Selection,\u9ed8\u8ba4\u4e3awindows7\u9700\u8981\u8c03\u6574\u4e3aLinux\u5982\u4e0b\u56fe \u7136\u540e\u4fdd\u5b58,\u9000\u51fa \u63d0\u793a\u4fdd\u5b58\u65f6,\u9009\u62e9YES","title":"\u516c\u53f8\u5c0f\u5de5\u63a7\u673a(1900)\u914d\u7f6e"},{"location":"install-guide/installHa/","text":"\u5b89\u88c5HomeAssistant \u00b6 HomeAssistant\u7684\u5b89\u88c5\u6709\u591a\u79cd\u65b9\u5f0f\u4e0e\u65b9\u6cd5,\u6700\u5e38\u7528\u6298\u6709\u786c\u5907\u76f4\u63a5\u5b89\u88c5,docker\u5b89\u88c5\u865a\u62df\u673a\u5b89\u88c5\u7b49. \u4e0b\u9762\u6211\u4eec\u5c31\u4ee5\u786c\u76d8\u5b89\u88c5HAOS\u4e3a\u4f8b\u4ecb\u7ecd\u57fa\u4e8ex86\u786c\u4ef6\u7684\u57fa\u7840\u4e0a\u5b89\u88c5HAOS,\u57fa\u5b83\u7684\u5b89\u88c5\u65b9\u5f0f,\u540e\u7eed\u4f1a\u4ecb\u7ecd. BIOS\u914d\u7f6e \u00b6 \u91cd\u8981\u63d0\u9192 \u5728\u5b89\u88c5HAOS\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684BIOS\u8bbe\u7f6e\u6b63\u786e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5efa\u8bae\u7684BIOS\u914d\u7f6e\uff1a \u542f\u7528\u865a\u62df\u5316\u6280\u672f\uff08VT-x\u6216AMD-V\uff09\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\uff08Secure Boot\uff09\u3002 \u8bbe\u7f6e\u542f\u52a8\u987a\u5e8f\uff0c\u4ee5\u4fbf\u4eceUSB\u6216\u5149\u76d8\u542f\u52a8\u3002 \u8bf7\u5728\u5b89\u88c5\u4e4b\u524d\u52a1\u5fc5\u68c0\u67e5\u8fd9\u4e9b BIOS\u8bbe\u7f6e \u3002 \u516c\u53f8\u7684\u5c0f\u4e3b\u673a\u8fd9\u4e00 BIOS\u8bbe\u7f6e\u89c6\u9891\u6f14\u793a HAOS\u5b89\u88c5 \u00b6 \u5b89\u88c5\u5728X86PC\u786c\u76d8\u4e0a \u00b6 haos\u8981\u5b89\u88c5\u5728\u786c\u76d8\u4e0a,\u603b\u4f53\u601d\u8def\u662f,\u5148\u5230HA\u7684\u5b98\u7f51\u4e0b\u8f7dhaos\u7684\u5b98\u65b9\u955c\u50cf\u6587\u4ef6 ,\u4e00\u822c\u4e3a.gz\u6216.gz.xz\u7b49\u683c\u5f0f,\u7136\u540e\u518d\u7528\u5199\u76d8\u5de5\u5177,\u76f4\u63a5\u628a\u8fd9\u4e2a\u955c\u50cf\u5199\u5165\u786c\u76d8. \u5c06\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8\u4e0a\u7ea6\u6709\u4e24\u79cd\u65b9\u6cd5: \u5728linux\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u5199\u5165\u955c\u50cf \u5728windows\u5e73\u53f0\u4e0a\u5199\u5165\u955c\u50cf \u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf \u00b6 \u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d\u5b89\u88c5ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528) \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u79fb\u9664U\u76d8 \u91cd\u542f\u7cfb\u7edf \u8fdb\u5165HA cli\u754c\u9762 \u6b64\u79cd\u65b9\u6cd5\u7684\u597d\u5904\u662f,\u4e0d\u7528\u62c6\u9664\u786c\u76d8,\u76f4\u63a5\u5728\u5c0f\u5de5\u63a7\u673a\u4e0a\u5c31\u80fd\u5b9e\u73b0\u64cd\u4f5c. \u57fa\u4e8e windows\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf. \u00b6 \u5b98\u65b9\u5728\u4ecb\u7ecd\u8fd9\u79cd\u65b9\u6cd5\u662f\u8ba9\u7528\u6237\u628a\u5c0f\u5de5\u63a7\u673a\u7684\u786c\u76d8\u62c6\u4e0b,\u88c5\u5165\u7528\u6237\u81ea\u5df2\u7684\u7535\u8111\u4e2d,\u5e76\u7528balenaEtcher\u5199\u76d8\u5de5\u5177\u5c06\u955c\u50cf\u5199\u5165\u5c0f\u5de5\u63a7\u7684\u673a\u7684\u786c\u76d8\u540e,\u518d\u628a\u5c0f\u5de5\u63a7\u673a\u673a\u7684\u786c\u76d8\u88c5\u5165\u5c0f\u5de5\u63a7\u673a.\u8fd9\u65b9\u6cd5\u65b9\u4fbf\u5feb\u6377,\u4f46\u662f\u9700\u8981\u62c6\u673a,\u6709\u9700\u8981\u7684\u7528\u6237\u53ef\u4ee5\u5230\u5b98\u65b9\u4ecb\u7ecd\u9875\u9762 Geneic x86-64 \u53bb\u770b\u5177\u4f53\u64cd\u4f5c\u65b9\u6cd5. \u6211\u4eec\u5e38\u7528\u7684\u65b9\u6cd5\u5982\u4e0b: \u5236\u4f5c\u4e00\u4e2a\u5176\u4e8ewindows PE\u7cfb\u7edf\u7684\u5f15\u5bfcU\u76d8. \u4e0b\u8f7d\u5b98\u65b9\u955c\u50cf\u5230U\u76d8\u4e2d\u3002 \u89e3\u538b\u955c\u50cf\u4e3a.img\u6587\u4ef6 \u7528PE\u5e26\u7684\u5199\u76d8\u5de5\u5177\uff0c\u5c06HA\u955c\u50cf\u5199\u5165\u786c\u76d8\u3002 \u79fb\u9664U\u76d8\u3002 \u91cd\u542f\u8fdb\u5165HA ClI. \u76f4\u63a5 \u8fd8\u539f\u6574\u4e2a\u78c1\u76d8 \u00b6 \u56e0\u3001\u4e3aHA\u5b89\u88c5\u914d\u7f6e\uff0c\u8f83\u4e3a\u590d\u6742\uff0c\u6240\u4ee5\uff0c\u6211\u4eec\u4f7f\u7528\u78c1\u76d8\u5168\u76d8\u7684\u6620\u50cf\u6765\u8fd8\u539f\u78c1\u76d8\uff0c\u6765\u8fbe\u5230\u5feb\u901f\u5b89\u88c5\u76ee\u7684\uff0c\u6b64\u65b9\u6cd5\uff0c\u80fd\u5728\u534a\u5c0f\u65f6\u5de6\u53f3\u7684\u65f6\u95f4\uff0c\u76f4\u63a5\u5b89\u88c5\u597dHA\uff0c\u540c\u65f6\uff0c\u6240\u4ee5\u7528\u7684\u5230\u8bbe\u7f6e\u4e0e\u63d2\u4ef6\u7a0b\u5e8f\u4e0e\u540c\u6b65\u88c5\u597d\uff0c\u5927\u5927\u8282\u7701\u4e86\u65f6\u95f4\u3002 \u5b89\u88c5\u5728VMware ESXi\u4e0a \u00b6 vmware ESXi\u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u7684\u865a\u62df\u5316\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728\u5176\u4e0a\u5b89\u88c5Home Assistant. \u8be6\u60c5\u89c1: vmwareExsi\u5b89\u88c5Ha.md","title":"\u5b89\u88c5"},{"location":"install-guide/installHa/#homeassistant","text":"HomeAssistant\u7684\u5b89\u88c5\u6709\u591a\u79cd\u65b9\u5f0f\u4e0e\u65b9\u6cd5,\u6700\u5e38\u7528\u6298\u6709\u786c\u5907\u76f4\u63a5\u5b89\u88c5,docker\u5b89\u88c5\u865a\u62df\u673a\u5b89\u88c5\u7b49. \u4e0b\u9762\u6211\u4eec\u5c31\u4ee5\u786c\u76d8\u5b89\u88c5HAOS\u4e3a\u4f8b\u4ecb\u7ecd\u57fa\u4e8ex86\u786c\u4ef6\u7684\u57fa\u7840\u4e0a\u5b89\u88c5HAOS,\u57fa\u5b83\u7684\u5b89\u88c5\u65b9\u5f0f,\u540e\u7eed\u4f1a\u4ecb\u7ecd.","title":"\u5b89\u88c5HomeAssistant"},{"location":"install-guide/installHa/#bios","text":"\u91cd\u8981\u63d0\u9192 \u5728\u5b89\u88c5HAOS\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684BIOS\u8bbe\u7f6e\u6b63\u786e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5efa\u8bae\u7684BIOS\u914d\u7f6e\uff1a \u542f\u7528\u865a\u62df\u5316\u6280\u672f\uff08VT-x\u6216AMD-V\uff09\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\uff08Secure Boot\uff09\u3002 \u8bbe\u7f6e\u542f\u52a8\u987a\u5e8f\uff0c\u4ee5\u4fbf\u4eceUSB\u6216\u5149\u76d8\u542f\u52a8\u3002 \u8bf7\u5728\u5b89\u88c5\u4e4b\u524d\u52a1\u5fc5\u68c0\u67e5\u8fd9\u4e9b BIOS\u8bbe\u7f6e \u3002 \u516c\u53f8\u7684\u5c0f\u4e3b\u673a\u8fd9\u4e00 BIOS\u8bbe\u7f6e\u89c6\u9891\u6f14\u793a","title":"BIOS\u914d\u7f6e"},{"location":"install-guide/installHa/#haos","text":"","title":"HAOS\u5b89\u88c5"},{"location":"install-guide/installHa/#x86pc","text":"haos\u8981\u5b89\u88c5\u5728\u786c\u76d8\u4e0a,\u603b\u4f53\u601d\u8def\u662f,\u5148\u5230HA\u7684\u5b98\u7f51\u4e0b\u8f7dhaos\u7684\u5b98\u65b9\u955c\u50cf\u6587\u4ef6 ,\u4e00\u822c\u4e3a.gz\u6216.gz.xz\u7b49\u683c\u5f0f,\u7136\u540e\u518d\u7528\u5199\u76d8\u5de5\u5177,\u76f4\u63a5\u628a\u8fd9\u4e2a\u955c\u50cf\u5199\u5165\u786c\u76d8. \u5c06\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8\u4e0a\u7ea6\u6709\u4e24\u79cd\u65b9\u6cd5: \u5728linux\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u5199\u5165\u955c\u50cf \u5728windows\u5e73\u53f0\u4e0a\u5199\u5165\u955c\u50cf","title":"\u5b89\u88c5\u5728X86PC\u786c\u76d8\u4e0a"},{"location":"install-guide/installHa/#linux","text":"\u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d\u5b89\u88c5ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528) \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u79fb\u9664U\u76d8 \u91cd\u542f\u7cfb\u7edf \u8fdb\u5165HA cli\u754c\u9762 \u6b64\u79cd\u65b9\u6cd5\u7684\u597d\u5904\u662f,\u4e0d\u7528\u62c6\u9664\u786c\u76d8,\u76f4\u63a5\u5728\u5c0f\u5de5\u63a7\u673a\u4e0a\u5c31\u80fd\u5b9e\u73b0\u64cd\u4f5c.","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/installHa/#windows","text":"\u5b98\u65b9\u5728\u4ecb\u7ecd\u8fd9\u79cd\u65b9\u6cd5\u662f\u8ba9\u7528\u6237\u628a\u5c0f\u5de5\u63a7\u673a\u7684\u786c\u76d8\u62c6\u4e0b,\u88c5\u5165\u7528\u6237\u81ea\u5df2\u7684\u7535\u8111\u4e2d,\u5e76\u7528balenaEtcher\u5199\u76d8\u5de5\u5177\u5c06\u955c\u50cf\u5199\u5165\u5c0f\u5de5\u63a7\u7684\u673a\u7684\u786c\u76d8\u540e,\u518d\u628a\u5c0f\u5de5\u63a7\u673a\u673a\u7684\u786c\u76d8\u88c5\u5165\u5c0f\u5de5\u63a7\u673a.\u8fd9\u65b9\u6cd5\u65b9\u4fbf\u5feb\u6377,\u4f46\u662f\u9700\u8981\u62c6\u673a,\u6709\u9700\u8981\u7684\u7528\u6237\u53ef\u4ee5\u5230\u5b98\u65b9\u4ecb\u7ecd\u9875\u9762 Geneic x86-64 \u53bb\u770b\u5177\u4f53\u64cd\u4f5c\u65b9\u6cd5. \u6211\u4eec\u5e38\u7528\u7684\u65b9\u6cd5\u5982\u4e0b: \u5236\u4f5c\u4e00\u4e2a\u5176\u4e8ewindows PE\u7cfb\u7edf\u7684\u5f15\u5bfcU\u76d8. \u4e0b\u8f7d\u5b98\u65b9\u955c\u50cf\u5230U\u76d8\u4e2d\u3002 \u89e3\u538b\u955c\u50cf\u4e3a.img\u6587\u4ef6 \u7528PE\u5e26\u7684\u5199\u76d8\u5de5\u5177\uff0c\u5c06HA\u955c\u50cf\u5199\u5165\u786c\u76d8\u3002 \u79fb\u9664U\u76d8\u3002 \u91cd\u542f\u8fdb\u5165HA ClI.","title":"\u57fa\u4e8ewindows\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf."},{"location":"install-guide/installHa/#_1","text":"\u56e0\u3001\u4e3aHA\u5b89\u88c5\u914d\u7f6e\uff0c\u8f83\u4e3a\u590d\u6742\uff0c\u6240\u4ee5\uff0c\u6211\u4eec\u4f7f\u7528\u78c1\u76d8\u5168\u76d8\u7684\u6620\u50cf\u6765\u8fd8\u539f\u78c1\u76d8\uff0c\u6765\u8fbe\u5230\u5feb\u901f\u5b89\u88c5\u76ee\u7684\uff0c\u6b64\u65b9\u6cd5\uff0c\u80fd\u5728\u534a\u5c0f\u65f6\u5de6\u53f3\u7684\u65f6\u95f4\uff0c\u76f4\u63a5\u5b89\u88c5\u597dHA\uff0c\u540c\u65f6\uff0c\u6240\u4ee5\u7528\u7684\u5230\u8bbe\u7f6e\u4e0e\u63d2\u4ef6\u7a0b\u5e8f\u4e0e\u540c\u6b65\u88c5\u597d\uff0c\u5927\u5927\u8282\u7701\u4e86\u65f6\u95f4\u3002","title":"\u76f4\u63a5\u8fd8\u539f\u6574\u4e2a\u78c1\u76d8"},{"location":"install-guide/installHa/#vmware-esxi","text":"vmware ESXi\u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u7684\u865a\u62df\u5316\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728\u5176\u4e0a\u5b89\u88c5Home Assistant. \u8be6\u60c5\u89c1: vmwareExsi\u5b89\u88c5Ha.md","title":"\u5b89\u88c5\u5728VMware ESXi\u4e0a"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/","text":"\u57fa\u4e8evmWare Exsi\u5b89\u88c5HA \u00b6 1. \u51c6\u5907\u5de5\u4f5c \u00b6 \u4e0b\u8f7dVMware ESXi\u5b89\u88c5\u955c\u50cf. \u6253\u5f00\u9875\u9762 https://www.home-assistant.io/installation/alternative \u70b9\u51fb\u4e0b\u8f7d\u201c VMware ESXi/vSphere \u7684 .ova \u683c\u5f0f\u955c\u50cf\u6587\u4ef6\u201d \u6ce8\u610f1 \u4f7f\u7528 E1000 \u6216 E1000E \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u3002\u5f53\u4f7f\u7528 VMware \u7684 VMXnet3 \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u65f6\uff0c\u5df2\u786e\u8ba4\u5b58\u5728 mDNS/\u591a\u64ad\u53d1\u73b0\u95ee\u9898\u3002 \u89e3\u6790\uff1a E1000 \u548c E1000E\uff1a\u63a8\u8350\u7684\u865a\u62df\u7f51\u7edc\u9002\u914d\u5668 VMXnet3\uff1a\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7f51\u7edc\u53d1\u73b0\u95ee\u9898 mDNS\uff1a\u591a\u64ad\u57df\u540d\u7cfb\u7edf \u591a\u64ad\u53d1\u73b0\uff1a\u8bbe\u5907\u5728\u7f51\u7edc\u4e0a\u81ea\u52a8\u53d1\u73b0\u548c\u901a\u4fe1\u7684\u673a\u5236 \u5efa\u8bae\uff1a \u5728 VMware ESXi \u521b\u5efa\u865a\u62df\u673a\u65f6 \u7f51\u7edc\u9002\u914d\u5668\u9009\u62e9 E1000 \u6216 E1000E \u907f\u514d\u4f7f\u7528 VMXnet3 \u6ce8\u610f2 \u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\uff0c\u4e3b\u8981\u6b65\u9aa4\u5305\u62ec\uff1a\u767b\u5f55ESXi\u4e3b\u673a\uff0c\u9009\u62e9\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff0c\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u9009\u62e9OVF\u6216OVA\u6587\u4ef6\u5e76\u5b8c\u6210\u540e\u7eed\u8bbe\u7f6e\u3002\ufeff \u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u767b\u5f55ESXi\u4e3b\u673a\uff1a:\u4f7f\u7528Web Client\u6216vSphere Client\u767b\u5f55\u5230\u60a8\u7684ESXi\u4e3b\u673a\u3002\ufeff \u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff1a:\u5728ESXi\u754c\u9762\u4e2d\uff0c\u627e\u5230\u5e76\u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u9009\u9879\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u7c7b\u578b\uff1a:\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9OVF/OVA\u6587\u4ef6\uff1a:\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u7136\u540e\u9009\u62e9\u8981\u90e8\u7f72\u7684OVF\u6216OVA\u6587\u4ef6\uff0c\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff1a:\u9009\u62e9\u865a\u62df\u673a\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u9009\u9879\uff1a:\u6839\u636e\u9700\u8981\u9009\u62e9\u90e8\u7f72\u9009\u9879\uff0c\u4f8b\u5982\u7f51\u7edc\u914d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u5b8c\u6210\u90e8\u7f72\uff1a:\u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002\ufeff \u542f\u52a8\u865a\u62df\u673a\uff1a:\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u542f\u52a8\u65b0\u521b\u5efa\u7684\u865a\u62df\u673a\u5373\u53ef\u3002\ufeff \u6ce8\u610f\u4e8b\u9879\uff1a \u5982\u679c\u4f7f\u7528OVF\u6587\u4ef6\uff0c\u901a\u5e38\u9700\u8981\u914d\u5408VMDK\u7b49\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u4e00\u8d77\u4f7f\u7528\u3002\ufeff \u786e\u4fddOVF\u6587\u4ef6\u548c\u76f8\u5173\u7684\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u90fd\u5728\u540c\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u6216\u8005\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\u3002\ufeff \u5728\u201c\u90e8\u7f72\u9009\u9879\u201d\u9875\u9762\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u865a\u62df\u673a\u7684\u7f51\u7edc\u3001\u8d44\u6e90\u7b49\u8bbe\u7f6e\u3002\ufeff \u5982\u679c\u9047\u5230\u201c\u7f3a\u5c11\u78c1\u76d8\u955c\u50cf\u201d\u7b49\u62a5\u9519\uff0c\u53ef\u80fd\u662f\u7531\u4e8eOVF\u6587\u4ef6\u4e2d\u5f15\u7528\u7684\u78c1\u76d8\u6587\u4ef6\u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u6216\u8005\u78c1\u76d8\u6587\u4ef6\u672a\u6b63\u786e\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\uff0c\u9700\u8981\u68c0\u67e5\u5e76\u4fee\u6b63\u3002\ufeff \u5bf9\u4e8e\u67d0\u4e9bOVF\u6a21\u677f\uff0c\u53ef\u80fd\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u914d\u7f6e\uff0c\u4f8b\u5982\u4fee\u6539\u865a\u62df\u673a\u7684\u786c\u4ef6\u7248\u672c\u4ee5\u517c\u5bb9ESXi\u7248\u672c\u3002\ufeff \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5c31\u53ef\u4ee5\u6210\u529f\u5730\u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\u4e86 2. \u5b89\u88c5\u6b65\u9aa4 \u00b6 \u767b\u5f55\u5230ESXi\u4e3b\u673a\u7684Web\u754c\u9762\u3002 \u5728\u5de6\u4fa7\u5bfc\u822a\u680f\u4e2d\uff0c\u70b9\u51fb\u201c\u865a\u62df\u673a\u201d\u3002 \u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u6309\u94ae\u3002 \u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u5e76\u9009\u62e9\u4e0b\u8f7d\u7684Home Assistant OVA\u6587\u4ef6\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff0c\u901a\u5e38\u9009\u62e9\u9ed8\u8ba4\u7684\u5b58\u50a8\u4f4d\u7f6e\u5373\u53ef\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u7f51\u7edc\u6620\u5c04\u201d\u9875\u9762\uff0c\u9009\u62e9\u9002\u5f53\u7684\u7f51\u7edc\u9002\u914d\u5668\uff08\u786e\u4fdd\u4f7f\u7528E1000\u6216E1000E\uff09\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002 \u9875\u9762\u5e95\u90e8\u4f1a\u663e\u793a\u90e8\u7f72\u8fdb\u5ea6\uff0c\u7b49\u5f85\u90e8\u7f72\u5b8c\u6210\u3002 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u865a\u62df\u673a\u5217\u8868\u4e2d\u770b\u5230\u65b0\u521b\u5efa\u7684Home Assistant\u865a\u62df\u673a\u3002 \u9009\u4e2dHome Assistant\u865a\u62df\u673a\uff0c\u70b9\u51fb\u201c\u542f\u52a8\u201d\u6309\u94ae\u6765\u542f\u52a8\u865a\u673a \u9996\u6b21\u542f\u52a8\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u770b\u5230ha> \u8fdb\u793a\u7b26\u540e\uff0c\u53ef\u4ee5\u8bd5\u7740\u8f93\u5165 ha \u547d\u4ee4\u6765\u68c0\u67e5Home Assistant\u7684\u72b6\u6001\u3002 \u4e0a\u8ff0\u72b6\u6001\uff0c\u5982\u679c\u663e\u793a \"System is not ready with state: setup\"\uff0c\u8bf4\u660e\u7cfb\u7edf\u6b63\u5728\u5b89\u88c5\u4e2d\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u76f4\u5230\u7cfb\u7edf\u5b8c\u5168\u542f\u52a8\u540e\u518d\u8bbf\u95eeWeb\u754c\u9762\u3002\u9996\u6b21\u542f\u52a8 Home Assistant \u9700\u8981\u8f83\u957f\u65f6\u95f4\uff0c\u901a\u5e38\u9700\u8981 10-30 \u5206\u949f\uff0c\u8fd9\u53d6\u51b3\u4e8e\u60a8\u7684\u786c\u4ef6\u914d\u7f6e\u3002 \u7a0d\u7b49\u4e00\u4f1a\uff0c\u6211\u4eec\u518d\u6b21\u7528ha cli info\u6765\u67e5\u770b\u72b6\u6001 \u7136\u540e\u7528 ha network info \u6765\u67e5\u770b\u7f51\u7edc\u72b6\u6001,\u53ef\u89c1\u6211\u4eec\u7684IP\u5730\u5740\u662f:192.168.1.51,\u540e\u7eed\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2aIP\u5730\u5740\u6765\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\u3002 \u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\uff0c\u901a\u5e38\u662f\u901a\u8fc7ESXi\u4e3b\u673a\u7684IP\u5730\u5740\u52a0\u4e0a\u7aef\u53e38123\u6765\u8bbf\u95ee\uff0c\u4f8b\u5982\uff1ahttp:// :8123\u3002 \u672c\u4f8b\u662fHttp://192.168.1.51:8123 \u5982\u4e0b\uff0c\u663e\u793a\uff0c\u8fd8\u5728\u5b89\u88c5\u4e2d \u7b49\u5f85\u5373\u53ef\uff0c\u540e\u7eed\u7684\u5b89\u88c5\u8c03\u8bd5\u7b49\uff0c\u89c1\u5176\u5b83\u6587\u6863\u3002","title":"vmwareExsi\u5b89\u88c5Ha"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#vmware-exsiha","text":"","title":"\u57fa\u4e8evmWare Exsi\u5b89\u88c5HA"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#1","text":"\u4e0b\u8f7dVMware ESXi\u5b89\u88c5\u955c\u50cf. \u6253\u5f00\u9875\u9762 https://www.home-assistant.io/installation/alternative \u70b9\u51fb\u4e0b\u8f7d\u201c VMware ESXi/vSphere \u7684 .ova \u683c\u5f0f\u955c\u50cf\u6587\u4ef6\u201d \u6ce8\u610f1 \u4f7f\u7528 E1000 \u6216 E1000E \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u3002\u5f53\u4f7f\u7528 VMware \u7684 VMXnet3 \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u65f6\uff0c\u5df2\u786e\u8ba4\u5b58\u5728 mDNS/\u591a\u64ad\u53d1\u73b0\u95ee\u9898\u3002 \u89e3\u6790\uff1a E1000 \u548c E1000E\uff1a\u63a8\u8350\u7684\u865a\u62df\u7f51\u7edc\u9002\u914d\u5668 VMXnet3\uff1a\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7f51\u7edc\u53d1\u73b0\u95ee\u9898 mDNS\uff1a\u591a\u64ad\u57df\u540d\u7cfb\u7edf \u591a\u64ad\u53d1\u73b0\uff1a\u8bbe\u5907\u5728\u7f51\u7edc\u4e0a\u81ea\u52a8\u53d1\u73b0\u548c\u901a\u4fe1\u7684\u673a\u5236 \u5efa\u8bae\uff1a \u5728 VMware ESXi \u521b\u5efa\u865a\u62df\u673a\u65f6 \u7f51\u7edc\u9002\u914d\u5668\u9009\u62e9 E1000 \u6216 E1000E \u907f\u514d\u4f7f\u7528 VMXnet3 \u6ce8\u610f2 \u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\uff0c\u4e3b\u8981\u6b65\u9aa4\u5305\u62ec\uff1a\u767b\u5f55ESXi\u4e3b\u673a\uff0c\u9009\u62e9\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff0c\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u9009\u62e9OVF\u6216OVA\u6587\u4ef6\u5e76\u5b8c\u6210\u540e\u7eed\u8bbe\u7f6e\u3002\ufeff \u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u767b\u5f55ESXi\u4e3b\u673a\uff1a:\u4f7f\u7528Web Client\u6216vSphere Client\u767b\u5f55\u5230\u60a8\u7684ESXi\u4e3b\u673a\u3002\ufeff \u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff1a:\u5728ESXi\u754c\u9762\u4e2d\uff0c\u627e\u5230\u5e76\u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u9009\u9879\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u7c7b\u578b\uff1a:\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9OVF/OVA\u6587\u4ef6\uff1a:\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u7136\u540e\u9009\u62e9\u8981\u90e8\u7f72\u7684OVF\u6216OVA\u6587\u4ef6\uff0c\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff1a:\u9009\u62e9\u865a\u62df\u673a\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u9009\u9879\uff1a:\u6839\u636e\u9700\u8981\u9009\u62e9\u90e8\u7f72\u9009\u9879\uff0c\u4f8b\u5982\u7f51\u7edc\u914d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u5b8c\u6210\u90e8\u7f72\uff1a:\u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002\ufeff \u542f\u52a8\u865a\u62df\u673a\uff1a:\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u542f\u52a8\u65b0\u521b\u5efa\u7684\u865a\u62df\u673a\u5373\u53ef\u3002\ufeff \u6ce8\u610f\u4e8b\u9879\uff1a \u5982\u679c\u4f7f\u7528OVF\u6587\u4ef6\uff0c\u901a\u5e38\u9700\u8981\u914d\u5408VMDK\u7b49\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u4e00\u8d77\u4f7f\u7528\u3002\ufeff \u786e\u4fddOVF\u6587\u4ef6\u548c\u76f8\u5173\u7684\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u90fd\u5728\u540c\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u6216\u8005\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\u3002\ufeff \u5728\u201c\u90e8\u7f72\u9009\u9879\u201d\u9875\u9762\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u865a\u62df\u673a\u7684\u7f51\u7edc\u3001\u8d44\u6e90\u7b49\u8bbe\u7f6e\u3002\ufeff \u5982\u679c\u9047\u5230\u201c\u7f3a\u5c11\u78c1\u76d8\u955c\u50cf\u201d\u7b49\u62a5\u9519\uff0c\u53ef\u80fd\u662f\u7531\u4e8eOVF\u6587\u4ef6\u4e2d\u5f15\u7528\u7684\u78c1\u76d8\u6587\u4ef6\u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u6216\u8005\u78c1\u76d8\u6587\u4ef6\u672a\u6b63\u786e\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\uff0c\u9700\u8981\u68c0\u67e5\u5e76\u4fee\u6b63\u3002\ufeff \u5bf9\u4e8e\u67d0\u4e9bOVF\u6a21\u677f\uff0c\u53ef\u80fd\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u914d\u7f6e\uff0c\u4f8b\u5982\u4fee\u6539\u865a\u62df\u673a\u7684\u786c\u4ef6\u7248\u672c\u4ee5\u517c\u5bb9ESXi\u7248\u672c\u3002\ufeff \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5c31\u53ef\u4ee5\u6210\u529f\u5730\u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\u4e86","title":"1. \u51c6\u5907\u5de5\u4f5c"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#2","text":"\u767b\u5f55\u5230ESXi\u4e3b\u673a\u7684Web\u754c\u9762\u3002 \u5728\u5de6\u4fa7\u5bfc\u822a\u680f\u4e2d\uff0c\u70b9\u51fb\u201c\u865a\u62df\u673a\u201d\u3002 \u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u6309\u94ae\u3002 \u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u5e76\u9009\u62e9\u4e0b\u8f7d\u7684Home Assistant OVA\u6587\u4ef6\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff0c\u901a\u5e38\u9009\u62e9\u9ed8\u8ba4\u7684\u5b58\u50a8\u4f4d\u7f6e\u5373\u53ef\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u7f51\u7edc\u6620\u5c04\u201d\u9875\u9762\uff0c\u9009\u62e9\u9002\u5f53\u7684\u7f51\u7edc\u9002\u914d\u5668\uff08\u786e\u4fdd\u4f7f\u7528E1000\u6216E1000E\uff09\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002 \u9875\u9762\u5e95\u90e8\u4f1a\u663e\u793a\u90e8\u7f72\u8fdb\u5ea6\uff0c\u7b49\u5f85\u90e8\u7f72\u5b8c\u6210\u3002 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u865a\u62df\u673a\u5217\u8868\u4e2d\u770b\u5230\u65b0\u521b\u5efa\u7684Home Assistant\u865a\u62df\u673a\u3002 \u9009\u4e2dHome Assistant\u865a\u62df\u673a\uff0c\u70b9\u51fb\u201c\u542f\u52a8\u201d\u6309\u94ae\u6765\u542f\u52a8\u865a\u673a \u9996\u6b21\u542f\u52a8\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u770b\u5230ha> \u8fdb\u793a\u7b26\u540e\uff0c\u53ef\u4ee5\u8bd5\u7740\u8f93\u5165 ha \u547d\u4ee4\u6765\u68c0\u67e5Home Assistant\u7684\u72b6\u6001\u3002 \u4e0a\u8ff0\u72b6\u6001\uff0c\u5982\u679c\u663e\u793a \"System is not ready with state: setup\"\uff0c\u8bf4\u660e\u7cfb\u7edf\u6b63\u5728\u5b89\u88c5\u4e2d\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u76f4\u5230\u7cfb\u7edf\u5b8c\u5168\u542f\u52a8\u540e\u518d\u8bbf\u95eeWeb\u754c\u9762\u3002\u9996\u6b21\u542f\u52a8 Home Assistant \u9700\u8981\u8f83\u957f\u65f6\u95f4\uff0c\u901a\u5e38\u9700\u8981 10-30 \u5206\u949f\uff0c\u8fd9\u53d6\u51b3\u4e8e\u60a8\u7684\u786c\u4ef6\u914d\u7f6e\u3002 \u7a0d\u7b49\u4e00\u4f1a\uff0c\u6211\u4eec\u518d\u6b21\u7528ha cli info\u6765\u67e5\u770b\u72b6\u6001 \u7136\u540e\u7528 ha network info \u6765\u67e5\u770b\u7f51\u7edc\u72b6\u6001,\u53ef\u89c1\u6211\u4eec\u7684IP\u5730\u5740\u662f:192.168.1.51,\u540e\u7eed\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2aIP\u5730\u5740\u6765\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\u3002 \u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\uff0c\u901a\u5e38\u662f\u901a\u8fc7ESXi\u4e3b\u673a\u7684IP\u5730\u5740\u52a0\u4e0a\u7aef\u53e38123\u6765\u8bbf\u95ee\uff0c\u4f8b\u5982\uff1ahttp:// :8123\u3002 \u672c\u4f8b\u662fHttp://192.168.1.51:8123 \u5982\u4e0b\uff0c\u663e\u793a\uff0c\u8fd8\u5728\u5b89\u88c5\u4e2d \u7b49\u5f85\u5373\u53ef\uff0c\u540e\u7eed\u7684\u5b89\u88c5\u8c03\u8bd5\u7b49\uff0c\u89c1\u5176\u5b83\u6587\u6863\u3002","title":"2. \u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/","text":"ModbusPoll v7.0.0 \u4f7f\u7528\u6559\u7a0b \u00b6 \u76ee\u5f55 \u00b6 \u8f6f\u4ef6\u4ecb\u7ecd \u5b89\u88c5\u4e0e\u542f\u52a8 \u57fa\u672c\u914d\u7f6e \u8fde\u63a5\u8bbe\u7f6e \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u6545\u969c\u6392\u9664 \u9ad8\u7ea7\u529f\u80fd \u8f6f\u4ef6\u4ecb\u7ecd \u00b6 ModbusPoll\u662f\u4e00\u6b3e\u4e13\u4e1a\u7684Modbus\u4e3b\u673a\u4eff\u771f\u5668\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\uff1a - \u6d4b\u8bd5\u548c\u8c03\u8bd5Modbus\u4ece\u8bbe\u5907 - \u76d1\u63a7Modbus\u8bbe\u5907\u6570\u636e - \u9a8c\u8bc1\u8bbe\u5907\u901a\u4fe1\u534f\u8bae - \u6545\u969c\u8bca\u65ad\u548c\u6392\u9664 \u4e3b\u8981\u7279\u6027 \u00b6 \u652f\u6301Modbus RTU/ASCII/TCP\u534f\u8bae \u5b9e\u65f6\u6570\u636e\u76d1\u63a7 \u591a\u79cd\u6570\u636e\u683c\u5f0f\u663e\u793a \u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd \u6279\u91cf\u8bfb\u53d6\u529f\u80fd \u5b89\u88c5\u4e0e\u542f\u52a8 \u00b6 \u7cfb\u7edf\u8981\u6c42 \u00b6 Windows 7/8/10/11 .NET Framework 4.0 \u6216\u66f4\u9ad8\u7248\u672c \u81f3\u5c1150MB\u53ef\u7528\u78c1\u76d8\u7a7a\u95f4 \u5b89\u88c5\u6b65\u9aa4 \u00b6 \u4e0b\u8f7dModbusPoll-v7.0.0\u5b89\u88c5\u5305 \u53f3\u952e\u70b9\u51fb\u5b89\u88c5\u5305\uff0c\u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" \u6309\u7167\u5b89\u88c5\u5411\u5bfc\u5b8c\u6210\u5b89\u88c5 \u542f\u52a8\u7a0b\u5e8f\uff1a\u5f00\u59cb\u83dc\u5355 \u2192 ModbusPoll \u9996\u6b21\u542f\u52a8 \u00b6 \u542f\u52a8\u540e\u4f1a\u663e\u793a\u4e3b\u754c\u9762\uff0c\u5305\u542b\uff1a - \u83dc\u5355\u680f\uff1a\u6587\u4ef6\u3001\u8fde\u63a5\u3001\u8bbe\u7f6e\u7b49 - \u5de5\u5177\u680f\uff1a\u5e38\u7528\u529f\u80fd\u5feb\u6377\u6309\u94ae - \u6570\u636e\u663e\u793a\u533a\u57df\uff1a\u5bc4\u5b58\u5668\u6570\u636e\u8868\u683c - \u72b6\u6001\u680f\uff1a\u8fde\u63a5\u72b6\u6001\u548c\u7edf\u8ba1\u4fe1\u606f \u57fa\u672c\u914d\u7f6e \u00b6 \u8fde\u63a5\u8bbe\u7f6e \u00b6 \u4e32\u53e3\u8fde\u63a5\uff08RTU/ASCII\uff09 Connection \u2192 Connect \u6216\u70b9\u51fb\u5de5\u5177\u680f\u8fde\u63a5\u56fe\u6807 \u8fde\u63a5\u53c2\u6570\u914d\u7f6e Port : \u9009\u62e9\u4e32\u53e3\uff08COM1, COM2\u7b49\uff09 Baud Rate : \u6ce2\u7279\u7387\uff08\u5e38\u75289600, 19200, 38400\uff09 Data Bits : \u6570\u636e\u4f4d\uff08\u901a\u5e38\u4e3a8\uff09 Parity : \u6821\u9a8c\u4f4d\uff08None, Even, Odd\uff09 Stop Bits : \u505c\u6b62\u4f4d\uff081\u62162\uff09 Mode : \u9009\u62e9RTU\u6216ASCII TCP\u8fde\u63a5\u8bbe\u7f6e IP Address : \u8bbe\u5907IP\u5730\u5740 Port : \u7aef\u53e3\u53f7\uff08\u9ed8\u8ba4502\uff09 Unit ID : \u4ece\u7ad9\u5730\u5740 \u8fde\u63a5\u8bbe\u7f6e \u00b6 \u4e32\u53e3\u8fde\u63a5\u793a\u4f8b \u00b6 \u4ee5\u6c34\u5904\u7406\u673a\u4e3a\u4f8b\uff1a - Port: COM1 - Baud Rate: 9600 - Data Bits: 8 - Parity: None - Stop Bits: 1 - Mode: RTU - Response timeout: 1000ms - Delay between polls: 100ms TCP\u8fde\u63a5\u793a\u4f8b \u00b6 \u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u7f51\u7edc\u8fde\u63a5\uff1a - IP Address: 192.168.1.100 - Port: 502 - Unit ID: 1 - Response timeout: 3000ms - Delay between polls: 500ms \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u00b6 \u8bbe\u7f6e\u8bfb\u53d6\u53c2\u6570 \u00b6 Setup \u2192 Read/Write Definition \u914d\u7f6e\u8bfb\u53d6\u53c2\u6570\uff1a Slave ID : \u4ece\u7ad9\u5730\u5740\uff081-247\uff09 Function : \u529f\u80fd\u7801 01: \u8bfb\u53d6\u7ebf\u5708\u72b6\u6001 02: \u8bfb\u53d6\u8f93\u5165\u72b6\u6001 03: \u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668 04: \u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668 Address : \u8d77\u59cb\u5730\u5740 Quantity : \u8bfb\u53d6\u6570\u91cf Scan Rate : \u626b\u63cf\u9891\u7387\uff08ms\uff09 \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u914d\u7f6e\u793a\u4f8b \u00b6 \u6e29\u5ea6\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 (Read Holding Registers) - Address: 23 (0x0017) - Quantity: 2 - Scan Rate: 1000ms \u4f9b\u6db2\u538b\u529b\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 25 (0x0019) - Quantity: 2 - Scan Rate: 500ms \u6db2\u4f4d\u72b6\u6001\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 01 (Read Coils) - Address: 0x0001 - Quantity: 16 - Scan Rate: 2000ms \u7535\u5bfc\u7387\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Scan Rate: 1000ms PH\u503c\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Scan Rate: 1000ms \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u00b6 \u6c34\u5904\u7406\u673a\u53c2\u6570\u8bfb\u53d6 \u00b6 \u6839\u636e\u6c34\u5904\u7406\u8bbe\u5907\u901a\u4fe1\u534f\u8bae\u914d\u7f6e\uff1a 1. \u6e29\u5ea6\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0017\uff09 - Function: 03 - Address: 23 (0x0017) - Quantity: 2 - Data Format: Float (4\u5b57\u8282) 2. \u7535\u5bfc\u7387\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0018\uff09 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Data Format: Float 3. \u4f9b\u6db2\u538b\u529b\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0019-0x001A\uff09 - Function: 03 - Address: 25 (0x0019) - Quantity: 4 - Data Format: Float (\u4f9b\u6db2\u4e00\u3001\u4f9b\u6db2\u4e8c\u538b\u529b) 4. \u6db2\u4f4d\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001B-0x001C\uff09 - Function: 03 - Address: 27 (0x001B) - Quantity: 4 - Data Format: Float (\u50a8\u6db2\u3001\u914d\u6db2\u6db2\u4f4d) 5. PH\u503c\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001D\uff09 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Data Format: Float \u6279\u91cf\u8bfb\u53d6\u914d\u7f6e \u00b6 Setup \u2192 Read/Write Definition \u2192 Add Multiple \u521b\u5efa\u591a\u4e2a\u8bfb\u53d6\u7ec4\uff1a - \u7ec41\uff1a\u6e29\u5ea6\u76f8\u5173\u53c2\u6570 (0x0017-0x0018) - \u7ec42\uff1a\u538b\u529b\u76f8\u5173\u53c2\u6570 (0x0019-0x001A) - \u7ec43\uff1a\u6db2\u4f4d\u76f8\u5173\u53c2\u6570 (0x001B-0x001C) - \u7ec44\uff1aPH\u503c\u53c2\u6570 (0x001D) - \u7ec45\uff1a\u72b6\u6001\u76f8\u5173\u53c2\u6570 (0x0001-0x0010) \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u00b6 \u6570\u636e\u663e\u793a\u683c\u5f0f \u00b6 Display \u2192 Data Format \u9009\u62e9\u5408\u9002\u7684\u663e\u793a\u683c\u5f0f\uff1a Signed/Unsigned : \u6709\u7b26\u53f7/\u65e0\u7b26\u53f7 16-bit/32-bit : \u6570\u636e\u4f4d\u6570 Hex/Decimal/Binary : \u8fdb\u5236\u663e\u793a Float : \u6d6e\u70b9\u6570\u663e\u793a \u5b57\u8282\u5e8f\u914d\u7f6e\u8be6\u89e3 \u00b6 \u91cd\u8981 \uff1a\u6b63\u786e\u7684\u5b57\u8282\u5e8f\u8bbe\u7f6e\u662f\u6570\u636e\u6b63\u786e\u663e\u793a\u7684\u5173\u952e \u914d\u7f6e\u6b65\u9aa4 \uff1a 1. Display \u2192 Data Format \u2192 Advanced 2. \u5b57\u8282\u5e8f\u9009\u9879 \uff1a ``` \u25a1 Byte Swap - \u5b57\u8282\u4ea4\u6362 \u25a1 Word Swap - \u5b57\u4ea4\u6362 \u56db\u79cd\u7ec4\u5408\u5bf9\u5e94\u4e0d\u540c\u5b57\u8282\u5e8f\uff1a \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u9009\u9879\u7ec4\u5408 \u2502 \u5b57\u8282\u5e8f \u2502 \u793a\u4f8b \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u65e0\u52fe\u9009 \u2502 ABCD \u2502 42 0C CC CD \u2502 \u2502 Byte Swap \u2502 BADC \u2502 0C 42 CD CC \u2502 \u2502 Word Swap \u2502 CDAB \u2502 CC CD 42 0C \u2502 \u2502 Both \u2502 DCBA \u2502 CD CC 0C 42 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 ``` \u5b9e\u9645\u9a8c\u8bc1\u65b9\u6cd5 \uff1a \u57fa\u4e8e\u60a8\u7684\u901a\u4fe1\u6570\u636e CD CC 0C 42\uff1a 1. \u5c1d\u8bd5DCBA\u683c\u5f0f\uff1aCD CC 0C 42 \u2192 35.2\u00b0C \u2713 2. \u5176\u4ed6\u683c\u5f0f\u90fd\u4f1a\u663e\u793a\u5f02\u5e38\u503c 3. \u56e0\u6b64\u60a8\u7684\u8bbe\u5907\u4f7f\u7528DCBA\u5b57\u8282\u5e8f \u914d\u7f6e\u5efa\u8bae \uff1a - \u6c34\u5904\u7406\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5927\u7aef\u5e8f(ABCD) - PC-based\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5c0f\u7aef\u5e8f(DCBA) - \u6839\u636e\u5b9e\u9645\u6570\u636e\u9a8c\u8bc1\u9009\u62e9\u6b63\u786e\u683c\u5f0f \u5b9e\u65f6\u76d1\u63a7 \u00b6 View\u83dc\u5355\u9009\u9879\uff1a - Data View: \u6570\u636e\u8868\u683c\u89c6\u56fe - Register View: \u5bc4\u5b58\u5668\u89c6\u56fe - Traffic View: \u901a\u4fe1\u6d41\u91cf\u89c6\u56fe - Error View: \u9519\u8bef\u65e5\u5fd7\u89c6\u56fe \u6570\u636e\u8bb0\u5f55 \u00b6 Log \u2192 Start Logging \u8bbe\u7f6e\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\u548c\u683c\u5f0f \u9009\u62e9\u8bb0\u5f55\u95f4\u9694\u548c\u6761\u4ef6 \u5f00\u59cb\u8bb0\u5f55\u6570\u636e\u53d8\u5316 \u544a\u8b66\u8bbe\u7f6e \u00b6 Setup \u2192 Alarm Setup \u914d\u7f6e\u544a\u8b66\u6761\u4ef6\uff1a - \u6c34\u6e29\u8d85\u9650\uff1a> 40\u00b0C \u6216 < 35\u00b0C - \u4f9b\u6db2\u538b\u529b\u5f02\u5e38\uff1a< 0.1MPa \u6216 > 0.5MPa - \u7535\u5bfc\u7387\u5f02\u5e38\uff1a< 13.0 \u6216 > 15.0 mS/cm - \u8bbe\u5907\u79bb\u7ebf\uff1a\u901a\u4fe1\u8d85\u65f6 > 5\u79d2 \u6545\u969c\u6392\u9664 \u00b6 \u5e38\u89c1\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848 \u00b6 1. \u8fde\u63a5\u5931\u8d25 \u00b6 \u95ee\u9898\uff1a\u65e0\u6cd5\u8fde\u63a5\u5230\u8bbe\u5907 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u4e32\u53e3/\u7f51\u7edc\u8fde\u63a5 - \u786e\u8ba4\u6ce2\u7279\u7387\u548c\u901a\u4fe1\u53c2\u6570 - \u68c0\u67e5\u8bbe\u5907\u5730\u5740\u662f\u5426\u6b63\u786e - \u9a8c\u8bc1\u7535\u7f06\u8fde\u63a5 2. \u6570\u636e\u8bfb\u53d6\u5f02\u5e38 \u00b6 \u95ee\u9898\uff1a\u8bfb\u53d6\u6570\u636e\u5168\u4e3a0\u6216\u5f02\u5e38\u503c \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u529f\u80fd\u7801\u662f\u5426\u6b63\u786e - \u786e\u8ba4\u5bc4\u5b58\u5668\u5730\u5740 - \u68c0\u67e5\u6570\u636e\u683c\u5f0f\u8bbe\u7f6e - \u9a8c\u8bc1\u8bbe\u5907\u662f\u5426\u652f\u6301\u8be5\u529f\u80fd 3. \u901a\u4fe1\u8d85\u65f6 \u00b6 \u95ee\u9898\uff1a\u9891\u7e41\u51fa\u73b0\u901a\u4fe1\u8d85\u65f6 \u89e3\u51b3\u65b9\u6848\uff1a - \u589e\u52a0Response Timeout\u65f6\u95f4 - \u51cf\u5c11\u626b\u63cf\u9891\u7387 - \u68c0\u67e5\u7f51\u7edc\u7a33\u5b9a\u6027 - \u786e\u8ba4\u8bbe\u5907\u8d1f\u8f7d\u60c5\u51b5 4. \u6570\u636e\u683c\u5f0f\u9519\u8bef \u00b6 \u95ee\u9898\uff1a\u6570\u636e\u663e\u793a\u683c\u5f0f\u4e0d\u6b63\u786e \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u5b57\u8282\u5e8f\u8bbe\u7f6e\uff08\u5927\u7aef/\u5c0f\u7aef\uff09 - \u786e\u8ba4\u6570\u636e\u7c7b\u578b\uff08\u6574\u6570/\u6d6e\u70b9\uff09 - \u8c03\u6574\u6570\u636e\u4f4d\u6570\u8bbe\u7f6e - \u53c2\u8003\u8bbe\u5907\u624b\u518c\u786e\u8ba4\u683c\u5f0f 5. \u5b57\u8282\u5e8f\u95ee\u9898\u8bca\u65ad \u00b6 \u95ee\u9898\uff1a\u6570\u636e\u6570\u503c\u5f02\u5e38\uff08\u8fc7\u5927\u6216\u8fc7\u5c0f\uff09 \u75c7\u72b6\uff1a - \u6e29\u5ea6\u663e\u793a\u51e0\u5343\u5ea6\u6216\u8d1f\u503c - \u538b\u529b\u663e\u793a\u5f02\u5e38\u5927\u7684\u6570\u503c - \u7535\u5bfc\u7387\u663e\u793a\u4e0d\u5408\u7406\u6570\u503c \u89e3\u51b3\u6b65\u9aa4\uff1a 1. \u67e5\u770bTraffic View\u4e2d\u7684\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e 2. \u5c1d\u8bd5\u4e0d\u540c\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a - Display \u2192 Data Format \u2192 Byte Swap - Display \u2192 Data Format \u2192 Word Swap 3. \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u7ec4\u5408 4. \u9a8c\u8bc1\u591a\u4e2a\u53c2\u6570\u786e\u4fdd\u8bbe\u7f6e\u6b63\u786e \u5b9e\u4f8b\uff1a \u539f\u59cb\u6570\u636e\uff1aCD CC 0C 42 - \u9ed8\u8ba4(ABCD)\uff1a\u5f02\u5e38\u503c - Byte swap(BADC)\uff1a\u5f02\u5e38\u503c - Word swap(CDAB)\uff1a\u5f02\u5e38\u503c - Byte+Word(DCBA)\uff1a35.2\u00b0C \u2713\u6b63\u786e \u9ad8\u7ea7\u529f\u80fd \u00b6 1. \u811a\u672c\u81ea\u52a8\u5316 \u00b6 Tools \u2192 Scripting \u652f\u6301VB\u811a\u672c\u81ea\u52a8\u5316\uff1a - \u81ea\u52a8\u8fde\u63a5\u8bbe\u5907 - \u6279\u91cf\u6570\u636e\u5904\u7406 - \u6761\u4ef6\u89e6\u53d1\u64cd\u4f5c - \u62a5\u544a\u751f\u6210 2. \u6570\u636e\u5bfc\u51fa \u00b6 File \u2192 Export Data \u652f\u6301\u591a\u79cd\u683c\u5f0f\uff1a - CSV\u6587\u4ef6 - Excel\u6587\u4ef6 - XML\u683c\u5f0f - \u81ea\u5b9a\u4e49\u683c\u5f0f 3. \u591a\u8bbe\u5907\u76d1\u63a7 \u00b6 \u53ef\u540c\u65f6\u76d1\u63a7\u591a\u4e2a\u8bbe\u5907\uff1a 1. File \u2192 New Document 2. \u914d\u7f6e\u4e0d\u540c\u8bbe\u5907\u53c2\u6570 3. Window \u2192 Tile \u5e73\u94fa\u663e\u793a 4. \u5b9e\u73b0\u591a\u8bbe\u5907\u96c6\u4e2d\u76d1\u63a7 4. \u8d8b\u52bf\u5206\u6790 \u00b6 View \u2192 Trend View \u529f\u80fd\u7279\u6027\uff1a - \u5b9e\u65f6\u8d8b\u52bf\u56fe\u8868 - \u5386\u53f2\u6570\u636e\u56de\u653e - \u6570\u636e\u7edf\u8ba1\u5206\u6790 - \u5f02\u5e38\u70b9\u6807\u8bb0 \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u5b9e\u6218 \u00b6 \u5b8c\u6574\u76d1\u63a7\u914d\u7f6e \u00b6 # \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u914d\u7f6e\u793a\u4f8b \u8bbe\u5907\u4fe1\u606f : \u8bbe\u5907\u578b\u53f7 : \u6c34\u5904\u7406\u673a+\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907 \u901a\u4fe1\u65b9\u5f0f : Modbus RTU/TCP \u6ce2\u7279\u7387 : 9600 \u4ece\u7ad9\u5730\u5740 : 1 \u76d1\u63a7\u53c2\u6570 : \u6e29\u5ea6\u76d1\u63a7 : \u5730\u5740 : 0x0017 \u5355\u4f4d : \u00b0C \u544a\u8b66 : 35-40\u00b0C \u7535\u5bfc\u7387\u76d1\u63a7 : \u5730\u5740 : 0x0018 \u5355\u4f4d : mS/cm \u544a\u8b66 : 13.0-15.0 \u538b\u529b\u76d1\u63a7 : \u4f9b\u6db2\u4e00 : 0x0019 \u4f9b\u6db2\u4e8c : 0x001A \u5355\u4f4d : MPa \u544a\u8b66 : 0.1-0.5 \u6db2\u4f4d\u76d1\u63a7 : \u50a8\u6db2 : 0x001B \u914d\u6db2 : 0x001C \u5355\u4f4d : % \u544a\u8b66 : 10-90% PH\u503c\u76d1\u63a7 : \u5730\u5740 : 0x001D \u5355\u4f4d : pH \u544a\u8b66 : 6.5-7.5 \u626b\u63cf\u8bbe\u7f6e : \u6b63\u5e38\u626b\u63cf : 1000ms \u5feb\u901f\u626b\u63cf : 500ms \u6162\u901f\u626b\u63cf : 2000ms \u901a\u4fe1\u534f\u8bae\u5206\u6790 : \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e : - \u4f7f\u7528Modbus TCP\u534f\u8bae - \u529f\u80fd\u780103 (Read Holding Registers) - \u8d77\u59cb\u5730\u5740 : 0x0017 (\u6e29\u5ea6) - \u6570\u636e\u683c\u5f0f : 32\u4f4d\u6d6e\u70b9\u6570 (IEEE 754) - \u5b57\u8282\u5e8f\u5206\u6790 : * \u539f\u59cb\u6570\u636e : CD CC 0C 42 * \u9700\u8981DCBA\u5b57\u8282\u5e8f (Byte+Word Swap) * \u89e3\u6790\u7ed3\u679c : 35.2\u00b0C - \u6570\u636e\u793a\u4f8b\u9a8c\u8bc1 : * CD CC 0C 42 (\u5341\u516d\u8fdb\u5236) * \u2192 0x420CCCCD (\u91cd\u6392\u540e) * \u2192 35.2000008 (IEEE 754\u6d6e\u70b9\u6570) * \u2192 35.2\u00b0C (\u663e\u793a\u503c) \u914d\u7f6e\u8981\u70b9 : - ModbusPoll\u8bbe\u7f6e : Display \u2192 Data Format - \u52fe\u9009 : Byte Swap + Word Swap - \u6570\u636e\u7c7b\u578b : 32-bit Float - \u9a8c\u8bc1\u65b9\u6cd5 : \u89c2\u5bdf\u6e29\u5ea6\u662f\u5426\u5728\u5408\u7406\u8303\u56f4(30-50\u00b0C) \u81ea\u52a8\u5316\u811a\u672c\u793a\u4f8b \u00b6 ' \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u72b6\u6001\u68c0\u67e5\u811a\u672c Sub CheckWaterTreatmentStatus () Dim temp , pressure1 , pressure2 , conductivity , ph ' \u8bfb\u53d6\u6e29\u5ea6 (\u5730\u574023) temp = mbPoll . ReadFloat ( 1 , 3 , 23 ) ' \u8bfb\u53d6\u538b\u529b (\u5730\u574025,26) pressure1 = mbPoll . ReadFloat ( 1 , 3 , 25 ) pressure2 = mbPoll . ReadFloat ( 1 , 3 , 26 ) ' \u8bfb\u53d6\u7535\u5bfc\u7387 (\u5730\u574024) conductivity = mbPoll . ReadFloat ( 1 , 3 , 24 ) ' \u8bfb\u53d6PH\u503c (\u5730\u574029) ph = mbPoll . ReadFloat ( 1 , 3 , 29 ) ' \u68c0\u67e5\u5f02\u5e38 If temp > 40 Or temp < 35 Then MsgBox \"\u6c34\u6e29\u5f02\u5e38: \" & temp & \"\u00b0C\" End If If pressure1 < 0.1 Or pressure1 > 0.5 Then MsgBox \"\u4f9b\u6db2\u4e00\u538b\u529b\u5f02\u5e38: \" & pressure1 & \"MPa\" End If If conductivity < 13.0 Or conductivity > 15.0 Then MsgBox \"\u7535\u5bfc\u7387\u5f02\u5e38: \" & conductivity & \"mS/cm\" End If If ph < 6.5 Or ph > 7.5 Then MsgBox \"PH\u503c\u5f02\u5e38: \" & ph End If End Sub \u6700\u4f73\u5b9e\u8df5\u5efa\u8bae \u00b6 1. \u6027\u80fd\u4f18\u5316 \u00b6 \u5408\u7406\u8bbe\u7f6e\u626b\u63cf\u9891\u7387\uff0c\u907f\u514d\u8fc7\u5ea6\u8f6e\u8be2 \u4f7f\u7528\u6279\u91cf\u8bfb\u53d6\u51cf\u5c11\u901a\u4fe1\u6b21\u6570 \u5b9a\u671f\u6e05\u7406\u65e5\u5fd7\u6587\u4ef6 \u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5 2. \u6570\u636e\u7ba1\u7406 \u00b6 \u5efa\u7acb\u89c4\u8303\u7684\u53c2\u6570\u547d\u540d\u89c4\u5219 \u5b9a\u671f\u5907\u4efd\u91cd\u8981\u914d\u7f6e \u8bbe\u7f6e\u5408\u7406\u7684\u6570\u636e\u4fdd\u5b58\u5468\u671f \u5b9e\u65bd\u6570\u636e\u5b89\u5168\u63aa\u65bd 3. \u7ef4\u62a4\u5efa\u8bae \u00b6 \u5b9a\u671f\u68c0\u67e5\u901a\u4fe1\u7ebf\u8def \u66f4\u65b0\u8bbe\u5907\u9a71\u52a8\u7a0b\u5e8f \u5907\u4efd\u5de5\u7a0b\u914d\u7f6e\u6587\u4ef6 \u5efa\u7acb\u6545\u969c\u5904\u7406\u6d41\u7a0b \u9644\u5f55 \u00b6 A. Modbus\u529f\u80fd\u7801\u5bf9\u7167\u8868 \u00b6 01 - Read Coils (\u8bfb\u53d6\u7ebf\u5708\u72b6\u6001) 02 - Read Discrete Inputs (\u8bfb\u53d6\u79bb\u6563\u8f93\u5165) 03 - Read Holding Registers (\u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668) 04 - Read Input Registers (\u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668) 05 - Write Single Coil (\u5199\u5355\u4e2a\u7ebf\u5708) 06 - Write Single Register (\u5199\u5355\u4e2a\u5bc4\u5b58\u5668) 15 - Write Multiple Coils (\u5199\u591a\u4e2a\u7ebf\u5708) 16 - Write Multiple Registers (\u5199\u591a\u4e2a\u5bc4\u5b58\u5668) B. \u5e38\u7528\u6ce2\u7279\u7387\u8bbe\u7f6e \u00b6 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 C. \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u5e38\u7528\u5730\u5740\u6620\u5c04 \u00b6 \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e\u7684\u5730\u5740\u6620\u5c04\uff1a \u6e29\u5ea6\uff1a0x0017 (\u5341\u8fdb\u523623) \u7535\u5bfc\u7387\uff1a0x0018 (\u5341\u8fdb\u523624) \u4f9b\u6db2\u4e00\u538b\u529b\uff1a0x0019 (\u5341\u8fdb\u523625) \u4f9b\u6db2\u4e8c\u538b\u529b\uff1a0x001A (\u5341\u8fdb\u523626) \u50a8\u6db2\u6db2\u4f4d\uff1a0x001B (\u5341\u8fdb\u523627) \u914d\u6db2\u6db2\u4f4d\uff1a0x001C (\u5341\u8fdb\u523628) PH\u503c\uff1a0x001D (\u5341\u8fdb\u523629) \u72b6\u6001\u7c7b\uff1a0x0001-0x0010 \u63a7\u5236\u7c7b\uff1a0x0020-0x0030 D. \u5927\u7aef\u5c0f\u7aef\uff08\u5b57\u8282\u5e8f\uff09\u8be6\u89e3 \u00b6 \u4ec0\u4e48\u662f\u5927\u7aef\u5c0f\u7aef\uff1f \u00b6 \u5b57\u8282\u5e8f\uff08Byte Order\uff09\u662f\u6307\u591a\u5b57\u8282\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u4e3b\u8981\u6709\u4e24\u79cd\uff1a \u5927\u7aef\u5e8f\uff08Big Endian\uff09 \uff1a - \u9ad8\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u7b26\u5408\u4eba\u7c7b\u9605\u8bfb\u4e60\u60ef - \u7f51\u7edc\u4f20\u8f93\u6807\u51c6\u5b57\u8282\u5e8f \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09 \uff1a - \u4f4e\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u591a\u6570x86\u5904\u7406\u5668\u91c7\u7528 - Intel\u67b6\u6784\u9ed8\u8ba4\u5b57\u8282\u5e8f \u5b9e\u9645\u4f8b\u5b50\u8bf4\u660e \u00b6 \u4ee532\u4f4d\u6d6e\u70b9\u6570 35.2\u00b0C \u4e3a\u4f8b\uff1a IEEE 754 \u6d6e\u70b9\u6570\u8868\u793a\uff1a0x420C_CCCD \u5927\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) 0x1001 0x0C 0x1002 0xCC 0x1003 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) \u5c0f\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) 0x1001 0xCC 0x1002 0x0C 0x1003 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) \u5982\u4f55\u786e\u5b9a\u8bbe\u5907\u5b57\u8282\u5e8f\uff1f \u00b6 \u65b9\u6cd51\uff1a\u901a\u8fc7\u901a\u4fe1\u6570\u636e\u5206\u6790 \u4ececommdata.txt\u770b\u5230\u7684\u6570\u636e\uff1aCD CC 0C 42 1. \u5c06\u8fd94\u4e2a\u5b57\u8282\u6309\u4e0d\u540c\u5b57\u8282\u5e8f\u89e3\u91ca\uff1a - \u5927\u7aef\u5e8f\uff1a0x42_0C_CCCD = 35.2 (\u5408\u7406\u7684\u6e29\u5ea6\u503c) - \u5c0f\u7aef\u5e8f\uff1a0xCDCC_0C42 = \u975e\u5e38\u5927\u7684\u6570\u503c(\u4e0d\u5408\u7406) 2. \u7ed3\u8bba\uff1a\u8bbe\u5907\u4f7f\u7528\u5927\u7aef\u5e8f \u65b9\u6cd52\uff1a\u67e5\u770b\u8bbe\u5907\u624b\u518c \u8bbe\u5907\u6280\u672f\u6587\u6863\u901a\u5e38\u4f1a\u8bf4\u660e\uff1a - \"\u7f51\u7edc\u5b57\u8282\u5e8f\" = \u5927\u7aef\u5e8f - \"\u4e3b\u673a\u5b57\u8282\u5e8f\" = \u901a\u5e38\u662f\u5c0f\u7aef\u5e8f - \"Intel\u683c\u5f0f\" = \u5c0f\u7aef\u5e8f - \"Motorola\u683c\u5f0f\" = \u5927\u7aef\u5e8f \u65b9\u6cd53\uff1aModbusPoll\u4e2d\u7684\u9a8c\u8bc1 \u5728ModbusPoll\u4e2d\u6d4b\u8bd5\uff1a 1. Setup \u2192 Data Format \u2192 Byte Swap 2. \u89c2\u5bdf\u6570\u636e\u662f\u5426\u5408\u7406\uff1a - \u6e29\u5ea6\u5e94\u8be5\u57280-100\u00b0C\u8303\u56f4 - \u538b\u529b\u5e94\u8be5\u57280-10MPa\u8303\u56f4 - \u7535\u5bfc\u7387\u5e94\u8be5\u572810-20mS/cm\u8303\u56f4 3. \u9009\u62e9\u663e\u793a\u6b63\u786e\u6570\u503c\u7684\u5b57\u8282\u5e8f ModbusPoll\u5b57\u8282\u5e8f\u8bbe\u7f6e \u00b6 \u914d\u7f6e\u8def\u5f84 \uff1aDisplay \u2192 Data Format \u9009\u9879\u8bf4\u660e \uff1a \u25a1 Byte swap - \u4ea4\u6362\u5b57\u8282\u5e8f \u25a1 Word swap - \u4ea4\u6362\u5b57\u987a\u5e8f \u25a1 Dword swap - \u4ea4\u6362\u53cc\u5b57\u987a\u5e8f \u7ec4\u5408\u8bbe\u7f6e\u5bf9\u5e94\u4e0d\u540c\u683c\u5f0f\uff1a - \u65e0\u52fe\u9009\uff1aABCD (\u5927\u7aef\u5e8f) - Byte swap\uff1aBADC - Word swap\uff1aCDAB - Byte+Word swap\uff1aDCBA (\u5c0f\u7aef\u5e8f) \u5b9e\u9645\u5e94\u7528\u793a\u4f8b \u00b6 \u6848\u4f8b1\uff1a\u6e29\u5ea6\u8bfb\u53d6\u5f02\u5e38 \u95ee\u9898\uff1a\u8bfb\u53d6\u6e29\u5ea6\u663e\u793a\u4e3a\u51e0\u5343\u5ea6 \u539f\u56e0\uff1a\u5b57\u8282\u5e8f\u8bbe\u7f6e\u9519\u8bef \u89e3\u51b3\uff1a\u52fe\u9009\"Byte swap\"\u8c03\u6574\u5b57\u8282\u5e8f \u6848\u4f8b2\uff1a\u538b\u529b\u503c\u663e\u793a\u5f02\u5e38 \u8bfb\u53d6\u6570\u636e\uff1a12 34 56 78 \u5927\u7aef\u5e8f\u89e3\u91ca\uff1a0x12345678 = 305,419,896 (\u5f02\u5e38) \u5c0f\u7aef\u5e8f\u89e3\u91ca\uff1a0x78563412 = 2,018,915,346 (\u5f02\u5e38) \u9700\u8981Word swap\uff1a0x34127856 = 873,756,758 (\u4ecd\u5f02\u5e38) \u6b63\u786e\u8bbe\u7f6e\uff1aByte+Word swap = 0x78563412\u8f6c\u6362\u4e3a\u6d6e\u70b9\u6570 \u8c03\u8bd5\u6280\u5de7 \u00b6 \u6b65\u9aa41\uff1a\u8bb0\u5f55\u539f\u59cb\u6570\u636e \u4f7f\u7528Traffic View\u67e5\u770b\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e \u4f8b\u5982\uff1a42 0C CC CD \u6b65\u9aa42\uff1a\u624b\u52a8\u8ba1\u7b97\u9a8c\u8bc1 \u4f7f\u7528\u5728\u7ebfIEEE 754\u8f6c\u6362\u5668\uff1a - \u8f93\u5165\uff1a420CCCCD - \u8f93\u51fa\uff1a35.2000008... - \u9a8c\u8bc1\u662f\u5426\u4e3a\u5408\u7406\u6570\u503c \u6b65\u9aa43\uff1aModbusPoll\u4e2d\u6d4b\u8bd5 \u4f9d\u6b21\u5c1d\u8bd5\u56db\u79cd\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a 1. ABCD - \u539f\u59cb\u987a\u5e8f 2. BADC - Byte swap 3. CDAB - Word swap 4. DCBA - Byte+Word swap \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u8bbe\u7f6e \u5e38\u89c1\u8bbe\u5907\u5b57\u8282\u5e8f \u00b6 \u5927\u7aef\u5e8f\u8bbe\u5907\uff1a - \u65bd\u8010\u5fb7PLC - \u897f\u95e8\u5b50S7\u7cfb\u5217 - ABB\u8bbe\u5907 - \u5927\u591a\u6570\u7f51\u7edc\u8bbe\u5907 \u5c0f\u7aef\u5e8f\u8bbe\u5907\uff1a - \u4e09\u83f1PLC - \u6b27\u59c6\u9f99PLC - PC-based\u63a7\u5236\u5668 - Intel\u67b6\u6784\u8bbe\u5907 \u672c\u6559\u7a0b\u57fa\u4e8eModbusPoll v7.0.0\u7248\u672c\u7f16\u5199\uff0c\u9002\u7528\u4e8e\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u76d1\u63a7\u7cfb\u7edf\u3002\u5982\u6709\u95ee\u9898\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u8054\u7cfb\u6280\u672f\u652f\u6301\u3002","title":"ModbusPoll-v7.0.0\u4f7f\u7528\u6559\u7a0b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#modbuspoll-v700","text":"","title":"ModbusPoll v7.0.0 \u4f7f\u7528\u6559\u7a0b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_1","text":"\u8f6f\u4ef6\u4ecb\u7ecd \u5b89\u88c5\u4e0e\u542f\u52a8 \u57fa\u672c\u914d\u7f6e \u8fde\u63a5\u8bbe\u7f6e \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u6545\u969c\u6392\u9664 \u9ad8\u7ea7\u529f\u80fd","title":"\u76ee\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_2","text":"ModbusPoll\u662f\u4e00\u6b3e\u4e13\u4e1a\u7684Modbus\u4e3b\u673a\u4eff\u771f\u5668\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\uff1a - \u6d4b\u8bd5\u548c\u8c03\u8bd5Modbus\u4ece\u8bbe\u5907 - \u76d1\u63a7Modbus\u8bbe\u5907\u6570\u636e - \u9a8c\u8bc1\u8bbe\u5907\u901a\u4fe1\u534f\u8bae - \u6545\u969c\u8bca\u65ad\u548c\u6392\u9664","title":"\u8f6f\u4ef6\u4ecb\u7ecd"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_3","text":"\u652f\u6301Modbus RTU/ASCII/TCP\u534f\u8bae \u5b9e\u65f6\u6570\u636e\u76d1\u63a7 \u591a\u79cd\u6570\u636e\u683c\u5f0f\u663e\u793a \u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd \u6279\u91cf\u8bfb\u53d6\u529f\u80fd","title":"\u4e3b\u8981\u7279\u6027"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_4","text":"","title":"\u5b89\u88c5\u4e0e\u542f\u52a8"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_5","text":"Windows 7/8/10/11 .NET Framework 4.0 \u6216\u66f4\u9ad8\u7248\u672c \u81f3\u5c1150MB\u53ef\u7528\u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf\u8981\u6c42"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_6","text":"\u4e0b\u8f7dModbusPoll-v7.0.0\u5b89\u88c5\u5305 \u53f3\u952e\u70b9\u51fb\u5b89\u88c5\u5305\uff0c\u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" \u6309\u7167\u5b89\u88c5\u5411\u5bfc\u5b8c\u6210\u5b89\u88c5 \u542f\u52a8\u7a0b\u5e8f\uff1a\u5f00\u59cb\u83dc\u5355 \u2192 ModbusPoll","title":"\u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_7","text":"\u542f\u52a8\u540e\u4f1a\u663e\u793a\u4e3b\u754c\u9762\uff0c\u5305\u542b\uff1a - \u83dc\u5355\u680f\uff1a\u6587\u4ef6\u3001\u8fde\u63a5\u3001\u8bbe\u7f6e\u7b49 - \u5de5\u5177\u680f\uff1a\u5e38\u7528\u529f\u80fd\u5feb\u6377\u6309\u94ae - \u6570\u636e\u663e\u793a\u533a\u57df\uff1a\u5bc4\u5b58\u5668\u6570\u636e\u8868\u683c - \u72b6\u6001\u680f\uff1a\u8fde\u63a5\u72b6\u6001\u548c\u7edf\u8ba1\u4fe1\u606f","title":"\u9996\u6b21\u542f\u52a8"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_8","text":"","title":"\u57fa\u672c\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_9","text":"\u4e32\u53e3\u8fde\u63a5\uff08RTU/ASCII\uff09 Connection \u2192 Connect \u6216\u70b9\u51fb\u5de5\u5177\u680f\u8fde\u63a5\u56fe\u6807 \u8fde\u63a5\u53c2\u6570\u914d\u7f6e Port : \u9009\u62e9\u4e32\u53e3\uff08COM1, COM2\u7b49\uff09 Baud Rate : \u6ce2\u7279\u7387\uff08\u5e38\u75289600, 19200, 38400\uff09 Data Bits : \u6570\u636e\u4f4d\uff08\u901a\u5e38\u4e3a8\uff09 Parity : \u6821\u9a8c\u4f4d\uff08None, Even, Odd\uff09 Stop Bits : \u505c\u6b62\u4f4d\uff081\u62162\uff09 Mode : \u9009\u62e9RTU\u6216ASCII TCP\u8fde\u63a5\u8bbe\u7f6e IP Address : \u8bbe\u5907IP\u5730\u5740 Port : \u7aef\u53e3\u53f7\uff08\u9ed8\u8ba4502\uff09 Unit ID : \u4ece\u7ad9\u5730\u5740","title":"\u8fde\u63a5\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_10","text":"","title":"\u8fde\u63a5\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_11","text":"\u4ee5\u6c34\u5904\u7406\u673a\u4e3a\u4f8b\uff1a - Port: COM1 - Baud Rate: 9600 - Data Bits: 8 - Parity: None - Stop Bits: 1 - Mode: RTU - Response timeout: 1000ms - Delay between polls: 100ms","title":"\u4e32\u53e3\u8fde\u63a5\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#tcp","text":"\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u7f51\u7edc\u8fde\u63a5\uff1a - IP Address: 192.168.1.100 - Port: 502 - Unit ID: 1 - Response timeout: 3000ms - Delay between polls: 500ms","title":"TCP\u8fde\u63a5\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_12","text":"","title":"\u6570\u636e\u8bfb\u53d6\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_13","text":"Setup \u2192 Read/Write Definition \u914d\u7f6e\u8bfb\u53d6\u53c2\u6570\uff1a Slave ID : \u4ece\u7ad9\u5730\u5740\uff081-247\uff09 Function : \u529f\u80fd\u7801 01: \u8bfb\u53d6\u7ebf\u5708\u72b6\u6001 02: \u8bfb\u53d6\u8f93\u5165\u72b6\u6001 03: \u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668 04: \u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668 Address : \u8d77\u59cb\u5730\u5740 Quantity : \u8bfb\u53d6\u6570\u91cf Scan Rate : \u626b\u63cf\u9891\u7387\uff08ms\uff09","title":"\u8bbe\u7f6e\u8bfb\u53d6\u53c2\u6570"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_14","text":"\u6e29\u5ea6\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 (Read Holding Registers) - Address: 23 (0x0017) - Quantity: 2 - Scan Rate: 1000ms \u4f9b\u6db2\u538b\u529b\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 25 (0x0019) - Quantity: 2 - Scan Rate: 500ms \u6db2\u4f4d\u72b6\u6001\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 01 (Read Coils) - Address: 0x0001 - Quantity: 16 - Scan Rate: 2000ms \u7535\u5bfc\u7387\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Scan Rate: 1000ms PH\u503c\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Scan Rate: 1000ms","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u914d\u7f6e\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_15","text":"","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_16","text":"\u6839\u636e\u6c34\u5904\u7406\u8bbe\u5907\u901a\u4fe1\u534f\u8bae\u914d\u7f6e\uff1a 1. \u6e29\u5ea6\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0017\uff09 - Function: 03 - Address: 23 (0x0017) - Quantity: 2 - Data Format: Float (4\u5b57\u8282) 2. \u7535\u5bfc\u7387\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0018\uff09 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Data Format: Float 3. \u4f9b\u6db2\u538b\u529b\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0019-0x001A\uff09 - Function: 03 - Address: 25 (0x0019) - Quantity: 4 - Data Format: Float (\u4f9b\u6db2\u4e00\u3001\u4f9b\u6db2\u4e8c\u538b\u529b) 4. \u6db2\u4f4d\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001B-0x001C\uff09 - Function: 03 - Address: 27 (0x001B) - Quantity: 4 - Data Format: Float (\u50a8\u6db2\u3001\u914d\u6db2\u6db2\u4f4d) 5. PH\u503c\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001D\uff09 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Data Format: Float","title":"\u6c34\u5904\u7406\u673a\u53c2\u6570\u8bfb\u53d6"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_17","text":"Setup \u2192 Read/Write Definition \u2192 Add Multiple \u521b\u5efa\u591a\u4e2a\u8bfb\u53d6\u7ec4\uff1a - \u7ec41\uff1a\u6e29\u5ea6\u76f8\u5173\u53c2\u6570 (0x0017-0x0018) - \u7ec42\uff1a\u538b\u529b\u76f8\u5173\u53c2\u6570 (0x0019-0x001A) - \u7ec43\uff1a\u6db2\u4f4d\u76f8\u5173\u53c2\u6570 (0x001B-0x001C) - \u7ec44\uff1aPH\u503c\u53c2\u6570 (0x001D) - \u7ec45\uff1a\u72b6\u6001\u76f8\u5173\u53c2\u6570 (0x0001-0x0010)","title":"\u6279\u91cf\u8bfb\u53d6\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_18","text":"","title":"\u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_19","text":"Display \u2192 Data Format \u9009\u62e9\u5408\u9002\u7684\u663e\u793a\u683c\u5f0f\uff1a Signed/Unsigned : \u6709\u7b26\u53f7/\u65e0\u7b26\u53f7 16-bit/32-bit : \u6570\u636e\u4f4d\u6570 Hex/Decimal/Binary : \u8fdb\u5236\u663e\u793a Float : \u6d6e\u70b9\u6570\u663e\u793a","title":"\u6570\u636e\u663e\u793a\u683c\u5f0f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_20","text":"\u91cd\u8981 \uff1a\u6b63\u786e\u7684\u5b57\u8282\u5e8f\u8bbe\u7f6e\u662f\u6570\u636e\u6b63\u786e\u663e\u793a\u7684\u5173\u952e \u914d\u7f6e\u6b65\u9aa4 \uff1a 1. Display \u2192 Data Format \u2192 Advanced 2. \u5b57\u8282\u5e8f\u9009\u9879 \uff1a ``` \u25a1 Byte Swap - \u5b57\u8282\u4ea4\u6362 \u25a1 Word Swap - \u5b57\u4ea4\u6362 \u56db\u79cd\u7ec4\u5408\u5bf9\u5e94\u4e0d\u540c\u5b57\u8282\u5e8f\uff1a \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u9009\u9879\u7ec4\u5408 \u2502 \u5b57\u8282\u5e8f \u2502 \u793a\u4f8b \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u65e0\u52fe\u9009 \u2502 ABCD \u2502 42 0C CC CD \u2502 \u2502 Byte Swap \u2502 BADC \u2502 0C 42 CD CC \u2502 \u2502 Word Swap \u2502 CDAB \u2502 CC CD 42 0C \u2502 \u2502 Both \u2502 DCBA \u2502 CD CC 0C 42 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 ``` \u5b9e\u9645\u9a8c\u8bc1\u65b9\u6cd5 \uff1a \u57fa\u4e8e\u60a8\u7684\u901a\u4fe1\u6570\u636e CD CC 0C 42\uff1a 1. \u5c1d\u8bd5DCBA\u683c\u5f0f\uff1aCD CC 0C 42 \u2192 35.2\u00b0C \u2713 2. \u5176\u4ed6\u683c\u5f0f\u90fd\u4f1a\u663e\u793a\u5f02\u5e38\u503c 3. \u56e0\u6b64\u60a8\u7684\u8bbe\u5907\u4f7f\u7528DCBA\u5b57\u8282\u5e8f \u914d\u7f6e\u5efa\u8bae \uff1a - \u6c34\u5904\u7406\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5927\u7aef\u5e8f(ABCD) - PC-based\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5c0f\u7aef\u5e8f(DCBA) - \u6839\u636e\u5b9e\u9645\u6570\u636e\u9a8c\u8bc1\u9009\u62e9\u6b63\u786e\u683c\u5f0f","title":"\u5b57\u8282\u5e8f\u914d\u7f6e\u8be6\u89e3"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_21","text":"View\u83dc\u5355\u9009\u9879\uff1a - Data View: \u6570\u636e\u8868\u683c\u89c6\u56fe - Register View: \u5bc4\u5b58\u5668\u89c6\u56fe - Traffic View: \u901a\u4fe1\u6d41\u91cf\u89c6\u56fe - Error View: \u9519\u8bef\u65e5\u5fd7\u89c6\u56fe","title":"\u5b9e\u65f6\u76d1\u63a7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_22","text":"Log \u2192 Start Logging \u8bbe\u7f6e\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\u548c\u683c\u5f0f \u9009\u62e9\u8bb0\u5f55\u95f4\u9694\u548c\u6761\u4ef6 \u5f00\u59cb\u8bb0\u5f55\u6570\u636e\u53d8\u5316","title":"\u6570\u636e\u8bb0\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_23","text":"Setup \u2192 Alarm Setup \u914d\u7f6e\u544a\u8b66\u6761\u4ef6\uff1a - \u6c34\u6e29\u8d85\u9650\uff1a> 40\u00b0C \u6216 < 35\u00b0C - \u4f9b\u6db2\u538b\u529b\u5f02\u5e38\uff1a< 0.1MPa \u6216 > 0.5MPa - \u7535\u5bfc\u7387\u5f02\u5e38\uff1a< 13.0 \u6216 > 15.0 mS/cm - \u8bbe\u5907\u79bb\u7ebf\uff1a\u901a\u4fe1\u8d85\u65f6 > 5\u79d2","title":"\u544a\u8b66\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_24","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_25","text":"","title":"\u5e38\u89c1\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1","text":"\u95ee\u9898\uff1a\u65e0\u6cd5\u8fde\u63a5\u5230\u8bbe\u5907 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u4e32\u53e3/\u7f51\u7edc\u8fde\u63a5 - \u786e\u8ba4\u6ce2\u7279\u7387\u548c\u901a\u4fe1\u53c2\u6570 - \u68c0\u67e5\u8bbe\u5907\u5730\u5740\u662f\u5426\u6b63\u786e - \u9a8c\u8bc1\u7535\u7f06\u8fde\u63a5","title":"1. \u8fde\u63a5\u5931\u8d25"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2","text":"\u95ee\u9898\uff1a\u8bfb\u53d6\u6570\u636e\u5168\u4e3a0\u6216\u5f02\u5e38\u503c \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u529f\u80fd\u7801\u662f\u5426\u6b63\u786e - \u786e\u8ba4\u5bc4\u5b58\u5668\u5730\u5740 - \u68c0\u67e5\u6570\u636e\u683c\u5f0f\u8bbe\u7f6e - \u9a8c\u8bc1\u8bbe\u5907\u662f\u5426\u652f\u6301\u8be5\u529f\u80fd","title":"2. \u6570\u636e\u8bfb\u53d6\u5f02\u5e38"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3","text":"\u95ee\u9898\uff1a\u9891\u7e41\u51fa\u73b0\u901a\u4fe1\u8d85\u65f6 \u89e3\u51b3\u65b9\u6848\uff1a - \u589e\u52a0Response Timeout\u65f6\u95f4 - \u51cf\u5c11\u626b\u63cf\u9891\u7387 - \u68c0\u67e5\u7f51\u7edc\u7a33\u5b9a\u6027 - \u786e\u8ba4\u8bbe\u5907\u8d1f\u8f7d\u60c5\u51b5","title":"3. \u901a\u4fe1\u8d85\u65f6"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#4","text":"\u95ee\u9898\uff1a\u6570\u636e\u663e\u793a\u683c\u5f0f\u4e0d\u6b63\u786e \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u5b57\u8282\u5e8f\u8bbe\u7f6e\uff08\u5927\u7aef/\u5c0f\u7aef\uff09 - \u786e\u8ba4\u6570\u636e\u7c7b\u578b\uff08\u6574\u6570/\u6d6e\u70b9\uff09 - \u8c03\u6574\u6570\u636e\u4f4d\u6570\u8bbe\u7f6e - \u53c2\u8003\u8bbe\u5907\u624b\u518c\u786e\u8ba4\u683c\u5f0f","title":"4. \u6570\u636e\u683c\u5f0f\u9519\u8bef"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#5","text":"\u95ee\u9898\uff1a\u6570\u636e\u6570\u503c\u5f02\u5e38\uff08\u8fc7\u5927\u6216\u8fc7\u5c0f\uff09 \u75c7\u72b6\uff1a - \u6e29\u5ea6\u663e\u793a\u51e0\u5343\u5ea6\u6216\u8d1f\u503c - \u538b\u529b\u663e\u793a\u5f02\u5e38\u5927\u7684\u6570\u503c - \u7535\u5bfc\u7387\u663e\u793a\u4e0d\u5408\u7406\u6570\u503c \u89e3\u51b3\u6b65\u9aa4\uff1a 1. \u67e5\u770bTraffic View\u4e2d\u7684\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e 2. \u5c1d\u8bd5\u4e0d\u540c\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a - Display \u2192 Data Format \u2192 Byte Swap - Display \u2192 Data Format \u2192 Word Swap 3. \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u7ec4\u5408 4. \u9a8c\u8bc1\u591a\u4e2a\u53c2\u6570\u786e\u4fdd\u8bbe\u7f6e\u6b63\u786e \u5b9e\u4f8b\uff1a \u539f\u59cb\u6570\u636e\uff1aCD CC 0C 42 - \u9ed8\u8ba4(ABCD)\uff1a\u5f02\u5e38\u503c - Byte swap(BADC)\uff1a\u5f02\u5e38\u503c - Word swap(CDAB)\uff1a\u5f02\u5e38\u503c - Byte+Word(DCBA)\uff1a35.2\u00b0C \u2713\u6b63\u786e","title":"5. \u5b57\u8282\u5e8f\u95ee\u9898\u8bca\u65ad"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_26","text":"","title":"\u9ad8\u7ea7\u529f\u80fd"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1_1","text":"Tools \u2192 Scripting \u652f\u6301VB\u811a\u672c\u81ea\u52a8\u5316\uff1a - \u81ea\u52a8\u8fde\u63a5\u8bbe\u5907 - \u6279\u91cf\u6570\u636e\u5904\u7406 - \u6761\u4ef6\u89e6\u53d1\u64cd\u4f5c - \u62a5\u544a\u751f\u6210","title":"1. \u811a\u672c\u81ea\u52a8\u5316"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2_1","text":"File \u2192 Export Data \u652f\u6301\u591a\u79cd\u683c\u5f0f\uff1a - CSV\u6587\u4ef6 - Excel\u6587\u4ef6 - XML\u683c\u5f0f - \u81ea\u5b9a\u4e49\u683c\u5f0f","title":"2. \u6570\u636e\u5bfc\u51fa"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3_1","text":"\u53ef\u540c\u65f6\u76d1\u63a7\u591a\u4e2a\u8bbe\u5907\uff1a 1. File \u2192 New Document 2. \u914d\u7f6e\u4e0d\u540c\u8bbe\u5907\u53c2\u6570 3. Window \u2192 Tile \u5e73\u94fa\u663e\u793a 4. \u5b9e\u73b0\u591a\u8bbe\u5907\u96c6\u4e2d\u76d1\u63a7","title":"3. \u591a\u8bbe\u5907\u76d1\u63a7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#4_1","text":"View \u2192 Trend View \u529f\u80fd\u7279\u6027\uff1a - \u5b9e\u65f6\u8d8b\u52bf\u56fe\u8868 - \u5386\u53f2\u6570\u636e\u56de\u653e - \u6570\u636e\u7edf\u8ba1\u5206\u6790 - \u5f02\u5e38\u70b9\u6807\u8bb0","title":"4. \u8d8b\u52bf\u5206\u6790"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_27","text":"","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u5b9e\u6218"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_28","text":"# \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u914d\u7f6e\u793a\u4f8b \u8bbe\u5907\u4fe1\u606f : \u8bbe\u5907\u578b\u53f7 : \u6c34\u5904\u7406\u673a+\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907 \u901a\u4fe1\u65b9\u5f0f : Modbus RTU/TCP \u6ce2\u7279\u7387 : 9600 \u4ece\u7ad9\u5730\u5740 : 1 \u76d1\u63a7\u53c2\u6570 : \u6e29\u5ea6\u76d1\u63a7 : \u5730\u5740 : 0x0017 \u5355\u4f4d : \u00b0C \u544a\u8b66 : 35-40\u00b0C \u7535\u5bfc\u7387\u76d1\u63a7 : \u5730\u5740 : 0x0018 \u5355\u4f4d : mS/cm \u544a\u8b66 : 13.0-15.0 \u538b\u529b\u76d1\u63a7 : \u4f9b\u6db2\u4e00 : 0x0019 \u4f9b\u6db2\u4e8c : 0x001A \u5355\u4f4d : MPa \u544a\u8b66 : 0.1-0.5 \u6db2\u4f4d\u76d1\u63a7 : \u50a8\u6db2 : 0x001B \u914d\u6db2 : 0x001C \u5355\u4f4d : % \u544a\u8b66 : 10-90% PH\u503c\u76d1\u63a7 : \u5730\u5740 : 0x001D \u5355\u4f4d : pH \u544a\u8b66 : 6.5-7.5 \u626b\u63cf\u8bbe\u7f6e : \u6b63\u5e38\u626b\u63cf : 1000ms \u5feb\u901f\u626b\u63cf : 500ms \u6162\u901f\u626b\u63cf : 2000ms \u901a\u4fe1\u534f\u8bae\u5206\u6790 : \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e : - \u4f7f\u7528Modbus TCP\u534f\u8bae - \u529f\u80fd\u780103 (Read Holding Registers) - \u8d77\u59cb\u5730\u5740 : 0x0017 (\u6e29\u5ea6) - \u6570\u636e\u683c\u5f0f : 32\u4f4d\u6d6e\u70b9\u6570 (IEEE 754) - \u5b57\u8282\u5e8f\u5206\u6790 : * \u539f\u59cb\u6570\u636e : CD CC 0C 42 * \u9700\u8981DCBA\u5b57\u8282\u5e8f (Byte+Word Swap) * \u89e3\u6790\u7ed3\u679c : 35.2\u00b0C - \u6570\u636e\u793a\u4f8b\u9a8c\u8bc1 : * CD CC 0C 42 (\u5341\u516d\u8fdb\u5236) * \u2192 0x420CCCCD (\u91cd\u6392\u540e) * \u2192 35.2000008 (IEEE 754\u6d6e\u70b9\u6570) * \u2192 35.2\u00b0C (\u663e\u793a\u503c) \u914d\u7f6e\u8981\u70b9 : - ModbusPoll\u8bbe\u7f6e : Display \u2192 Data Format - \u52fe\u9009 : Byte Swap + Word Swap - \u6570\u636e\u7c7b\u578b : 32-bit Float - \u9a8c\u8bc1\u65b9\u6cd5 : \u89c2\u5bdf\u6e29\u5ea6\u662f\u5426\u5728\u5408\u7406\u8303\u56f4(30-50\u00b0C)","title":"\u5b8c\u6574\u76d1\u63a7\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_29","text":"' \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u72b6\u6001\u68c0\u67e5\u811a\u672c Sub CheckWaterTreatmentStatus () Dim temp , pressure1 , pressure2 , conductivity , ph ' \u8bfb\u53d6\u6e29\u5ea6 (\u5730\u574023) temp = mbPoll . ReadFloat ( 1 , 3 , 23 ) ' \u8bfb\u53d6\u538b\u529b (\u5730\u574025,26) pressure1 = mbPoll . ReadFloat ( 1 , 3 , 25 ) pressure2 = mbPoll . ReadFloat ( 1 , 3 , 26 ) ' \u8bfb\u53d6\u7535\u5bfc\u7387 (\u5730\u574024) conductivity = mbPoll . ReadFloat ( 1 , 3 , 24 ) ' \u8bfb\u53d6PH\u503c (\u5730\u574029) ph = mbPoll . ReadFloat ( 1 , 3 , 29 ) ' \u68c0\u67e5\u5f02\u5e38 If temp > 40 Or temp < 35 Then MsgBox \"\u6c34\u6e29\u5f02\u5e38: \" & temp & \"\u00b0C\" End If If pressure1 < 0.1 Or pressure1 > 0.5 Then MsgBox \"\u4f9b\u6db2\u4e00\u538b\u529b\u5f02\u5e38: \" & pressure1 & \"MPa\" End If If conductivity < 13.0 Or conductivity > 15.0 Then MsgBox \"\u7535\u5bfc\u7387\u5f02\u5e38: \" & conductivity & \"mS/cm\" End If If ph < 6.5 Or ph > 7.5 Then MsgBox \"PH\u503c\u5f02\u5e38: \" & ph End If End Sub","title":"\u81ea\u52a8\u5316\u811a\u672c\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_30","text":"","title":"\u6700\u4f73\u5b9e\u8df5\u5efa\u8bae"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1_2","text":"\u5408\u7406\u8bbe\u7f6e\u626b\u63cf\u9891\u7387\uff0c\u907f\u514d\u8fc7\u5ea6\u8f6e\u8be2 \u4f7f\u7528\u6279\u91cf\u8bfb\u53d6\u51cf\u5c11\u901a\u4fe1\u6b21\u6570 \u5b9a\u671f\u6e05\u7406\u65e5\u5fd7\u6587\u4ef6 \u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5","title":"1. \u6027\u80fd\u4f18\u5316"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2_2","text":"\u5efa\u7acb\u89c4\u8303\u7684\u53c2\u6570\u547d\u540d\u89c4\u5219 \u5b9a\u671f\u5907\u4efd\u91cd\u8981\u914d\u7f6e \u8bbe\u7f6e\u5408\u7406\u7684\u6570\u636e\u4fdd\u5b58\u5468\u671f \u5b9e\u65bd\u6570\u636e\u5b89\u5168\u63aa\u65bd","title":"2. \u6570\u636e\u7ba1\u7406"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3_2","text":"\u5b9a\u671f\u68c0\u67e5\u901a\u4fe1\u7ebf\u8def \u66f4\u65b0\u8bbe\u5907\u9a71\u52a8\u7a0b\u5e8f \u5907\u4efd\u5de5\u7a0b\u914d\u7f6e\u6587\u4ef6 \u5efa\u7acb\u6545\u969c\u5904\u7406\u6d41\u7a0b","title":"3. \u7ef4\u62a4\u5efa\u8bae"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_31","text":"","title":"\u9644\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#a-modbus","text":"01 - Read Coils (\u8bfb\u53d6\u7ebf\u5708\u72b6\u6001) 02 - Read Discrete Inputs (\u8bfb\u53d6\u79bb\u6563\u8f93\u5165) 03 - Read Holding Registers (\u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668) 04 - Read Input Registers (\u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668) 05 - Write Single Coil (\u5199\u5355\u4e2a\u7ebf\u5708) 06 - Write Single Register (\u5199\u5355\u4e2a\u5bc4\u5b58\u5668) 15 - Write Multiple Coils (\u5199\u591a\u4e2a\u7ebf\u5708) 16 - Write Multiple Registers (\u5199\u591a\u4e2a\u5bc4\u5b58\u5668)","title":"A. Modbus\u529f\u80fd\u7801\u5bf9\u7167\u8868"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#b","text":"1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200","title":"B. \u5e38\u7528\u6ce2\u7279\u7387\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#c","text":"\u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e\u7684\u5730\u5740\u6620\u5c04\uff1a \u6e29\u5ea6\uff1a0x0017 (\u5341\u8fdb\u523623) \u7535\u5bfc\u7387\uff1a0x0018 (\u5341\u8fdb\u523624) \u4f9b\u6db2\u4e00\u538b\u529b\uff1a0x0019 (\u5341\u8fdb\u523625) \u4f9b\u6db2\u4e8c\u538b\u529b\uff1a0x001A (\u5341\u8fdb\u523626) \u50a8\u6db2\u6db2\u4f4d\uff1a0x001B (\u5341\u8fdb\u523627) \u914d\u6db2\u6db2\u4f4d\uff1a0x001C (\u5341\u8fdb\u523628) PH\u503c\uff1a0x001D (\u5341\u8fdb\u523629) \u72b6\u6001\u7c7b\uff1a0x0001-0x0010 \u63a7\u5236\u7c7b\uff1a0x0020-0x0030","title":"C. \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u5e38\u7528\u5730\u5740\u6620\u5c04"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#d","text":"","title":"D. \u5927\u7aef\u5c0f\u7aef\uff08\u5b57\u8282\u5e8f\uff09\u8be6\u89e3"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_32","text":"\u5b57\u8282\u5e8f\uff08Byte Order\uff09\u662f\u6307\u591a\u5b57\u8282\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u4e3b\u8981\u6709\u4e24\u79cd\uff1a \u5927\u7aef\u5e8f\uff08Big Endian\uff09 \uff1a - \u9ad8\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u7b26\u5408\u4eba\u7c7b\u9605\u8bfb\u4e60\u60ef - \u7f51\u7edc\u4f20\u8f93\u6807\u51c6\u5b57\u8282\u5e8f \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09 \uff1a - \u4f4e\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u591a\u6570x86\u5904\u7406\u5668\u91c7\u7528 - Intel\u67b6\u6784\u9ed8\u8ba4\u5b57\u8282\u5e8f","title":"\u4ec0\u4e48\u662f\u5927\u7aef\u5c0f\u7aef\uff1f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_33","text":"\u4ee532\u4f4d\u6d6e\u70b9\u6570 35.2\u00b0C \u4e3a\u4f8b\uff1a IEEE 754 \u6d6e\u70b9\u6570\u8868\u793a\uff1a0x420C_CCCD \u5927\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) 0x1001 0x0C 0x1002 0xCC 0x1003 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) \u5c0f\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) 0x1001 0xCC 0x1002 0x0C 0x1003 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282)","title":"\u5b9e\u9645\u4f8b\u5b50\u8bf4\u660e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_34","text":"\u65b9\u6cd51\uff1a\u901a\u8fc7\u901a\u4fe1\u6570\u636e\u5206\u6790 \u4ececommdata.txt\u770b\u5230\u7684\u6570\u636e\uff1aCD CC 0C 42 1. \u5c06\u8fd94\u4e2a\u5b57\u8282\u6309\u4e0d\u540c\u5b57\u8282\u5e8f\u89e3\u91ca\uff1a - \u5927\u7aef\u5e8f\uff1a0x42_0C_CCCD = 35.2 (\u5408\u7406\u7684\u6e29\u5ea6\u503c) - \u5c0f\u7aef\u5e8f\uff1a0xCDCC_0C42 = \u975e\u5e38\u5927\u7684\u6570\u503c(\u4e0d\u5408\u7406) 2. \u7ed3\u8bba\uff1a\u8bbe\u5907\u4f7f\u7528\u5927\u7aef\u5e8f \u65b9\u6cd52\uff1a\u67e5\u770b\u8bbe\u5907\u624b\u518c \u8bbe\u5907\u6280\u672f\u6587\u6863\u901a\u5e38\u4f1a\u8bf4\u660e\uff1a - \"\u7f51\u7edc\u5b57\u8282\u5e8f\" = \u5927\u7aef\u5e8f - \"\u4e3b\u673a\u5b57\u8282\u5e8f\" = \u901a\u5e38\u662f\u5c0f\u7aef\u5e8f - \"Intel\u683c\u5f0f\" = \u5c0f\u7aef\u5e8f - \"Motorola\u683c\u5f0f\" = \u5927\u7aef\u5e8f \u65b9\u6cd53\uff1aModbusPoll\u4e2d\u7684\u9a8c\u8bc1 \u5728ModbusPoll\u4e2d\u6d4b\u8bd5\uff1a 1. Setup \u2192 Data Format \u2192 Byte Swap 2. \u89c2\u5bdf\u6570\u636e\u662f\u5426\u5408\u7406\uff1a - \u6e29\u5ea6\u5e94\u8be5\u57280-100\u00b0C\u8303\u56f4 - \u538b\u529b\u5e94\u8be5\u57280-10MPa\u8303\u56f4 - \u7535\u5bfc\u7387\u5e94\u8be5\u572810-20mS/cm\u8303\u56f4 3. \u9009\u62e9\u663e\u793a\u6b63\u786e\u6570\u503c\u7684\u5b57\u8282\u5e8f","title":"\u5982\u4f55\u786e\u5b9a\u8bbe\u5907\u5b57\u8282\u5e8f\uff1f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#modbuspoll","text":"\u914d\u7f6e\u8def\u5f84 \uff1aDisplay \u2192 Data Format \u9009\u9879\u8bf4\u660e \uff1a \u25a1 Byte swap - \u4ea4\u6362\u5b57\u8282\u5e8f \u25a1 Word swap - \u4ea4\u6362\u5b57\u987a\u5e8f \u25a1 Dword swap - \u4ea4\u6362\u53cc\u5b57\u987a\u5e8f \u7ec4\u5408\u8bbe\u7f6e\u5bf9\u5e94\u4e0d\u540c\u683c\u5f0f\uff1a - \u65e0\u52fe\u9009\uff1aABCD (\u5927\u7aef\u5e8f) - Byte swap\uff1aBADC - Word swap\uff1aCDAB - Byte+Word swap\uff1aDCBA (\u5c0f\u7aef\u5e8f)","title":"ModbusPoll\u5b57\u8282\u5e8f\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_35","text":"\u6848\u4f8b1\uff1a\u6e29\u5ea6\u8bfb\u53d6\u5f02\u5e38 \u95ee\u9898\uff1a\u8bfb\u53d6\u6e29\u5ea6\u663e\u793a\u4e3a\u51e0\u5343\u5ea6 \u539f\u56e0\uff1a\u5b57\u8282\u5e8f\u8bbe\u7f6e\u9519\u8bef \u89e3\u51b3\uff1a\u52fe\u9009\"Byte swap\"\u8c03\u6574\u5b57\u8282\u5e8f \u6848\u4f8b2\uff1a\u538b\u529b\u503c\u663e\u793a\u5f02\u5e38 \u8bfb\u53d6\u6570\u636e\uff1a12 34 56 78 \u5927\u7aef\u5e8f\u89e3\u91ca\uff1a0x12345678 = 305,419,896 (\u5f02\u5e38) \u5c0f\u7aef\u5e8f\u89e3\u91ca\uff1a0x78563412 = 2,018,915,346 (\u5f02\u5e38) \u9700\u8981Word swap\uff1a0x34127856 = 873,756,758 (\u4ecd\u5f02\u5e38) \u6b63\u786e\u8bbe\u7f6e\uff1aByte+Word swap = 0x78563412\u8f6c\u6362\u4e3a\u6d6e\u70b9\u6570","title":"\u5b9e\u9645\u5e94\u7528\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_36","text":"\u6b65\u9aa41\uff1a\u8bb0\u5f55\u539f\u59cb\u6570\u636e \u4f7f\u7528Traffic View\u67e5\u770b\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e \u4f8b\u5982\uff1a42 0C CC CD \u6b65\u9aa42\uff1a\u624b\u52a8\u8ba1\u7b97\u9a8c\u8bc1 \u4f7f\u7528\u5728\u7ebfIEEE 754\u8f6c\u6362\u5668\uff1a - \u8f93\u5165\uff1a420CCCCD - \u8f93\u51fa\uff1a35.2000008... - \u9a8c\u8bc1\u662f\u5426\u4e3a\u5408\u7406\u6570\u503c \u6b65\u9aa43\uff1aModbusPoll\u4e2d\u6d4b\u8bd5 \u4f9d\u6b21\u5c1d\u8bd5\u56db\u79cd\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a 1. ABCD - \u539f\u59cb\u987a\u5e8f 2. BADC - Byte swap 3. CDAB - Word swap 4. DCBA - Byte+Word swap \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u8bbe\u7f6e","title":"\u8c03\u8bd5\u6280\u5de7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_37","text":"\u5927\u7aef\u5e8f\u8bbe\u5907\uff1a - \u65bd\u8010\u5fb7PLC - \u897f\u95e8\u5b50S7\u7cfb\u5217 - ABB\u8bbe\u5907 - \u5927\u591a\u6570\u7f51\u7edc\u8bbe\u5907 \u5c0f\u7aef\u5e8f\u8bbe\u5907\uff1a - \u4e09\u83f1PLC - \u6b27\u59c6\u9f99PLC - PC-based\u63a7\u5236\u5668 - Intel\u67b6\u6784\u8bbe\u5907 \u672c\u6559\u7a0b\u57fa\u4e8eModbusPoll v7.0.0\u7248\u672c\u7f16\u5199\uff0c\u9002\u7528\u4e8e\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u76d1\u63a7\u7cfb\u7edf\u3002\u5982\u6709\u95ee\u9898\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u8054\u7cfb\u6280\u672f\u652f\u6301\u3002","title":"\u5e38\u89c1\u8bbe\u5907\u5b57\u8282\u5e8f"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/","text":"node-red\u5982\u4f55\u8fde\u63a5modbus slave\u8bbe\u5907 \u00b6 \u8bf4\u660e \u00b6 \u6211\u60f3\u5728node-red\u4e2d\u7528\u6d41\u7a0b\u56fe\u4e2d\u914d\u7f6emodbus master\u4e3b\u8bbe\u5907\u901a\u8fc7mocbus tcp rtu\u53bb\u8054\u63a5modbus slave\u8bbe\u5907\uff0c\u5982\u4f55\u914d\u7f6e\u5462\uff1f \u6b65\u9aa4\u4e00\uff1a\u5b89\u88c5Modbus\u76f8\u5173\u8282\u70b9 \u00b6 \u6253\u5f00Node-RED\u7f16\u8f91\u5668\uff08\u6d4f\u89c8\u5668\u8bbf\u95ee http://<\u4f60\u7684\u8bbe\u5907IP>:1880\uff09\u3002 \u70b9\u51fb\u53f3\u4e0a\u89d2\u83dc\u5355\uff0c\u9009\u62e9\u201cManage palette\uff08\u7ba1\u7406\u8c03\u8272\u677f\uff09\u201d\u3002 \u5728\u201cInstall\u201d\u6807\u7b7e\u9875\u4e2d\u641c\u7d22 node-red-contrib-modbus \uff0c\u70b9\u51fb\u201cInstall\u201d\u5b89\u88c5\u3002 \u6b65\u9aa4\u4e8c\uff1a\u6dfb\u52a0Modbus TCP/RTU\u8282\u70b9 \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5de6\u4fa7\u4f1a\u51fa\u73b0\u201cmodbus\u201d\u7c7b\u522b\u3002 \u62d6\u62fd modbus-read \u6216 modbus-write \u8282\u70b9\u5230\u6d41\u7a0b\u56fe\u4e2d\u3002 \u53cc\u51fb\u8282\u70b9\uff0c\u70b9\u51fb\u201cServer\u201d\u53f3\u4fa7\u7684\u94c5\u7b14\u56fe\u6807\uff0c\u65b0\u589eModbus\u670d\u52a1\u5668\u914d\u7f6e\u3002 \u6b65\u9aa4\u4e09\uff1a\u914d\u7f6eModbus\u4e3b\u8bbe\u5907\uff08Master\uff09 \u00b6 \u8fde\u63a5\u7c7b\u578b \uff1a \u5982\u679c\u662fTCP\uff0c\u9009\u62e9\u201cTCP\u201d\uff0c\u586b\u5199Slave\u8bbe\u5907\u7684IP\u548c\u7aef\u53e3\uff08\u901a\u5e38\u4e3a502\uff09\u3002 \u5982\u679c\u662fRTU\uff08\u4e32\u53e3\uff09\uff0c\u9009\u62e9\u201cSerial\u201d\uff0c\u586b\u5199\u4e32\u53e3\u8bbe\u5907\uff08\u5982 /dev/ttyUSB0 \uff09\u3001\u6ce2\u7279\u7387\u3001\u6570\u636e\u4f4d\u3001\u6821\u9a8c\u7b49\u53c2\u6570\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807Slave\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff09\u3002 \u5176\u4ed6\u53c2\u6570\u6309\u5b9e\u9645\u9700\u6c42\u8bbe\u7f6e\u3002 \u6b65\u9aa4\u56db\uff1a\u914d\u7f6e\u8bfb\u5199\u64cd\u4f5c \u00b6 modbus-read \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\uff08\u598203\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff09\u3001\u8d77\u59cb\u5730\u5740\u3001\u957f\u5ea6\u3001\u8f6e\u8be2\u95f4\u9694\u7b49\u3002 modbus-write \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\u3001\u76ee\u6807\u5730\u5740\u3001\u5199\u5165\u6570\u636e\u7b49\u3002 Modbus-Read\u8282\u70b9\u53c2\u6570\u586b\u5199\u8bf4\u660e \u00b6 \u540d\u79f0 \uff1a\u81ea\u5b9a\u4e49\uff0c\u4fbf\u4e8e\u8bc6\u522b\u3002 \u4e3b\u9898\uff08Topic\uff09 \uff1a\u53ef\u7559\u7a7a\u6216\u81ea\u5b9a\u4e49\uff08\u5982\u7528\u4e8e\u6d88\u606f\u5206\u6d41\u65f6\u586b\u5199\uff09\uff0c\u4e00\u822c\u9ed8\u8ba4\u5373\u53ef\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807 Modbus slave \u8bbe\u5907\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff0c\u5177\u4f53\u770b\u4f60\u7684\u8bbe\u5907\u8bbe\u7f6e\uff09\u3002 FC\uff08\u529f\u80fd\u7801\uff09 \uff1a\u9009\u62e9\u4f60\u8981\u6267\u884c\u7684Modbus\u529f\u80fd\u7801\uff0c\u5e38\u7528\u5982\u4e0b\uff1a 1\uff1a\u8bfb\u7ebf\u5708\uff08Coil Status\uff09 2\uff1a\u8bfb\u79bb\u6563\u8f93\u5165\uff08Input Status\uff09 3\uff1a\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff08Holding Registers\uff0c\u6700\u5e38\u7528\uff09 4\uff1a\u8bfb\u8f93\u5165\u5bc4\u5b58\u5668\uff08Input Registers\uff09 Address \uff1a\u8981\u8bfb\u53d6\u7684\u5bc4\u5b58\u5668\u6216\u7ebf\u5708\u7684\u8d77\u59cb\u5730\u5740\uff08\u901a\u5e38\u4ece0\u62161\u5f00\u59cb\uff0c\u5177\u4f53\u770b\u8bbe\u5907\u624b\u518c\uff09\u3002 Quantity \uff1a\u8bfb\u53d6\u7684\u6570\u91cf\uff08\u5982\u8981\u8bfb2\u4e2a\u5bc4\u5b58\u5668\u5c31\u586b2\uff09\u3002 Poll Rate \uff1a\u8f6e\u8be2\u5468\u671f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\uff08\u59821000\u8868\u793a\u6bcf\u79d2\u8bfb\u53d6\u4e00\u6b21\uff09\u3002 \u4e3e\u4f8b\uff08\u8bfb\u53d6slave\u5730\u5740\u4e3a1\uff0c\u4fdd\u6301\u5bc4\u5b58\u5668\uff0c\u8d77\u59cb\u5730\u57400\uff0c\u6570\u91cf2\uff0c\u6bcf\u79d2\u8f6e\u8be2\uff09\uff1a - Unit-Id\uff1a1 - FC\uff1a3 - Address\uff1a0 - Quantity\uff1a2 - Poll Rate\uff1a1000 \u6b65\u9aa4\u4e94\uff1a\u90e8\u7f72\u4e0e\u8c03\u8bd5 \u00b6 \u8fde\u63a5\u8282\u70b9\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u201c\u90e8\u7f72\u201d\u3002 \u67e5\u770bdebug\u9762\u677f\uff0c\u786e\u8ba4\u6570\u636e\u662f\u5426\u6b63\u5e38\u6536\u53d1\u3002 \u53c2\u8003\u793a\u4f8b \u00b6 [modbus-read] \u2192 [debug] \u5e38\u89c1\u95ee\u9898 \u00b6 \u786e\u8ba4\u7269\u7406\u8fde\u63a5\u548c\u4e32\u53e3\u6743\u9650\u3002 TCP\u6a21\u5f0f\u4e0b\u9632\u706b\u5899\u9700\u653e\u884c502\u7aef\u53e3\u3002 RTU\u6a21\u5f0f\u4e0b\u9700\u6b63\u786e\u914d\u7f6e\u4e32\u53e3\u53c2\u6570\u3002 \u5982\u9700\u66f4\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf4\u660e\uff0c\u53ef\u53c2\u8003 node-red-contrib-modbus\u5b98\u65b9\u6587\u6863","title":"node-red\u5982\u4f55\u8fde\u63a5modbus _slave\u8bbe\u5907"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#node-redmodbus-slave","text":"","title":"node-red\u5982\u4f55\u8fde\u63a5modbus slave\u8bbe\u5907"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_1","text":"\u6211\u60f3\u5728node-red\u4e2d\u7528\u6d41\u7a0b\u56fe\u4e2d\u914d\u7f6emodbus master\u4e3b\u8bbe\u5907\u901a\u8fc7mocbus tcp rtu\u53bb\u8054\u63a5modbus slave\u8bbe\u5907\uff0c\u5982\u4f55\u914d\u7f6e\u5462\uff1f","title":"\u8bf4\u660e"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus","text":"\u6253\u5f00Node-RED\u7f16\u8f91\u5668\uff08\u6d4f\u89c8\u5668\u8bbf\u95ee http://<\u4f60\u7684\u8bbe\u5907IP>:1880\uff09\u3002 \u70b9\u51fb\u53f3\u4e0a\u89d2\u83dc\u5355\uff0c\u9009\u62e9\u201cManage palette\uff08\u7ba1\u7406\u8c03\u8272\u677f\uff09\u201d\u3002 \u5728\u201cInstall\u201d\u6807\u7b7e\u9875\u4e2d\u641c\u7d22 node-red-contrib-modbus \uff0c\u70b9\u51fb\u201cInstall\u201d\u5b89\u88c5\u3002","title":"\u6b65\u9aa4\u4e00\uff1a\u5b89\u88c5Modbus\u76f8\u5173\u8282\u70b9"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus-tcprtu","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5de6\u4fa7\u4f1a\u51fa\u73b0\u201cmodbus\u201d\u7c7b\u522b\u3002 \u62d6\u62fd modbus-read \u6216 modbus-write \u8282\u70b9\u5230\u6d41\u7a0b\u56fe\u4e2d\u3002 \u53cc\u51fb\u8282\u70b9\uff0c\u70b9\u51fb\u201cServer\u201d\u53f3\u4fa7\u7684\u94c5\u7b14\u56fe\u6807\uff0c\u65b0\u589eModbus\u670d\u52a1\u5668\u914d\u7f6e\u3002","title":"\u6b65\u9aa4\u4e8c\uff1a\u6dfb\u52a0Modbus TCP/RTU\u8282\u70b9"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbusmaster","text":"\u8fde\u63a5\u7c7b\u578b \uff1a \u5982\u679c\u662fTCP\uff0c\u9009\u62e9\u201cTCP\u201d\uff0c\u586b\u5199Slave\u8bbe\u5907\u7684IP\u548c\u7aef\u53e3\uff08\u901a\u5e38\u4e3a502\uff09\u3002 \u5982\u679c\u662fRTU\uff08\u4e32\u53e3\uff09\uff0c\u9009\u62e9\u201cSerial\u201d\uff0c\u586b\u5199\u4e32\u53e3\u8bbe\u5907\uff08\u5982 /dev/ttyUSB0 \uff09\u3001\u6ce2\u7279\u7387\u3001\u6570\u636e\u4f4d\u3001\u6821\u9a8c\u7b49\u53c2\u6570\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807Slave\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff09\u3002 \u5176\u4ed6\u53c2\u6570\u6309\u5b9e\u9645\u9700\u6c42\u8bbe\u7f6e\u3002","title":"\u6b65\u9aa4\u4e09\uff1a\u914d\u7f6eModbus\u4e3b\u8bbe\u5907\uff08Master\uff09"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_2","text":"modbus-read \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\uff08\u598203\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff09\u3001\u8d77\u59cb\u5730\u5740\u3001\u957f\u5ea6\u3001\u8f6e\u8be2\u95f4\u9694\u7b49\u3002 modbus-write \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\u3001\u76ee\u6807\u5730\u5740\u3001\u5199\u5165\u6570\u636e\u7b49\u3002","title":"\u6b65\u9aa4\u56db\uff1a\u914d\u7f6e\u8bfb\u5199\u64cd\u4f5c"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus-read","text":"\u540d\u79f0 \uff1a\u81ea\u5b9a\u4e49\uff0c\u4fbf\u4e8e\u8bc6\u522b\u3002 \u4e3b\u9898\uff08Topic\uff09 \uff1a\u53ef\u7559\u7a7a\u6216\u81ea\u5b9a\u4e49\uff08\u5982\u7528\u4e8e\u6d88\u606f\u5206\u6d41\u65f6\u586b\u5199\uff09\uff0c\u4e00\u822c\u9ed8\u8ba4\u5373\u53ef\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807 Modbus slave \u8bbe\u5907\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff0c\u5177\u4f53\u770b\u4f60\u7684\u8bbe\u5907\u8bbe\u7f6e\uff09\u3002 FC\uff08\u529f\u80fd\u7801\uff09 \uff1a\u9009\u62e9\u4f60\u8981\u6267\u884c\u7684Modbus\u529f\u80fd\u7801\uff0c\u5e38\u7528\u5982\u4e0b\uff1a 1\uff1a\u8bfb\u7ebf\u5708\uff08Coil Status\uff09 2\uff1a\u8bfb\u79bb\u6563\u8f93\u5165\uff08Input Status\uff09 3\uff1a\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff08Holding Registers\uff0c\u6700\u5e38\u7528\uff09 4\uff1a\u8bfb\u8f93\u5165\u5bc4\u5b58\u5668\uff08Input Registers\uff09 Address \uff1a\u8981\u8bfb\u53d6\u7684\u5bc4\u5b58\u5668\u6216\u7ebf\u5708\u7684\u8d77\u59cb\u5730\u5740\uff08\u901a\u5e38\u4ece0\u62161\u5f00\u59cb\uff0c\u5177\u4f53\u770b\u8bbe\u5907\u624b\u518c\uff09\u3002 Quantity \uff1a\u8bfb\u53d6\u7684\u6570\u91cf\uff08\u5982\u8981\u8bfb2\u4e2a\u5bc4\u5b58\u5668\u5c31\u586b2\uff09\u3002 Poll Rate \uff1a\u8f6e\u8be2\u5468\u671f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\uff08\u59821000\u8868\u793a\u6bcf\u79d2\u8bfb\u53d6\u4e00\u6b21\uff09\u3002 \u4e3e\u4f8b\uff08\u8bfb\u53d6slave\u5730\u5740\u4e3a1\uff0c\u4fdd\u6301\u5bc4\u5b58\u5668\uff0c\u8d77\u59cb\u5730\u57400\uff0c\u6570\u91cf2\uff0c\u6bcf\u79d2\u8f6e\u8be2\uff09\uff1a - Unit-Id\uff1a1 - FC\uff1a3 - Address\uff1a0 - Quantity\uff1a2 - Poll Rate\uff1a1000","title":"Modbus-Read\u8282\u70b9\u53c2\u6570\u586b\u5199\u8bf4\u660e"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_3","text":"\u8fde\u63a5\u8282\u70b9\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u201c\u90e8\u7f72\u201d\u3002 \u67e5\u770bdebug\u9762\u677f\uff0c\u786e\u8ba4\u6570\u636e\u662f\u5426\u6b63\u5e38\u6536\u53d1\u3002","title":"\u6b65\u9aa4\u4e94\uff1a\u90e8\u7f72\u4e0e\u8c03\u8bd5"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_4","text":"[modbus-read] \u2192 [debug]","title":"\u53c2\u8003\u793a\u4f8b"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_5","text":"\u786e\u8ba4\u7269\u7406\u8fde\u63a5\u548c\u4e32\u53e3\u6743\u9650\u3002 TCP\u6a21\u5f0f\u4e0b\u9632\u706b\u5899\u9700\u653e\u884c502\u7aef\u53e3\u3002 RTU\u6a21\u5f0f\u4e0b\u9700\u6b63\u786e\u914d\u7f6e\u4e32\u53e3\u53c2\u6570\u3002 \u5982\u9700\u66f4\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf4\u660e\uff0c\u53ef\u53c2\u8003 node-red-contrib-modbus\u5b98\u65b9\u6587\u6863","title":"\u5e38\u89c1\u95ee\u9898"},{"location":"node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/","text":"Node-RED \u5e38\u7528\u7ec4\u4ef6\u5217\u8868 \u00b6 \u4ee5\u4e0b\u662f\u5e38\u7528\u7684 Node-RED \u7ec4\u4ef6\u53ca\u5176\u7248\u672c\uff0c\u5efa\u8bae\u6839\u636e\u5b9e\u9645\u9700\u6c42\u9009\u62e9\u5b89\u88c5\u3002 \u7ec4\u4ef6\u540d\u79f0 \u7248\u672c \u8bf4\u660e @node-red-contrib-themes/theme-collection 4.0.11 \u4e3b\u9898\u96c6\u5408 node-red 4.0.9 Node-RED \u4e3b\u7a0b\u5e8f node-red-contrib-aedes 0.6.0 MQTT Broker \u8282\u70b9 node-red-contrib-bigtimer 2.8.6 \u5f3a\u5927\u7684\u5b9a\u65f6\u5668\u8282\u70b9 node-red-contrib-cast 0.2.17 Google Cast \u652f\u6301 node-red-contrib-counter 0.1.6 \u8ba1\u6570\u5668\u8282\u70b9 node-red-contrib-cron-plus 2.1.0 \u9ad8\u7ea7\u5b9a\u65f6\u4efb\u52a1\u8282\u70b9 node-red-contrib-home-assistant-websocket 0.77.1 Home Assistant \u96c6\u6210 node-red-contrib-influxdb 0.7.0 InfluxDB \u6570\u636e\u5e93\u652f\u6301 node-red-contrib-interval-length 0.0.6 \u95f4\u9694\u957f\u5ea6\u8ba1\u7b97 node-red-contrib-lvin-crc16 1.0.2 CRC16 \u6821\u9a8c node-red-contrib-md5 1.0.4 MD5 \u52a0\u5bc6 node-red-contrib-modbus 5.43.0 Modbus \u534f\u8bae\u652f\u6301 node-red-contrib-moment 5.0.0 \u65f6\u95f4\u5904\u7406 node-red-contrib-mqtt-broker 0.2.9 MQTT Broker \u8282\u70b9 node-red-contrib-persistent-fsm 1.2.1 \u6709\u72b6\u6001\u673a\u8282\u70b9 node-red-contrib-sunevents 3.1.1 \u65e5\u51fa\u65e5\u843d\u4e8b\u4ef6 node-red-contrib-time-range-switch 1.2.0 \u65f6\u95f4\u8303\u56f4\u5f00\u5173 node-red-dashboard 3.6.5 \u4eea\u8868\u76d8\u7ec4\u4ef6 node-red-node-base64 1.0.0 Base64 \u7f16\u7801\u89e3\u7801 node-red-node-email 3.0.3 \u90ae\u4ef6\u53d1\u9001\u8282\u70b9 node-red-node-feedparser 0.3.0 RSS Feed \u89e3\u6790 node-red-node-ping 0.3.3 Ping \u8282\u70b9 node-red-node-random 0.4.1 \u968f\u673a\u6570\u8282\u70b9 node-red-node-serialport 2.0.3 \u4e32\u53e3\u8282\u70b9 node-red-node-smooth 0.1.2 \u5e73\u6ed1\u6570\u636e\u8282\u70b9 node-red-node-suncalc 1.2.0 \u592a\u9633\u8ba1\u7b97\u8282\u70b9 node-red-node-twitter 1.2.0 Twitter \u96c6\u6210 \u5982\u9700\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\uff0c\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u793e\u533a\u6559\u7a0b\u3002","title":"node-red\u5e38\u7528\u7ec4\u4ef6\u5217\u8868"},{"location":"node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/#node-red","text":"\u4ee5\u4e0b\u662f\u5e38\u7528\u7684 Node-RED \u7ec4\u4ef6\u53ca\u5176\u7248\u672c\uff0c\u5efa\u8bae\u6839\u636e\u5b9e\u9645\u9700\u6c42\u9009\u62e9\u5b89\u88c5\u3002 \u7ec4\u4ef6\u540d\u79f0 \u7248\u672c \u8bf4\u660e @node-red-contrib-themes/theme-collection 4.0.11 \u4e3b\u9898\u96c6\u5408 node-red 4.0.9 Node-RED \u4e3b\u7a0b\u5e8f node-red-contrib-aedes 0.6.0 MQTT Broker \u8282\u70b9 node-red-contrib-bigtimer 2.8.6 \u5f3a\u5927\u7684\u5b9a\u65f6\u5668\u8282\u70b9 node-red-contrib-cast 0.2.17 Google Cast \u652f\u6301 node-red-contrib-counter 0.1.6 \u8ba1\u6570\u5668\u8282\u70b9 node-red-contrib-cron-plus 2.1.0 \u9ad8\u7ea7\u5b9a\u65f6\u4efb\u52a1\u8282\u70b9 node-red-contrib-home-assistant-websocket 0.77.1 Home Assistant \u96c6\u6210 node-red-contrib-influxdb 0.7.0 InfluxDB \u6570\u636e\u5e93\u652f\u6301 node-red-contrib-interval-length 0.0.6 \u95f4\u9694\u957f\u5ea6\u8ba1\u7b97 node-red-contrib-lvin-crc16 1.0.2 CRC16 \u6821\u9a8c node-red-contrib-md5 1.0.4 MD5 \u52a0\u5bc6 node-red-contrib-modbus 5.43.0 Modbus \u534f\u8bae\u652f\u6301 node-red-contrib-moment 5.0.0 \u65f6\u95f4\u5904\u7406 node-red-contrib-mqtt-broker 0.2.9 MQTT Broker \u8282\u70b9 node-red-contrib-persistent-fsm 1.2.1 \u6709\u72b6\u6001\u673a\u8282\u70b9 node-red-contrib-sunevents 3.1.1 \u65e5\u51fa\u65e5\u843d\u4e8b\u4ef6 node-red-contrib-time-range-switch 1.2.0 \u65f6\u95f4\u8303\u56f4\u5f00\u5173 node-red-dashboard 3.6.5 \u4eea\u8868\u76d8\u7ec4\u4ef6 node-red-node-base64 1.0.0 Base64 \u7f16\u7801\u89e3\u7801 node-red-node-email 3.0.3 \u90ae\u4ef6\u53d1\u9001\u8282\u70b9 node-red-node-feedparser 0.3.0 RSS Feed \u89e3\u6790 node-red-node-ping 0.3.3 Ping \u8282\u70b9 node-red-node-random 0.4.1 \u968f\u673a\u6570\u8282\u70b9 node-red-node-serialport 2.0.3 \u4e32\u53e3\u8282\u70b9 node-red-node-smooth 0.1.2 \u5e73\u6ed1\u6570\u636e\u8282\u70b9 node-red-node-suncalc 1.2.0 \u592a\u9633\u8ba1\u7b97\u8282\u70b9 node-red-node-twitter 1.2.0 Twitter \u96c6\u6210 \u5982\u9700\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\uff0c\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u793e\u533a\u6559\u7a0b\u3002","title":"Node-RED \u5e38\u7528\u7ec4\u4ef6\u5217\u8868"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/","text":"\u5982\u4f55\u5b89\u88c5node-red\u5b89\u88c5\u5230orangepi Zero3 \u00b6 \u64cd\u4f5c\u7cfb\u7edf \u00b6 \u57fa\u4e8eubuntu\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684orangepizero3\u5b9a\u5236\u7248 \u5b89\u88c5\u6b65\u9aa4 \u00b6 1. \u66f4\u65b0\u7cfb\u7edf \u00b6 \u5728\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u786e\u4fdd\u7cfb\u7edf\u4e3a\u6700\u65b0\uff1a sudo apt-get update && sudo apt-get upgrade -y 2. \u5b89\u88c5Node-RED \u00b6 Node-RED\u5b98\u65b9\u63d0\u4f9b\u4e86\u4e00\u952e\u5b89\u88c5\u811a\u672c\uff0c\u9002\u7528\u4e8eDebian/Ubuntu\u7cfb\u7edf\uff1a bash < ( curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered ) \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u53ef\u6839\u636e\u63d0\u793a\u9009\u62e9\u201cy\u201d\u7ee7\u7eed\u3002 3. \u542f\u52a8\u4e0e\u505c\u6b62Node-RED \u00b6 \u542f\u52a8\uff1a bash node-red-start \u505c\u6b62\uff1a bash node-red-stop \u67e5\u770b\u65e5\u5fd7\uff1a bash node-red-log 4. \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f \u00b6 \u901a\u5e38\u5b89\u88c5\u811a\u672c\u4f1a\u81ea\u52a8\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\uff0c\u5982\u9700\u624b\u52a8\u8bbe\u7f6e\uff1a sudo systemctl enable nodered.service 5. \u8bbf\u95eeNode-RED \u00b6 \u5728\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a http://<\u4f60\u7684OrangePi\u7684IP\u5730\u5740>:1880 \u53ef\u7528 hostname -I \u6216 ip a \u547d\u4ee4\u67e5\u8be2IP\u5730\u5740 sudo systemctl status nodered.service sudo systemctl start nodered.service sudo systemctl stop nodered.service sudo systemctl restart nodered.service \u5982\u4f55\u5b89\u88c5\u63d2\u4ef6 \u00b6 \u5982\u4f55\u8fdb\u5165\u63d2\u4ef6\u7ba1\u7406 \u00b6 \u5982\u4f55\u5b89\u88c5MQTT\u63d2\u4ef6 \u00b6","title":"\u5982\u4f55\u628anode-red\u5b89\u88c5\u5230orangepiZero"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#node-redorangepi-zero3","text":"","title":"\u5982\u4f55\u5b89\u88c5node-red\u5b89\u88c5\u5230orangepi Zero3"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_1","text":"\u57fa\u4e8eubuntu\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684orangepizero3\u5b9a\u5236\u7248","title":"\u64cd\u4f5c\u7cfb\u7edf"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_2","text":"","title":"\u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#1","text":"\u5728\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u786e\u4fdd\u7cfb\u7edf\u4e3a\u6700\u65b0\uff1a sudo apt-get update && sudo apt-get upgrade -y","title":"1. \u66f4\u65b0\u7cfb\u7edf"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#2-node-red","text":"Node-RED\u5b98\u65b9\u63d0\u4f9b\u4e86\u4e00\u952e\u5b89\u88c5\u811a\u672c\uff0c\u9002\u7528\u4e8eDebian/Ubuntu\u7cfb\u7edf\uff1a bash < ( curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered ) \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u53ef\u6839\u636e\u63d0\u793a\u9009\u62e9\u201cy\u201d\u7ee7\u7eed\u3002","title":"2. \u5b89\u88c5Node-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#3-node-red","text":"\u542f\u52a8\uff1a bash node-red-start \u505c\u6b62\uff1a bash node-red-stop \u67e5\u770b\u65e5\u5fd7\uff1a bash node-red-log","title":"3. \u542f\u52a8\u4e0e\u505c\u6b62Node-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#4","text":"\u901a\u5e38\u5b89\u88c5\u811a\u672c\u4f1a\u81ea\u52a8\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\uff0c\u5982\u9700\u624b\u52a8\u8bbe\u7f6e\uff1a sudo systemctl enable nodered.service","title":"4. \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#5-node-red","text":"\u5728\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a http://<\u4f60\u7684OrangePi\u7684IP\u5730\u5740>:1880 \u53ef\u7528 hostname -I \u6216 ip a \u547d\u4ee4\u67e5\u8be2IP\u5730\u5740 sudo systemctl status nodered.service sudo systemctl start nodered.service sudo systemctl stop nodered.service sudo systemctl restart nodered.service","title":"5. \u8bbf\u95eeNode-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_3","text":"","title":"\u5982\u4f55\u5b89\u88c5\u63d2\u4ef6"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_4","text":"","title":"\u5982\u4f55\u8fdb\u5165\u63d2\u4ef6\u7ba1\u7406"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#mqtt","text":"","title":"\u5982\u4f55\u5b89\u88c5MQTT\u63d2\u4ef6"},{"location":"node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/","text":"unning Node-RED install for user orangepi at /home/orangepi on ubuntu [sudo] password for orangepi: This can take 20-30 minutes on the slower Pi versions - please wait. Stop Node-RED \u2714 Remove old version of Node-RED \u2714 Remove old version of Node.js \u2714 Install Node 20.19.3-1nodesource1 \u2714 v20.19.3 Npm 10.8.2 Clean npm cache \u2714 Install Node-RED core \u2714 4.0.9 Move global nodes to local - Npm rebuild existing nodes \u2714 Install extra Pi nodes \u2714 Add shortcut commands \u2718 Update systemd script \u2714 Any errors will be logged to /var/log/nodered-install.log All done. You can now start Node-RED with the command node-red-start or using the icon under Menu / Programming / Node-RED Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880 Started : Wed Jul 9 12:28:33 PM CST 2025 Finished: Wed Jul 9 12:37:17 PM CST 2025 ### WARNING DO NOT EXPOSE NODE-RED TO THE OPEN INTERNET WITHOUT SECURING IT FIRST Even if your Node-RED doesn't have anything valuable, (automated) attacks will happen and could provide a foothold in your local network Follow the guide at https://nodered.org/docs/user-guide/runtime/securing-node-red to setup security. ### ADDITIONAL RECOMMENDATIONS You can customise the initial settings by running: node-red admin init Node-RED Settings File initialisation ===================================== This tool will help you create a Node-RED settings file. \u2716 Settings file \u00b7 /home/orangepi/.node-red/settings.js orangepi@orangepizero3:~$ ^C orangepi@orangepizero3:~$","title":"\u5b89\u88c5node-red\u8bb0\u5f55"}]} |
| | | {"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"HomeAssistant\u672c\u5730\u90e8\u7f72\u53ca\u88c5\u8c03\u8bd5\u8bf4\u660e \u00b6 \u7b80\u8981\u8bf4\u660e \u5b89\u88c5HomeAssistant linux \u4e0b\u5b89\u88c5","title":"\u9996\u9875"},{"location":"#homeassistant","text":"\u7b80\u8981\u8bf4\u660e \u5b89\u88c5HomeAssistant linux \u4e0b\u5b89\u88c5","title":"HomeAssistant\u672c\u5730\u90e8\u7f72\u53ca\u88c5\u8c03\u8bd5\u8bf4\u660e"},{"location":"about/","text":"\u5173\u4e8e\u6211\u4eec \u00b6 \u5cb1\u7279\u667a\u80fd\u79d1\u6280\uff08\u4e0a\u6d77\uff09\u6709\u9650\u516c\u53f8 \u00b6 \u6570\u636e\u6d41\u52a8\u4e4b\u5904\uff0c\u6548\u7387\u81ea\u7136\u53d1\u751f\u3002 \u00b6 DATA\u4ee3\u8868\u611f\u77e5\u3001\u8fde\u63a5\u4e0e\u667a\u80fd\u3002\u5728\u7e41\u6742\u7684\u533b\u7597\u6570\u636e\u4e2d\uff0c\u4e00\u573a\u6570\u5b57\u5316\u9769\u547d\u6b63\u5728\u53d1\u751f\uff0c\u6211\u4eec\u5b88\u62a4\u7684\u4e0d\u6b62\u662f\u6570\u636e\uff0c\u66f4\u662f\u60a3\u8005\u7684\u6bcf\u4e00\u5206\u949f\u3002\u5cb1\u7279\u667a\u80fd\u2013\u8ba9\u6bcf\u4e00\u53f0\u8bbe\u5907\u6210\u4e3a\u667a\u6167\u533b\u7597\u7684\u795e\u7ecf\u5143\u3002 25\u5e74\u533b\u7597\u4fe1\u606f\u5316\u6df1\u8015\u8005\uff0c\u56e2\u961f\u81ea2000\u5e74\u8d77\u6301\u7eed\u63a2\u7d22\u4fe1\u606f\u5316\u5728\u533b\u7597\u573a\u666f\u7684\u6df1\u5ea6\u5e94\u7528 \u00b6 \u6700\u4f73\u5b9e\u8df5\uff1a\u670d\u52a1\u5168\u7403\u8d85\u8fc7600+\u533b\u7597\u673a\u6784\uff0c\u7eed\u7ea6\u7387\u8d8597% \u5168\u7403\u670d\u52a1\uff1a\u72ec\u7acb\u7684\u82f1/\u65e5/\u9a6c\u6765\u8bed\u7248\u672c\uff0c\u9002\u914d\u5f53\u5730\u4e34\u5e8a\u8def\u5f84 \u6784\u5efa\u6807\u51c6\uff1a\u4e3b\u5bfc\u5236\u5b9a\u591a\u9879\u6807\u51c6\uff0c\u300c\u8840\u6db2\u900f\u6790\u8f6f\u4ef6\u6280\u672f\u8981\u6c42\u300d \u6570\u636e\u4e3b\u6743\uff1a\u5373\u4f7f\u7ec8\u6b62\u5408\u4f5c\uff0c\u4ecd\u7136\u4fdd\u8bc1\u7528\u6237\u4e0d\u53d7\u9650\u5236\u7684\u8bbf\u95ee \u56de\u5f52\u672c\u8d28 \u00b6 \u4e0d\u662f\u7528\u6280\u672f\u66ff\u4ee3\u4eba,\u800c\u662f\u8ba9\u800c\u662f\u8ba9\u4eba\u4ece\u91cd\u590d\u52b3\u52a8\u4e2d\u89e3\u653e\uff0c\u56de\u5f52\u533b\u7597\u670d\u52a1\u7684\u672c\u8d28\u3002 \u77e5\u8bc6\u53cd\u54fa \u00b6 \u57fa\u5c42\u533b\u9662\u6848\u4f8b\u81ea\u52a8\u6c89\u6dc0\u4e3a\u4e09\u7532\u4f18\u5316\u7b56\u7565\uff0c\u8bc6\u522b\u79d1\u5ba4\u5de5\u4f5c\u6d41\u5dee\u5f02\uff0c\u751f\u6210\u5b9a\u5236\u65b9\u6848\u3002 \u5f00\u653e\u751f\u6001 \u00b6 \u5f00\u653eAPI\uff0c\u96c6\u6210100+\u7b2c\u4e09\u65b9\u89e3\u51b3\u65b9\u6848\uff0c\u5171\u5efa\u533b\u7597\u6570\u636e\u4ea4\u4e92\u6807\u51c6\u3002 \u4e3a\u60a8\u6784\u5efa\u53ef\u751f\u957f\u7684\u6280\u672f\u751f\u6001\u548c\u53ef\u6301\u7eed\u7684\u4e1a\u52a1 \u00b6 \u50cf\u642d\u79ef\u6728\u822c\u81ea\u7531\u6269\u5c55\uff0c\u7834\u9664\u201d\u6570\u5b57\u5316=\u9ad8\u6295\u5165\uff0c\u4ece\u57fa\u7840\u7269\u8054\u5230AI\u51b3\u7b56\uff0c\u5206\u9636\u6bb5\u5efa\u8bbe\u907f\u514d\u4e00\u6b21\u6027\u8fc7\u8f7d\u6295\u5165\u3002\u4e0d\u662f\u63a8\u7ffb\u91cd\u5efa\u7cfb\u7edf\uff0c\u800c\u662f\u8ba9\u73b0\u6709\u8d44\u4ea7\u6301\u7eed\u4ea7\u751f\u6307\u6570\u7ea7\u4ef7\u503c\u2014\u2014\u8fd9\u624d\u662f\u533b\u7597\u6570\u5b57\u5316\u7684\u7ec8\u6781\u4f7f\u547d\u3002","title":"\u5173\u4e8e"},{"location":"about/#_1","text":"","title":"\u5173\u4e8e\u6211\u4eec"},{"location":"about/#_2","text":"","title":"\u5cb1\u7279\u667a\u80fd\u79d1\u6280\uff08\u4e0a\u6d77\uff09\u6709\u9650\u516c\u53f8"},{"location":"about/#_3","text":"DATA\u4ee3\u8868\u611f\u77e5\u3001\u8fde\u63a5\u4e0e\u667a\u80fd\u3002\u5728\u7e41\u6742\u7684\u533b\u7597\u6570\u636e\u4e2d\uff0c\u4e00\u573a\u6570\u5b57\u5316\u9769\u547d\u6b63\u5728\u53d1\u751f\uff0c\u6211\u4eec\u5b88\u62a4\u7684\u4e0d\u6b62\u662f\u6570\u636e\uff0c\u66f4\u662f\u60a3\u8005\u7684\u6bcf\u4e00\u5206\u949f\u3002\u5cb1\u7279\u667a\u80fd\u2013\u8ba9\u6bcf\u4e00\u53f0\u8bbe\u5907\u6210\u4e3a\u667a\u6167\u533b\u7597\u7684\u795e\u7ecf\u5143\u3002","title":"\u6570\u636e\u6d41\u52a8\u4e4b\u5904\uff0c\u6548\u7387\u81ea\u7136\u53d1\u751f\u3002"},{"location":"about/#252000","text":"\u6700\u4f73\u5b9e\u8df5\uff1a\u670d\u52a1\u5168\u7403\u8d85\u8fc7600+\u533b\u7597\u673a\u6784\uff0c\u7eed\u7ea6\u7387\u8d8597% \u5168\u7403\u670d\u52a1\uff1a\u72ec\u7acb\u7684\u82f1/\u65e5/\u9a6c\u6765\u8bed\u7248\u672c\uff0c\u9002\u914d\u5f53\u5730\u4e34\u5e8a\u8def\u5f84 \u6784\u5efa\u6807\u51c6\uff1a\u4e3b\u5bfc\u5236\u5b9a\u591a\u9879\u6807\u51c6\uff0c\u300c\u8840\u6db2\u900f\u6790\u8f6f\u4ef6\u6280\u672f\u8981\u6c42\u300d \u6570\u636e\u4e3b\u6743\uff1a\u5373\u4f7f\u7ec8\u6b62\u5408\u4f5c\uff0c\u4ecd\u7136\u4fdd\u8bc1\u7528\u6237\u4e0d\u53d7\u9650\u5236\u7684\u8bbf\u95ee","title":"25\u5e74\u533b\u7597\u4fe1\u606f\u5316\u6df1\u8015\u8005\uff0c\u56e2\u961f\u81ea2000\u5e74\u8d77\u6301\u7eed\u63a2\u7d22\u4fe1\u606f\u5316\u5728\u533b\u7597\u573a\u666f\u7684\u6df1\u5ea6\u5e94\u7528"},{"location":"about/#_4","text":"\u4e0d\u662f\u7528\u6280\u672f\u66ff\u4ee3\u4eba,\u800c\u662f\u8ba9\u800c\u662f\u8ba9\u4eba\u4ece\u91cd\u590d\u52b3\u52a8\u4e2d\u89e3\u653e\uff0c\u56de\u5f52\u533b\u7597\u670d\u52a1\u7684\u672c\u8d28\u3002","title":"\u56de\u5f52\u672c\u8d28"},{"location":"about/#_5","text":"\u57fa\u5c42\u533b\u9662\u6848\u4f8b\u81ea\u52a8\u6c89\u6dc0\u4e3a\u4e09\u7532\u4f18\u5316\u7b56\u7565\uff0c\u8bc6\u522b\u79d1\u5ba4\u5de5\u4f5c\u6d41\u5dee\u5f02\uff0c\u751f\u6210\u5b9a\u5236\u65b9\u6848\u3002","title":"\u77e5\u8bc6\u53cd\u54fa"},{"location":"about/#_6","text":"\u5f00\u653eAPI\uff0c\u96c6\u6210100+\u7b2c\u4e09\u65b9\u89e3\u51b3\u65b9\u6848\uff0c\u5171\u5efa\u533b\u7597\u6570\u636e\u4ea4\u4e92\u6807\u51c6\u3002","title":"\u5f00\u653e\u751f\u6001"},{"location":"about/#_7","text":"\u50cf\u642d\u79ef\u6728\u822c\u81ea\u7531\u6269\u5c55\uff0c\u7834\u9664\u201d\u6570\u5b57\u5316=\u9ad8\u6295\u5165\uff0c\u4ece\u57fa\u7840\u7269\u8054\u5230AI\u51b3\u7b56\uff0c\u5206\u9636\u6bb5\u5efa\u8bbe\u907f\u514d\u4e00\u6b21\u6027\u8fc7\u8f7d\u6295\u5165\u3002\u4e0d\u662f\u63a8\u7ffb\u91cd\u5efa\u7cfb\u7edf\uff0c\u800c\u662f\u8ba9\u73b0\u6709\u8d44\u4ea7\u6301\u7eed\u4ea7\u751f\u6307\u6570\u7ea7\u4ef7\u503c\u2014\u2014\u8fd9\u624d\u662f\u533b\u7597\u6570\u5b57\u5316\u7684\u7ec8\u6781\u4f7f\u547d\u3002","title":"\u4e3a\u60a8\u6784\u5efa\u53ef\u751f\u957f\u7684\u6280\u672f\u751f\u6001\u548c\u53ef\u6301\u7eed\u7684\u4e1a\u52a1"},{"location":"Usages/usage/","text":"\u4f7f\u7528\u6559\u7a0b \u00b6 \u57fa\u7840\u914d\u7f6e \u00b6 \u914d\u7f6e\u7f51\u7edc \u521d\u59cb\u5316\u914d\u7f6e \u5fc5\u88c5\u63d2\u4ef6\u6216\u7ec4\u4ef6 \u00b6 - HACS \u00b6","title":"\u4f7f\u7528\u6982\u8ff0"},{"location":"Usages/usage/#_1","text":"","title":"\u4f7f\u7528\u6559\u7a0b"},{"location":"Usages/usage/#_2","text":"\u914d\u7f6e\u7f51\u7edc \u521d\u59cb\u5316\u914d\u7f6e","title":"\u57fa\u7840\u914d\u7f6e"},{"location":"Usages/usage/#_3","text":"","title":"\u5fc5\u88c5\u63d2\u4ef6\u6216\u7ec4\u4ef6"},{"location":"Usages/usage/#-hacs","text":"","title":"- HACS"},{"location":"Usages/QA/HA-%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E7%8A%B6%E6%80%81%E5%8F%8D%E8%BD%AC/","text":"\u9996\u5148\uff0c\u5728\u5c0f\u7c73\u7684\u8bbe\u5907\u91cc\uff0c\u627e\u5230\u4f60\u8981\u53cd\u8f6c\u72b6\u8bb0\u7684\u4f20\u611f\u5668\u7684 ID, \u4ee5\u5927\u8fde\u4e3a\u4f8b\uff0c\u51b0\u7bb1\u95e8\u7684\u4f20\u611f\u5668\u72b6\u6001\u662f\u53cd\u7684\uff0c\u95e8\u5f00\u65f6\u663e\u793a\u5173\u7684\uff0c\u95e8\u5173\u65f6\u663e\u793a\u5f00\u7684\uff0c\u9700\u8981\u53cd\u8f6c\u663e \u6cd5\uff0c\u6b64\u8bbe\u5907\u7684\u4f20\u611f\u5668 ID \u4e3a\uff1a \u201cbinary_sensor.isa_cn_blt_3_1lqaf2rrgco01_dw2hl_contact_state_p_2_2 \u8bb0\u4f4f\u8fd9\u4e2a ID \u627e\u5230\u914d\u7f6e\u6587\u4ef6 \u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u683c\u5f0f\u7684\u4f20\u611f\u5668\u53cd\u8f6c\u914d\u7f6e\uff0c\u6ce8\u610f\uff0c\u6b64\u914d\u7f6e\u8981\u4e25\u683c\u9075\u5b88 YML \u683c\u5f0f\uff0c\u4e0d\u61c2 \u7684\u53ef\u4ee5\u767e\u5ea6\u5b66\u4e00\u4e0b\uff0c \u5185\u5bb9\u4e3a\uff1a - binary_sensor: - name: \"\u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c)\" unique_id: \"reversed_\u5927\u8fde\u51b0\u7bb1\u95e8_1\" state: > {{ is_state('binary_sensor.isa_cn_blt_3_1lqaf2rrgco01_dw2hl_contact_state_p_2_2', 'off') }} \u6ce8\u610f\uff0cstate \u540e\u9762\u7684\u683c\u5f0f\u8981\u5bf9\uff0c\u4f20\u611f\u5668 ID \u8981\u6362\u6210\u521a\u8bb0\u4e0b\u7684\u4f20\u611f\u5668 ID \u8fd9\u6837\u4f60\u5c31\u591a\u4e86\u4e00\u4e2a\u540d\u79f0\u4e3a\uff1a\u201c\u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c)\u201d\u7684\u4f20\u611f\u5668 \u7136\u540e\uff0c\u5230\u4eea\u8868\u76d8\uff0c\u5bf9\u5e94\u7684\u7ec4\u4ef6\u4e2d \u9009\u4e2d \u5927\u8fde\u51b0\u7bb1\u95e8-1 (\u72b6\u6001\u53cd\u8f6c) \u4fdd\u5b58\u5373\u53ef \u8fd9\u6837\u5c31\u5b9e\u73b0\u4e86\u53cd\u8f6c\uff0c\u4eea\u8868\u76d8\u4e2d\uff0c\u4e0d\u8981\u518d\u4f7f\u7528\u539f\u6765\u7684 ID\uff0c\u8981\u4f7f\u7528\u4f60\u914d\u7f6e\u6587\u4ef6\u4e2d\u65b0\u589e\u7684 id \u6ce8\u610f\uff1a \u5982\u679c\uff0c\u72b6\u6001\u6ca1\u6709\u53cd\u8f6c\uff0c\u53ef\u4ee5\u4ece\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u4f20\u611f\u5668\u7684\u72b6\u6001\uff0c\u786e\u8ba4\u662f\u5426\u6b63\u786e\u53cd\u8f6c\u3002","title":"HA-\u5982\u4f55\u5b9e\u73b0\u72b6\u6001\u53cd\u8f6c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/","text":"TQS-88 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a-\u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c \u00b6 \u6ce8\u610f\u4e8b\u9879 \u00b6 \u5728\u5f00\u59cb\u4f7f\u7528\u900f\u6790\u673a\u524d\u8bf7\u4ed4\u7ec6\u9605\u8bfb\u672c\u64cd\u4f5c\u624b\u518c\u3002 \u4efb\u4f55\u4e0d\u5f53\u64cd\u4f5c\u90fd\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e8b\u6545\u3002\u4f7f\u7528\u7b26\u5408\u672c\u8bf4\u660e\u7684\u900f\u6790\u673a\u3002 \u8bf7\u5c06\u672c\u64cd\u4f5c\u624b\u518c\u7f6e\u4e8e\u6613\u4e8e\u83b7\u53d6\u7684\u4f4d\u7f6e\uff0c\u4ee5\u4fbf\u5728\u9700\u8981\u65f6\u53ef\u968f\u65f6\u53c2\u9605\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u65e8\u5728\u4e3a\u64cd\u4f5c\u4eba\u5458\u63d0\u4f9b\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u4e3b\u8981\u6db5\u76d6\u4ee5\u4e0b\u6709\u5173\"\u6570\u636e\u901a\u4fe1\"\u7684\u5185\u5bb9\uff1a 1. \u89c4\u683c 2. \u4e0ePC\u7684\u8fde\u63a5 \u6b63\u6587\u4e2d\u8b66\u793a\u5b9a\u4e49\u5982\u4e0b\uff1a - \u6ce8\u610f \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4f7f\u7528\u8bf4\u660e\u3002\u60a8\u5fc5\u987b\u9075\u5b88\u4f7f\u7528\u8bf4\u660e\u3002 - \u9644\u6ce8 \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4e3a\u4e86\u8ba9\u60a8\u589e\u8fdb\u7406\u89e3\u7684\u6709\u7528\u4fe1\u606f\u6216\u8865\u5145\u8bf4\u660e\u4e8b\u9879\u3002 \u7b80\u4ecb \u00b6 \u64cd\u4f5c\u6b64\u9009\u914d\u4ef6\uff08\"\u6570\u636e\u901a\u4fe1\"\u529f\u80fd\uff09\u65f6\uff0c\u8bf7\u52a1\u5fc5\u5145\u5206\u7406\u89e3\u548c\u7279\u522b\u6ce8\u610f\u4ee5\u4e0b\u4e8b\u9879\u3002\u4f7f\u7528\u524d\u5fc5\u987b\u5145\u5206\u4e86\u89e3\u5185\u5bb9\u3002 1. \u64cd\u4f5c\u624b\u518c \u00b6 (1) \u672c\u64cd\u4f5c\u624b\u518c\u4ecb\u7ecd\u4e86\u6b63\u786e\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u548c\u5b89\u5168\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u5e76\u975e\u65e8\u5728\u8bf4\u660e\u5bf9\u60a3\u8005\u7684\u6cbb\u7597\u3002 (2) \u53ea\u6709\u4ed4\u7ec6\u9605\u8bfb\u5e76\u5145\u5206\u7406\u89e3\u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u6240\u542b\u7684\u8bf4\u660e\u540e\uff0c\u624d\u80fd\u4f7f\u7528\u8bbe\u5907\u5e76\u8fdb\u884c\u64cd\u4f5c\u4ee5\u53ca\u7ef4\u62a4\u3002 (3) \u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u5b89\u5168\u6ce8\u610f\u4e8b\u9879\u9002\u7528\u4e8e\u8fdb\u884c\u7279\u5b9a\u76ee\u7684\u7684\"\u6570\u636e\u901a\u4fe1\"\u4f7f\u7528\u3002\u8bf7\u52ff\u5c1d\u8bd5\u4ee5\u672c\u624b\u518c\u4e2d\u6240\u5217\u4ee5\u5916\u7684\u4efb\u4f55\u65b9\u5f0f\u4f7f\u7528\u8bbe\u5907\u3002 \u672c\u624b\u518c\u7684\u5185\u5bb9\u53d7\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u7248\u6743\u4fdd\u62a4\uff0c\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002\u672a\u7ecf\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4e8b\u5148\u4e66\u9762\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u4efb\u4f55\u5f62\u5f0f\u590d\u5236\u3001\u8f6c\u8f7d\u672c\u624b\u518c\u4e2d\u7684\u4efb\u4f55\u5185\u5bb9\uff0c\u6216\u5c06\u5176\u8bd1\u4e3a\u5176\u4ed6\u8bed\u8a00\u3002 2. \u8d23\u4efb\u9650\u5236 \u00b6 \u6211\u4eec\u5e0c\u671b\u60a8\u4e8b\u524d\u4e86\u89e3\uff0c\u5bf9\u7531\u4e8e\u64cd\u4f5c\u6b64\u900f\u6790\u673a\u6240\u9020\u6210\u7684\u4efb\u4f55\u53ef\u80fd\u7684\u635f\u5bb3\u6216\u5229\u76ca\u635f\u5931\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u8bf7\u52ff\u62c6\u5378\u6216\u6539\u9020\u900f\u6790\u673a\uff0c\u5426\u5219\u5c06\u4e0d\u5728\u5236\u9020\u5546\u4fdd\u4fee\u8303\u56f4\u4e4b\u5185\u3002 \u7531\u4e8e\u5ba2\u6237\u62c6\u5378\u3001\u6539\u9020\u3001\u5206\u89e3\u6216\u4f7f\u7528\u4e0d\u5f53\u4ee5\u53ca\u5b89\u88c5\u73af\u5883\u3001\u642c\u8fd0\u4e0d\u5f53\u7b49\u9020\u6210\u7684\u635f\u5bb3\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u5982\u679c\u65e0\u6cd5\u53d1\u6325\u56fa\u6709\u529f\u80fd\uff0c\u5219\u4e0d\u5f97\u7528\u4e8e\u6cbb\u7597\u7528\u9014\u3002\u5bf9\u6b64\u7c7b\u60c5\u5f62\u4e0b\u9020\u6210\u7684\u4efb\u4f55\u635f\u5bb3\u6216\u5bf9\u60a3\u8005\u7684\u635f\u4f24\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u900f\u6790\u673a\u7684\u65e5\u5e38\u7ef4\u62a4\u548c\u68c0\u67e5\u5e94\u6839\u636e\"\u7ef4\u62a4\u68c0\u67e5\u624b\u518c\"\u8fdb\u884c\u3002 \u7b2c1\u7ae0 \u89c4\u683c \u00b6 1.1 \u6570\u636e\u901a\u4fe1\u529f\u80fd\u7684\u63cf\u8ff0 \u00b6 \u900f\u6790\u673a\u7684\u6cbb\u7597\u6570\u636e\u548c\u8bbe\u7f6e\u6570\u636e\u53ef\u4ece\u4ee5\u592a\u7f51\u63a5\u53e3\u4f20\u8f93\u5230\u8ba1\u7b97\u673a\u4e2d\u3002 1.2 \u901a\u4fe1\u89c4\u683c \u00b6 1.2.1 LAN\u53c2\u6570 \u00b6 \u7f16\u53f7 \u9879\u76ee \u63cf\u8ff0 1 \u4ee5\u592a\u7f51\u63a5\u53e3 10Base-T \u6216 100Base-TX\uff08\u81ea\u52a8\u611f\u5e94\uff09 2 \u4e32\u53e3 RJ45 3 \u7f51\u7edc\u914d\u7f6e \u53ef\u81ea\u5b9a\u4e49 1.2.2 \u900f\u6790\u673a\u901a\u4fe1\u6b65\u9aa4 \u00b6 \u900f\u6790\u673a\u7aef\u7ba1\u7406\u7684\u6570\u636e\u901a\u8fc7PC\u7aef\u7684\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u8fdb\u884c\u4f20\u8f93\u3002 graph TD A[PC] -->|\u6570\u636e\u4f20\u8f93\u8bf7\u6c42| B[\u900f\u6790\u673a] B -->|\u6570\u636e\u4f20\u8f93| A B -->|\u4e34\u5e8a\u6570\u636e\u4f20\u8f93| A [1] PC\u7aef\u4f20\u8f93\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff08\u53c2\u9605\u7b2c1.2.3\u8282\uff09\u3002 [2] \u900f\u6790\u673a\u63a5\u6536PC\u7684\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff0c\u5e76\u53d1\u9001\u5404\u79cd\u76f8\u5e94\u7684\u6570\u636e\uff08\u53c2\u9605\u7b2c1.2.4\u8282\u548c\u7b2c1.2.5\u8282\uff09\u3002 1.2.3 \u4ecePC\u4f20\u8f93\u5230\u900f\u6790\u673a\u7684\u6570\u636e\u53ca\u5176\u683c\u5f0f \u00b6 \u6570\u636e\u4f20\u8f93\u8bf7\u6c42\uff083\u4e2a\u5b57\u8282\uff09 \"K\"\uff084BH\uff09 CR\uff080DH\uff09 LF\uff080AH\uff09 1.2.4 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e\u683c\u5f0f \u00b6 \u4e34\u5e8a\u6570\u636e \u00b6 \u5f00\u59cb [1] \u6570\u636e\u957f\u5ea6 [2] \u6570\u636e [3] \u603b\u6570 [4] \u7ed3\u675f [5] \u6570\u636e\u7ec4\u6210 \u00b6 \u7f16\u53f7 \u5b57\u8282\u6570 \u63cf\u8ff0 [1] 2 \u6570\u636e\u5f00\u59cb\u4ee3\u7801\uff08ASCII\uff09 \"K\"\"1\" [2] 3 \u6570\u636e\u957f\u5ea6\uff08ASCII\uff09 \u91c7\u75283\u4f4d\u6570\u7684\u5f62\u5f0f\u8868\u793a\u7b2c\u4e09\u9879\u4e2d\u8ba1\u7b97\u7684\u6240\u6709\u5b57\u8282\u7684\u603b\u548c\u3002 \u4f8b\u5982\uff09\u5982\u679c\u603b\u6570\u4e3a123\u4e2a\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"1\",\"2\",\"3\" [3] 1 \u6570\u636e\u9a8c\u8bc1\u4ee3\u7801\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [3] \u5355\u4e2a \u6570\u636e\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [4] 2 \u7528\u4e8e\u548c\u6570\u6821\u9a8c\u7684\u6570\u636e \u8ba1\u7b97[1]\uff5e[3]\u603b\u548c\uff0c\u8f83\u4f4e\u7684\u5341\u516d\u8fdb\u52362\u4f4d\u6570\u4f1a\u8f6c\u6362\u6210ASCII\u4ee3\u7801\u3002 \u4f8b\u5982\uff09\u603b\u51715aH\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"5\"\u3001\"A\" [5] 2 \u6570\u636e\u7ed3\u675f\u4ee3\u7801 CR\u3001LF 1.2.5 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e \u00b6 \u6570\u636e\u5217\u8868 \u00b6 \u7f16\u53f7 \u6570\u636e\u540d\u79f0 \u6570\u636e\u6807\u8bc6\u4ee3\u7801 \u5b57\u8282\u6570 \u5355\u4f4d 1 UF\u76ee\u6807 \"A\" 5 L 2 UF\u91cf \"B\" 5 L 3 UF\u901f\u7387 \"C\" 5 L/hr 4 \u8840\u6db2\u6d41\u901f \"D\" 5 mL/min 5 \u6ce8\u5c04\u5668\u6d41\u901f \"E\" 5 mL/h 6 \u900f\u6790\u6db2\u6e29\u5ea6 \"F\" 5 \u6444\u6c0f\u5ea6 7 \u900f\u6790\u6db2\u7535\u5bfc\u5ea6 \"G\" 5 mS/cm 8 \u9759\u8109\u538b \"H\" 5 mmHg 9 \u900f\u6790\u6db2\u538b \"I\" 5 mmHg 10 TMP \"J\" 5 mmHg 11 \u900f\u6790\u65f6\u95f4 \"K\" 5 min 12 \u900f\u6790\u6db2\u6e29\u5ea6\u8b66\u62a5 \"a\" 1 \u2014 13 \u7535\u5bfc\u5ea6\u8b66\u62a5 \"b\" 1 \u2014 14 \u9759\u8109\u538b\u8b66\u62a5 \"c\" 1 \u2014 15 \u900f\u6790\u6db2\u538b\u529b\u8b66\u62a5 \"d\" 1 \u2014 16 TMP\u8b66\u62a5 \"e\" 1 \u2014 17 \u6c14\u6ce1\u4fa6\u6d4b\u5668\u8b66\u62a5 \"f\" 1 \u2014 18 \u6f0f\u8840\u8b66\u62a5 \"g\" 1 \u2014 19 \u5176\u4ed6\u8b66\u62a5 \"h\" 1 \u2014 20 \u900f\u6790\u6db2\u6d41\u901f \"L\" 5 mL/min 21 BPM\u68c0\u6d4b\u65f6\u95f4 \"M\" 5 \u65f6\u95f4 22 BPM\u6700\u9ad8\u8840\u538b \"N\" 5 mmHg 23 BPM\u6700\u4f4e\u8840\u538b \"O\" 5 mmHg 24 BPM\u8109\u51b2 \"P\" 5 \u8109\u51b2 25 BPM\u6536\u7f29\u4e0a\u9650\u8b66\u62a5 \"Q\" 5 mmHg 26 BPM\u6536\u7f29\u4e0b\u9650\u8b66\u62a5 \"R\" 5 mmHg 27 BPM\u538b\u8109\u5e26\u538b\u529b \"S\" 5 mmHg 28 BPM\u68c0\u6d4b\u95f4\u9694\u65f6\u95f4 \"T\" 5 min 29 \u603b\u8840\u6db2\u6d41\u91cf \"U\" 5 L 30 \u9759\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"V\" 5 mmHg 31 \u9759\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"W\" 5 mmHg 32 \u603b\u6ce8\u5c04\u6d41\u91cf \"X\" 5 mL 33 \u900f\u6790\u6db2\u538b\u4e0a\u9650\u8b66\u62a5 \"Y\" 5 mmHg 34 \u900f\u6790\u6db2\u538b\u4e0b\u9650\u8b66\u62a5 \"Z\" 5 mmHg 35 NaCl\u6ce8\u5165\u7ea7\u522b \"i\" 5 \u2014 36 UF\u4e2a\u6027\u5316\u7a0b\u5e8f \"j\" 1 \u2014 37 \u900f\u6790\u6db2\u9009\u62e9 \"k\" 1 \u2014 38 \u7535\u5bfc\u5ea6\u7ea7\u522b \"l\" 1 \u2014 39 \u6570\u636e\u901a\u4fe1\u72b6\u6001 \"m\" 1 \u2014 40 \u5e8f\u5217\u53f7 \"n\" 8 \u2014 41 \u52a8\u8109\u538b \"o\" 5 mmHg 42 \u52a8\u8109\u538b\u8b66\u62a5 \"p\" 1 \u2014 43 \u52a8\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"q\" 5 mmHg 44 \u52a8\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"r\" 5 mmHg 45 TMP\u4e0a\u9650\u8b66\u62a5 \"s\" 5 mmHg 46 TMP\u4e0b\u9650\u8b66\u62a5 \"t\" 5 mmHg 47 \u7f6e\u6362\u7387 \"u\" 5 L/hr 48 \u7f6e\u6362\u76ee\u6807\u91cf \"v\" 5 L 49 \u7f6e\u6362\u6db2\u8fdb\u7a0b\u91cf \"w\" 5 L 50 Na\u4e2a\u6027\u5316\u7a0b\u5e8f \"x\" 1 \u2014 51 \u8840\u6db2\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"y\" 1 \u2014 52 \u6ce8\u5c04\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"z\" 1 \u2014 53 \u900f\u6790\u6db2\u4e2a\u6027\u5316\u7a0b\u5e8f \"!\" 1 \u2014 54 \u900f\u6790\u6db2\u6e29\u5ea6\u8bbe\u7f6e\u503c \"#\" 5 \u6444\u6c0f\u5ea6 55 \u7f3a\u6c342\u8b66\u62a5 \"$\" 1 \u2014 \u6570\u636e\u8bf4\u660e \u00b6 1) \u672a\u6307\u5b9a\u6570\u636e\u4f20\u8f93\u7684\u987a\u5e8f\u3002 2) \u7b2c1\u523011\u9879\u300120\u523035\u9879\u300141\u9879\u300143\u523049\u9879\u548c54\u9879\u7684\u6570\u636e\u4ee55\u4f4d\u6570\u8868\u793a\u3002 - \u5982\u679c\u5305\u542b\u5c0f\u6570\u70b9\uff0c\u52195\u4f4d\u6570\u5305\u542b\u4e86\u5c0f\u6570\u70b9\u3002 - \u5982\u679c\u6570\u636e\u4e3a\u8d1f\u6570\uff0c\u6570\u5b57\u5c06\u4ee5\u51cf\u53f7\u6807\u5fd7\"-\"\u5f00\u5934\u3002 - \u5982\u679c\u9ad8\u4f4d\u5b57\u8282\u4e3a\u96f6\uff0c\u5219\u663e\u793a\"0\"\u3002 - \u4f8b\u5982\uff09\u76ee\u6807UF\u91cf\u4e3a2.35L\uff0c\u5219\u8f93\u5165\"0\"\u3001\"2\"\u3001\".\"\u3001\"3\"\u548c\"5\"\u3002 3) \u7b2c12\u81f319\u9879\u300142\u9879\u548c55\u9879\u7684\u8b66\u62a5\u503c\u4e3a\"1\"\uff08\u5df2\u8b66\u62a5\uff09\u6216\"0\"\uff08\u672a\u8b66\u62a5\uff09\u3002 4) \u7b2c19\u9879\u5176\u4ed6\u8b66\u62a5\u662f\u9664\u7b2c12\u81f318\u9879\u300142\u9879\u548c55\u9879\u4ee5\u5916\u7684\u8b66\u62a5\u3002 5) \u7b2c40\u9879\u6570\u636e\u662f\u5e8f\u5217\u53f7\uff08\u5de6\u5bf9\u9f50\uff09\u3002 6) \u7b2c21\u9879\"\u8840\u538b\u68c0\u6d4b\u65f6\u95f4\"\u6307\u662f\u5426\u5bf9\u8840\u538b\u8fdb\u884c\u68c0\u6d4b\u7684\u5224\u65ad\u3002 7) \u7b2c25\u81f328\u9879\u662f\u4e0e\u8840\u538b\u76f8\u5173\u7684\u8bbe\u7f6e\u3002 - \u8bbe\u7f6e\u66f4\u6539\u540e\uff0c\u6700\u65b0\u8bbe\u7f6e\u4f1a\u5728\u4e0b\u4e00\u6b21\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u65f6\u4f20\u8f93\u3002 \u7b2c2\u7ae0 \u4e0ePC\u7684\u8fde\u63a5 \u00b6 2.1 \u8fde\u63a5\u900f\u6790\u673a\u548cPC \u00b6 \u7f16\u53f7 \u540d\u79f0 \u529f\u80fd 1 LAN - \u901a\u8fc7\u672c\u900f\u6790\u673a\u80cc\u9762\u63d0\u4f9b\u7684LAN\u63a5\u53e3\uff0c\u8fde\u63a5\u6b64\u900f\u6790\u673a\u548cPC\u3002 - LAN\uff1aRJ-45\u4e32\u53e3\u3002 2.2 \u901a\u4fe1\u57fa\u677fIP\u7684\u8bbe\u5b9a \u00b6 2.2.1 \u6253\u5f00\"\u641c\u7d22\u5de5\u5177\"\u5e94\u7528\u7a0b\u5e8f \u00b6 \u5982\u4e0b\u56fe\u6240\u793a\uff1a 2.2.2 \u641c\u7d22\u901a\u4fe1\u57fa\u677f \u00b6 \u5728\u6253\u5f00\u7684\"\u641c\u7d22\u5de5\u5177\"\u754c\u9762\u4e0b\uff0c\u70b9\u51fb\u5de6\u4e0a\u89d2\u7c7b\u4f3c\u671b\u8fdc\u955c\u6807\u5fd7\u7684\"\u641c\u7d22\"\u6309\u94ae\uff0c\u641c\u7d22\u5df2\u7ecf\u8fde\u63a5\u5230\u7535\u8111\u7684\u901a\u4fe1\u57fa\u677f\u3002 2.2.3 \u8bbe\u5b9aPC\u7f51\u7edc\u53c2\u6570 \u00b6 \u4e3a\u786e\u4fddPC\u548c\u901a\u4fe1\u57fa\u677f\u7684\u6b63\u5e38\u901a\u4fe1\uff0c\u6839\u636e\u641c\u7d22\u5230\u7684\u901a\u4fe1\u57fa\u677f\u7684IP\u5bf9\u901a\u4fe1\u7528PC\u8fdb\u884c\u53c2\u6570\u8bbe\u5b9a\uff08IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\uff09\u3002 IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\u7684\u8bbe\u5b9a\uff1a 1) \u786e\u4fdd\u548c\u901a\u4fe1\u57fa\u677fIP\u5730\u5740\u5728\u540c\u4e00\u57df\u5185\uff0c\u4e14\u8bbe\u5b9a\u7684IP\u548c\u540c\u4e00\u57df\u5185\u5176\u4ed6\u8bbe\u5907\u7684IP\u4e0d\u51b2\u7a81\u3002 2) PC\u7684IP\u5730\u5740\u8bbe\u5b9a\u5b8c\u6210\u540e\uff0c\u9f20\u6807\u70b9\u51fb\u5b50\u7f51\u63a9\u7801\u8f93\u5165\u680f\uff0c\u5b50\u7f51\u63a9\u7801\u4f1a\u81ea\u52a8\u751f\u6210\uff08\u539f\u5219\u4e0a\u81ea\u52a8\u751f\u6210\u7684\u5b50\u7f51\u63a9\u7801\u548c\u901a\u4fe1\u57fa\u677f\u7684\u5b50\u7f51\u63a9\u7801\u662f\u76f8\u540c\u7684\uff0c\u53c2\u80032.2.4\u5bf9\u5b50\u7f51\u63a9\u7801\u8fdb\u884c\u786e\u8ba4\uff09\u3002 3) PC\u7684\u9ed8\u8ba4\u7f51\u5173\u548c\u901a\u4fe1\u57fa\u677f\u76f8\u540c\uff08\u53c2\u80032.2.4\u5bf9\u9ed8\u8ba4\u7f51\u5173\u8fdb\u884c\u786e\u8ba4\uff09\u3002 2.2.4 \u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762 \u00b6 \u9009\u4e2d\u641c\u7d22\u5230\u7684\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\"\u6309\u94ae\uff0c\u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762\u3002\u5728IP\u8bbe\u5b9a\u754c\u9762\u4e0b\uff0c\u6839\u636e\u9700\u8981\uff0c\u91cd\u65b0\u8bbe\u5b9a\u901a\u4fe1\u57fa\u677f\u7684IP\uff0c\u5e76\u70b9\u51fb\"\u4fdd\u5b58\"\u952e\uff0c\u5b8c\u6210\u65b0IP\u7684\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u901a\u4fe1\u57fa\u677fIP\u8bbe\u5b9a\u754c\u9762\u4e5f\u53ef\u4ee5\u4e0d\u7528\"\u641c\u7d22\u5de5\u5177\"\u8f6f\u4ef6\u800c\u76f4\u63a5\u5728IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165 http://192.168.0.233/ \u76f4\u63a5\u6253\u5f00\u3002 2.3 \u901a\u4fe1\u57fa\u677f\u4e34\u65f6IP\u7684\u8bbe\u5b9a\u65b9\u6cd5 \u00b6 2.3.1 \u8bbe\u7f6e\u4e34\u65f6IP \u00b6 \u70b9\u51fb\"\u641c\u7d22\"\u6309\u94ae\u5bf9\u8fde\u63a5\u5230PC\u7684\u901a\u4fe1\u8bbe\u5907\u8fdb\u884c\u641c\u7d22\uff0c\u9009\u4e2d\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u6309\u94ae\u3002 2.3.2 \u914d\u7f6e\u4e34\u65f6IP \u00b6 \u5728\u6253\u5f00\u7684\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u754c\u9762\u4e0b\uff0c\u5373\u53ef\u6839\u636e\u9700\u8981\u5bf9\u76ee\u6807IP\u8fdb\u884c\u4e34\u65f6\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u8bbe\u5b9a\u7684IP\u53ea\u6709\u5728\u8bbe\u5907\u672a\u65ad\u7535\u548c\u672a\u91cd\u542f\u65f6\u6709\u6548\uff0c\u5982\u679c\u8bbe\u5907\u91cd\u542f\u6216\u8005\u65ad\u7535\uff0cIP\u7684\u8bbe\u5b9a\u4f1a\u81ea\u52a8\u6062\u590d\u5230\u51fa\u5382\u8bbe\u7f6e\u3002 2.4 \u901a\u4fe1\u57fa\u677f\u7684\u91cd\u7f6e\u529f\u80fd \u00b6 2.4.1 \u6253\u5f00\u57fa\u677f\u7ba1\u7406\u754c\u9762 \u00b6 \u5728PC\u7684IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u901a\u4fe1\u57fa\u677f\u7684IP\u5730\u5740\u8fdb\u884c\u641c\u7d22\uff08\u4ee5IP\u5730\u5740\u4e3a192.168.0.233\u4e3a\u4f8b\uff0c\u5728IE\u6d4f\u89c8\u5668\u4e2d\u5e94\u8f93\u5165 http://192.168.0.233/ \uff09\u6253\u5f00\u5982\u4e0b\u7684\u753b\u9762\u3002 2.4.2 \u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e \u00b6 \u70b9\u51fb\u753b\u9762\u5de6\u4fa7\u7684\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u9879\uff0c\u8fdb\u5165\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u754c\u9762\u3002\u70b9\u51fb\"\u6062\u590d\"\u952e\u5373\u53ef\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u3002 \u6587\u6863\u4fe1\u606f \u00b6 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a TQS-88 \u9009\u914d \u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c 00\u7248\u53d1\u5e03 2019/01/11 \u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8 \u9752\u5c9b\u5e02\u5373\u58a8\u533a\u670d\u88c5\u5de5\u4e1a\u56ed\u5185\u5b54\u96c0\u6cb3\u56db\u8def63\u53f7 \u7535\u8bdd\uff1a0532-81721030 \u4f20\u771f\uff1a0532-81721025 \u90ae\u653f\u7f16\u7801\uff1a266200 \u2611 \u539f\u7248\u53d1\u884c \u25a1 \u539f\u7248\u8bd1\u672c \u9644\u5f55 \u00b6","title":"TS88\u900f\u6790\u673a\u8054\u673a\u901a\u4fe1-\u4e2d\u6587\u7248"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#tqs-88-","text":"","title":"TQS-88 \u5355\u4eba\u8840\u6db2\u900f\u6790\u673a-\u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_1","text":"\u5728\u5f00\u59cb\u4f7f\u7528\u900f\u6790\u673a\u524d\u8bf7\u4ed4\u7ec6\u9605\u8bfb\u672c\u64cd\u4f5c\u624b\u518c\u3002 \u4efb\u4f55\u4e0d\u5f53\u64cd\u4f5c\u90fd\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4e8b\u6545\u3002\u4f7f\u7528\u7b26\u5408\u672c\u8bf4\u660e\u7684\u900f\u6790\u673a\u3002 \u8bf7\u5c06\u672c\u64cd\u4f5c\u624b\u518c\u7f6e\u4e8e\u6613\u4e8e\u83b7\u53d6\u7684\u4f4d\u7f6e\uff0c\u4ee5\u4fbf\u5728\u9700\u8981\u65f6\u53ef\u968f\u65f6\u53c2\u9605\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u65e8\u5728\u4e3a\u64cd\u4f5c\u4eba\u5458\u63d0\u4f9b\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u3002 \u672c\u64cd\u4f5c\u624b\u518c\u4e3b\u8981\u6db5\u76d6\u4ee5\u4e0b\u6709\u5173\"\u6570\u636e\u901a\u4fe1\"\u7684\u5185\u5bb9\uff1a 1. \u89c4\u683c 2. \u4e0ePC\u7684\u8fde\u63a5 \u6b63\u6587\u4e2d\u8b66\u793a\u5b9a\u4e49\u5982\u4e0b\uff1a - \u6ce8\u610f \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4f7f\u7528\u8bf4\u660e\u3002\u60a8\u5fc5\u987b\u9075\u5b88\u4f7f\u7528\u8bf4\u660e\u3002 - \u9644\u6ce8 \uff1a\u6b64\u6807\u5fd7\u540e\u7684\u63cf\u8ff0\u662f\u4e3a\u4e86\u8ba9\u60a8\u589e\u8fdb\u7406\u89e3\u7684\u6709\u7528\u4fe1\u606f\u6216\u8865\u5145\u8bf4\u660e\u4e8b\u9879\u3002","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_2","text":"\u64cd\u4f5c\u6b64\u9009\u914d\u4ef6\uff08\"\u6570\u636e\u901a\u4fe1\"\u529f\u80fd\uff09\u65f6\uff0c\u8bf7\u52a1\u5fc5\u5145\u5206\u7406\u89e3\u548c\u7279\u522b\u6ce8\u610f\u4ee5\u4e0b\u4e8b\u9879\u3002\u4f7f\u7528\u524d\u5fc5\u987b\u5145\u5206\u4e86\u89e3\u5185\u5bb9\u3002","title":"\u7b80\u4ecb"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#1","text":"(1) \u672c\u64cd\u4f5c\u624b\u518c\u4ecb\u7ecd\u4e86\u6b63\u786e\u4f7f\u7528\"\u6570\u636e\u901a\u4fe1\"\u6240\u9700\u7684\u4fe1\u606f\u548c\u5b89\u5168\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u5e76\u975e\u65e8\u5728\u8bf4\u660e\u5bf9\u60a3\u8005\u7684\u6cbb\u7597\u3002 (2) \u53ea\u6709\u4ed4\u7ec6\u9605\u8bfb\u5e76\u5145\u5206\u7406\u89e3\u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u6240\u542b\u7684\u8bf4\u660e\u540e\uff0c\u624d\u80fd\u4f7f\u7528\u8bbe\u5907\u5e76\u8fdb\u884c\u64cd\u4f5c\u4ee5\u53ca\u7ef4\u62a4\u3002 (3) \u672c\u64cd\u4f5c\u624b\u518c\u4e2d\u7684\u64cd\u4f5c\u65b9\u6cd5\u548c\u5b89\u5168\u6ce8\u610f\u4e8b\u9879\u9002\u7528\u4e8e\u8fdb\u884c\u7279\u5b9a\u76ee\u7684\u7684\"\u6570\u636e\u901a\u4fe1\"\u4f7f\u7528\u3002\u8bf7\u52ff\u5c1d\u8bd5\u4ee5\u672c\u624b\u518c\u4e2d\u6240\u5217\u4ee5\u5916\u7684\u4efb\u4f55\u65b9\u5f0f\u4f7f\u7528\u8bbe\u5907\u3002 \u672c\u624b\u518c\u7684\u5185\u5bb9\u53d7\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u7248\u6743\u4fdd\u62a4\uff0c\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002\u672a\u7ecf\u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8\u4e8b\u5148\u4e66\u9762\u540c\u610f\uff0c\u4e0d\u5f97\u4ee5\u4efb\u4f55\u5f62\u5f0f\u590d\u5236\u3001\u8f6c\u8f7d\u672c\u624b\u518c\u4e2d\u7684\u4efb\u4f55\u5185\u5bb9\uff0c\u6216\u5c06\u5176\u8bd1\u4e3a\u5176\u4ed6\u8bed\u8a00\u3002","title":"1. \u64cd\u4f5c\u624b\u518c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#2","text":"\u6211\u4eec\u5e0c\u671b\u60a8\u4e8b\u524d\u4e86\u89e3\uff0c\u5bf9\u7531\u4e8e\u64cd\u4f5c\u6b64\u900f\u6790\u673a\u6240\u9020\u6210\u7684\u4efb\u4f55\u53ef\u80fd\u7684\u635f\u5bb3\u6216\u5229\u76ca\u635f\u5931\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u8bf7\u52ff\u62c6\u5378\u6216\u6539\u9020\u900f\u6790\u673a\uff0c\u5426\u5219\u5c06\u4e0d\u5728\u5236\u9020\u5546\u4fdd\u4fee\u8303\u56f4\u4e4b\u5185\u3002 \u7531\u4e8e\u5ba2\u6237\u62c6\u5378\u3001\u6539\u9020\u3001\u5206\u89e3\u6216\u4f7f\u7528\u4e0d\u5f53\u4ee5\u53ca\u5b89\u88c5\u73af\u5883\u3001\u642c\u8fd0\u4e0d\u5f53\u7b49\u9020\u6210\u7684\u635f\u5bb3\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u5982\u679c\u65e0\u6cd5\u53d1\u6325\u56fa\u6709\u529f\u80fd\uff0c\u5219\u4e0d\u5f97\u7528\u4e8e\u6cbb\u7597\u7528\u9014\u3002\u5bf9\u6b64\u7c7b\u60c5\u5f62\u4e0b\u9020\u6210\u7684\u4efb\u4f55\u635f\u5bb3\u6216\u5bf9\u60a3\u8005\u7684\u635f\u4f24\uff0c\u6211\u4eec\u4e0d\u627f\u62c5\u4efb\u4f55\u8d23\u4efb\u3002 \u900f\u6790\u673a\u7684\u65e5\u5e38\u7ef4\u62a4\u548c\u68c0\u67e5\u5e94\u6839\u636e\"\u7ef4\u62a4\u68c0\u67e5\u624b\u518c\"\u8fdb\u884c\u3002","title":"2. \u8d23\u4efb\u9650\u5236"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#1_1","text":"","title":"\u7b2c1\u7ae0 \u89c4\u683c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#11","text":"\u900f\u6790\u673a\u7684\u6cbb\u7597\u6570\u636e\u548c\u8bbe\u7f6e\u6570\u636e\u53ef\u4ece\u4ee5\u592a\u7f51\u63a5\u53e3\u4f20\u8f93\u5230\u8ba1\u7b97\u673a\u4e2d\u3002","title":"1.1 \u6570\u636e\u901a\u4fe1\u529f\u80fd\u7684\u63cf\u8ff0"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#12","text":"","title":"1.2 \u901a\u4fe1\u89c4\u683c"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#121-lan","text":"\u7f16\u53f7 \u9879\u76ee \u63cf\u8ff0 1 \u4ee5\u592a\u7f51\u63a5\u53e3 10Base-T \u6216 100Base-TX\uff08\u81ea\u52a8\u611f\u5e94\uff09 2 \u4e32\u53e3 RJ45 3 \u7f51\u7edc\u914d\u7f6e \u53ef\u81ea\u5b9a\u4e49","title":"1.2.1 LAN\u53c2\u6570"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#122","text":"\u900f\u6790\u673a\u7aef\u7ba1\u7406\u7684\u6570\u636e\u901a\u8fc7PC\u7aef\u7684\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u8fdb\u884c\u4f20\u8f93\u3002 graph TD A[PC] -->|\u6570\u636e\u4f20\u8f93\u8bf7\u6c42| B[\u900f\u6790\u673a] B -->|\u6570\u636e\u4f20\u8f93| A B -->|\u4e34\u5e8a\u6570\u636e\u4f20\u8f93| A [1] PC\u7aef\u4f20\u8f93\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff08\u53c2\u9605\u7b2c1.2.3\u8282\uff09\u3002 [2] \u900f\u6790\u673a\u63a5\u6536PC\u7684\u6570\u636e\u8bf7\u6c42\u4fe1\u53f7\uff0c\u5e76\u53d1\u9001\u5404\u79cd\u76f8\u5e94\u7684\u6570\u636e\uff08\u53c2\u9605\u7b2c1.2.4\u8282\u548c\u7b2c1.2.5\u8282\uff09\u3002","title":"1.2.2 \u900f\u6790\u673a\u901a\u4fe1\u6b65\u9aa4"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#123-pc","text":"\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\uff083\u4e2a\u5b57\u8282\uff09 \"K\"\uff084BH\uff09 CR\uff080DH\uff09 LF\uff080AH\uff09","title":"1.2.3 \u4ecePC\u4f20\u8f93\u5230\u900f\u6790\u673a\u7684\u6570\u636e\u53ca\u5176\u683c\u5f0f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#124-pc","text":"","title":"1.2.4 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e\u683c\u5f0f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_3","text":"\u5f00\u59cb [1] \u6570\u636e\u957f\u5ea6 [2] \u6570\u636e [3] \u603b\u6570 [4] \u7ed3\u675f [5]","title":"\u4e34\u5e8a\u6570\u636e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_4","text":"\u7f16\u53f7 \u5b57\u8282\u6570 \u63cf\u8ff0 [1] 2 \u6570\u636e\u5f00\u59cb\u4ee3\u7801\uff08ASCII\uff09 \"K\"\"1\" [2] 3 \u6570\u636e\u957f\u5ea6\uff08ASCII\uff09 \u91c7\u75283\u4f4d\u6570\u7684\u5f62\u5f0f\u8868\u793a\u7b2c\u4e09\u9879\u4e2d\u8ba1\u7b97\u7684\u6240\u6709\u5b57\u8282\u7684\u603b\u548c\u3002 \u4f8b\u5982\uff09\u5982\u679c\u603b\u6570\u4e3a123\u4e2a\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"1\",\"2\",\"3\" [3] 1 \u6570\u636e\u9a8c\u8bc1\u4ee3\u7801\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [3] \u5355\u4e2a \u6570\u636e\uff08ASCII\uff09 \uff08\u8bf7\u53c2\u96051.2.5\u3002\uff09 * \u6309\u6570\u636e\u7c7b\u578b\u7684\u7f16\u53f7\u53cd\u590d\u4f20\u8f93\u3002 [4] 2 \u7528\u4e8e\u548c\u6570\u6821\u9a8c\u7684\u6570\u636e \u8ba1\u7b97[1]\uff5e[3]\u603b\u548c\uff0c\u8f83\u4f4e\u7684\u5341\u516d\u8fdb\u52362\u4f4d\u6570\u4f1a\u8f6c\u6362\u6210ASCII\u4ee3\u7801\u3002 \u4f8b\u5982\uff09\u603b\u51715aH\u5b57\u8282\uff0c\u5219\u663e\u793a\u4e3a\uff1a\"5\"\u3001\"A\" [5] 2 \u6570\u636e\u7ed3\u675f\u4ee3\u7801 CR\u3001LF","title":"\u6570\u636e\u7ec4\u6210"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#125-pc","text":"","title":"1.2.5 \u4ece\u900f\u6790\u673a\u4f20\u8f93\u5230PC\u7684\u6570\u636e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_5","text":"\u7f16\u53f7 \u6570\u636e\u540d\u79f0 \u6570\u636e\u6807\u8bc6\u4ee3\u7801 \u5b57\u8282\u6570 \u5355\u4f4d 1 UF\u76ee\u6807 \"A\" 5 L 2 UF\u91cf \"B\" 5 L 3 UF\u901f\u7387 \"C\" 5 L/hr 4 \u8840\u6db2\u6d41\u901f \"D\" 5 mL/min 5 \u6ce8\u5c04\u5668\u6d41\u901f \"E\" 5 mL/h 6 \u900f\u6790\u6db2\u6e29\u5ea6 \"F\" 5 \u6444\u6c0f\u5ea6 7 \u900f\u6790\u6db2\u7535\u5bfc\u5ea6 \"G\" 5 mS/cm 8 \u9759\u8109\u538b \"H\" 5 mmHg 9 \u900f\u6790\u6db2\u538b \"I\" 5 mmHg 10 TMP \"J\" 5 mmHg 11 \u900f\u6790\u65f6\u95f4 \"K\" 5 min 12 \u900f\u6790\u6db2\u6e29\u5ea6\u8b66\u62a5 \"a\" 1 \u2014 13 \u7535\u5bfc\u5ea6\u8b66\u62a5 \"b\" 1 \u2014 14 \u9759\u8109\u538b\u8b66\u62a5 \"c\" 1 \u2014 15 \u900f\u6790\u6db2\u538b\u529b\u8b66\u62a5 \"d\" 1 \u2014 16 TMP\u8b66\u62a5 \"e\" 1 \u2014 17 \u6c14\u6ce1\u4fa6\u6d4b\u5668\u8b66\u62a5 \"f\" 1 \u2014 18 \u6f0f\u8840\u8b66\u62a5 \"g\" 1 \u2014 19 \u5176\u4ed6\u8b66\u62a5 \"h\" 1 \u2014 20 \u900f\u6790\u6db2\u6d41\u901f \"L\" 5 mL/min 21 BPM\u68c0\u6d4b\u65f6\u95f4 \"M\" 5 \u65f6\u95f4 22 BPM\u6700\u9ad8\u8840\u538b \"N\" 5 mmHg 23 BPM\u6700\u4f4e\u8840\u538b \"O\" 5 mmHg 24 BPM\u8109\u51b2 \"P\" 5 \u8109\u51b2 25 BPM\u6536\u7f29\u4e0a\u9650\u8b66\u62a5 \"Q\" 5 mmHg 26 BPM\u6536\u7f29\u4e0b\u9650\u8b66\u62a5 \"R\" 5 mmHg 27 BPM\u538b\u8109\u5e26\u538b\u529b \"S\" 5 mmHg 28 BPM\u68c0\u6d4b\u95f4\u9694\u65f6\u95f4 \"T\" 5 min 29 \u603b\u8840\u6db2\u6d41\u91cf \"U\" 5 L 30 \u9759\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"V\" 5 mmHg 31 \u9759\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"W\" 5 mmHg 32 \u603b\u6ce8\u5c04\u6d41\u91cf \"X\" 5 mL 33 \u900f\u6790\u6db2\u538b\u4e0a\u9650\u8b66\u62a5 \"Y\" 5 mmHg 34 \u900f\u6790\u6db2\u538b\u4e0b\u9650\u8b66\u62a5 \"Z\" 5 mmHg 35 NaCl\u6ce8\u5165\u7ea7\u522b \"i\" 5 \u2014 36 UF\u4e2a\u6027\u5316\u7a0b\u5e8f \"j\" 1 \u2014 37 \u900f\u6790\u6db2\u9009\u62e9 \"k\" 1 \u2014 38 \u7535\u5bfc\u5ea6\u7ea7\u522b \"l\" 1 \u2014 39 \u6570\u636e\u901a\u4fe1\u72b6\u6001 \"m\" 1 \u2014 40 \u5e8f\u5217\u53f7 \"n\" 8 \u2014 41 \u52a8\u8109\u538b \"o\" 5 mmHg 42 \u52a8\u8109\u538b\u8b66\u62a5 \"p\" 1 \u2014 43 \u52a8\u8109\u538b\u4e0a\u9650\u8b66\u62a5 \"q\" 5 mmHg 44 \u52a8\u8109\u538b\u4e0b\u9650\u8b66\u62a5 \"r\" 5 mmHg 45 TMP\u4e0a\u9650\u8b66\u62a5 \"s\" 5 mmHg 46 TMP\u4e0b\u9650\u8b66\u62a5 \"t\" 5 mmHg 47 \u7f6e\u6362\u7387 \"u\" 5 L/hr 48 \u7f6e\u6362\u76ee\u6807\u91cf \"v\" 5 L 49 \u7f6e\u6362\u6db2\u8fdb\u7a0b\u91cf \"w\" 5 L 50 Na\u4e2a\u6027\u5316\u7a0b\u5e8f \"x\" 1 \u2014 51 \u8840\u6db2\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"y\" 1 \u2014 52 \u6ce8\u5c04\u6cf5\u4e2a\u6027\u5316\u7a0b\u5e8f \"z\" 1 \u2014 53 \u900f\u6790\u6db2\u4e2a\u6027\u5316\u7a0b\u5e8f \"!\" 1 \u2014 54 \u900f\u6790\u6db2\u6e29\u5ea6\u8bbe\u7f6e\u503c \"#\" 5 \u6444\u6c0f\u5ea6 55 \u7f3a\u6c342\u8b66\u62a5 \"$\" 1 \u2014","title":"\u6570\u636e\u5217\u8868"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_6","text":"1) \u672a\u6307\u5b9a\u6570\u636e\u4f20\u8f93\u7684\u987a\u5e8f\u3002 2) \u7b2c1\u523011\u9879\u300120\u523035\u9879\u300141\u9879\u300143\u523049\u9879\u548c54\u9879\u7684\u6570\u636e\u4ee55\u4f4d\u6570\u8868\u793a\u3002 - \u5982\u679c\u5305\u542b\u5c0f\u6570\u70b9\uff0c\u52195\u4f4d\u6570\u5305\u542b\u4e86\u5c0f\u6570\u70b9\u3002 - \u5982\u679c\u6570\u636e\u4e3a\u8d1f\u6570\uff0c\u6570\u5b57\u5c06\u4ee5\u51cf\u53f7\u6807\u5fd7\"-\"\u5f00\u5934\u3002 - \u5982\u679c\u9ad8\u4f4d\u5b57\u8282\u4e3a\u96f6\uff0c\u5219\u663e\u793a\"0\"\u3002 - \u4f8b\u5982\uff09\u76ee\u6807UF\u91cf\u4e3a2.35L\uff0c\u5219\u8f93\u5165\"0\"\u3001\"2\"\u3001\".\"\u3001\"3\"\u548c\"5\"\u3002 3) \u7b2c12\u81f319\u9879\u300142\u9879\u548c55\u9879\u7684\u8b66\u62a5\u503c\u4e3a\"1\"\uff08\u5df2\u8b66\u62a5\uff09\u6216\"0\"\uff08\u672a\u8b66\u62a5\uff09\u3002 4) \u7b2c19\u9879\u5176\u4ed6\u8b66\u62a5\u662f\u9664\u7b2c12\u81f318\u9879\u300142\u9879\u548c55\u9879\u4ee5\u5916\u7684\u8b66\u62a5\u3002 5) \u7b2c40\u9879\u6570\u636e\u662f\u5e8f\u5217\u53f7\uff08\u5de6\u5bf9\u9f50\uff09\u3002 6) \u7b2c21\u9879\"\u8840\u538b\u68c0\u6d4b\u65f6\u95f4\"\u6307\u662f\u5426\u5bf9\u8840\u538b\u8fdb\u884c\u68c0\u6d4b\u7684\u5224\u65ad\u3002 7) \u7b2c25\u81f328\u9879\u662f\u4e0e\u8840\u538b\u76f8\u5173\u7684\u8bbe\u7f6e\u3002 - \u8bbe\u7f6e\u66f4\u6539\u540e\uff0c\u6700\u65b0\u8bbe\u7f6e\u4f1a\u5728\u4e0b\u4e00\u6b21\u6570\u636e\u4f20\u8f93\u8bf7\u6c42\u65f6\u4f20\u8f93\u3002","title":"\u6570\u636e\u8bf4\u660e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#2-pc","text":"","title":"\u7b2c2\u7ae0 \u4e0ePC\u7684\u8fde\u63a5"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#21-pc","text":"\u7f16\u53f7 \u540d\u79f0 \u529f\u80fd 1 LAN - \u901a\u8fc7\u672c\u900f\u6790\u673a\u80cc\u9762\u63d0\u4f9b\u7684LAN\u63a5\u53e3\uff0c\u8fde\u63a5\u6b64\u900f\u6790\u673a\u548cPC\u3002 - LAN\uff1aRJ-45\u4e32\u53e3\u3002","title":"2.1 \u8fde\u63a5\u900f\u6790\u673a\u548cPC"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#22-ip","text":"","title":"2.2 \u901a\u4fe1\u57fa\u677fIP\u7684\u8bbe\u5b9a"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#221","text":"\u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"2.2.1 \u6253\u5f00\"\u641c\u7d22\u5de5\u5177\"\u5e94\u7528\u7a0b\u5e8f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#222","text":"\u5728\u6253\u5f00\u7684\"\u641c\u7d22\u5de5\u5177\"\u754c\u9762\u4e0b\uff0c\u70b9\u51fb\u5de6\u4e0a\u89d2\u7c7b\u4f3c\u671b\u8fdc\u955c\u6807\u5fd7\u7684\"\u641c\u7d22\"\u6309\u94ae\uff0c\u641c\u7d22\u5df2\u7ecf\u8fde\u63a5\u5230\u7535\u8111\u7684\u901a\u4fe1\u57fa\u677f\u3002","title":"2.2.2 \u641c\u7d22\u901a\u4fe1\u57fa\u677f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#223-pc","text":"\u4e3a\u786e\u4fddPC\u548c\u901a\u4fe1\u57fa\u677f\u7684\u6b63\u5e38\u901a\u4fe1\uff0c\u6839\u636e\u641c\u7d22\u5230\u7684\u901a\u4fe1\u57fa\u677f\u7684IP\u5bf9\u901a\u4fe1\u7528PC\u8fdb\u884c\u53c2\u6570\u8bbe\u5b9a\uff08IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\uff09\u3002 IP\u5730\u5740\u3001\u5b50\u7f51\u63a9\u7801\u3001\u9ed8\u8ba4\u7f51\u5173\u7684\u8bbe\u5b9a\uff1a 1) \u786e\u4fdd\u548c\u901a\u4fe1\u57fa\u677fIP\u5730\u5740\u5728\u540c\u4e00\u57df\u5185\uff0c\u4e14\u8bbe\u5b9a\u7684IP\u548c\u540c\u4e00\u57df\u5185\u5176\u4ed6\u8bbe\u5907\u7684IP\u4e0d\u51b2\u7a81\u3002 2) PC\u7684IP\u5730\u5740\u8bbe\u5b9a\u5b8c\u6210\u540e\uff0c\u9f20\u6807\u70b9\u51fb\u5b50\u7f51\u63a9\u7801\u8f93\u5165\u680f\uff0c\u5b50\u7f51\u63a9\u7801\u4f1a\u81ea\u52a8\u751f\u6210\uff08\u539f\u5219\u4e0a\u81ea\u52a8\u751f\u6210\u7684\u5b50\u7f51\u63a9\u7801\u548c\u901a\u4fe1\u57fa\u677f\u7684\u5b50\u7f51\u63a9\u7801\u662f\u76f8\u540c\u7684\uff0c\u53c2\u80032.2.4\u5bf9\u5b50\u7f51\u63a9\u7801\u8fdb\u884c\u786e\u8ba4\uff09\u3002 3) PC\u7684\u9ed8\u8ba4\u7f51\u5173\u548c\u901a\u4fe1\u57fa\u677f\u76f8\u540c\uff08\u53c2\u80032.2.4\u5bf9\u9ed8\u8ba4\u7f51\u5173\u8fdb\u884c\u786e\u8ba4\uff09\u3002","title":"2.2.3 \u8bbe\u5b9aPC\u7f51\u7edc\u53c2\u6570"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#224-ip","text":"\u9009\u4e2d\u641c\u7d22\u5230\u7684\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\"\u6309\u94ae\uff0c\u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762\u3002\u5728IP\u8bbe\u5b9a\u754c\u9762\u4e0b\uff0c\u6839\u636e\u9700\u8981\uff0c\u91cd\u65b0\u8bbe\u5b9a\u901a\u4fe1\u57fa\u677f\u7684IP\uff0c\u5e76\u70b9\u51fb\"\u4fdd\u5b58\"\u952e\uff0c\u5b8c\u6210\u65b0IP\u7684\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u901a\u4fe1\u57fa\u677fIP\u8bbe\u5b9a\u754c\u9762\u4e5f\u53ef\u4ee5\u4e0d\u7528\"\u641c\u7d22\u5de5\u5177\"\u8f6f\u4ef6\u800c\u76f4\u63a5\u5728IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165 http://192.168.0.233/ \u76f4\u63a5\u6253\u5f00\u3002","title":"2.2.4 \u8fdb\u5165IP\u8bbe\u5b9a\u754c\u9762"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#23-ip","text":"","title":"2.3 \u901a\u4fe1\u57fa\u677f\u4e34\u65f6IP\u7684\u8bbe\u5b9a\u65b9\u6cd5"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#231-ip","text":"\u70b9\u51fb\"\u641c\u7d22\"\u6309\u94ae\u5bf9\u8fde\u63a5\u5230PC\u7684\u901a\u4fe1\u8bbe\u5907\u8fdb\u884c\u641c\u7d22\uff0c\u9009\u4e2d\u76ee\u6807IP\uff0c\u70b9\u51fb\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u6309\u94ae\u3002","title":"2.3.1 \u8bbe\u7f6e\u4e34\u65f6IP"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#232-ip","text":"\u5728\u6253\u5f00\u7684\"\u8bbe\u7f6e\u4e34\u65f6IP\uff08F\uff09\"\u754c\u9762\u4e0b\uff0c\u5373\u53ef\u6839\u636e\u9700\u8981\u5bf9\u76ee\u6807IP\u8fdb\u884c\u4e34\u65f6\u8bbe\u5b9a\u3002 \u6ce8\u610f \uff1a\u8bbe\u5b9a\u7684IP\u53ea\u6709\u5728\u8bbe\u5907\u672a\u65ad\u7535\u548c\u672a\u91cd\u542f\u65f6\u6709\u6548\uff0c\u5982\u679c\u8bbe\u5907\u91cd\u542f\u6216\u8005\u65ad\u7535\uff0cIP\u7684\u8bbe\u5b9a\u4f1a\u81ea\u52a8\u6062\u590d\u5230\u51fa\u5382\u8bbe\u7f6e\u3002","title":"2.3.2 \u914d\u7f6e\u4e34\u65f6IP"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#24","text":"","title":"2.4 \u901a\u4fe1\u57fa\u677f\u7684\u91cd\u7f6e\u529f\u80fd"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#241","text":"\u5728PC\u7684IE\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u901a\u4fe1\u57fa\u677f\u7684IP\u5730\u5740\u8fdb\u884c\u641c\u7d22\uff08\u4ee5IP\u5730\u5740\u4e3a192.168.0.233\u4e3a\u4f8b\uff0c\u5728IE\u6d4f\u89c8\u5668\u4e2d\u5e94\u8f93\u5165 http://192.168.0.233/ \uff09\u6253\u5f00\u5982\u4e0b\u7684\u753b\u9762\u3002","title":"2.4.1 \u6253\u5f00\u57fa\u677f\u7ba1\u7406\u754c\u9762"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#242","text":"\u70b9\u51fb\u753b\u9762\u5de6\u4fa7\u7684\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u9879\uff0c\u8fdb\u5165\"\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\"\u754c\u9762\u3002\u70b9\u51fb\"\u6062\u590d\"\u952e\u5373\u53ef\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u3002","title":"2.4.2 \u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_7","text":"\u5355\u4eba\u8840\u6db2\u900f\u6790\u673a TQS-88 \u9009\u914d \u6570\u636e\u901a\u4fe1\u64cd\u4f5c\u624b\u518c 00\u7248\u53d1\u5e03 2019/01/11 \u4e1c\u4e3d\u533b\u7597\u79d1\u6280\uff08\u9752\u5c9b\uff09\u80a1\u4efd\u6709\u9650\u516c\u53f8 \u9752\u5c9b\u5e02\u5373\u58a8\u533a\u670d\u88c5\u5de5\u4e1a\u56ed\u5185\u5b54\u96c0\u6cb3\u56db\u8def63\u53f7 \u7535\u8bdd\uff1a0532-81721030 \u4f20\u771f\uff1a0532-81721025 \u90ae\u653f\u7f16\u7801\uff1a266200 \u2611 \u539f\u7248\u53d1\u884c \u25a1 \u539f\u7248\u8bd1\u672c","title":"\u6587\u6863\u4fe1\u606f"},{"location":"Usages/QA/TS88%E9%80%8F%E6%9E%90%E6%9C%BA%E8%81%94%E6%9C%BA%E9%80%9A%E4%BF%A1-%E4%B8%AD%E6%96%87%E7%89%88/#_8","text":"","title":"\u9644\u5f55"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/","text":"VMware ESXi\u4e2d\u6269\u5c55Home Assistant OS\u786c\u76d8\u7a7a\u95f4\u6307\u5357 \u00b6 \u6982\u8ff0 \u00b6 \u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728VMware ESXi\u73af\u5883\u4e2d\u5c06\u901a\u8fc7OVA\u65b9\u5f0f\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a\u786c\u76d8\u4ece32GB\u6269\u5c55\u5230500GB\u3002 \u524d\u63d0\u6761\u4ef6 \u00b6 VMware ESXi 5.5 \u6216\u66f4\u9ad8\u7248\u672c \u5df2\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a ESXi\u4e3b\u673a\u6709\u8db3\u591f\u7684\u5b58\u50a8\u7a7a\u95f4\uff08\u81f3\u5c11500GB\u53ef\u7528\uff09 \u7ba1\u7406\u5458\u6743\u9650\u8bbf\u95eeESXi Web\u754c\u9762 \u64cd\u4f5c\u6b65\u9aa4 \u00b6 \u6b65\u9aa41\uff1a\u51c6\u5907\u5de5\u4f5c \u00b6 \u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \uff08\u5f3a\u70c8\u5efa\u8bae\uff09 \u5728ESXi Web\u754c\u9762\u4e2d\u9009\u62e9Home Assistant\u865a\u62df\u673a \u70b9\u51fb\"\u64cd\u4f5c\" \u2192 \"\u521b\u5efa\u5feb\u7167\" \u8f93\u5165\u5feb\u7167\u540d\u79f0\uff1a \u6269\u5bb9\u524d\u5907\u4efd_YYYY-MM-DD \u70b9\u51fb\"\u521b\u5efa\u5feb\u7167\" \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u5728Home Assistant\u754c\u9762\u4e2d\u9009\u62e9\"\u7cfb\u7edf\" \u2192 \"\u91cd\u542f\u7cfb\u7edf\" \u9009\u62e9\"\u5173\u673a\"\u9009\u9879 \u6216\u5728ESXi\u754c\u9762\u4e2d\u9009\u62e9\u865a\u62df\u673a\uff0c\u70b9\u51fb\"\u5173\u95ed\u7535\u6e90\" \u26a0\ufe0f \u91cd\u8981 \uff1a\u786e\u4fdd\u662f\u5b8c\u5168\u5173\u95ed\uff0c\u4e0d\u662f\u6302\u8d77\u72b6\u6001 \u6b65\u9aa42\uff1a\u5728ESXi\u4e2d\u6269\u5c55\u786c\u76d8 \u00b6 \u8fdb\u5165\u865a\u62df\u673a\u7f16\u8f91\u6a21\u5f0f \u5728ESXi Web\u754c\u9762\u4e2d\u53f3\u952e\u70b9\u51fbHome Assistant\u865a\u62df\u673a \u9009\u62e9\"\u7f16\u8f91\u8bbe\u7f6e\" \u4fee\u6539\u786c\u76d8\u5bb9\u91cf \u5728\u865a\u62df\u786c\u4ef6\u5217\u8868\u4e2d\u627e\u5230\"\u786c\u76d81\" \u5f53\u524d\u663e\u793a\u4e3a\"32 GB\" \u5c06\u6570\u503c\u6539\u4e3a\"500\"\uff0c\u5355\u4f4d\u4fdd\u6301\"GB\" \u70b9\u51fb\"\u4fdd\u5b58\" \u786e\u8ba4\u66f4\u6539 \u68c0\u67e5\u865a\u62df\u673a\u8bbe\u7f6e\u4e2d\u786c\u76d8\u5bb9\u91cf\u5df2\u663e\u793a\u4e3a500GB \u5173\u95ed\u7f16\u8f91\u7a97\u53e3 \u6b65\u9aa43\uff1a\u542f\u52a8\u865a\u62df\u673a \u00b6 \u542f\u52a8Home Assistant \u70b9\u51fb\u865a\u62df\u673a\u7684\"\u5f00\u542f\u7535\u6e90\"\u6309\u94ae \u7b49\u5f85Home Assistant\u5b8c\u5168\u542f\u52a8 \u901a\u8fc7Web\u754c\u9762\u786e\u8ba4\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c \u6b65\u9aa44\uff1a\u6269\u5c55\u6587\u4ef6\u7cfb\u7edf \u00b6 \u865a\u62df\u786c\u76d8\u5df2\u6269\u5c55\uff0c\u4f46\u64cd\u4f5c\u7cfb\u7edf\u8fd8\u9700\u8981\u8bc6\u522b\u5e76\u4f7f\u7528\u65b0\u589e\u7a7a\u95f4\u3002 \u65b9\u6cd51\uff1a\u4f7f\u7528Home Assistant\u5185\u7f6e\u5de5\u5177\uff08\u63a8\u8350\uff09 \u00b6 \u8bbf\u95eeHome Assistant\u7ec8\u7aef \u5728Home Assistant Web\u754c\u9762\u4e2d \u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u9644\u52a0\u7ec4\u4ef6\" \u2192 \"Advanced SSH & Web Terminal\" \u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u9700\u8981\u5148\u5b89\u88c5SSH\u9644\u52a0\u7ec4\u4ef6 \u6267\u884c\u6269\u5c55\u547d\u4ee4 ```bash # \u67e5\u770b\u5f53\u524d\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 df -h # \u6269\u5c55\u6839\u5206\u533a\uff08\u901a\u5e38\u662f/dev/sda8\uff09 resize2fs /dev/sda8 # \u518d\u6b21\u67e5\u770b\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\uff0c\u786e\u8ba4\u6269\u5c55\u6210\u529f df -h ``` \u65b9\u6cd52\uff1a\u4f7f\u7528SSH\u8fde\u63a5\uff08\u5907\u9009\uff09 \u00b6 \u542f\u7528SSH \u5728Home Assistant Web\u754c\u9762\u4e2d\u542f\u7528SSH\u529f\u80fd \u901a\u8fc7SSH\u8fde\u63a5 ```bash # \u8fde\u63a5\u5230Home Assistant ssh root@[Home_Assistant_IP] # \u67e5\u770b\u78c1\u76d8\u5206\u533a fdisk -l # \u6269\u5c55\u6587\u4ef6\u7cfb\u7edf resize2fs /dev/sda8 ``` \u6b65\u9aa45\uff1a\u9a8c\u8bc1\u6269\u5c55\u7ed3\u679c \u00b6 \u68c0\u67e5\u5b58\u50a8\u7a7a\u95f4 \u901a\u8fc7SSH\u6216\u7ec8\u7aef\u6267\u884c\u547d\u4ee4\uff1a df -h \u6216\u5728Home Assistant Web\u754c\u9762\u4e2d\u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u7cfb\u7edf\" \u2192 \"\u5b58\u50a8\" \u786e\u8ba4\u53ef\u7528\u7a7a\u95f4\u63a5\u8fd1500GB \u6210\u529f\u6848\u4f8b\u8f93\u51fa\u793a\u4f8b\uff1a bash \u279c ~ df -h Filesystem Size Used Available Use% Mounted on /dev/sda8 491.4G 5.4G 466.0G 1% /homeassistant /dev/sda8 491.4G 5.4G 466.0G 1% /data /dev/sda8 491.4G 5.4G 466.0G 1% /backup /dev/sda8 491.4G 5.4G 466.0G 1% /media /dev/sda8 491.4G 5.4G 466.0G 1% /share \u53ef\u4ee5\u770b\u5230 /dev/sda8 \u5206\u533a\u5df2\u6210\u529f\u6269\u5c55\u5230 491.4GB \uff0c\u53ef\u7528\u7a7a\u95f4 466.0GB \u3002 \u9a8c\u8bc1\u7cfb\u7edf\u7a33\u5b9a\u6027 \u91cd\u542fHome Assistant\u7cfb\u7edf \u786e\u8ba4\u6240\u6709\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c \u68c0\u67e5\u65e5\u5fd7\u4e2d\u65e0\u9519\u8bef\u4fe1\u606f \u6545\u969c\u6392\u9664 \u00b6 \u95ee\u98981\uff1a\u865a\u62df\u673a\u65e0\u6cd5\u542f\u52a8 \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5ESXi\u4e3b\u673a\u5b58\u50a8\u7a7a\u95f4\u662f\u5426\u5145\u8db3 - \u6062\u590d\u5230\u6269\u5bb9\u524d\u7684\u5feb\u7167 - \u91cd\u65b0\u6267\u884c\u6269\u5bb9\u6b65\u9aa4 \u95ee\u98982\uff1a\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u5931\u8d25 \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a # \u68c0\u67e5\u6587\u4ef6\u7cfb\u7edf fsck /dev/sda8 # \u5f3a\u5236\u6269\u5c55 resize2fs -f /dev/sda8 \u95ee\u98983\uff1a\u6269\u5c55\u540e\u7a7a\u95f4\u672a\u663e\u793a \u00b6 \u89e3\u51b3\u65b9\u6848\uff1a - \u91cd\u542fHome Assistant\u7cfb\u7edf - \u68c0\u67e5\u5206\u533a\u8868\uff1a fdisk -l - \u624b\u52a8\u6269\u5c55\u5206\u533a\uff1a parted /dev/sda resizepart 8 100% \u6ce8\u610f\u4e8b\u9879 \u00b6 \u26a0\ufe0f \u5b89\u5168\u8b66\u544a \u00b6 \u5fc5\u987b \u5728\u64cd\u4f5c\u524d\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u786e\u4fdd\u5728\u7ef4\u62a4\u7a97\u53e3\u671f\u95f4\u6267\u884c\u6b64\u64cd\u4f5c \u5efa\u8bae\u5728\u6d4b\u8bd5\u73af\u5883\u4e2d\u5148\u9a8c\u8bc1\u6b65\u9aa4 \ud83d\udca1 \u6700\u4f73\u5b9e\u8df5 \u00b6 \u5b9a\u671f\u5907\u4efdHome Assistant\u914d\u7f6e \u76d1\u63a7ESXi\u4e3b\u673a\u5b58\u50a8\u4f7f\u7528\u60c5\u51b5 \u8003\u8651\u4f7f\u7528\u7cbe\u7b80\u914d\u7f6e\u78c1\u76d8\u4ee5\u8282\u7701\u7a7a\u95f4 \ud83d\udccb \u9a8c\u8bc1\u6e05\u5355 \u00b6 \u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u4fee\u6539\u865a\u62df\u786c\u76d8\u5927\u5c0f\u4e3a500GB \u542f\u52a8\u865a\u62df\u673a\u5e76\u786e\u8ba4\u6b63\u5e38\u8fd0\u884c \u6267\u884c\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u547d\u4ee4 \u9a8c\u8bc1\u5b58\u50a8\u7a7a\u95f4\u663e\u793a\u63a5\u8fd1500GB \u6d4b\u8bd5Home Assistant\u6240\u6709\u529f\u80fd \u5220\u9664\u4e0d\u9700\u8981\u7684\u5feb\u7167\uff08\u53ef\u9009\uff09 \u76f8\u5173\u6587\u6863 \u00b6 Home Assistant\u5907\u4efd\u548c\u6062\u590d\u6307\u5357 VMware ESXi\u865a\u62df\u673a\u7ba1\u7406\u6307\u5357 \u66f4\u65b0\u8bb0\u5f55 \u00b6 2025-07-17\uff1a\u521d\u59cb\u7248\u672c\u521b\u5efa 2025-07-17\uff1a\u6dfb\u52a0\u6210\u529f\u6848\u4f8b\u9a8c\u8bc1\uff0c\u786e\u8ba432GB\u2192500GB\u6269\u5c55\u5b8c\u5168\u6210\u529f \u5305\u542b\u4ece32GB\u6269\u5c55\u5230500GB\u7684\u5b8c\u6574\u6b65\u9aa4\u548c\u5b9e\u9645\u9a8c\u8bc1\u7ed3\u679c \u6587\u6863\u4f5c\u8005 \uff1a\u6280\u672f\u56e2\u961f \u6700\u540e\u66f4\u65b0 \uff1a2025\u5e747\u670817\u65e5 \u9002\u7528\u7248\u672c \uff1aVMware ESXi 5.5+, Home Assistant OS \u6240\u6709\u7248\u672c","title":"VMware-ESXi\u6269\u5c55HomeAssistant\u786c\u76d8\u6307\u5357"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#vmware-esxihome-assistant-os","text":"","title":"VMware ESXi\u4e2d\u6269\u5c55Home Assistant OS\u786c\u76d8\u7a7a\u95f4\u6307\u5357"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_1","text":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728VMware ESXi\u73af\u5883\u4e2d\u5c06\u901a\u8fc7OVA\u65b9\u5f0f\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a\u786c\u76d8\u4ece32GB\u6269\u5c55\u5230500GB\u3002","title":"\u6982\u8ff0"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_2","text":"VMware ESXi 5.5 \u6216\u66f4\u9ad8\u7248\u672c \u5df2\u5b89\u88c5\u7684Home Assistant OS\u865a\u62df\u673a ESXi\u4e3b\u673a\u6709\u8db3\u591f\u7684\u5b58\u50a8\u7a7a\u95f4\uff08\u81f3\u5c11500GB\u53ef\u7528\uff09 \u7ba1\u7406\u5458\u6743\u9650\u8bbf\u95eeESXi Web\u754c\u9762","title":"\u524d\u63d0\u6761\u4ef6"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_3","text":"","title":"\u64cd\u4f5c\u6b65\u9aa4"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1","text":"\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \uff08\u5f3a\u70c8\u5efa\u8bae\uff09 \u5728ESXi Web\u754c\u9762\u4e2d\u9009\u62e9Home Assistant\u865a\u62df\u673a \u70b9\u51fb\"\u64cd\u4f5c\" \u2192 \"\u521b\u5efa\u5feb\u7167\" \u8f93\u5165\u5feb\u7167\u540d\u79f0\uff1a \u6269\u5bb9\u524d\u5907\u4efd_YYYY-MM-DD \u70b9\u51fb\"\u521b\u5efa\u5feb\u7167\" \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u5728Home Assistant\u754c\u9762\u4e2d\u9009\u62e9\"\u7cfb\u7edf\" \u2192 \"\u91cd\u542f\u7cfb\u7edf\" \u9009\u62e9\"\u5173\u673a\"\u9009\u9879 \u6216\u5728ESXi\u754c\u9762\u4e2d\u9009\u62e9\u865a\u62df\u673a\uff0c\u70b9\u51fb\"\u5173\u95ed\u7535\u6e90\" \u26a0\ufe0f \u91cd\u8981 \uff1a\u786e\u4fdd\u662f\u5b8c\u5168\u5173\u95ed\uff0c\u4e0d\u662f\u6302\u8d77\u72b6\u6001","title":"\u6b65\u9aa41\uff1a\u51c6\u5907\u5de5\u4f5c"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2esxi","text":"\u8fdb\u5165\u865a\u62df\u673a\u7f16\u8f91\u6a21\u5f0f \u5728ESXi Web\u754c\u9762\u4e2d\u53f3\u952e\u70b9\u51fbHome Assistant\u865a\u62df\u673a \u9009\u62e9\"\u7f16\u8f91\u8bbe\u7f6e\" \u4fee\u6539\u786c\u76d8\u5bb9\u91cf \u5728\u865a\u62df\u786c\u4ef6\u5217\u8868\u4e2d\u627e\u5230\"\u786c\u76d81\" \u5f53\u524d\u663e\u793a\u4e3a\"32 GB\" \u5c06\u6570\u503c\u6539\u4e3a\"500\"\uff0c\u5355\u4f4d\u4fdd\u6301\"GB\" \u70b9\u51fb\"\u4fdd\u5b58\" \u786e\u8ba4\u66f4\u6539 \u68c0\u67e5\u865a\u62df\u673a\u8bbe\u7f6e\u4e2d\u786c\u76d8\u5bb9\u91cf\u5df2\u663e\u793a\u4e3a500GB \u5173\u95ed\u7f16\u8f91\u7a97\u53e3","title":"\u6b65\u9aa42\uff1a\u5728ESXi\u4e2d\u6269\u5c55\u786c\u76d8"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#3","text":"\u542f\u52a8Home Assistant \u70b9\u51fb\u865a\u62df\u673a\u7684\"\u5f00\u542f\u7535\u6e90\"\u6309\u94ae \u7b49\u5f85Home Assistant\u5b8c\u5168\u542f\u52a8 \u901a\u8fc7Web\u754c\u9762\u786e\u8ba4\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c","title":"\u6b65\u9aa43\uff1a\u542f\u52a8\u865a\u62df\u673a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#4","text":"\u865a\u62df\u786c\u76d8\u5df2\u6269\u5c55\uff0c\u4f46\u64cd\u4f5c\u7cfb\u7edf\u8fd8\u9700\u8981\u8bc6\u522b\u5e76\u4f7f\u7528\u65b0\u589e\u7a7a\u95f4\u3002","title":"\u6b65\u9aa44\uff1a\u6269\u5c55\u6587\u4ef6\u7cfb\u7edf"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1home-assistant","text":"\u8bbf\u95eeHome Assistant\u7ec8\u7aef \u5728Home Assistant Web\u754c\u9762\u4e2d \u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u9644\u52a0\u7ec4\u4ef6\" \u2192 \"Advanced SSH & Web Terminal\" \u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u9700\u8981\u5148\u5b89\u88c5SSH\u9644\u52a0\u7ec4\u4ef6 \u6267\u884c\u6269\u5c55\u547d\u4ee4 ```bash # \u67e5\u770b\u5f53\u524d\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 df -h # \u6269\u5c55\u6839\u5206\u533a\uff08\u901a\u5e38\u662f/dev/sda8\uff09 resize2fs /dev/sda8 # \u518d\u6b21\u67e5\u770b\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\uff0c\u786e\u8ba4\u6269\u5c55\u6210\u529f df -h ```","title":"\u65b9\u6cd51\uff1a\u4f7f\u7528Home Assistant\u5185\u7f6e\u5de5\u5177\uff08\u63a8\u8350\uff09"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2ssh","text":"\u542f\u7528SSH \u5728Home Assistant Web\u754c\u9762\u4e2d\u542f\u7528SSH\u529f\u80fd \u901a\u8fc7SSH\u8fde\u63a5 ```bash # \u8fde\u63a5\u5230Home Assistant ssh root@[Home_Assistant_IP] # \u67e5\u770b\u78c1\u76d8\u5206\u533a fdisk -l # \u6269\u5c55\u6587\u4ef6\u7cfb\u7edf resize2fs /dev/sda8 ```","title":"\u65b9\u6cd52\uff1a\u4f7f\u7528SSH\u8fde\u63a5\uff08\u5907\u9009\uff09"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#5","text":"\u68c0\u67e5\u5b58\u50a8\u7a7a\u95f4 \u901a\u8fc7SSH\u6216\u7ec8\u7aef\u6267\u884c\u547d\u4ee4\uff1a df -h \u6216\u5728Home Assistant Web\u754c\u9762\u4e2d\u8fdb\u5165\"\u8bbe\u7f6e\" \u2192 \"\u7cfb\u7edf\" \u2192 \"\u5b58\u50a8\" \u786e\u8ba4\u53ef\u7528\u7a7a\u95f4\u63a5\u8fd1500GB \u6210\u529f\u6848\u4f8b\u8f93\u51fa\u793a\u4f8b\uff1a bash \u279c ~ df -h Filesystem Size Used Available Use% Mounted on /dev/sda8 491.4G 5.4G 466.0G 1% /homeassistant /dev/sda8 491.4G 5.4G 466.0G 1% /data /dev/sda8 491.4G 5.4G 466.0G 1% /backup /dev/sda8 491.4G 5.4G 466.0G 1% /media /dev/sda8 491.4G 5.4G 466.0G 1% /share \u53ef\u4ee5\u770b\u5230 /dev/sda8 \u5206\u533a\u5df2\u6210\u529f\u6269\u5c55\u5230 491.4GB \uff0c\u53ef\u7528\u7a7a\u95f4 466.0GB \u3002 \u9a8c\u8bc1\u7cfb\u7edf\u7a33\u5b9a\u6027 \u91cd\u542fHome Assistant\u7cfb\u7edf \u786e\u8ba4\u6240\u6709\u529f\u80fd\u6b63\u5e38\u5de5\u4f5c \u68c0\u67e5\u65e5\u5fd7\u4e2d\u65e0\u9519\u8bef\u4fe1\u606f","title":"\u6b65\u9aa45\uff1a\u9a8c\u8bc1\u6269\u5c55\u7ed3\u679c"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_4","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#1_1","text":"\u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5ESXi\u4e3b\u673a\u5b58\u50a8\u7a7a\u95f4\u662f\u5426\u5145\u8db3 - \u6062\u590d\u5230\u6269\u5bb9\u524d\u7684\u5feb\u7167 - \u91cd\u65b0\u6267\u884c\u6269\u5bb9\u6b65\u9aa4","title":"\u95ee\u98981\uff1a\u865a\u62df\u673a\u65e0\u6cd5\u542f\u52a8"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#2","text":"\u89e3\u51b3\u65b9\u6848\uff1a # \u68c0\u67e5\u6587\u4ef6\u7cfb\u7edf fsck /dev/sda8 # \u5f3a\u5236\u6269\u5c55 resize2fs -f /dev/sda8","title":"\u95ee\u98982\uff1a\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u5931\u8d25"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#3_1","text":"\u89e3\u51b3\u65b9\u6848\uff1a - \u91cd\u542fHome Assistant\u7cfb\u7edf - \u68c0\u67e5\u5206\u533a\u8868\uff1a fdisk -l - \u624b\u52a8\u6269\u5c55\u5206\u533a\uff1a parted /dev/sda resizepart 8 100%","title":"\u95ee\u98983\uff1a\u6269\u5c55\u540e\u7a7a\u95f4\u672a\u663e\u793a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_5","text":"","title":"\u6ce8\u610f\u4e8b\u9879"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_6","text":"\u5fc5\u987b \u5728\u64cd\u4f5c\u524d\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u786e\u4fdd\u5728\u7ef4\u62a4\u7a97\u53e3\u671f\u95f4\u6267\u884c\u6b64\u64cd\u4f5c \u5efa\u8bae\u5728\u6d4b\u8bd5\u73af\u5883\u4e2d\u5148\u9a8c\u8bc1\u6b65\u9aa4","title":"\u26a0\ufe0f \u5b89\u5168\u8b66\u544a"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_7","text":"\u5b9a\u671f\u5907\u4efdHome Assistant\u914d\u7f6e \u76d1\u63a7ESXi\u4e3b\u673a\u5b58\u50a8\u4f7f\u7528\u60c5\u51b5 \u8003\u8651\u4f7f\u7528\u7cbe\u7b80\u914d\u7f6e\u78c1\u76d8\u4ee5\u8282\u7701\u7a7a\u95f4","title":"\ud83d\udca1 \u6700\u4f73\u5b9e\u8df5"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_8","text":"\u521b\u5efa\u865a\u62df\u673a\u5feb\u7167 \u5b8c\u5168\u5173\u95ed\u865a\u62df\u673a \u4fee\u6539\u865a\u62df\u786c\u76d8\u5927\u5c0f\u4e3a500GB \u542f\u52a8\u865a\u62df\u673a\u5e76\u786e\u8ba4\u6b63\u5e38\u8fd0\u884c \u6267\u884c\u6587\u4ef6\u7cfb\u7edf\u6269\u5c55\u547d\u4ee4 \u9a8c\u8bc1\u5b58\u50a8\u7a7a\u95f4\u663e\u793a\u63a5\u8fd1500GB \u6d4b\u8bd5Home Assistant\u6240\u6709\u529f\u80fd \u5220\u9664\u4e0d\u9700\u8981\u7684\u5feb\u7167\uff08\u53ef\u9009\uff09","title":"\ud83d\udccb \u9a8c\u8bc1\u6e05\u5355"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_9","text":"Home Assistant\u5907\u4efd\u548c\u6062\u590d\u6307\u5357 VMware ESXi\u865a\u62df\u673a\u7ba1\u7406\u6307\u5357","title":"\u76f8\u5173\u6587\u6863"},{"location":"Usages/QA/VMware-ESXi%E6%89%A9%E5%B1%95HomeAssistant%E7%A1%AC%E7%9B%98%E6%8C%87%E5%8D%97/#_10","text":"2025-07-17\uff1a\u521d\u59cb\u7248\u672c\u521b\u5efa 2025-07-17\uff1a\u6dfb\u52a0\u6210\u529f\u6848\u4f8b\u9a8c\u8bc1\uff0c\u786e\u8ba432GB\u2192500GB\u6269\u5c55\u5b8c\u5168\u6210\u529f \u5305\u542b\u4ece32GB\u6269\u5c55\u5230500GB\u7684\u5b8c\u6574\u6b65\u9aa4\u548c\u5b9e\u9645\u9a8c\u8bc1\u7ed3\u679c \u6587\u6863\u4f5c\u8005 \uff1a\u6280\u672f\u56e2\u961f \u6700\u540e\u66f4\u65b0 \uff1a2025\u5e747\u670817\u65e5 \u9002\u7528\u7248\u672c \uff1aVMware ESXi 5.5+, Home Assistant OS \u6240\u6709\u7248\u672c","title":"\u66f4\u65b0\u8bb0\u5f55"},{"location":"Usages/QA/errorsQA/","text":"\u5e38\u89c1\u9519\u8bef \u00b6 \u914d\u7f6e\u6587\u4ef6\u51fa\u9519 \u00b6 \u5f53\u51fa\u73b0\u8fd9\u79cd\u56fe,\u4f30\u8ba1\u662f\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u51fa\u9519,\u4e0d\u7b26\u5408yam\u683c\u5f0f,\u8bf7\u7528\u5171\u4eab\u76ee\u5f55smb\u6216ssh\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\u4fee\u6b63\u683c\u5f0f\u540e,\u91cd\u542f\u518d\u8bd5","title":"errorsQA"},{"location":"Usages/QA/errorsQA/#_1","text":"","title":"\u5e38\u89c1\u9519\u8bef"},{"location":"Usages/QA/errorsQA/#_2","text":"\u5f53\u51fa\u73b0\u8fd9\u79cd\u56fe,\u4f30\u8ba1\u662f\u914d\u7f6e\u6587\u4ef6\u683c\u5f0f\u51fa\u9519,\u4e0d\u7b26\u5408yam\u683c\u5f0f,\u8bf7\u7528\u5171\u4eab\u76ee\u5f55smb\u6216ssh\u6253\u5f00\u914d\u7f6e\u6587\u4ef6\u4fee\u6b63\u683c\u5f0f\u540e,\u91cd\u542f\u518d\u8bd5","title":"\u914d\u7f6e\u6587\u4ef6\u51fa\u9519"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/","text":"\u5b89\u88c5curl \u00b6 \u5148\u68c0\u67e5\u662f\u5426\u5b89\u88c5curl\u5982\u679c\u6ca1\u88c5\uff0c\u5219\u5148\u7528\u4ee5\u4e0b\u6307\u4ee4\u5b89\u88c5 sudo apt update sudo apt install curl \u914d\u7f6e\u8fdc\u7a0b\u534f\u52a9\u5f00\u673a\u52a8\u767b\u5f55\u4e0eedge\u81ea\u542f \u00b6 \u6253\u5f00\u7ec8\u7aef,\u590d\u5236\u4e0b\u9762\u547d\u4ee4\uff0c\u6267\u884c\uff0c\u5b8c\u6210\u540e\u91cd\u542f\u7535\u8111\u5373\u53ef\u3002 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/install-uds.sh | bash \u8fd9\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u6bd4\u8f83\u4e45\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u672c\u811a\u672c\u5b9e\u5b9e\u73b0\u7684\u529f\u80fd \u00b6 SSH\u670d\u52a1 - \u81ea\u52a8\u5b89\u88c5\u5e76\u542f\u7528SSH\u670d\u52a1 \u7cfb\u7edf\u66f4\u65b0 - \u66f4\u65b0\u7cfb\u7edf\u8f6f\u4ef6\u5305\u5230\u6700\u65b0\u7248\u672c \u7981\u7528\u81ea\u52a8\u5f85\u673a - \u963b\u6b62\u7cfb\u7edfAC\u7535\u6e90\u548c\u7535\u6c60\u6a21\u5f0f\u4e0b\u81ea\u52a8\u7761\u7720 \u7981\u7528\u5c4f\u5e55\u9501\u5b9a - \u53d6\u6d88\u5c4f\u5e55\u4fdd\u62a4\u7a0b\u5e8f\u9501\u5b9a\u529f\u80fd \u7981\u7528\u5c4f\u5e55\u81ea\u52a8\u5173\u95ed - \u9632\u6b62\u663e\u793a\u5668\u81ea\u52a8\u5173\u95ed \u7981\u7528\u81ea\u52a8\u66f4\u65b0 - \u914d\u7f6eAPT\u7b56\u7565\u963b\u6b62\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0 \u7981\u7528MOTD\u901a\u77e5 - \u5173\u95ed\u767b\u5f55\u65f6\u7684\u65b0\u95fb\u901a\u77e5 Microsoft Edge\u5b89\u88c5 - \u81ea\u52a8\u4e0b\u8f7d\u5b89\u88c5\u6700\u65b0\u7248Edge\u6d4f\u89c8\u5668 \u81ea\u52a8\u767b\u5f55\u914d\u7f6e - \u8bbe\u7f6eGDM\u81ea\u52a8\u767b\u5f55\uff0c\u91cd\u542f\u540e\u65e0\u9700\u5bc6\u7801 XRDP\u8fdc\u7a0b\u684c\u9762 - \u5b89\u88c5\u914d\u7f6eRDP\u8fdc\u7a0b\u684c\u9762\u670d\u52a1\uff08\u7aef\u53e33389\uff09 Polkit\u7b56\u7565\u914d\u7f6e - \u89e3\u51b3\u8fdc\u7a0b\u684c\u9762\u6743\u9650\u8ba4\u8bc1\u95ee\u9898 \u9632\u706b\u5899\u914d\u7f6e - \u667a\u80fd\u68c0\u6d4bUFW\u72b6\u6001\u5e76\u914d\u7f6e\u5fc5\u8981\u7aef\u53e3 \u4e2d\u6587\u8f93\u5165\u6cd5 - \u5b89\u88c5ibus-pinyin\u4e2d\u6587\u62fc\u97f3\u8f93\u5165\u6cd5 NoMachine\u8fdc\u7a0b\u8f6f\u4ef6 - \u667a\u80fd\u68c0\u6d4b\u5b89\u88c5NoMachine\uff08\u7aef\u53e34000\uff09 Edge Kiosk\u81ea\u542f\u52a8 - \u914d\u7f6eEdge\u5168\u5c4f\u6a21\u5f0f\u81ea\u52a8\u542f\u52a8\u6307\u5b9a\u7f51\u9875 \u5bc6\u94a5\u73af\u5904\u7406 - \u914d\u7f6e\u542f\u52a8\u53c2\u6570\u907f\u514d\u5bc6\u94a5\u73af\u5bc6\u7801\u63d0\u793a \u684c\u9762\u81ea\u542f\u52a8\u6587\u4ef6 - \u521b\u5efaautostart\u684c\u9762\u6587\u4ef6\u5b9e\u73b0\u81ea\u542f\u52a8 \u5907\u7528\u542f\u52a8\u811a\u672c - \u63d0\u4f9bbackup\u542f\u52a8\u811a\u672c\u4f5c\u4e3a\u5907\u7528\u65b9\u6848 \u670d\u52a1\u6e05\u7406 - \u81ea\u52a8\u6e05\u7406\u51b2\u7a81\u7684systemd\u670d\u52a1 \u5b8c\u6574\u65e5\u5fd7\u8bb0\u5f55 - \u8bb0\u5f55\u6240\u6709\u64cd\u4f5c\u5230\u65e5\u5fd7\u6587\u4ef6 \u9519\u8bef\u5904\u7406\u673a\u5236 - \u6bcf\u6b65\u9aa4\u5b8c\u5584\u7684\u9519\u8bef\u68c0\u6d4b\u5904\u7406 \u65e0\u4ea4\u4e92\u6a21\u5f0f - \u652f\u6301curl\u8fdc\u7a0b\u6267\u884c\u65e0\u9700\u7528\u6237\u8f93\u5165 \u73af\u5883\u53d8\u91cf\u652f\u6301 - \u53ef\u901a\u8fc7KIOSK_URL\u81ea\u5b9a\u4e49\u542f\u52a8\u9875\u9762 \u9632\u706b\u5899\u7aef\u53e3\u7ba1\u7406 - \u81ea\u52a8\u5f00\u653eSSH/RDP/NoMachine\u7aef\u53e3 \u5b89\u5168\u53c2\u6570\u914d\u7f6e - Edge\u542f\u52a8\u5305\u542b\u5b89\u5168\u548c\u517c\u5bb9\u6027\u53c2\u6570 \u4fee\u6539\u5927\u5c4f\u6253\u5f00\u7684\u5730\u5740 \u00b6 \u627e\u5230\u811a\u672c\u7684\u7b2c192\u884c\uff0c\u4fee\u6539\u5ba2\u6237\u4ee3\u7801\uff0c \u627e\u5230\u811a\u672c\u7684\u7b2c193\u884c\uff0c\u4fee\u6539\u7b2c\u9875\u663e\u793a\u6570\u91cf \u5982\u4e0b\u56fe\u6240\u793a","title":"Ubuntu-desktop\u684c\u9762\u7cfb\u7edf\u5982\u4f55\u914d\u7f6e\u5f00\u542f\u8fdc\u7a0b\u534f\u52a9"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#curl","text":"\u5148\u68c0\u67e5\u662f\u5426\u5b89\u88c5curl\u5982\u679c\u6ca1\u88c5\uff0c\u5219\u5148\u7528\u4ee5\u4e0b\u6307\u4ee4\u5b89\u88c5 sudo apt update sudo apt install curl","title":"\u5b89\u88c5curl"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#edge","text":"\u6253\u5f00\u7ec8\u7aef,\u590d\u5236\u4e0b\u9762\u547d\u4ee4\uff0c\u6267\u884c\uff0c\u5b8c\u6210\u540e\u91cd\u542f\u7535\u8111\u5373\u53ef\u3002 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/install-uds.sh | bash \u8fd9\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u6bd4\u8f83\u4e45\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002","title":"\u914d\u7f6e\u8fdc\u7a0b\u534f\u52a9\u5f00\u673a\u52a8\u767b\u5f55\u4e0eedge\u81ea\u542f"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#_1","text":"SSH\u670d\u52a1 - \u81ea\u52a8\u5b89\u88c5\u5e76\u542f\u7528SSH\u670d\u52a1 \u7cfb\u7edf\u66f4\u65b0 - \u66f4\u65b0\u7cfb\u7edf\u8f6f\u4ef6\u5305\u5230\u6700\u65b0\u7248\u672c \u7981\u7528\u81ea\u52a8\u5f85\u673a - \u963b\u6b62\u7cfb\u7edfAC\u7535\u6e90\u548c\u7535\u6c60\u6a21\u5f0f\u4e0b\u81ea\u52a8\u7761\u7720 \u7981\u7528\u5c4f\u5e55\u9501\u5b9a - \u53d6\u6d88\u5c4f\u5e55\u4fdd\u62a4\u7a0b\u5e8f\u9501\u5b9a\u529f\u80fd \u7981\u7528\u5c4f\u5e55\u81ea\u52a8\u5173\u95ed - \u9632\u6b62\u663e\u793a\u5668\u81ea\u52a8\u5173\u95ed \u7981\u7528\u81ea\u52a8\u66f4\u65b0 - \u914d\u7f6eAPT\u7b56\u7565\u963b\u6b62\u7cfb\u7edf\u81ea\u52a8\u66f4\u65b0 \u7981\u7528MOTD\u901a\u77e5 - \u5173\u95ed\u767b\u5f55\u65f6\u7684\u65b0\u95fb\u901a\u77e5 Microsoft Edge\u5b89\u88c5 - \u81ea\u52a8\u4e0b\u8f7d\u5b89\u88c5\u6700\u65b0\u7248Edge\u6d4f\u89c8\u5668 \u81ea\u52a8\u767b\u5f55\u914d\u7f6e - \u8bbe\u7f6eGDM\u81ea\u52a8\u767b\u5f55\uff0c\u91cd\u542f\u540e\u65e0\u9700\u5bc6\u7801 XRDP\u8fdc\u7a0b\u684c\u9762 - \u5b89\u88c5\u914d\u7f6eRDP\u8fdc\u7a0b\u684c\u9762\u670d\u52a1\uff08\u7aef\u53e33389\uff09 Polkit\u7b56\u7565\u914d\u7f6e - \u89e3\u51b3\u8fdc\u7a0b\u684c\u9762\u6743\u9650\u8ba4\u8bc1\u95ee\u9898 \u9632\u706b\u5899\u914d\u7f6e - \u667a\u80fd\u68c0\u6d4bUFW\u72b6\u6001\u5e76\u914d\u7f6e\u5fc5\u8981\u7aef\u53e3 \u4e2d\u6587\u8f93\u5165\u6cd5 - \u5b89\u88c5ibus-pinyin\u4e2d\u6587\u62fc\u97f3\u8f93\u5165\u6cd5 NoMachine\u8fdc\u7a0b\u8f6f\u4ef6 - \u667a\u80fd\u68c0\u6d4b\u5b89\u88c5NoMachine\uff08\u7aef\u53e34000\uff09 Edge Kiosk\u81ea\u542f\u52a8 - \u914d\u7f6eEdge\u5168\u5c4f\u6a21\u5f0f\u81ea\u52a8\u542f\u52a8\u6307\u5b9a\u7f51\u9875 \u5bc6\u94a5\u73af\u5904\u7406 - \u914d\u7f6e\u542f\u52a8\u53c2\u6570\u907f\u514d\u5bc6\u94a5\u73af\u5bc6\u7801\u63d0\u793a \u684c\u9762\u81ea\u542f\u52a8\u6587\u4ef6 - \u521b\u5efaautostart\u684c\u9762\u6587\u4ef6\u5b9e\u73b0\u81ea\u542f\u52a8 \u5907\u7528\u542f\u52a8\u811a\u672c - \u63d0\u4f9bbackup\u542f\u52a8\u811a\u672c\u4f5c\u4e3a\u5907\u7528\u65b9\u6848 \u670d\u52a1\u6e05\u7406 - \u81ea\u52a8\u6e05\u7406\u51b2\u7a81\u7684systemd\u670d\u52a1 \u5b8c\u6574\u65e5\u5fd7\u8bb0\u5f55 - \u8bb0\u5f55\u6240\u6709\u64cd\u4f5c\u5230\u65e5\u5fd7\u6587\u4ef6 \u9519\u8bef\u5904\u7406\u673a\u5236 - \u6bcf\u6b65\u9aa4\u5b8c\u5584\u7684\u9519\u8bef\u68c0\u6d4b\u5904\u7406 \u65e0\u4ea4\u4e92\u6a21\u5f0f - \u652f\u6301curl\u8fdc\u7a0b\u6267\u884c\u65e0\u9700\u7528\u6237\u8f93\u5165 \u73af\u5883\u53d8\u91cf\u652f\u6301 - \u53ef\u901a\u8fc7KIOSK_URL\u81ea\u5b9a\u4e49\u542f\u52a8\u9875\u9762 \u9632\u706b\u5899\u7aef\u53e3\u7ba1\u7406 - \u81ea\u52a8\u5f00\u653eSSH/RDP/NoMachine\u7aef\u53e3 \u5b89\u5168\u53c2\u6570\u914d\u7f6e - Edge\u542f\u52a8\u5305\u542b\u5b89\u5168\u548c\u517c\u5bb9\u6027\u53c2\u6570","title":"\u672c\u811a\u672c\u5b9e\u5b9e\u73b0\u7684\u529f\u80fd"},{"location":"Usages/QA/ubunte-desktop%E6%A1%8C%E9%9D%A2%E7%B3%BB%E7%BB%9F%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E5%8D%8F%E5%8A%A9/#_2","text":"\u627e\u5230\u811a\u672c\u7684\u7b2c192\u884c\uff0c\u4fee\u6539\u5ba2\u6237\u4ee3\u7801\uff0c \u627e\u5230\u811a\u672c\u7684\u7b2c193\u884c\uff0c\u4fee\u6539\u7b2c\u9875\u663e\u793a\u6570\u91cf \u5982\u4e0b\u56fe\u6240\u793a","title":"\u4fee\u6539\u5927\u5c4f\u6253\u5f00\u7684\u5730\u5740"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/","text":"Win11/10\u8bbf\u95eeSamba\u5171\u4eab\u548cVSCode SSH\u8bbf\u95ee\u89e3\u51b3\u65b9\u6848 \u00b6 \u95ee\u9898\u63cf\u8ff0 \u00b6 Docker\u5b89\u88c5\u7684HomeAssistant\u4f7f\u7528Samba\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\uff0c\u4f46Win11/10\u6709\u65f6\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u65e0\u5bc6\u7801\u7684Samba\u5171\u4eab\u3002 \u89e3\u51b3\u65b9\u6848 \u00b6 \u65b9\u6848\u4e00\uff1a\u4fee\u590dWin11/10 Samba\u8bbf\u95ee\u95ee\u9898 \u00b6 1. \u542f\u7528SMB1.0\u534f\u8bae\uff08\u4e0d\u63a8\u8350\uff0c\u5b89\u5168\u6027\u8f83\u4f4e\uff09 \u00b6 # \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884cPowerShell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol 2. \u4fee\u6539\u672c\u5730\u5b89\u5168\u7b56\u7565\uff08\u63a8\u8350\uff09 \u00b6 \u6309 Win+R \u6253\u5f00\u8fd0\u884c\u5bf9\u8bdd\u6846\uff0c\u8f93\u5165 gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u627e\u5230\u5e76\u4fee\u6539\u4ee5\u4e0b\u7b56\u7565\uff1a \u7f51\u7edc\u5b89\u5168: LAN Manager\u8eab\u4efd\u9a8c\u8bc1\u7ea7\u522b \u8bbe\u7f6e\u4e3a \u53d1\u9001LM\u548cNTLM\u54cd\u5e94 \u7f51\u7edc\u5b89\u5168: \u5bf9\u4e8eNTLM SSP(\u5305\u62ec\u5b89\u5168RPC)\u7684\u6700\u5c0f\u4f1a\u8bdd\u5b89\u5168 \u8bbe\u7f6e\u4e3a \u65e0\u8981\u6c42 3. \u4fee\u6539\u6ce8\u518c\u8868\uff08\u9ad8\u7ea7\u7528\u6237\uff09 \u00b6 # \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f 4. \u6dfb\u52a0\u7f51\u7edc\u51ed\u636e \u00b6 \u6253\u5f00 \u63a7\u5236\u9762\u677f > \u7528\u6237\u8d26\u6237 > \u51ed\u636e\u7ba1\u7406\u5668 \u9009\u62e9 Windows\u51ed\u636e \u70b9\u51fb \u6dfb\u52a0Windows\u51ed\u636e \u8f93\u5165\uff1a \u4e92\u8054\u7f51\u6216\u7f51\u7edc\u5730\u5740\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP \u7528\u6237\u540d\uff1a\u7559\u7a7a\u6216\u8f93\u5165 guest \u5bc6\u7801\uff1a\u7559\u7a7a 5. \u4f7f\u7528Windows\u5ba2\u6237\u7aef\u5f3a\u5236\u65e0\u5bc6\u7801\u8bbf\u95ee\uff08\u63a8\u8350\u89e3\u51b3\u65b9\u6848\uff09 \u00b6 \u7531\u4e8ecompose-all.yaml\u6587\u4ef6\u4e0d\u80fd\u4fee\u6539\uff0c\u6211\u4eec\u901a\u8fc7Windows\u5ba2\u6237\u7aef\u914d\u7f6e\u6765\u89e3\u51b3\u8bbf\u95ee\u95ee\u9898\uff1a \u65b9\u6cd5A\uff1a\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u6700\u63a8\u8350\uff09 \u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2aPowerShell\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff0c\u53ef\u4ee5\u4e00\u952e\u5b8c\u6210\u6240\u6709\u914d\u7f6e\uff1a \u89c2\u770b\u89c6\u9891\uff1a\u4fee\u590d Windows SMB \u9519\u8bef \u4fee\u590dWindows SMB \u9519\u8bef\u811a\u672c\u4e0b\u8f7d\u5730\u5740 \uff1a http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u4e0b\u8f7d\u811a\u672c\u6587\u4ef6 fixwindows.ps1 curl -o fixwindows.ps1 http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u5c06\u811a\u672c\u4fdd\u5b58\u5230\u672c\u5730\uff08\u5982c\u76d8\u7684\u6839\u76ee\u5f55\uff09 \u53f3\u952e\u70b9\u51fb\u811a\u672c\uff0c\u9009\u62e9\"\u4f7f\u7528PowerShell\u8fd0\u884c\" \u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" # \u5982\u679c\u63d0\u793a\u7981\u6b62\u8fd0\u884c\u811a\u672c\uff0c\u8bf7\u5148\u6267\u884c\u5982\u4e0b\u6307\u4ee4\u540e\uff0c\u518d\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process #\u7136\u540e\u518d\u8fd0\u884c\u811a\u672c .\\fixwindows.ps1 \u6309\u63d0\u793a\u8f93\u5165\u670d\u52a1\u5668IP\u5730\u5740 \u4f7f\u7528\u65b9\u6cd5\uff1a # \u65b9\u5f0f1\uff1a\u76f4\u63a5\u8fd0\u884c\uff08\u4ea4\u4e92\u5f0f\u8f93\u5165IP\uff09 .\\ fixwindows . ps1 # \u65b9\u5f0f2\uff1a\u5e26\u53c2\u6570\u8fd0\u884c .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" # \u65b9\u5f0f3\uff1a\u5b8c\u6574\u53c2\u6570 .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" -ShareName \"HAConfig\" -DriveLetter \"Z\" \u811a\u672c\u529f\u80fd\uff1a \u81ea\u52a8\u4fee\u6539\u6ce8\u518c\u8868\u8bbe\u7f6e \u8c03\u6574Windows\u5b89\u5168\u7b56\u7565 \u5efa\u7acbSamba\u8fde\u63a5\u5e76\u6620\u5c04\u9a71\u52a8\u5668 \u6d4b\u8bd5\u8fde\u63a5\u72b6\u6001 \u53ef\u9009\u521b\u5efa\u684c\u9762\u5feb\u6377\u65b9\u5f0f \u65b9\u6cd5B\uff1a\u901a\u8fc7\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668 \u6253\u5f00\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668 \u53f3\u952e\u70b9\u51fb\"\u6b64\u7535\u8111\"\uff0c\u9009\u62e9\"\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668\" \u9a71\u52a8\u5668\u9009\u62e9\u4e00\u4e2a\u53ef\u7528\u76d8\u7b26\uff08\u5982Z:\uff09 \u6587\u4ef6\u5939\u8f93\u5165\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \u53d6\u6d88\u52fe\u9009 \"\u767b\u5f55\u65f6\u91cd\u65b0\u8fde\u63a5\" \u70b9\u51fb\"\u4f7f\u7528\u5176\u4ed6\u51ed\u636e\u8fde\u63a5\" \u7528\u6237\u540d\u7559\u7a7a\u6216\u8f93\u5165 guest \uff0c\u5bc6\u7801\u7559\u7a7a \u52fe\u9009\"\u8bb0\u4f4f\u6211\u7684\u51ed\u636e\" \u65b9\u6cd5C\uff1a\u901a\u8fc7\u547d\u4ee4\u884c\u5f3a\u5236\u8fde\u63a5 \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd\uff0c\u6267\u884c\uff1a net use \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \"\" /user:\"\" \u65b9\u6cd5D\uff1a\u4fee\u6539Windows\u672c\u5730\u7ec4\u7b56\u7565 \u8fd0\u884c gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u4fee\u6539\uff1a \u7f51\u7edc\u5b89\u5168: \u5bf9\u533f\u540dSID/\u540d\u79f0\u7ffb\u8bd1\u7684\u9650\u5236 \u8bbe\u7f6e\u4e3a \u65e0 \u4fee\u6539\uff1a \u7f51\u7edc\u8bbf\u95ee: \u4e0d\u5141\u8bb8SAM\u8d26\u6237\u7684\u533f\u540d\u679a\u4e3e \u8bbe\u7f6e\u4e3a \u5df2\u7981\u7528 \u65b9\u6848\u4e8c\uff1a\u4f7f\u7528VSCode SSH\u8bbf\u95eeHomeAssistant\u6302\u8f7d\u76ee\u5f55 \u00b6 1. \u786e\u4fddSSH\u670d\u52a1\u8fd0\u884c \u00b6 \u5728HomeAssistant\u4e3b\u673a\u4e0a\u786e\u4fddSSH\u670d\u52a1\u5df2\u542f\u52a8\uff1a # \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001 sudo systemctl status ssh # \u5982\u679c\u672a\u542f\u52a8\uff0c\u542f\u7528\u5e76\u542f\u52a8SSH sudo systemctl enable ssh sudo systemctl start ssh 2. \u5b89\u88c5VSCode\u6269\u5c55 \u00b6 \u5728VSCode\u4e2d\u5b89\u88c5\u4ee5\u4e0b\u6269\u5c55\uff1a - Remote - SSH - Remote - SSH: Editing Configuration Files 3. \u914d\u7f6eSSH\u8fde\u63a5 \u00b6 \u6309 Ctrl+Shift+P \u6253\u5f00\u547d\u4ee4\u9762\u677f \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 Configure SSH Hosts \u9009\u62e9\u914d\u7f6e\u6587\u4ef6\uff08\u901a\u5e38\u662f C:\\Users\\\u7528\u6237\u540d\\.ssh\\config \uff09 \u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a Host homeassistant HostName \u4f60\u7684HomeAssistant\u670d\u52a1\u5668IP User dtuser Port 22 4. \u8fde\u63a5\u5230\u670d\u52a1\u5668 \u00b6 \u5728VSCode\u4e2d\u6309 Ctrl+Shift+P \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 homeassistant \u8f93\u5165\u670d\u52a1\u5668\u5bc6\u7801\u8fdb\u884c\u767b\u5f55 \u8fde\u63a5\u6210\u529f\u540e\uff0c\u6253\u5f00\u6587\u4ef6\u5939\uff1a /home/dtuser/opt/ha/config \u65b9\u6848\u4e09\uff1a\u4f7f\u7528SFTP\u5ba2\u6237\u7aef \u00b6 \u5982\u679cVSCode SSH\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528SFTP\u5ba2\u6237\u7aef\uff1a WinSCP \uff1a\u56fe\u5f62\u754c\u9762SFTP\u5ba2\u6237\u7aef FileZilla \uff1a\u652f\u6301SFTP\u534f\u8bae PuTTY + PSFTP \uff1a\u547d\u4ee4\u884c\u5de5\u5177 \u8fde\u63a5\u4fe1\u606f\uff1a \u534f\u8bae\uff1aSFTP \u4e3b\u673a\uff1a\u4f60\u7684\u670d\u52a1\u5668IP \u7aef\u53e3\uff1a22 \u7528\u6237\u540d\uff1adtuser \u5bc6\u7801\uff1a\uff08\u4f60\u7684\u670d\u52a1\u5668\u5bc6\u7801\uff09 \u63a8\u8350\u65b9\u6848 \u00b6 \u6700\u4f73\u5b9e\u8df5\u7ec4\u5408 \uff1a \u4f7f\u7528\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u65b9\u6848\u4e00\u7b2c5\u70b9\u65b9\u6cd5A\uff09- \u6700\u7b80\u5355\u9ad8\u6548 \u914d\u7f6eVSCode SSH\u8bbf\u95ee\u4f5c\u4e3a\u5907\u7528\u65b9\u6848\uff08\u65b9\u6848\u4e8c\uff09 \u8fd9\u6837\u65e2\u4e0d\u9700\u8981\u4fee\u6539compose\u6587\u4ef6\uff0c\u53c8\u63d0\u4f9b\u4e86\u81ea\u52a8\u5316\u548c\u624b\u52a8\u7684\u591a\u79cd\u8bbf\u95ee\u65b9\u5f0f\u3002 \u6545\u969c\u6392\u9664 \u00b6 Samba\u8bbf\u95ee\u95ee\u9898 \u00b6 \u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u963b\u6b62\u4e86445\u548c139\u7aef\u53e3 \u786e\u8ba4\u670d\u52a1\u5668IP\u5730\u5740\u6b63\u786e \u5c1d\u8bd5\u91cd\u542fSamba\u5bb9\u5668\uff1a docker restart samba SSH\u8bbf\u95ee\u95ee\u9898 \u00b6 \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status ssh \u786e\u8ba4\u9632\u706b\u5899\u5141\u8bb822\u7aef\u53e3 \u68c0\u67e5SSH\u5bc6\u94a5\u6743\u9650\uff1a chmod 600 ~/.ssh/id_rsa \u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5 \u00b6 # \u6d4b\u8bd5\u7aef\u53e3\u8fde\u901a\u6027 telnet \u670d\u52a1\u5668IP 445 # Samba telnet \u670d\u52a1\u5668IP 22 # SSH \u91cd\u8981\u63d0\u9192 \u4efb\u4f55\u5bf9HomeAssistant\u4e2d\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u6539\uff0c\u90fd\u9700\u8981\u91cd\u542fHomeAssistant\u624d\u80fd\u751f\u6548\u3002","title":"windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#win1110sambavscode-ssh","text":"","title":"Win11/10\u8bbf\u95eeSamba\u5171\u4eab\u548cVSCode SSH\u8bbf\u95ee\u89e3\u51b3\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_1","text":"Docker\u5b89\u88c5\u7684HomeAssistant\u4f7f\u7528Samba\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\uff0c\u4f46Win11/10\u6709\u65f6\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u65e0\u5bc6\u7801\u7684Samba\u5171\u4eab\u3002","title":"\u95ee\u9898\u63cf\u8ff0"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_2","text":"","title":"\u89e3\u51b3\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#win1110-samba","text":"","title":"\u65b9\u6848\u4e00\uff1a\u4fee\u590dWin11/10 Samba\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#1-smb10","text":"# \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884cPowerShell Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol","title":"1. \u542f\u7528SMB1.0\u534f\u8bae\uff08\u4e0d\u63a8\u8350\uff0c\u5b89\u5168\u6027\u8f83\u4f4e\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#2","text":"\u6309 Win+R \u6253\u5f00\u8fd0\u884c\u5bf9\u8bdd\u6846\uff0c\u8f93\u5165 gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u627e\u5230\u5e76\u4fee\u6539\u4ee5\u4e0b\u7b56\u7565\uff1a \u7f51\u7edc\u5b89\u5168: LAN Manager\u8eab\u4efd\u9a8c\u8bc1\u7ea7\u522b \u8bbe\u7f6e\u4e3a \u53d1\u9001LM\u548cNTLM\u54cd\u5e94 \u7f51\u7edc\u5b89\u5168: \u5bf9\u4e8eNTLM SSP(\u5305\u62ec\u5b89\u5168RPC)\u7684\u6700\u5c0f\u4f1a\u8bdd\u5b89\u5168 \u8bbe\u7f6e\u4e3a \u65e0\u8981\u6c42","title":"2. \u4fee\u6539\u672c\u5730\u5b89\u5168\u7b56\u7565\uff08\u63a8\u8350\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#3","text":"# \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanserver\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f reg add HKLM\\SYSTEM\\CurrentControlSet\\Services\\lanmanworkstation\\parameters /v EnableSecuritySignature /t REG_DWORD /d 0 /f","title":"3. \u4fee\u6539\u6ce8\u518c\u8868\uff08\u9ad8\u7ea7\u7528\u6237\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#4","text":"\u6253\u5f00 \u63a7\u5236\u9762\u677f > \u7528\u6237\u8d26\u6237 > \u51ed\u636e\u7ba1\u7406\u5668 \u9009\u62e9 Windows\u51ed\u636e \u70b9\u51fb \u6dfb\u52a0Windows\u51ed\u636e \u8f93\u5165\uff1a \u4e92\u8054\u7f51\u6216\u7f51\u7edc\u5730\u5740\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP \u7528\u6237\u540d\uff1a\u7559\u7a7a\u6216\u8f93\u5165 guest \u5bc6\u7801\uff1a\u7559\u7a7a","title":"4. \u6dfb\u52a0\u7f51\u7edc\u51ed\u636e"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#5-windows","text":"\u7531\u4e8ecompose-all.yaml\u6587\u4ef6\u4e0d\u80fd\u4fee\u6539\uff0c\u6211\u4eec\u901a\u8fc7Windows\u5ba2\u6237\u7aef\u914d\u7f6e\u6765\u89e3\u51b3\u8bbf\u95ee\u95ee\u9898\uff1a \u65b9\u6cd5A\uff1a\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u6700\u63a8\u8350\uff09 \u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2aPowerShell\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff0c\u53ef\u4ee5\u4e00\u952e\u5b8c\u6210\u6240\u6709\u914d\u7f6e\uff1a \u89c2\u770b\u89c6\u9891\uff1a\u4fee\u590d Windows SMB \u9519\u8bef \u4fee\u590dWindows SMB \u9519\u8bef\u811a\u672c\u4e0b\u8f7d\u5730\u5740 \uff1a http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u4e0b\u8f7d\u811a\u672c\u6587\u4ef6 fixwindows.ps1 curl -o fixwindows.ps1 http://datacdn.data-it.tech/HomeAssistant/tools/fixwindows.ps1 \u5c06\u811a\u672c\u4fdd\u5b58\u5230\u672c\u5730\uff08\u5982c\u76d8\u7684\u6839\u76ee\u5f55\uff09 \u53f3\u952e\u70b9\u51fb\u811a\u672c\uff0c\u9009\u62e9\"\u4f7f\u7528PowerShell\u8fd0\u884c\" \u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" # \u5982\u679c\u63d0\u793a\u7981\u6b62\u8fd0\u884c\u811a\u672c\uff0c\u8bf7\u5148\u6267\u884c\u5982\u4e0b\u6307\u4ee4\u540e\uff0c\u518d\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process #\u7136\u540e\u518d\u8fd0\u884c\u811a\u672c .\\fixwindows.ps1 \u6309\u63d0\u793a\u8f93\u5165\u670d\u52a1\u5668IP\u5730\u5740 \u4f7f\u7528\u65b9\u6cd5\uff1a # \u65b9\u5f0f1\uff1a\u76f4\u63a5\u8fd0\u884c\uff08\u4ea4\u4e92\u5f0f\u8f93\u5165IP\uff09 .\\ fixwindows . ps1 # \u65b9\u5f0f2\uff1a\u5e26\u53c2\u6570\u8fd0\u884c .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" # \u65b9\u5f0f3\uff1a\u5b8c\u6574\u53c2\u6570 .\\ fixwindows . ps1 -ServerIP \"192.168.1.100\" -ShareName \"HAConfig\" -DriveLetter \"Z\" \u811a\u672c\u529f\u80fd\uff1a \u81ea\u52a8\u4fee\u6539\u6ce8\u518c\u8868\u8bbe\u7f6e \u8c03\u6574Windows\u5b89\u5168\u7b56\u7565 \u5efa\u7acbSamba\u8fde\u63a5\u5e76\u6620\u5c04\u9a71\u52a8\u5668 \u6d4b\u8bd5\u8fde\u63a5\u72b6\u6001 \u53ef\u9009\u521b\u5efa\u684c\u9762\u5feb\u6377\u65b9\u5f0f \u65b9\u6cd5B\uff1a\u901a\u8fc7\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668 \u6253\u5f00\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668 \u53f3\u952e\u70b9\u51fb\"\u6b64\u7535\u8111\"\uff0c\u9009\u62e9\"\u6620\u5c04\u7f51\u7edc\u9a71\u52a8\u5668\" \u9a71\u52a8\u5668\u9009\u62e9\u4e00\u4e2a\u53ef\u7528\u76d8\u7b26\uff08\u5982Z:\uff09 \u6587\u4ef6\u5939\u8f93\u5165\uff1a \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \u53d6\u6d88\u52fe\u9009 \"\u767b\u5f55\u65f6\u91cd\u65b0\u8fde\u63a5\" \u70b9\u51fb\"\u4f7f\u7528\u5176\u4ed6\u51ed\u636e\u8fde\u63a5\" \u7528\u6237\u540d\u7559\u7a7a\u6216\u8f93\u5165 guest \uff0c\u5bc6\u7801\u7559\u7a7a \u52fe\u9009\"\u8bb0\u4f4f\u6211\u7684\u51ed\u636e\" \u65b9\u6cd5C\uff1a\u901a\u8fc7\u547d\u4ee4\u884c\u5f3a\u5236\u8fde\u63a5 \u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884ccmd\uff0c\u6267\u884c\uff1a net use \\\\\u4f60\u7684\u670d\u52a1\u5668IP\\HAConfig \"\" /user:\"\" \u65b9\u6cd5D\uff1a\u4fee\u6539Windows\u672c\u5730\u7ec4\u7b56\u7565 \u8fd0\u884c gpedit.msc \u5bfc\u822a\u5230\uff1a \u8ba1\u7b97\u673a\u914d\u7f6e > Windows\u8bbe\u7f6e > \u5b89\u5168\u8bbe\u7f6e > \u672c\u5730\u7b56\u7565 > \u5b89\u5168\u9009\u9879 \u4fee\u6539\uff1a \u7f51\u7edc\u5b89\u5168: \u5bf9\u533f\u540dSID/\u540d\u79f0\u7ffb\u8bd1\u7684\u9650\u5236 \u8bbe\u7f6e\u4e3a \u65e0 \u4fee\u6539\uff1a \u7f51\u7edc\u8bbf\u95ee: \u4e0d\u5141\u8bb8SAM\u8d26\u6237\u7684\u533f\u540d\u679a\u4e3e \u8bbe\u7f6e\u4e3a \u5df2\u7981\u7528","title":"5. \u4f7f\u7528Windows\u5ba2\u6237\u7aef\u5f3a\u5236\u65e0\u5bc6\u7801\u8bbf\u95ee\uff08\u63a8\u8350\u89e3\u51b3\u65b9\u6848\uff09"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#vscode-sshhomeassistant","text":"","title":"\u65b9\u6848\u4e8c\uff1a\u4f7f\u7528VSCode SSH\u8bbf\u95eeHomeAssistant\u6302\u8f7d\u76ee\u5f55"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#1-ssh","text":"\u5728HomeAssistant\u4e3b\u673a\u4e0a\u786e\u4fddSSH\u670d\u52a1\u5df2\u542f\u52a8\uff1a # \u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001 sudo systemctl status ssh # \u5982\u679c\u672a\u542f\u52a8\uff0c\u542f\u7528\u5e76\u542f\u52a8SSH sudo systemctl enable ssh sudo systemctl start ssh","title":"1. \u786e\u4fddSSH\u670d\u52a1\u8fd0\u884c"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#2-vscode","text":"\u5728VSCode\u4e2d\u5b89\u88c5\u4ee5\u4e0b\u6269\u5c55\uff1a - Remote - SSH - Remote - SSH: Editing Configuration Files","title":"2. \u5b89\u88c5VSCode\u6269\u5c55"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#3-ssh","text":"\u6309 Ctrl+Shift+P \u6253\u5f00\u547d\u4ee4\u9762\u677f \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 Configure SSH Hosts \u9009\u62e9\u914d\u7f6e\u6587\u4ef6\uff08\u901a\u5e38\u662f C:\\Users\\\u7528\u6237\u540d\\.ssh\\config \uff09 \u6dfb\u52a0\u4ee5\u4e0b\u914d\u7f6e\uff1a Host homeassistant HostName \u4f60\u7684HomeAssistant\u670d\u52a1\u5668IP User dtuser Port 22","title":"3. \u914d\u7f6eSSH\u8fde\u63a5"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#4_1","text":"\u5728VSCode\u4e2d\u6309 Ctrl+Shift+P \u8f93\u5165 Remote-SSH: Connect to Host \u9009\u62e9 homeassistant \u8f93\u5165\u670d\u52a1\u5668\u5bc6\u7801\u8fdb\u884c\u767b\u5f55 \u8fde\u63a5\u6210\u529f\u540e\uff0c\u6253\u5f00\u6587\u4ef6\u5939\uff1a /home/dtuser/opt/ha/config","title":"4. \u8fde\u63a5\u5230\u670d\u52a1\u5668"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#sftp","text":"\u5982\u679cVSCode SSH\u6709\u95ee\u9898\uff0c\u53ef\u4ee5\u4f7f\u7528SFTP\u5ba2\u6237\u7aef\uff1a WinSCP \uff1a\u56fe\u5f62\u754c\u9762SFTP\u5ba2\u6237\u7aef FileZilla \uff1a\u652f\u6301SFTP\u534f\u8bae PuTTY + PSFTP \uff1a\u547d\u4ee4\u884c\u5de5\u5177 \u8fde\u63a5\u4fe1\u606f\uff1a \u534f\u8bae\uff1aSFTP \u4e3b\u673a\uff1a\u4f60\u7684\u670d\u52a1\u5668IP \u7aef\u53e3\uff1a22 \u7528\u6237\u540d\uff1adtuser \u5bc6\u7801\uff1a\uff08\u4f60\u7684\u670d\u52a1\u5668\u5bc6\u7801\uff09","title":"\u65b9\u6848\u4e09\uff1a\u4f7f\u7528SFTP\u5ba2\u6237\u7aef"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_3","text":"\u6700\u4f73\u5b9e\u8df5\u7ec4\u5408 \uff1a \u4f7f\u7528\u81ea\u52a8\u4fee\u590d\u811a\u672c\uff08\u65b9\u6848\u4e00\u7b2c5\u70b9\u65b9\u6cd5A\uff09- \u6700\u7b80\u5355\u9ad8\u6548 \u914d\u7f6eVSCode SSH\u8bbf\u95ee\u4f5c\u4e3a\u5907\u7528\u65b9\u6848\uff08\u65b9\u6848\u4e8c\uff09 \u8fd9\u6837\u65e2\u4e0d\u9700\u8981\u4fee\u6539compose\u6587\u4ef6\uff0c\u53c8\u63d0\u4f9b\u4e86\u81ea\u52a8\u5316\u548c\u624b\u52a8\u7684\u591a\u79cd\u8bbf\u95ee\u65b9\u5f0f\u3002","title":"\u63a8\u8350\u65b9\u6848"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_4","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#samba","text":"\u68c0\u67e5\u9632\u706b\u5899\u662f\u5426\u963b\u6b62\u4e86445\u548c139\u7aef\u53e3 \u786e\u8ba4\u670d\u52a1\u5668IP\u5730\u5740\u6b63\u786e \u5c1d\u8bd5\u91cd\u542fSamba\u5bb9\u5668\uff1a docker restart samba","title":"Samba\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#ssh","text":"\u68c0\u67e5SSH\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status ssh \u786e\u8ba4\u9632\u706b\u5899\u5141\u8bb822\u7aef\u53e3 \u68c0\u67e5SSH\u5bc6\u94a5\u6743\u9650\uff1a chmod 600 ~/.ssh/id_rsa","title":"SSH\u8bbf\u95ee\u95ee\u9898"},{"location":"Usages/QA/windows%E4%B8%8D%E8%83%BD%E8%AE%BF%E9%97%AEHA%E7%9A%84%E5%85%B1%E4%BA%AB%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%E7%9A%84%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95/#_5","text":"# \u6d4b\u8bd5\u7aef\u53e3\u8fde\u901a\u6027 telnet \u670d\u52a1\u5668IP 445 # Samba telnet \u670d\u52a1\u5668IP 22 # SSH \u91cd\u8981\u63d0\u9192 \u4efb\u4f55\u5bf9HomeAssistant\u4e2d\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u66f4\u6539\uff0c\u90fd\u9700\u8981\u91cd\u542fHomeAssistant\u624d\u80fd\u751f\u6548\u3002","title":"\u7f51\u7edc\u8fde\u901a\u6027\u6d4b\u8bd5"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/","text":"\u4eba\u8138\u8bc6\u522b\u670d\u52a1DOCKER\u5b89\u88c5\u8bf4\u660e \u00b6 1. \u7b80\u4ecb \u00b6 \u672c\u9879\u76ee\u57fa\u4e8edlib\u5e93\u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\u6784\u5efaAPI\u63a5\u53e3\uff0c\u652f\u6301\u901a\u8fc7HTTP\u8bf7\u6c42\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u3002 \u8be5\u670d\u52a1\u53ef\u4ee5\u90e8\u7f72\u5728Docker\u5bb9\u5668\u4e2d\uff0c\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u642d\u5efa\u548c\u4f7f\u7528\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002 2. \u5b89\u88c5\u90e8\u7f72 \u00b6 \u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5 \u624b\u5de5\u90e8\u7f72 3. \u4f7f\u7528\u8bf4\u660e \u00b6 3.1 \u542f\u52a8\u670d\u52a1 \u00b6 \u8fdb\u5165\u670d\u52a1\u90e8\u7f72\u76ee\u5f55\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8\u670d\u52a1\uff1a docker-compose up -d 3.2 \u505c\u6b62\u670d\u52a1 \u00b6 docker-compose down 3.3 \u67e5\u770b\u65e5\u5fd7 \u00b6 docker-compose logs -f facerec 3.4 \u4eba\u8138\u8bc6\u522bAPI\u63a5\u53e3\u8bf4\u660e \u00b6 \u672c\u6587\u6863\u8be6\u7ec6\u63cf\u8ff0\u4e86\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u63d0\u4f9b\u7684\u5404\u4e2aAPI\u63a5\u53e3\uff0c\u5305\u62ec\u63a5\u53e3\u5730\u5740\u3001\u8bf7\u6c42\u65b9\u5f0f\u3001\u53c2\u6570\u8bf4\u660e\u3001\u8fd4\u56de\u7ed3\u679c\u7b49\u4fe1\u606f\u3002 3.4.1 \u4eba\u8138\u8bc6\u522b\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/identifyFace \u529f\u80fd\u8bf4\u660e \u00b6 \u4e0a\u4f20\u56fe\u7247\u8fdb\u884c\u4eba\u8138\u8bc6\u522b\uff0c\u8fd4\u56de\u5339\u914d\u7684\u7528\u6237\u4fe1\u606f\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u6587\u4ef6 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"result\" : [ { \"score\" : 95.5 , \"group_id\" : \"group\" , \"user_id\" : \"\u7528\u6237\u540d\" , \"Uid\" : \"\u7528\u6237\u7f16\u7801\" , \"Name\" : \"\u7528\u6237\u59d3\u540d\" , \"IdNum\" : \"\u8eab\u4efd\u8bc1\u53f7\" } ], \"log_id\" : \"\u65f6\u95f4\u6233\" , \"face_token\" : \"\u552f\u4e00\u6807\u8bc6\u7b26\" , \"result_num\" : 1 } }, \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/identifyFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@test.jpg\" 3.4.2 \u6dfb\u52a0\u4eba\u8138\u6570\u636e\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/addFace \u529f\u80fd\u8bf4\u660e \u00b6 \u6dfb\u52a0\u65b0\u7684\u4eba\u8138\u6570\u636e\u5230\u7cfb\u7edf\u4e2d\uff0c\u7528\u4e8e\u540e\u7eed\u7684\u4eba\u8138\u8bc6\u522b\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u6587\u4ef6 userCode string \u662f \u7528\u6237\u7f16\u7801 userName string \u5426 \u7528\u6237\u59d3\u540d\uff0c\u9ed8\u8ba4\u4f7f\u7528userCode idNum string \u5426 \u8eab\u4efd\u8bc1\u53f7\uff0c\u9ed8\u8ba4\u4f7f\u7528userCode \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7528\u6237\u6570\u636e\u6dfb\u52a0\u6210\u529f\" , \"faceUrl\" : \"http://localhost:12316/images/userCode.jpg\" , \"faceUrl_Placeholder\" : \"http://^API_BASE_URL^/images/userCode.jpg\" } }, \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/addFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@user.jpg\" \\ -F \"userCode=USER001\" \\ -F \"userName=\u5f20\u4e09\" \\ -F \"idNum=110101199001011234\" 3.4.3 \u4eba\u8138\u68c0\u6d4b\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/detectFace \u529f\u80fd\u8bf4\u660e \u00b6 \u68c0\u6d4b\u56fe\u7247\u4e2d\u7684\u4eba\u8138\u4f4d\u7f6e\u4fe1\u606f\uff0c\u4e0d\u8fdb\u884c\u8eab\u4efd\u8bc6\u522b\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u56fe\u7247\u6587\u4ef6 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"faces\" : [ { \"location\" : { \"left\" : 100 , \"top\" : 100 , \"width\" : 200 , \"height\" : 200 } } ], \"face_num\" : 1 }, \"message\" : \"SUCCESS\" } \u5750\u6807\u4fe1\u606f\u8bf4\u660e\uff1a - left : \u4eba\u8138\u6846\u5de6\u4e0a\u89d2\u8ddd\u79bb\u56fe\u7247\u5de6\u8fb9\u754c\u7684\u50cf\u7d20\u8ddd\u79bb - top : \u4eba\u8138\u6846\u5de6\u4e0a\u89d2\u8ddd\u79bb\u56fe\u7247\u4e0a\u8fb9\u754c\u7684\u50cf\u7d20\u8ddd\u79bb - width : \u4eba\u8138\u6846\u7684\u5bbd\u5ea6\uff08\u50cf\u7d20\uff09 - height : \u4eba\u8138\u6846\u7684\u9ad8\u5ea6\uff08\u50cf\u7d20\uff09 \u8fd9\u4e9b\u5750\u6807\u4fe1\u606f\u57fa\u4e8e\u56fe\u7247\u7684\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9(0,0)\uff0c\u5411\u53f3\u4e3aX\u8f74\u6b63\u65b9\u5411\uff0c\u5411\u4e0b\u4e3aY\u8f74\u6b63\u65b9\u5411\u7684\u5750\u6807\u7cfb\u3002 \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/detectFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@test.jpg\" 3.4.4 \u83b7\u53d6\u7528\u6237\u4eba\u8138\u56fe\u50cfURL\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/getUserFaceUrl \u529f\u80fd\u8bf4\u660e \u00b6 \u6839\u636e\u7528\u6237\u7f16\u7801\u83b7\u53d6\u7528\u6237\u4eba\u8138\u56fe\u50cf\u7684\u8bbf\u95eeURL\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e userCode string \u662f \u7528\u6237\u7f16\u7801 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : \"http://localhost:12316/images/userCode.jpg\" , \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/getUserFaceUrl\" \\ -d \"userCode=USER001\" 3.4.5 \u5220\u9664\u4eba\u8138\u6570\u636e\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/delFace \u529f\u80fd\u8bf4\u660e \u00b6 \u6839\u636e\u7528\u6237\u7f16\u7801\u5220\u9664\u6307\u5b9a\u7684\u4eba\u8138\u6570\u636e\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e userCode string \u662f \u7528\u6237\u7f16\u7801 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7528\u6237\u6570\u636e\u5220\u9664\u6210\u529f\" } }, \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/delFace\" \\ -d \"userCode=USER001\" 3.4.6 \u91cd\u65b0\u52a0\u8f7d\u7279\u5f81\u6570\u636e\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/reloadFeatures \u529f\u80fd\u8bf4\u660e \u00b6 \u91cd\u65b0\u4ece\u6570\u636e\u5e93\u52a0\u8f7d\u6240\u6709\u4eba\u8138\u7279\u5f81\u6570\u636e\u5230\u5185\u5b58\u4e2d\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u65e0 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7279\u5f81\u6570\u636e\u91cd\u65b0\u52a0\u8f7d\u6210\u529f\" , \"count\" : 10 } }, \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/reloadFeatures\" 3.4.7 \u67e5\u8be2\u6240\u6709\u4eba\u5458\u6570\u636e\u63a5\u53e3 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 POST /api/getAllUsers \u529f\u80fd\u8bf4\u660e \u00b6 \u83b7\u53d6\u7cfb\u7edf\u4e2d\u6240\u6709\u5df2\u6ce8\u518c\u7528\u6237\u7684\u4fe1\u606f\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u65e0 \u8fd4\u56de\u7ed3\u679c \u00b6 { \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"users\" : [ { \"userCode\" : \"USER001\" , \"userName\" : \"\u5f20\u4e09\" , \"idNum\" : \"110101199001011234\" , \"faceUrl\" : \"http://localhost:12316/images/USER001.jpg\" , \"faceUrl_Placeholder\" : \"http://^API_BASE_URL^/images/USER001.jpg\" } ], \"count\" : 1 } }, \"message\" : \"SUCCESS\" } \u793a\u4f8b \u00b6 curl -X POST \"http://localhost:12316/api/getAllUsers\" 3.4.8 \u9759\u6001\u56fe\u50cf\u6587\u4ef6\u670d\u52a1 \u00b6 \u63a5\u53e3\u5730\u5740 \u00b6 GET /images/{filename} \u529f\u80fd\u8bf4\u660e \u00b6 \u63d0\u4f9b\u7528\u6237\u4eba\u8138\u56fe\u50cf\u7684\u9759\u6001\u6587\u4ef6\u8bbf\u95ee\u670d\u52a1\u3002 \u8bf7\u6c42\u53c2\u6570 \u00b6 \u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e filename string \u662f \u56fe\u50cf\u6587\u4ef6\u540d \u8fd4\u56de\u7ed3\u679c \u00b6 \u56fe\u50cf\u6587\u4ef6\u4e8c\u8fdb\u5236\u6570\u636e \u793a\u4f8b \u00b6 curl -X GET \"http://localhost:12316/images/USER001.jpg\" -o user_image.jpg 3.5 \u7b80\u8981\u4f7f\u7528\u8bf4\u660e \u00b6 \u672c\u670d\u52a1\u662f\u4f7f\u7528DLIB\u672c\u7684\u6a21\u578b\u8fdb\u884c\u4eba\u8138\u8bc6\u522b\u7684\uff0c\u7cbe\u5ea6\u548c\u901f\u5ea6\u90fd\u6bd4\u8f83\u9002\u4e2d\uff0c\u9002\u5408\u4e00\u822c\u7684\u5e94\u7528\u573a\u666f\u3002\u4f7f\u7528sqlite\u6570\u636e\u5e93\u5b58\u50a8\u4eba\u8138\u7279\u5f81\u6570\u636e\uff0c\u65b9\u4fbf\u90e8\u7f72\u548c\u7ef4\u62a4\u3002 \u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u51e0\u70b9\uff1a - \u786e\u4fdd\u4e0a\u4f20\u7684\u56fe\u7247\u8d28\u91cf\u8f83\u597d\uff0c\u907f\u514d\u6a21\u7cca\u6216\u906e\u6321\u4e25\u91cd\u7684\u56fe\u7247\u3002 - \u4eba\u8138\u8bc6\u522b\u7684\u51c6\u786e\u7387\u53d7\u591a\u79cd\u56e0\u7d20\u5f71\u54cd\uff0c\u5982\u5149\u7167\u3001\u89d2\u5ea6\u3001\u8868\u60c5\u7b49\uff0c\u5efa\u8bae\u5728\u591a\u79cd\u6761\u4ef6\u4e0b\u6d4b\u8bd5\u548c\u4f18\u5316\u3002 - \u5b9a\u671f\u5907\u4efd\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u9632\u6b62\u6570\u636e\u4e22\u5931\u3002 - \u5982\u679c\u9700\u8981\u66f4\u9ad8\u7684\u8bc6\u522b\u7cbe\u5ea6\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u66f4\u590d\u6742\u7684\u6a21\u578b\u6216\u589e\u52a0\u8bad\u7ec3\u6570\u636e\u3002 \u670d\u52a1\u5728\u542f\u52a8\u65f6\uff0c\u5148\u628a\u6570\u636e\u5e93\u4e2d\u6240\u6709\u7684\u4eba\u8138\u7279\u5f81\u6570\u636e\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\uff0c\u8bc6\u522b\u65f6\u76f4\u63a5\u5728\u5185\u5b58\u4e2d\u8fdb\u884c\u6bd4\u5bf9\uff0c\u901f\u5ea6\u8f83\u5feb\u3002\u5982\u679c\u6dfb\u52a0\u6216\u5220\u9664\u4e86\u4eba\u8138\u6570\u636e\uff0c\u9700\u8981\u8c03\u7528 /api/reloadFeatures \u63a5\u53e3\u91cd\u65b0\u52a0\u8f7d\u7279\u5f81\u6570\u636e\u3002\u4eba\u8138\u7279\u5f81\u6570\u636e\u5b58\u50a8\u5728 rec.db \u6587\u4ef6\u4e2d\uff0c\u4f4d\u4e8e\u670d\u52a1\u7684\u5de5\u4f5c\u76ee\u5f55\u4e0bdata/db\u3002\u5982\u9700\u5bfc\u51fa\uff0c\u53ef\u4ee5\u76f4\u63a5\u627e\u5230\u5bb9\u5668\u7684\u6302\u8f7d\u76ee\u5f55\u4e0b\u7684\u8be5\u6587\u4ef6\u8fdb\u884c\u5907\u4efd\u6216\u5bfc\u51fa\u3002 \u4eba\u8138\u7279\u5f81\uff0c\u91c7\u7528\u4e86\u91c7\u96c6128\u4e2a\u7279\u5f81\u70b9\u4fdd\u5b58\uff0c\u5373128\u7ef4\u7684\u6d6e\u70b9\u6570\u6570\u7ec4\uff0c\u5b58\u50a8\u5728\u6570\u636e\u5e93\u4e2d\u3002\u8bc6\u522b\u65f6\uff0c\u8ba1\u7b97\u4e0a\u4f20\u56fe\u7247\u7684\u4eba\u8138\u7279\u5f81\u4e0e\u6570\u636e\u5e93\u4e2d\u6240\u6709\u7279\u5f81\u7684\u6b27\u6c0f\u8ddd\u79bb\uff0c\u8ddd\u79bb\u8d8a\u5c0f\u8868\u793a\u76f8\u4f3c\u5ea6\u8d8a\u9ad8\u3002\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8c03\u6574\u8bc6\u522b\u9608\u503c\u3002 \u4eba\u8138\u7279\u5f81\u5e93\u8868\u6bcf\u4e2a\u8bb0\u5f55\u7ea6131\u4e2a\u5b57\u6bb5\uff0c\u5176\u4e0d\u9002\u5408\u5b58\u50a8\u5927\u91cf\u4eba\u8138\u6570\u636e\u3002\u5982\u679c\u9700\u8981\u5b58\u50a8\u66f4\u591a\u4eba\u8138\u6570\u636e\uff0c\u5efa\u8bae\u4f7f\u7528\u66f4\u4e13\u4e1a\u7684\u6570\u636e\u5e93\u7cfb\u7edf\uff0c\u5982MySQL\u3001PostgreSQL\u7b49\u3002\u56e0\u4e3a\u672c\u9879\u76ee\u5c31\u52a8\u65f6\u9700\u8981\u636e\u6709\u7684\u4eba\u8138\u6570\u636e\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\uff0c\u6240\u4ee5\uff0c\u4eba\u8138\u6570\u636e\u91cf\u4e0d\u5b9c\u8fc7\u5927\uff0c\u5efa\u8bae\u63a7\u5236\u5728\u51e0\u5343\u4eba\u4ee5\u5185\u3002 3.6 \u4eba\u8138\u8bc6\u522b\u670d\u52a1\u7b80\u8981\u6d4b\u8bd5\u529e\u6cd5 \u00b6 \u672c\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684HTML\u9875\u9762\u7528\u4e8e\u6d4b\u8bd5\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u8be5\u9875\u9762\uff0c\u4e0a\u4f20\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002 \u4e0b\u8f7d\u5730\u5740: [\u6d4b\u8bd5\u7f51\u9875\u538b\u7f29\u5305](https://datacdn.data-it.tech/faceRec/face-dt/face-test.zip) [\u6d4b\u8bd5\u7f51\u9875-\u672a\u538b\u7f29](https://datacdn.data-it.tech/faceRec/face-dt/face-test.html) \u89e3\u538b\u540e\uff0c\u5c06 face-test.html \u6587\u4ef6\u653e\u5728\u4efb\u610f\u76ee\u5f55\u4e0b\uff0c\u4f7f\u7528\u6d4f\u89c8\u5668\u6253\u5f00\u8be5\u6587\u4ef6\u3002\u9875\u9762\u4e2d\u6709\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20\u63a7\u4ef6\uff0c\u53ef\u4ee5\u9009\u62e9\u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002\u4e0a\u4f20\u540e\uff0c\u9875\u9762\u4f1a\u8c03\u7528\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u7684API\u63a5\u53e3\uff0c\u663e\u793a\u8bc6\u522b\u7ed3\u679c\u3002 \u5982\u679c\u9700\u8981\u628a\u7f51\u9875\u90e8\u7f72\u5230nginx\u7b49web\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06 face-test.html \u6587\u4ef6\u653e\u5728\u670d\u52a1\u5668\u7684\u6307\u5b9a\u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u670d\u52a1\u5668\u7684\u5730\u5740\u5373\u53ef\u3002 \u4f46\u65f6\u8981\u6ce8\u610f\uff0c\u56e0\u4e3a\u7f51\u9875\u4e2d\u8c03\u7528\u4e86\u6444\u50cf\u5934\u89c6\u9891\uff0c\u5728\u6ca1\u6709https\u8bc1\u4e66\u7684\u60c5\u51b5\u4e0b\uff0c\u53ea\u6709localhost\u53ef\u5f00\u542f\u4e86\u6743\u9650\u767d\u540d\u5355\u7684\u60c5\u51b5\u4e0b\uff0c\u624d\u80fd\u6b63\u5e38\u4f7f\u7528\u6444\u50cf\u5934\u529f\u80fd\u3002 \u672c\u5730\u6d4b\u8bd5\u5982\u4f55\u5f00\u542f\u6743\u9650 Edge edge://flags/#unsafely-treat-insecure-origin-as-secure Chrome chrome://flags/#unsafely-treat-insecure-origin-as-secure \u5c06 Insecure origins treated as secure \u8bbe\u7f6e\u4e3a Enabled \u5982\u679c\u4e0d\u60f3\u5f00\u542f\u6743\u9650\u767d\u540d\u5355\uff0c\u53ef\u4ee5\u628a\u7f51\u9875\u653e\u5728nginx\u7b49web\u670d\u52a1\u5668\u4e0a\uff0c\u5e76\u914d\u7f6ehttps\u8bc1\u4e66\uff0c\u8fd9\u6837\u6d4f\u89c8\u5668\u4f1a\u8ba4\u4e3a\u662f\u5b89\u5168\u7684\u6765\u6e90\uff0c\u5c31\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u6444\u50cf\u5934\u529f\u80fd\u3002 3.7 \u5e38\u89c1\u95ee\u9898 \u00b6 \u95ee\u98981 : \u4e0a\u4f20\u56fe\u7247\u540e\uff0c\u8bc6\u522b\u7ed3\u679c\u4e3a\u7a7a\u6216\u4e0d\u51c6\u786e\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u4fdd\u4e0a\u4f20\u7684\u56fe\u7247\u8d28\u91cf\u8f83\u597d\uff0c\u907f\u514d\u6a21\u7cca\u6216\u906e\u6321\u4e25\u91cd\u7684\u56fe\u7247\u3002\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002 \u95ee\u98982 : \u6dfb\u52a0\u4eba\u8138\u6570\u636e\u65f6\uff0c\u63d0\u793a\u7528\u6237\u5df2\u5b58\u5728\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u8ba4\u7528\u6237\u7f16\u7801\u662f\u5426\u552f\u4e00\uff0c\u5982\u679c\u9700\u8981\u66f4\u65b0\u7528\u6237\u4fe1\u606f\uff0c\u53ef\u4ee5\u5148\u5220\u9664\u65e7\u6570\u636e\uff0c\u518d\u6dfb\u52a0\u65b0\u6570\u636e\u3002 \u95ee\u98983 : \u670d\u52a1\u542f\u52a8\u5931\u8d25\u6216\u65e0\u6cd5\u8bbf\u95ee\u3002 \u89e3\u51b3\u529e\u6cd5 : \u68c0\u67e5Docker\u5bb9\u5668\u662f\u5426\u6b63\u5e38\u8fd0\u884c\uff0c\u786e\u8ba4\u7aef\u53e3\u662f\u5426\u88ab\u6b63\u786e\u6620\u5c04\u3002\u67e5\u770b\u65e5\u5fd7\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002 \u95ee\u98984 : \u6570\u636e\u5e93\u6587\u4ef6\u635f\u574f\u6216\u4e22\u5931\u3002 \u89e3\u51b3\u529e\u6cd5 : \u5982\u679c\u6709\u5907\u4efd\uff0c\u53ef\u4ee5\u6062\u590d\u5907\u4efd\u6587\u4ef6\u3002\u5426\u5219\u9700\u8981\u91cd\u65b0\u6dfb\u52a0\u4eba\u8138\u6570\u636e\u3002 \u95ee\u98985 : \u8bc6\u522b\u901f\u5ea6\u8f83\u6162\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u8ba4\u670d\u52a1\u5668\u6027\u80fd\u662f\u5426\u8db3\u591f\uff0c\u51cf\u5c11\u4eba\u8138\u6570\u636e\u91cf\uff0c\u6216\u4f18\u5316\u56fe\u7247\u5927\u5c0f\u548c\u8d28\u91cf\u3002 \u95ee\u98986 : \u5982\u4f55\u8c03\u6574\u8bc6\u522b\u9608\u503c\uff1f \u89e3\u51b3\u529e\u6cd5 : \u76ee\u524d\u4ee3\u7801\u4e2d\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u8c03\u6574\u9608\u503c\u7684\u63a5\u53e3\uff0c\u53ef\u4ee5\u5728\u4ee3\u7801\u4e2d\u4fee\u6539\u8bc6\u522b\u903b\u8f91\uff0c\u8c03\u6574\u6b27\u6c0f\u8ddd\u79bb\u7684\u9608\u503c\u3002 3.8 \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a \u00b6 \u4e0a\u56fe\u4e3a\u914d\u7b14\u8bb0\u672c\u7535\u8111\u73af\u5883\u6d4b \u4e0b\u56fe\u4e3a\u516c\u53f8\u7684\u524d\u7f6e\u5de5\u63a7\u673a\u73af\u5883\u6d4b\u8bd5 \u7ecf\u8fc7\u53cd\u590d\u6d4b\u8bd5\uff0c\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u5728200-300ms\u4e4b\u95f4\uff0c\u5cf0\u503c\u65f6\u6bb5\u4e5f\u80fd\u4fdd\u6301\u5728500ms\u4ee5\u5185\uff0c\u6ee1\u8db3\u4e00\u822c\u5e94\u7528\u9700\u6c42\u3002 \u540c\u65f6\u5e76\u53d1\u8981\u63a7\u5236\u57284\u4e2a\u4ee5\u5185\uff0c\u540c\u4e00\u65f6\u95f4\u8fdb\u884c\u8bc6\u522b\u8bf7\u6c42\uff0c\u8d85\u8fc74\u4e2a\u65f6\uff0c\u54cd\u5e94\u65f6\u95f4\u4f1a\u660e\u663e\u589e\u52a0\uff0c\u5ef6\u8fdf\u54cd\u5e94\uff0c\u54cd\u5e94\u65f6\u95f4\u6709\u53ef\u80fd\u8d85\u8fc7\u79d2\u3002\u5982\u679c\u9700\u8981\u66f4\u9ad8\u7684\u5e76\u53d1\u5904\u7406\u80fd\u529b\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u90e8\u7f72\u591a\u4e2a\u670d\u52a1\u505a\u8d1f\u8f7d\u5747\u8861\u3002\uff0c\u4f46\u5bf9\u540c\u4e00\u4e2a\u4e2d\u5fc3\uff0c\u4e00\u822c\u4e00\u4e2a\u670d\u52a1\u5c31\u8db3\u591f\u4e86\uff0c\u6bd5\u7adf\u540c\u65f6\u8bc6\u53ef\u7684\u53ef\u80fd\u6027\u592a\u5c11\u4e86\u3002 3.9 \u603b\u7ed3 \u00b6 \u672c\u9879\u76ee\u63d0\u4f9b\u4e86\u4e00\u4e2a\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\uff0c\u652f\u6301Docker\u90e8\u7f72\u3002\u901a\u8fc7RESTful API\u63a5\u53e3\uff0c\u7528\u6237\u53ef\u4ee5\u65b9\u4fbf\u5730\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u64cd\u4f5c\u3002\u670d\u52a1\u6027\u80fd\u826f\u597d\uff0c\u9002\u5408\u4e00\u822c\u5e94\u7528\u573a\u666f\u3002\u7528\u6237\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8fdb\u884c\u6269\u5c55\u548c\u4f18\u5316\u3002","title":"\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u5b89\u88c5\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#docker","text":"","title":"\u4eba\u8138\u8bc6\u522b\u670d\u52a1DOCKER\u5b89\u88c5\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#1","text":"\u672c\u9879\u76ee\u57fa\u4e8edlib\u5e93\u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\u6784\u5efaAPI\u63a5\u53e3\uff0c\u652f\u6301\u901a\u8fc7HTTP\u8bf7\u6c42\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u3002 \u8be5\u670d\u52a1\u53ef\u4ee5\u90e8\u7f72\u5728Docker\u5bb9\u5668\u4e2d\uff0c\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u642d\u5efa\u548c\u4f7f\u7528\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002","title":"1. \u7b80\u4ecb"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#2","text":"\u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5 \u624b\u5de5\u90e8\u7f72","title":"2. \u5b89\u88c5\u90e8\u7f72"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#3","text":"","title":"3. \u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#31","text":"\u8fdb\u5165\u670d\u52a1\u90e8\u7f72\u76ee\u5f55\uff0c\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8\u670d\u52a1\uff1a docker-compose up -d","title":"3.1 \u542f\u52a8\u670d\u52a1"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#32","text":"docker-compose down","title":"3.2 \u505c\u6b62\u670d\u52a1"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#33","text":"docker-compose logs -f facerec","title":"3.3 \u67e5\u770b\u65e5\u5fd7"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#34-api","text":"\u672c\u6587\u6863\u8be6\u7ec6\u63cf\u8ff0\u4e86\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u63d0\u4f9b\u7684\u5404\u4e2aAPI\u63a5\u53e3\uff0c\u5305\u62ec\u63a5\u53e3\u5730\u5740\u3001\u8bf7\u6c42\u65b9\u5f0f\u3001\u53c2\u6570\u8bf4\u660e\u3001\u8fd4\u56de\u7ed3\u679c\u7b49\u4fe1\u606f\u3002","title":"3.4 \u4eba\u8138\u8bc6\u522bAPI\u63a5\u53e3\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#341","text":"","title":"3.4.1 \u4eba\u8138\u8bc6\u522b\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_1","text":"POST /api/identifyFace","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_2","text":"\u4e0a\u4f20\u56fe\u7247\u8fdb\u884c\u4eba\u8138\u8bc6\u522b\uff0c\u8fd4\u56de\u5339\u914d\u7684\u7528\u6237\u4fe1\u606f\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_3","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u6587\u4ef6","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_4","text":"{ \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"result\" : [ { \"score\" : 95.5 , \"group_id\" : \"group\" , \"user_id\" : \"\u7528\u6237\u540d\" , \"Uid\" : \"\u7528\u6237\u7f16\u7801\" , \"Name\" : \"\u7528\u6237\u59d3\u540d\" , \"IdNum\" : \"\u8eab\u4efd\u8bc1\u53f7\" } ], \"log_id\" : \"\u65f6\u95f4\u6233\" , \"face_token\" : \"\u552f\u4e00\u6807\u8bc6\u7b26\" , \"result_num\" : 1 } }, \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_5","text":"curl -X POST \"http://localhost:12316/api/identifyFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@test.jpg\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#342","text":"","title":"3.4.2 \u6dfb\u52a0\u4eba\u8138\u6570\u636e\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_6","text":"POST /api/addFace","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_7","text":"\u6dfb\u52a0\u65b0\u7684\u4eba\u8138\u6570\u636e\u5230\u7cfb\u7edf\u4e2d\uff0c\u7528\u4e8e\u540e\u7eed\u7684\u4eba\u8138\u8bc6\u522b\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_8","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u6587\u4ef6 userCode string \u662f \u7528\u6237\u7f16\u7801 userName string \u5426 \u7528\u6237\u59d3\u540d\uff0c\u9ed8\u8ba4\u4f7f\u7528userCode idNum string \u5426 \u8eab\u4efd\u8bc1\u53f7\uff0c\u9ed8\u8ba4\u4f7f\u7528userCode","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_9","text":"{ \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7528\u6237\u6570\u636e\u6dfb\u52a0\u6210\u529f\" , \"faceUrl\" : \"http://localhost:12316/images/userCode.jpg\" , \"faceUrl_Placeholder\" : \"http://^API_BASE_URL^/images/userCode.jpg\" } }, \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_10","text":"curl -X POST \"http://localhost:12316/api/addFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@user.jpg\" \\ -F \"userCode=USER001\" \\ -F \"userName=\u5f20\u4e09\" \\ -F \"idNum=110101199001011234\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#343","text":"","title":"3.4.3 \u4eba\u8138\u68c0\u6d4b\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_11","text":"POST /api/detectFace","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_12","text":"\u68c0\u6d4b\u56fe\u7247\u4e2d\u7684\u4eba\u8138\u4f4d\u7f6e\u4fe1\u606f\uff0c\u4e0d\u8fdb\u884c\u8eab\u4efd\u8bc6\u522b\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_13","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e image file \u662f \u56fe\u7247\u6587\u4ef6","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_14","text":"{ \"code\" : 200 , \"data\" : { \"faces\" : [ { \"location\" : { \"left\" : 100 , \"top\" : 100 , \"width\" : 200 , \"height\" : 200 } } ], \"face_num\" : 1 }, \"message\" : \"SUCCESS\" } \u5750\u6807\u4fe1\u606f\u8bf4\u660e\uff1a - left : \u4eba\u8138\u6846\u5de6\u4e0a\u89d2\u8ddd\u79bb\u56fe\u7247\u5de6\u8fb9\u754c\u7684\u50cf\u7d20\u8ddd\u79bb - top : \u4eba\u8138\u6846\u5de6\u4e0a\u89d2\u8ddd\u79bb\u56fe\u7247\u4e0a\u8fb9\u754c\u7684\u50cf\u7d20\u8ddd\u79bb - width : \u4eba\u8138\u6846\u7684\u5bbd\u5ea6\uff08\u50cf\u7d20\uff09 - height : \u4eba\u8138\u6846\u7684\u9ad8\u5ea6\uff08\u50cf\u7d20\uff09 \u8fd9\u4e9b\u5750\u6807\u4fe1\u606f\u57fa\u4e8e\u56fe\u7247\u7684\u5de6\u4e0a\u89d2\u4e3a\u539f\u70b9(0,0)\uff0c\u5411\u53f3\u4e3aX\u8f74\u6b63\u65b9\u5411\uff0c\u5411\u4e0b\u4e3aY\u8f74\u6b63\u65b9\u5411\u7684\u5750\u6807\u7cfb\u3002","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_15","text":"curl -X POST \"http://localhost:12316/api/detectFace\" \\ -H \"Content-Type: multipart/form-data\" \\ -F \"image=@test.jpg\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#344-url","text":"","title":"3.4.4 \u83b7\u53d6\u7528\u6237\u4eba\u8138\u56fe\u50cfURL\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_16","text":"POST /api/getUserFaceUrl","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_17","text":"\u6839\u636e\u7528\u6237\u7f16\u7801\u83b7\u53d6\u7528\u6237\u4eba\u8138\u56fe\u50cf\u7684\u8bbf\u95eeURL\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_18","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e userCode string \u662f \u7528\u6237\u7f16\u7801","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_19","text":"{ \"code\" : 200 , \"data\" : \"http://localhost:12316/images/userCode.jpg\" , \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_20","text":"curl -X POST \"http://localhost:12316/api/getUserFaceUrl\" \\ -d \"userCode=USER001\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#345","text":"","title":"3.4.5 \u5220\u9664\u4eba\u8138\u6570\u636e\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_21","text":"POST /api/delFace","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_22","text":"\u6839\u636e\u7528\u6237\u7f16\u7801\u5220\u9664\u6307\u5b9a\u7684\u4eba\u8138\u6570\u636e\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_23","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e userCode string \u662f \u7528\u6237\u7f16\u7801","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_24","text":"{ \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7528\u6237\u6570\u636e\u5220\u9664\u6210\u529f\" } }, \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_25","text":"curl -X POST \"http://localhost:12316/api/delFace\" \\ -d \"userCode=USER001\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#346","text":"","title":"3.4.6 \u91cd\u65b0\u52a0\u8f7d\u7279\u5f81\u6570\u636e\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_26","text":"POST /api/reloadFeatures","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_27","text":"\u91cd\u65b0\u4ece\u6570\u636e\u5e93\u52a0\u8f7d\u6240\u6709\u4eba\u8138\u7279\u5f81\u6570\u636e\u5230\u5185\u5b58\u4e2d\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_28","text":"\u65e0","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_29","text":"{ \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"log_id\" : \"\u65f6\u95f4\u6233\" , \"message\" : \"\u7279\u5f81\u6570\u636e\u91cd\u65b0\u52a0\u8f7d\u6210\u529f\" , \"count\" : 10 } }, \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_30","text":"curl -X POST \"http://localhost:12316/api/reloadFeatures\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#347","text":"","title":"3.4.7 \u67e5\u8be2\u6240\u6709\u4eba\u5458\u6570\u636e\u63a5\u53e3"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_31","text":"POST /api/getAllUsers","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_32","text":"\u83b7\u53d6\u7cfb\u7edf\u4e2d\u6240\u6709\u5df2\u6ce8\u518c\u7528\u6237\u7684\u4fe1\u606f\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_33","text":"\u65e0","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_34","text":"{ \"code\" : 200 , \"data\" : { \"msg\" : \"success\" , \"errno\" : 0 , \"data\" : { \"users\" : [ { \"userCode\" : \"USER001\" , \"userName\" : \"\u5f20\u4e09\" , \"idNum\" : \"110101199001011234\" , \"faceUrl\" : \"http://localhost:12316/images/USER001.jpg\" , \"faceUrl_Placeholder\" : \"http://^API_BASE_URL^/images/USER001.jpg\" } ], \"count\" : 1 } }, \"message\" : \"SUCCESS\" }","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_35","text":"curl -X POST \"http://localhost:12316/api/getAllUsers\"","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#348","text":"","title":"3.4.8 \u9759\u6001\u56fe\u50cf\u6587\u4ef6\u670d\u52a1"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_36","text":"GET /images/{filename}","title":"\u63a5\u53e3\u5730\u5740"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_37","text":"\u63d0\u4f9b\u7528\u6237\u4eba\u8138\u56fe\u50cf\u7684\u9759\u6001\u6587\u4ef6\u8bbf\u95ee\u670d\u52a1\u3002","title":"\u529f\u80fd\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_38","text":"\u53c2\u6570\u540d \u7c7b\u578b \u5fc5\u586b \u8bf4\u660e filename string \u662f \u56fe\u50cf\u6587\u4ef6\u540d","title":"\u8bf7\u6c42\u53c2\u6570"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_39","text":"\u56fe\u50cf\u6587\u4ef6\u4e8c\u8fdb\u5236\u6570\u636e","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#_40","text":"curl -X GET \"http://localhost:12316/images/USER001.jpg\" -o user_image.jpg","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#35","text":"\u672c\u670d\u52a1\u662f\u4f7f\u7528DLIB\u672c\u7684\u6a21\u578b\u8fdb\u884c\u4eba\u8138\u8bc6\u522b\u7684\uff0c\u7cbe\u5ea6\u548c\u901f\u5ea6\u90fd\u6bd4\u8f83\u9002\u4e2d\uff0c\u9002\u5408\u4e00\u822c\u7684\u5e94\u7528\u573a\u666f\u3002\u4f7f\u7528sqlite\u6570\u636e\u5e93\u5b58\u50a8\u4eba\u8138\u7279\u5f81\u6570\u636e\uff0c\u65b9\u4fbf\u90e8\u7f72\u548c\u7ef4\u62a4\u3002 \u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\uff0c\u8bf7\u6ce8\u610f\u4ee5\u4e0b\u51e0\u70b9\uff1a - \u786e\u4fdd\u4e0a\u4f20\u7684\u56fe\u7247\u8d28\u91cf\u8f83\u597d\uff0c\u907f\u514d\u6a21\u7cca\u6216\u906e\u6321\u4e25\u91cd\u7684\u56fe\u7247\u3002 - \u4eba\u8138\u8bc6\u522b\u7684\u51c6\u786e\u7387\u53d7\u591a\u79cd\u56e0\u7d20\u5f71\u54cd\uff0c\u5982\u5149\u7167\u3001\u89d2\u5ea6\u3001\u8868\u60c5\u7b49\uff0c\u5efa\u8bae\u5728\u591a\u79cd\u6761\u4ef6\u4e0b\u6d4b\u8bd5\u548c\u4f18\u5316\u3002 - \u5b9a\u671f\u5907\u4efd\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u9632\u6b62\u6570\u636e\u4e22\u5931\u3002 - \u5982\u679c\u9700\u8981\u66f4\u9ad8\u7684\u8bc6\u522b\u7cbe\u5ea6\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528\u66f4\u590d\u6742\u7684\u6a21\u578b\u6216\u589e\u52a0\u8bad\u7ec3\u6570\u636e\u3002 \u670d\u52a1\u5728\u542f\u52a8\u65f6\uff0c\u5148\u628a\u6570\u636e\u5e93\u4e2d\u6240\u6709\u7684\u4eba\u8138\u7279\u5f81\u6570\u636e\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\uff0c\u8bc6\u522b\u65f6\u76f4\u63a5\u5728\u5185\u5b58\u4e2d\u8fdb\u884c\u6bd4\u5bf9\uff0c\u901f\u5ea6\u8f83\u5feb\u3002\u5982\u679c\u6dfb\u52a0\u6216\u5220\u9664\u4e86\u4eba\u8138\u6570\u636e\uff0c\u9700\u8981\u8c03\u7528 /api/reloadFeatures \u63a5\u53e3\u91cd\u65b0\u52a0\u8f7d\u7279\u5f81\u6570\u636e\u3002\u4eba\u8138\u7279\u5f81\u6570\u636e\u5b58\u50a8\u5728 rec.db \u6587\u4ef6\u4e2d\uff0c\u4f4d\u4e8e\u670d\u52a1\u7684\u5de5\u4f5c\u76ee\u5f55\u4e0bdata/db\u3002\u5982\u9700\u5bfc\u51fa\uff0c\u53ef\u4ee5\u76f4\u63a5\u627e\u5230\u5bb9\u5668\u7684\u6302\u8f7d\u76ee\u5f55\u4e0b\u7684\u8be5\u6587\u4ef6\u8fdb\u884c\u5907\u4efd\u6216\u5bfc\u51fa\u3002 \u4eba\u8138\u7279\u5f81\uff0c\u91c7\u7528\u4e86\u91c7\u96c6128\u4e2a\u7279\u5f81\u70b9\u4fdd\u5b58\uff0c\u5373128\u7ef4\u7684\u6d6e\u70b9\u6570\u6570\u7ec4\uff0c\u5b58\u50a8\u5728\u6570\u636e\u5e93\u4e2d\u3002\u8bc6\u522b\u65f6\uff0c\u8ba1\u7b97\u4e0a\u4f20\u56fe\u7247\u7684\u4eba\u8138\u7279\u5f81\u4e0e\u6570\u636e\u5e93\u4e2d\u6240\u6709\u7279\u5f81\u7684\u6b27\u6c0f\u8ddd\u79bb\uff0c\u8ddd\u79bb\u8d8a\u5c0f\u8868\u793a\u76f8\u4f3c\u5ea6\u8d8a\u9ad8\u3002\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8c03\u6574\u8bc6\u522b\u9608\u503c\u3002 \u4eba\u8138\u7279\u5f81\u5e93\u8868\u6bcf\u4e2a\u8bb0\u5f55\u7ea6131\u4e2a\u5b57\u6bb5\uff0c\u5176\u4e0d\u9002\u5408\u5b58\u50a8\u5927\u91cf\u4eba\u8138\u6570\u636e\u3002\u5982\u679c\u9700\u8981\u5b58\u50a8\u66f4\u591a\u4eba\u8138\u6570\u636e\uff0c\u5efa\u8bae\u4f7f\u7528\u66f4\u4e13\u4e1a\u7684\u6570\u636e\u5e93\u7cfb\u7edf\uff0c\u5982MySQL\u3001PostgreSQL\u7b49\u3002\u56e0\u4e3a\u672c\u9879\u76ee\u5c31\u52a8\u65f6\u9700\u8981\u636e\u6709\u7684\u4eba\u8138\u6570\u636e\u52a0\u8f7d\u5230\u5185\u5b58\u4e2d\uff0c\u6240\u4ee5\uff0c\u4eba\u8138\u6570\u636e\u91cf\u4e0d\u5b9c\u8fc7\u5927\uff0c\u5efa\u8bae\u63a7\u5236\u5728\u51e0\u5343\u4eba\u4ee5\u5185\u3002","title":"3.5 \u7b80\u8981\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#36","text":"\u672c\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684HTML\u9875\u9762\u7528\u4e8e\u6d4b\u8bd5\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u8be5\u9875\u9762\uff0c\u4e0a\u4f20\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002 \u4e0b\u8f7d\u5730\u5740: [\u6d4b\u8bd5\u7f51\u9875\u538b\u7f29\u5305](https://datacdn.data-it.tech/faceRec/face-dt/face-test.zip) [\u6d4b\u8bd5\u7f51\u9875-\u672a\u538b\u7f29](https://datacdn.data-it.tech/faceRec/face-dt/face-test.html) \u89e3\u538b\u540e\uff0c\u5c06 face-test.html \u6587\u4ef6\u653e\u5728\u4efb\u610f\u76ee\u5f55\u4e0b\uff0c\u4f7f\u7528\u6d4f\u89c8\u5668\u6253\u5f00\u8be5\u6587\u4ef6\u3002\u9875\u9762\u4e2d\u6709\u4e00\u4e2a\u6587\u4ef6\u4e0a\u4f20\u63a7\u4ef6\uff0c\u53ef\u4ee5\u9009\u62e9\u5305\u542b\u4eba\u8138\u7684\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002\u4e0a\u4f20\u540e\uff0c\u9875\u9762\u4f1a\u8c03\u7528\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u7684API\u63a5\u53e3\uff0c\u663e\u793a\u8bc6\u522b\u7ed3\u679c\u3002 \u5982\u679c\u9700\u8981\u628a\u7f51\u9875\u90e8\u7f72\u5230nginx\u7b49web\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06 face-test.html \u6587\u4ef6\u653e\u5728\u670d\u52a1\u5668\u7684\u6307\u5b9a\u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u670d\u52a1\u5668\u7684\u5730\u5740\u5373\u53ef\u3002 \u4f46\u65f6\u8981\u6ce8\u610f\uff0c\u56e0\u4e3a\u7f51\u9875\u4e2d\u8c03\u7528\u4e86\u6444\u50cf\u5934\u89c6\u9891\uff0c\u5728\u6ca1\u6709https\u8bc1\u4e66\u7684\u60c5\u51b5\u4e0b\uff0c\u53ea\u6709localhost\u53ef\u5f00\u542f\u4e86\u6743\u9650\u767d\u540d\u5355\u7684\u60c5\u51b5\u4e0b\uff0c\u624d\u80fd\u6b63\u5e38\u4f7f\u7528\u6444\u50cf\u5934\u529f\u80fd\u3002 \u672c\u5730\u6d4b\u8bd5\u5982\u4f55\u5f00\u542f\u6743\u9650 Edge edge://flags/#unsafely-treat-insecure-origin-as-secure Chrome chrome://flags/#unsafely-treat-insecure-origin-as-secure \u5c06 Insecure origins treated as secure \u8bbe\u7f6e\u4e3a Enabled \u5982\u679c\u4e0d\u60f3\u5f00\u542f\u6743\u9650\u767d\u540d\u5355\uff0c\u53ef\u4ee5\u628a\u7f51\u9875\u653e\u5728nginx\u7b49web\u670d\u52a1\u5668\u4e0a\uff0c\u5e76\u914d\u7f6ehttps\u8bc1\u4e66\uff0c\u8fd9\u6837\u6d4f\u89c8\u5668\u4f1a\u8ba4\u4e3a\u662f\u5b89\u5168\u7684\u6765\u6e90\uff0c\u5c31\u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\u6444\u50cf\u5934\u529f\u80fd\u3002","title":"3.6 \u4eba\u8138\u8bc6\u522b\u670d\u52a1\u7b80\u8981\u6d4b\u8bd5\u529e\u6cd5"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#37","text":"\u95ee\u98981 : \u4e0a\u4f20\u56fe\u7247\u540e\uff0c\u8bc6\u522b\u7ed3\u679c\u4e3a\u7a7a\u6216\u4e0d\u51c6\u786e\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u4fdd\u4e0a\u4f20\u7684\u56fe\u7247\u8d28\u91cf\u8f83\u597d\uff0c\u907f\u514d\u6a21\u7cca\u6216\u906e\u6321\u4e25\u91cd\u7684\u56fe\u7247\u3002\u53ef\u4ee5\u5c1d\u8bd5\u4e0d\u540c\u7684\u56fe\u7247\u8fdb\u884c\u6d4b\u8bd5\u3002 \u95ee\u98982 : \u6dfb\u52a0\u4eba\u8138\u6570\u636e\u65f6\uff0c\u63d0\u793a\u7528\u6237\u5df2\u5b58\u5728\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u8ba4\u7528\u6237\u7f16\u7801\u662f\u5426\u552f\u4e00\uff0c\u5982\u679c\u9700\u8981\u66f4\u65b0\u7528\u6237\u4fe1\u606f\uff0c\u53ef\u4ee5\u5148\u5220\u9664\u65e7\u6570\u636e\uff0c\u518d\u6dfb\u52a0\u65b0\u6570\u636e\u3002 \u95ee\u98983 : \u670d\u52a1\u542f\u52a8\u5931\u8d25\u6216\u65e0\u6cd5\u8bbf\u95ee\u3002 \u89e3\u51b3\u529e\u6cd5 : \u68c0\u67e5Docker\u5bb9\u5668\u662f\u5426\u6b63\u5e38\u8fd0\u884c\uff0c\u786e\u8ba4\u7aef\u53e3\u662f\u5426\u88ab\u6b63\u786e\u6620\u5c04\u3002\u67e5\u770b\u65e5\u5fd7\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002 \u95ee\u98984 : \u6570\u636e\u5e93\u6587\u4ef6\u635f\u574f\u6216\u4e22\u5931\u3002 \u89e3\u51b3\u529e\u6cd5 : \u5982\u679c\u6709\u5907\u4efd\uff0c\u53ef\u4ee5\u6062\u590d\u5907\u4efd\u6587\u4ef6\u3002\u5426\u5219\u9700\u8981\u91cd\u65b0\u6dfb\u52a0\u4eba\u8138\u6570\u636e\u3002 \u95ee\u98985 : \u8bc6\u522b\u901f\u5ea6\u8f83\u6162\u3002 \u89e3\u51b3\u529e\u6cd5 : \u786e\u8ba4\u670d\u52a1\u5668\u6027\u80fd\u662f\u5426\u8db3\u591f\uff0c\u51cf\u5c11\u4eba\u8138\u6570\u636e\u91cf\uff0c\u6216\u4f18\u5316\u56fe\u7247\u5927\u5c0f\u548c\u8d28\u91cf\u3002 \u95ee\u98986 : \u5982\u4f55\u8c03\u6574\u8bc6\u522b\u9608\u503c\uff1f \u89e3\u51b3\u529e\u6cd5 : \u76ee\u524d\u4ee3\u7801\u4e2d\u6ca1\u6709\u63d0\u4f9b\u76f4\u63a5\u8c03\u6574\u9608\u503c\u7684\u63a5\u53e3\uff0c\u53ef\u4ee5\u5728\u4ee3\u7801\u4e2d\u4fee\u6539\u8bc6\u522b\u903b\u8f91\uff0c\u8c03\u6574\u6b27\u6c0f\u8ddd\u79bb\u7684\u9608\u503c\u3002","title":"3.7 \u5e38\u89c1\u95ee\u9898"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#38","text":"\u4e0a\u56fe\u4e3a\u914d\u7b14\u8bb0\u672c\u7535\u8111\u73af\u5883\u6d4b \u4e0b\u56fe\u4e3a\u516c\u53f8\u7684\u524d\u7f6e\u5de5\u63a7\u673a\u73af\u5883\u6d4b\u8bd5 \u7ecf\u8fc7\u53cd\u590d\u6d4b\u8bd5\uff0c\u5e73\u5747\u54cd\u5e94\u65f6\u95f4\u5728200-300ms\u4e4b\u95f4\uff0c\u5cf0\u503c\u65f6\u6bb5\u4e5f\u80fd\u4fdd\u6301\u5728500ms\u4ee5\u5185\uff0c\u6ee1\u8db3\u4e00\u822c\u5e94\u7528\u9700\u6c42\u3002 \u540c\u65f6\u5e76\u53d1\u8981\u63a7\u5236\u57284\u4e2a\u4ee5\u5185\uff0c\u540c\u4e00\u65f6\u95f4\u8fdb\u884c\u8bc6\u522b\u8bf7\u6c42\uff0c\u8d85\u8fc74\u4e2a\u65f6\uff0c\u54cd\u5e94\u65f6\u95f4\u4f1a\u660e\u663e\u589e\u52a0\uff0c\u5ef6\u8fdf\u54cd\u5e94\uff0c\u54cd\u5e94\u65f6\u95f4\u6709\u53ef\u80fd\u8d85\u8fc7\u79d2\u3002\u5982\u679c\u9700\u8981\u66f4\u9ad8\u7684\u5e76\u53d1\u5904\u7406\u80fd\u529b\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u90e8\u7f72\u591a\u4e2a\u670d\u52a1\u505a\u8d1f\u8f7d\u5747\u8861\u3002\uff0c\u4f46\u5bf9\u540c\u4e00\u4e2a\u4e2d\u5fc3\uff0c\u4e00\u822c\u4e00\u4e2a\u670d\u52a1\u5c31\u8db3\u591f\u4e86\uff0c\u6bd5\u7adf\u540c\u65f6\u8bc6\u53ef\u7684\u53ef\u80fd\u6027\u592a\u5c11\u4e86\u3002","title":"3.8 \u6027\u80fd\u6d4b\u8bd5\u62a5\u544a"},{"location":"Usages/QA/%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E/#39","text":"\u672c\u9879\u76ee\u63d0\u4f9b\u4e86\u4e00\u4e2a\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\uff0c\u652f\u6301Docker\u90e8\u7f72\u3002\u901a\u8fc7RESTful API\u63a5\u53e3\uff0c\u7528\u6237\u53ef\u4ee5\u65b9\u4fbf\u5730\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u64cd\u4f5c\u3002\u670d\u52a1\u6027\u80fd\u826f\u597d\uff0c\u9002\u5408\u4e00\u822c\u5e94\u7528\u573a\u666f\u3002\u7528\u6237\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8fdb\u884c\u6269\u5c55\u548c\u4f18\u5316\u3002","title":"3.9 \u603b\u7ed3"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/","text":"\u5728\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1 \u00b6 1. \u7b80\u4ecb \u00b6 \u672c\u9879\u76ee\u57fa\u4e8edlib\u5e93\u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\u6784\u5efaAPI\u63a5\u53e3\uff0c\u652f\u6301\u901a\u8fc7HTTP\u8bf7\u6c42\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u3002 \u8be5\u670d\u52a1\u53ef\u4ee5\u90e8\u7f72\u5728Docker\u5bb9\u5668\u4e2d\uff0c\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u642d\u5efa\u548c\u4f7f\u7528\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002 2. \u5b89\u88c5\u90e8\u7f72 \u00b6 \u73af\u5883\u51c6\u5907 \u00b6 \u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a \u64cd\u4f5c\u7cfb\u7edf\uff1aLinux\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 Docker\u7248\u672c\uff1a20.10\u53ca\u4ee5\u4e0a Docker Compose\u7248\u672c\uff1a1.29\u53ca\u4ee5\u4e0a \u7aef\u53e3\u8981\u6c42\uff1a12316\uff08\u53ef\u6839\u636e\u9700\u8981\u4fee\u6539\uff09 os\u5df2\u5b89\u88c5curl\u547d\u4ee4 \u6267\u884c\u5728\u7ebf\u5b89\u88c5\u811a\u672c \u00b6 curl -fsSL https://datacdn.data-it.tech/faceRec/FacRecDocker/install-online.sh | sudo bash \u547d\u4ee4\u6267\u884c\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u5e76\u5b89\u88c5\u6240\u9700\u7684Docker\u955c\u50cf\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u6574\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u7531\u56fe\u4e2d\u53ef\u89c1,\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u5df2\u7ecf\u6210\u529f\u5b89\u88c5\u5b8c\u6210\u3002","title":"\u5728\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#_1","text":"","title":"\u5728\u7ebf\u4eba\u8138\u8bc6\u522b\u5b89\u88c5\u670d\u52a1"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#1","text":"\u672c\u9879\u76ee\u57fa\u4e8edlib\u5e93\u5b9e\u73b0\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u4f7f\u7528FastAPI\u6846\u67b6\u6784\u5efaAPI\u63a5\u53e3\uff0c\u652f\u6301\u901a\u8fc7HTTP\u8bf7\u6c42\u8fdb\u884c\u4eba\u8138\u6ce8\u518c\u548c\u8bc6\u522b\u3002 \u8be5\u670d\u52a1\u53ef\u4ee5\u90e8\u7f72\u5728Docker\u5bb9\u5668\u4e2d\uff0c\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u642d\u5efa\u548c\u4f7f\u7528\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u3002","title":"1. \u7b80\u4ecb"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#2","text":"","title":"2. \u5b89\u88c5\u90e8\u7f72"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#_2","text":"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a \u64cd\u4f5c\u7cfb\u7edf\uff1aLinux\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 Docker\u7248\u672c\uff1a20.10\u53ca\u4ee5\u4e0a Docker Compose\u7248\u672c\uff1a1.29\u53ca\u4ee5\u4e0a \u7aef\u53e3\u8981\u6c42\uff1a12316\uff08\u53ef\u6839\u636e\u9700\u8981\u4fee\u6539\uff09 os\u5df2\u5b89\u88c5curl\u547d\u4ee4","title":"\u73af\u5883\u51c6\u5907"},{"location":"Usages/QA/%E5%9C%A8%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#_3","text":"curl -fsSL https://datacdn.data-it.tech/faceRec/FacRecDocker/install-online.sh | sudo bash \u547d\u4ee4\u6267\u884c\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u5e76\u5b89\u88c5\u6240\u9700\u7684Docker\u955c\u50cf\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u6574\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u7531\u56fe\u4e2d\u53ef\u89c1,\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u5df2\u7ecf\u6210\u529f\u5b89\u88c5\u5b8c\u6210\u3002","title":"\u6267\u884c\u5728\u7ebf\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/","text":"\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e \u00b6 1. \u7b80\u4ecb \u00b6 DLIB\u662f\u4e00\u4e2a\u73b0\u4ee3C++\u5de5\u5177\u5305\uff0c\u5305\u542b\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u548c\u5de5\u5177\uff0c\u7528\u4e8e\u521b\u5efa\u590d\u6742\u7684\u8f6f\u4ef6\u4ee5\u89e3\u51b3\u73b0\u5b9e\u4e16\u754c\u4e2d\u7684\u95ee\u9898\u3002\u5b83\u5728\u8ba1\u7b97\u673a\u89c6\u89c9\u9886\u57df\u5c24\u4e3a\u51fa\u8272\uff0c\u5c24\u5176\u662f\u5728\u9762\u90e8\u8bc6\u522b\u4efb\u52a1\u4e2d\u8868\u73b0\u4f18\u5f02\u3002DLIB\u7684\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u57fa\u4e8e\u6df1\u5ea6\u5b66\u4e60\u6280\u672f\uff0c\u80fd\u591f\u9ad8\u6548\u5730\u68c0\u6d4b\u548c\u8bc6\u522b\u4eba\u8138\u3002 \u672c\u7a0b\u5e8f\u5229\u7528DLIB\u7684\u5f3a\u5927\u529f\u80fd\uff0c\u63d0\u4f9b\u4e00\u4e2a\u57fa\u4e8ePython\u7684\u7b80\u5355\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7HTTP\u8bf7\u6c42\u4e0a\u4f20\u56fe\u50cf\uff0c\u670d\u52a1\u5c06\u8fd4\u56de\u56fe\u50cf\u4e2d\u68c0\u6d4b\u5230\u7684\u4eba\u8138\u4fe1\u606f\u3002 2. \u73af\u5883\u51c6\u5907 \u00b6 \u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a \u64cd\u4f5c\u7cfb\u7edf\uff1aLinux\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 Python\u7248\u672c\uff1a3.10\u53ca\u4ee5\u4e0a \u5fc5\u8981\u7684Python\u5e93\uff1adlib, Flask, numpy, opencv-python CMake\uff08\u7528\u4e8e\u7f16\u8bd1dlib\uff09 \u7f16\u8bd1\u5de5\u5177\u94fe\uff08\u5982g++\uff09 3. \u5b89\u88c5\u6b65\u9aa4 \u00b6 3.1 \u5b89\u88c5\u4f9d\u8d56\u9879 \u00b6 \u9996\u5148\uff0c\u786e\u4fdd\u7cfb\u7edf\u5305\u662f\u6700\u65b0\u7684\uff1a sudo apt-get update sudo apt-get upgrade \u5b89\u88c5\u5fc5\u8981\u7684\u4f9d\u8d56\u9879\uff1a sudo apt-get install build-essential cmake libboost-all-dev libx11-dev libopenblas-dev liblapack-dev python3.12-venv 3.2 \u521b\u5efaPython\u865a\u62df\u73af\u5883 \u00b6 \u521b\u5efa\u5e76\u6fc0\u6d3b\u4e00\u4e2a\u65b0\u7684Python\u865a\u62df\u73af\u5883\uff1a\u540d\u79f0\u4e3aface-dt python3 -m venv face-dt source face-dt/bin/activate 3.3 \u5b89\u88c5Python\u5e93 \u00b6 \u5148\u5728\u9879\u76ee\u6839\u76ee\u5f55\u521b\u5efa\u4e00\u4e2a requirements.txt \u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a dlib>=19.22.0 numpy>=1.19.0 opencv-python>=4.5.0 Pillow>=8.0.0 scikit-image>=0.18.0 pandas>=1.2.0 simplejson>=3.17.0 fastapi>=0.104.0 uvicorn>=0.24.0 python-multipart>=0.0.6 \u7136\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u8fd9\u4e9b\u5e93\uff1a pip install -r requirements.txt \u7cfb\u7edf\u4f1a\u81ea\u5b89\u88c5\u7a0b\u5e8f\u6240\u9700\u8981\u7684\u6240\u6709\u4f9d\u8d56\u5e93\uff0c\u5176\u4e2d\uff0cdlib\u7684\u5b89\u88c5\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u4e0d\u8981\u4e2d\u9014\u7ec8\u6b62\u3002 \u6839\u636e\u8ba1\u7b97\u673a\u7684\u914d\u7f6e\u4e0d\u540c\uff0cdlib\u7684\u5b89\u88c5\u65f6\u95f4\u53ef\u80fd\u4f1a\u6709\u6240\u4e0d\u540c\uff0c\u901a\u5e38\u5728\u51e0\u5206\u949f\u5230\u5341\u51e0\u5206\u949f\u4e0d\u7b49\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\u5982\u4e0b\u56fe\u6240\u793a: 3.4 \u4e0b\u8f7d\u9879\u76ee\u6240\u9700\u8981\u7684\u5e93\u4e0e\u6587\u4ef6 \u00b6 \u5148\u521b\u9879\u76ee\u6240\u9700\u8981\u7684\u76ee\u5f55,\u5728\u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e0b\u8fd0\u884c: mkdir -p data/data_dlib mkdir -p data/db mkdir -p data/data_faces_from_camera sudo chmod -R 777 ./** \u7136\u540e\u4e0b\u8f7d\u6240\u9700\u8981\u7684\u6587\u4ef6: cd data/data_dlib # \u4e0b\u8f7d\u4eba\u8138\u5173\u952e\u70b9\u9884\u6d4b\u6a21\u578b wget https://datacdn.data-it.tech/faceRec/face-dt/shape_predictor_68_face_landmarks.dat # \u4e0b\u8f7d\u4eba\u8138\u8bc6\u522b\u6a21\u578b wget https://datacdn.data-it.tech/faceRec/face-dt/dlib_face_recognition_resnet_model_v1.dat \u7136\u540e\uff0c\u56de\u5230\u9879\u76ee\u6839\u76ee\u5f55\u5185,\u4e0b\u8f7d\u672c\u9879\u76ee\u7684\u4ee3\u7801\u6587\u4ef6\uff1a\uff1a # \u56de\u5230\u9879\u76ee\u6839\u76ee\u5f55 cd ../../ wget https://datacdn.data-it.tech/faceRec/face-dt/FaceRecognitionServer_fastapi.py 3.5 \u8fd0\u884c\u670d\u52a1 \u00b6 \u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\uff0c\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff1a uvicorn FaceRecognitionServer_fastapi:app --host 0 .0.0.0 --port 12316 --workers 1 \u53bb\u884c\u4ee5\u4e0a\u547d\u4ee4\uff0c\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u5c31\u542f\u52a8\u6210\u529f\u4e86\uff0c\u9ed8\u8ba4\u76d1\u542c12316\u7aef\u53e3\u3002 3.6 \u4ee5\u670d\u52a1\u65b9\u5f0f\u8fd0\u884c \u00b6 \u53ef\u4ee5\u4f7f\u7528 nohup \u547d\u4ee4\u8ba9\u670d\u52a1\u5728\u540e\u53f0\u8fd0\u884c\uff0c\u5373\u4f7f\u5173\u95ed\u7ec8\u7aef\uff0c\u670d\u52a1\u4e5f\u4e0d\u4f1a\u505c\u6b62\uff1a nohup uvicorn FaceRecognitionServer_fastapi:app --host 0 .0.0.0 --port 12316 --workers 1 & \u8fd9\u6837\uff0c\u670d\u52a1\u5c06\u7ee7\u7eed\u5728\u540e\u53f0\u8fd0\u884c\uff0c\u65e5\u5fd7\u4fe1\u606f\u5c06\u88ab\u5199\u5165 nohup.out \u6587\u4ef6\u4e2d\u3002 3.7 \u505c\u6b62\u670d\u52a1 \u00b6 \u5982\u679c\u9700\u8981\u505c\u6b62\u670d\u52a1\uff0c\u53ef\u4ee5\u4f7f\u7528 ps \u547d\u4ee4\u627e\u5230\u670d\u52a1\u7684\u8fdb\u7a0bID\uff0c\u7136\u540e\u4f7f\u7528 kill \u547d\u4ee4\u7ec8\u6b62\u5b83\uff1a ps aux | grep uvicorn kill <PID> \u5c06 <PID> \u66ff\u6362\u4e3a\u5b9e\u9645\u7684\u8fdb\u7a0bID\u3002 3.8 \u4ee5services\u65b9\u5f0f\u8fd0\u884c \u00b6 \u4e5f\u53ef\u4ee5\u5c06\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u914d\u7f6e\u4e3a\u7cfb\u7edf\u670d\u52a1\uff0c\u4ee5\u4fbf\u66f4\u65b9\u4fbf\u5730\u7ba1\u7406\u5b83 \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u670d\u52a1\u6587\u4ef6\uff0c\u4f8b\u5982 /etc/systemd/system/facerec.service \uff0c\u5185\u5bb9\u5982\u4e0b\uff1a [Unit] Description = Face Recognition Service After = network.target [Service] User = your_username WorkingDirectory = /path/to/your/project ExecStart = /path/to/your/project/face-dt/bin/uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1 [Install] WantedBy = multi-user.target \u5c06 your_username \u66ff\u6362\u4e3a\u8fd0\u884c\u670d\u52a1\u7684\u7528\u6237\uff0c\u5c06 /path/to/your /project \u66ff\u6362\u4e3a\u9879\u76ee\u7684\u5b9e\u9645\u8def\u5f84\u3002 \u7136\u540e\uff0c\u91cd\u65b0\u52a0\u8f7dsystemd\u4ee5\u8bc6\u522b\u65b0\u7684\u670d\u52a1\u6587\u4ef6\uff1a sudo systemctl daemon-reload \u542f\u52a8\u670d\u52a1\uff1a sudo systemctl start facerec.service \u542f\u7528\u670d\u52a1\uff0c\u4f7f\u5176\u5728\u7cfb\u7edf\u542f\u52a8\u65f6\u81ea\u52a8\u8fd0\u884c\uff1a sudo systemctl enable facerec.service \u68c0\u67e5\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status facerec.service \u505c\u6b62\u670d\u52a1\uff1a sudo systemctl stop facerec.service \u91cd\u542f\u670d\u52a1\uff1a sudo systemctl restart facerec.service 3.9 \u9632\u706b\u5899\u914d\u7f6e \u00b6 \u5982\u679c\u670d\u52a1\u5668\u542f\u7528\u4e86\u9632\u706b\u5899\uff0c\u8bf7\u786e\u4fdd\u5141\u8bb812316\u7aef\u53e3\u7684\u6d41\u91cf\uff1a sudo ufw allow 12316 sudo ufw reload 3.10 \u8bbf\u95ee\u670d\u52a1 \u00b6 \u73b0\u5728\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u6216API\u5ba2\u6237\u7aef\u8bbf\u95ee\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff1a http://<your_server_ip>:12316 \u5c06 <your_server_ip> \u66ff\u6362\u4e3a\u670d\u52a1\u5668\u7684\u5b9e\u9645IP\u5730\u5740\u3002 4. \u603b\u7ed3 \u00b6 \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5df2\u7ecf\u6210\u529f\u624b\u52a8\u90e8\u7f72\u4e86\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u4e00\u6b65\u6269\u5c55\u548c\u4f18\u5316\u8be5\u670d\u52a1\uff0c\u4ee5\u6ee1\u8db3\u7279\u5b9a\u7684\u5e94\u7528\u9700\u6c42\u3002","title":"\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#dlib-","text":"","title":"\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1-\u624b\u5de5\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#1","text":"DLIB\u662f\u4e00\u4e2a\u73b0\u4ee3C++\u5de5\u5177\u5305\uff0c\u5305\u542b\u673a\u5668\u5b66\u4e60\u7b97\u6cd5\u548c\u5de5\u5177\uff0c\u7528\u4e8e\u521b\u5efa\u590d\u6742\u7684\u8f6f\u4ef6\u4ee5\u89e3\u51b3\u73b0\u5b9e\u4e16\u754c\u4e2d\u7684\u95ee\u9898\u3002\u5b83\u5728\u8ba1\u7b97\u673a\u89c6\u89c9\u9886\u57df\u5c24\u4e3a\u51fa\u8272\uff0c\u5c24\u5176\u662f\u5728\u9762\u90e8\u8bc6\u522b\u4efb\u52a1\u4e2d\u8868\u73b0\u4f18\u5f02\u3002DLIB\u7684\u4eba\u8138\u8bc6\u522b\u529f\u80fd\u57fa\u4e8e\u6df1\u5ea6\u5b66\u4e60\u6280\u672f\uff0c\u80fd\u591f\u9ad8\u6548\u5730\u68c0\u6d4b\u548c\u8bc6\u522b\u4eba\u8138\u3002 \u672c\u7a0b\u5e8f\u5229\u7528DLIB\u7684\u5f3a\u5927\u529f\u80fd\uff0c\u63d0\u4f9b\u4e00\u4e2a\u57fa\u4e8ePython\u7684\u7b80\u5355\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7HTTP\u8bf7\u6c42\u4e0a\u4f20\u56fe\u50cf\uff0c\u670d\u52a1\u5c06\u8fd4\u56de\u56fe\u50cf\u4e2d\u68c0\u6d4b\u5230\u7684\u4eba\u8138\u4fe1\u606f\u3002","title":"1. \u7b80\u4ecb"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#2","text":"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a \u64cd\u4f5c\u7cfb\u7edf\uff1aLinux\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 Python\u7248\u672c\uff1a3.10\u53ca\u4ee5\u4e0a \u5fc5\u8981\u7684Python\u5e93\uff1adlib, Flask, numpy, opencv-python CMake\uff08\u7528\u4e8e\u7f16\u8bd1dlib\uff09 \u7f16\u8bd1\u5de5\u5177\u94fe\uff08\u5982g++\uff09","title":"2. \u73af\u5883\u51c6\u5907"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#3","text":"","title":"3. \u5b89\u88c5\u6b65\u9aa4"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#31","text":"\u9996\u5148\uff0c\u786e\u4fdd\u7cfb\u7edf\u5305\u662f\u6700\u65b0\u7684\uff1a sudo apt-get update sudo apt-get upgrade \u5b89\u88c5\u5fc5\u8981\u7684\u4f9d\u8d56\u9879\uff1a sudo apt-get install build-essential cmake libboost-all-dev libx11-dev libopenblas-dev liblapack-dev python3.12-venv","title":"3.1 \u5b89\u88c5\u4f9d\u8d56\u9879"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#32-python","text":"\u521b\u5efa\u5e76\u6fc0\u6d3b\u4e00\u4e2a\u65b0\u7684Python\u865a\u62df\u73af\u5883\uff1a\u540d\u79f0\u4e3aface-dt python3 -m venv face-dt source face-dt/bin/activate","title":"3.2 \u521b\u5efaPython\u865a\u62df\u73af\u5883"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#33-python","text":"\u5148\u5728\u9879\u76ee\u6839\u76ee\u5f55\u521b\u5efa\u4e00\u4e2a requirements.txt \u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b\uff1a dlib>=19.22.0 numpy>=1.19.0 opencv-python>=4.5.0 Pillow>=8.0.0 scikit-image>=0.18.0 pandas>=1.2.0 simplejson>=3.17.0 fastapi>=0.104.0 uvicorn>=0.24.0 python-multipart>=0.0.6 \u7136\u540e\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5\u8fd9\u4e9b\u5e93\uff1a pip install -r requirements.txt \u7cfb\u7edf\u4f1a\u81ea\u5b89\u88c5\u7a0b\u5e8f\u6240\u9700\u8981\u7684\u6240\u6709\u4f9d\u8d56\u5e93\uff0c\u5176\u4e2d\uff0cdlib\u7684\u5b89\u88c5\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u4e0d\u8981\u4e2d\u9014\u7ec8\u6b62\u3002 \u6839\u636e\u8ba1\u7b97\u673a\u7684\u914d\u7f6e\u4e0d\u540c\uff0cdlib\u7684\u5b89\u88c5\u65f6\u95f4\u53ef\u80fd\u4f1a\u6709\u6240\u4e0d\u540c\uff0c\u901a\u5e38\u5728\u51e0\u5206\u949f\u5230\u5341\u51e0\u5206\u949f\u4e0d\u7b49\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\u5982\u4e0b\u56fe\u6240\u793a:","title":"3.3 \u5b89\u88c5Python\u5e93"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#34","text":"\u5148\u521b\u9879\u76ee\u6240\u9700\u8981\u7684\u76ee\u5f55,\u5728\u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e0b\u8fd0\u884c: mkdir -p data/data_dlib mkdir -p data/db mkdir -p data/data_faces_from_camera sudo chmod -R 777 ./** \u7136\u540e\u4e0b\u8f7d\u6240\u9700\u8981\u7684\u6587\u4ef6: cd data/data_dlib # \u4e0b\u8f7d\u4eba\u8138\u5173\u952e\u70b9\u9884\u6d4b\u6a21\u578b wget https://datacdn.data-it.tech/faceRec/face-dt/shape_predictor_68_face_landmarks.dat # \u4e0b\u8f7d\u4eba\u8138\u8bc6\u522b\u6a21\u578b wget https://datacdn.data-it.tech/faceRec/face-dt/dlib_face_recognition_resnet_model_v1.dat \u7136\u540e\uff0c\u56de\u5230\u9879\u76ee\u6839\u76ee\u5f55\u5185,\u4e0b\u8f7d\u672c\u9879\u76ee\u7684\u4ee3\u7801\u6587\u4ef6\uff1a\uff1a # \u56de\u5230\u9879\u76ee\u6839\u76ee\u5f55 cd ../../ wget https://datacdn.data-it.tech/faceRec/face-dt/FaceRecognitionServer_fastapi.py","title":"3.4 \u4e0b\u8f7d\u9879\u76ee\u6240\u9700\u8981\u7684\u5e93\u4e0e\u6587\u4ef6"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#35","text":"\u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\uff0c\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff1a uvicorn FaceRecognitionServer_fastapi:app --host 0 .0.0.0 --port 12316 --workers 1 \u53bb\u884c\u4ee5\u4e0a\u547d\u4ee4\uff0c\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u5c31\u542f\u52a8\u6210\u529f\u4e86\uff0c\u9ed8\u8ba4\u76d1\u542c12316\u7aef\u53e3\u3002","title":"3.5 \u8fd0\u884c\u670d\u52a1"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#36","text":"\u53ef\u4ee5\u4f7f\u7528 nohup \u547d\u4ee4\u8ba9\u670d\u52a1\u5728\u540e\u53f0\u8fd0\u884c\uff0c\u5373\u4f7f\u5173\u95ed\u7ec8\u7aef\uff0c\u670d\u52a1\u4e5f\u4e0d\u4f1a\u505c\u6b62\uff1a nohup uvicorn FaceRecognitionServer_fastapi:app --host 0 .0.0.0 --port 12316 --workers 1 & \u8fd9\u6837\uff0c\u670d\u52a1\u5c06\u7ee7\u7eed\u5728\u540e\u53f0\u8fd0\u884c\uff0c\u65e5\u5fd7\u4fe1\u606f\u5c06\u88ab\u5199\u5165 nohup.out \u6587\u4ef6\u4e2d\u3002","title":"3.6 \u4ee5\u670d\u52a1\u65b9\u5f0f\u8fd0\u884c"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#37","text":"\u5982\u679c\u9700\u8981\u505c\u6b62\u670d\u52a1\uff0c\u53ef\u4ee5\u4f7f\u7528 ps \u547d\u4ee4\u627e\u5230\u670d\u52a1\u7684\u8fdb\u7a0bID\uff0c\u7136\u540e\u4f7f\u7528 kill \u547d\u4ee4\u7ec8\u6b62\u5b83\uff1a ps aux | grep uvicorn kill <PID> \u5c06 <PID> \u66ff\u6362\u4e3a\u5b9e\u9645\u7684\u8fdb\u7a0bID\u3002","title":"3.7 \u505c\u6b62\u670d\u52a1"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#38-services","text":"\u4e5f\u53ef\u4ee5\u5c06\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u914d\u7f6e\u4e3a\u7cfb\u7edf\u670d\u52a1\uff0c\u4ee5\u4fbf\u66f4\u65b9\u4fbf\u5730\u7ba1\u7406\u5b83 \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u670d\u52a1\u6587\u4ef6\uff0c\u4f8b\u5982 /etc/systemd/system/facerec.service \uff0c\u5185\u5bb9\u5982\u4e0b\uff1a [Unit] Description = Face Recognition Service After = network.target [Service] User = your_username WorkingDirectory = /path/to/your/project ExecStart = /path/to/your/project/face-dt/bin/uvicorn FaceRecognitionServer_fastapi:app --host 0.0.0.0 --port 12316 --workers 1 [Install] WantedBy = multi-user.target \u5c06 your_username \u66ff\u6362\u4e3a\u8fd0\u884c\u670d\u52a1\u7684\u7528\u6237\uff0c\u5c06 /path/to/your /project \u66ff\u6362\u4e3a\u9879\u76ee\u7684\u5b9e\u9645\u8def\u5f84\u3002 \u7136\u540e\uff0c\u91cd\u65b0\u52a0\u8f7dsystemd\u4ee5\u8bc6\u522b\u65b0\u7684\u670d\u52a1\u6587\u4ef6\uff1a sudo systemctl daemon-reload \u542f\u52a8\u670d\u52a1\uff1a sudo systemctl start facerec.service \u542f\u7528\u670d\u52a1\uff0c\u4f7f\u5176\u5728\u7cfb\u7edf\u542f\u52a8\u65f6\u81ea\u52a8\u8fd0\u884c\uff1a sudo systemctl enable facerec.service \u68c0\u67e5\u670d\u52a1\u72b6\u6001\uff1a sudo systemctl status facerec.service \u505c\u6b62\u670d\u52a1\uff1a sudo systemctl stop facerec.service \u91cd\u542f\u670d\u52a1\uff1a sudo systemctl restart facerec.service","title":"3.8 \u4ee5services\u65b9\u5f0f\u8fd0\u884c"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#39","text":"\u5982\u679c\u670d\u52a1\u5668\u542f\u7528\u4e86\u9632\u706b\u5899\uff0c\u8bf7\u786e\u4fdd\u5141\u8bb812316\u7aef\u53e3\u7684\u6d41\u91cf\uff1a sudo ufw allow 12316 sudo ufw reload","title":"3.9 \u9632\u706b\u5899\u914d\u7f6e"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#310","text":"\u73b0\u5728\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u6216API\u5ba2\u6237\u7aef\u8bbf\u95ee\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff1a http://<your_server_ip>:12316 \u5c06 <your_server_ip> \u66ff\u6362\u4e3a\u670d\u52a1\u5668\u7684\u5b9e\u9645IP\u5730\u5740\u3002","title":"3.10 \u8bbf\u95ee\u670d\u52a1"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDLIB%E7%9A%84%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1-%E6%89%8B%E5%B7%A5%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#4","text":"\u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5df2\u7ecf\u6210\u529f\u624b\u52a8\u90e8\u7f72\u4e86\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002\u60a8\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u4e00\u6b65\u6269\u5c55\u548c\u4f18\u5316\u8be5\u670d\u52a1\uff0c\u4ee5\u6ee1\u8db3\u7279\u5b9a\u7684\u5e94\u7528\u9700\u6c42\u3002","title":"4. \u603b\u7ed3"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/","text":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant \u00b6 HomeAssistant\u57fa\u4e8eDocker\u5bb9\u5668\u6280\u672f\uff0c\u53ef\u4ee5\u5feb\u901f\u90e8\u7f72\u548c\u7ba1\u7406.\u5e76\u53ef\u4e0e\u5176\u5b83\u4e3b\u673a\u6216\u670d\u52a1\u5668\u5171\u7528\uff0c\u6709\u6548\u8282\u7701\u8d44\u6e90\u3002 \u4f46Docker\u5bb9\u5668\u6280\u672f\u5bf9\u7cfb\u7edf\u8d44\u6e90\u6709\u4e00\u5b9a\u8981\u6c42\uff0c\u4e14\u5bf9\u7f51\u7edc\u73af\u5883\u6709\u4f9d\u8d56\u3002\u5e76\u4e14\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5728\u5168\u65ad\u7f51\u5b8c\u5168\u5168\u79bb\u7ebf\u7684\u60c5\u51b5\u4e0b\u90e8\u7f72\u3002 \u56e0\u6b64\uff0c\u624d\u6709\u4e86\u672c\u6587\u6863\u3002 \u5b89\u88c5\u51c6\u5907 \u00b6 \u4e3a\u4e86\u80fd\u5728\u4efb\u610f\u4e3b\u673a\u4e0a\u7528Docker\u5feb\u901f\u5b89\u88c5HomeAssistant\uff0c\u5efa\u8bae\u63d0\u524d\u51c6\u5907\u597dDocker\u73af\u5883\uff0c\u4f46Docker\u5b98\u7f51\u88ab\u5c01\u9501\uff0c\u5bfc\u81f4Docker\u7684\u5b89\u88c5\uff0c\u53ca\u955c\u50cf\u7684\u62c9\u53d6\u90fd\u6781\u4e3a\u56f0\u96be\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u5b89\u88c5Docker\u53caDocker Compose\uff1a \u5b89\u88c5Docker\u57fa\u7840\u73af\u5883-\u652f\u6301\u79bb\u7ebf\u5b89\u88c5 \u5b89\u88c5\u65b9\u5f0f \u00b6 HKO \u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5 \u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a \u00b6 Home Assistant: http://$(\u4e3b\u673aIP):8123 Node-RED: http://$(\u4e3b\u673aIP):1880 Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 PostgreSQL: http://$(\u4e3b\u673aIP):5432 Samba: //$(\u4e3b\u673aIP)/HAConfig portainer: http://$(\u4e3b\u673aIP):9000 \u4f7f\u7528\u8bf4\u660e \u00b6 \u56e0\u4e3a\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u52a0\u8f7d\u9879\u662f\u6ca1\u6709\u7684\uff0c\u5b98\u65b9\u5bf9Docker\u4e0d\u63d0\u4f9b\u52a0\u8f7d\u9879\u529f\u80fd\uff0c\u4e5f\u6ca1\u529e\u5b89\u88c5\u4e0b\u3002 \u6240\u4ee5\u4f5c\u4e3a\u66ff\u4ee3\uff0c\u6211\u4eec\u628a\u52a0\u8f7d\u9879\u4e2d\u6700\u91cd\u8981\u8981\u7684\u51e0\u4e2a\u63d2\u4ef6\u90fd\u4ee5docker\u7684\u65b9\u5f0f\u5355\u72ec\u63d0\u4f9b\uff0c\u5e76\u80fd\u4e0eHomeAssistant\u76f8\u4e92\u914d\u5408\u5de5\u4f5c\uff0c\u5b83\u4eec\u662f Node-RED, Mosquitto MQTT, PostgreSQL, Samba\u7b49\u3002 \u672c\u6587\u63d0\u4f9b\u7684HomeAssistant\u662f\u81ea\u5df2\u91cd\u65b0\u6253\u5305\u7684docker\u96c6\u6210\u4e86HACS\uff0c\u53ca\u4e00\u4e9b\u65b0\u5b89\u5e38\u7528\u7684\u4e3b\u9898UI\u98ce\u683c\uff0c\u548c\u5c0f\u7c73HOME\u96c6\u6210\u7b49\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u65e0\u9700\u518d\u5b89\u88c5\u6b64\u7c7b\u63d2\u4ef6\u3002 HomeAssistant\u5df2\u914d\u7f6e\u9ed8\u8ba4\u4f7f\u7528\u5bb9\u5668\u63d0\u4f9b\u7684pgsql\u6570\u636e\u5e93\u6765\u5b58\u50a8\u6570\u636e\uff0c\u5e76\u8bbe\u5b9a\u4e865\u5929\u53ef\u80fd\u81ea\u52a8\u6e05\u9664\u6570\u636e\uff0c\u5bb9\u5668\u5185\u7684\u65e5\u5fd7\uff0c\u4fdd\u7559\u7f6e\u4e09\u5929\u3002 \u56e0\u4e3a\u4f7f\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u914d\u7f6e\u6587\u4ef6\u662f\u5b58\u653e\u5728\u4e3b\u673a\u7684 /dt_opt/ha/config \u76ee\u5f55\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7Samba\u5171\u4eab\u8bbf\u95ee\u6b64\u76ee\u5f55\uff0c\u6216\u76f4\u63a5\u5728\u4e3b\u673a\u4e0a\u8bbf\u95ee\u6b64\u76ee\u5f55\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002\u5728HomeAssistant\u4e2d\uff0c\u4e0d\u5728\u6709FileEditor\u63d2\u4ef6\u4e86,\u56e0\u6b64\u53ea\u80fd\u4f7f\u7528\u5171\u4eab\u6587\u4ef6\u5939\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002 \u767b\u5f55\u4fe1\u606f \u00b6 Home Assistant: http://$(\u4e3b\u673aIP):8123 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r Node-RED: http://$(\u4e3b\u673aIP):1880 \u65e0\u7528\u6237\u540d Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r PostgreSQL: http://$(\u4e3b\u673aIP):5432 \u6570\u636e\u5e93\u540d:dtha \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r Samba: //$(\u4e3b\u673aIP)/HAConfig \u65e0\u9700\u8981\u5bc6\u7801\u5373\u53ef\u8bbf\u95ee portainer: http://$(\u4e3b\u673aIP):9000 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r_abcd \u8bf4\u660e \u00b6 \u5173\u4e8eSamba(\u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55) Windows \u7aef\u8bbf\u95ee\u65f6\uff0c\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u56e0\u672c\u670d\u52a1\u914d\u7f6e\u4e86\u5141\u8bb8guest\u8bbf\u95ee\uff0c\u6240\u4ee5\u53ef\u76f4\u63a5\u8bbf\u95ee,\u800c\u65e0\u987b\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u3002\u4f46\u662f\u5bf9\u4e8ewindows10/11,\u6709\u53ef\u80fd\u4f1a\u53cd\u590d\u8981\u6c42\u8f93\u5165\u5bc6\u7801\u800c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u56e0\u4e3a\u5b89\u5168\u7b56\u7565\u95ee\u9898\uff0c\u53ef\u5728 Windows \u672c\u5730\u7ec4\u7b56\u7565\u4e2d\u8c03\u6574\uff1a \u6253\u5f00\u201c\u672c\u5730\u7ec4\u7b56\u7565\u7f16\u8f91\u5668\u201d\uff08gpedit.msc\uff09\uff0c\u8ba1\u7b97\u673a\u914d\u7f6e \u2192 \u7ba1\u7406\u6a21\u677f \u2192 \u7f51\u7edc \u2192 Lanman\u5de5\u4f5c\u7ad9\uff0c\u542f\u7528\u201c\u542f\u7528\u4e0d\u5b89\u5168\u7684\u6765\u5bbe\u767b\u5f55\u201d\u3002\u542f\u7528\u540e\uff0c\u5373\u53ef\u6b63\u5e38\u8bbf\u95ee\u6b64\u5171\u4eab\u7684\u914d\u7f6e\u76ee\u5f55\u3002 \u5982\u4e0b\u56fe\u662f\u4ee5\u5171\u4eab\u7684\u65b9\u5f0f\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55\uff1a \u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u5931\u8d25\u7684\u89e3\u51b3\u529e\u6cd5 windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5 \u5173\u4e8eportainer(\u56fe\u578b\u5316Docker\u7ba1\u7406\u5de5\u5177) Portainer \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u7ba1\u7406UI\uff0c\u53ef\u4ee5\u8ba9\u4f60\u66f4\u5bb9\u6613\u5730\u7ba1\u7406Docker\u5bb9\u5668\u3002\u901a\u8fc7Portainer\uff0c\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u3001\u7ba1\u7406\u548c\u76d1\u63a7Docker\u5bb9\u5668\uff0c\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\uff0c\u7ba1\u7406Docker\u955c\u50cf\u7b49\u3002Portainer\u7684Web\u754c\u9762\u53cb\u597d\uff0c\u9002\u5408Docker\u65b0\u624b\u548c\u9700\u8981\u5feb\u901f\u7ba1\u7406Docker\u73af\u5883\u7684\u7528\u6237\u3002 \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"HomeAssistant\u57fa\u4e8eDocker\u5bb9\u5668\u6280\u672f\uff0c\u53ef\u4ee5\u5feb\u901f\u90e8\u7f72\u548c\u7ba1\u7406.\u5e76\u53ef\u4e0e\u5176\u5b83\u4e3b\u673a\u6216\u670d\u52a1\u5668\u5171\u7528\uff0c\u6709\u6548\u8282\u7701\u8d44\u6e90\u3002 \u4f46Docker\u5bb9\u5668\u6280\u672f\u5bf9\u7cfb\u7edf\u8d44\u6e90\u6709\u4e00\u5b9a\u8981\u6c42\uff0c\u4e14\u5bf9\u7f51\u7edc\u73af\u5883\u6709\u4f9d\u8d56\u3002\u5e76\u4e14\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u5728\u5168\u65ad\u7f51\u5b8c\u5168\u5168\u79bb\u7ebf\u7684\u60c5\u51b5\u4e0b\u90e8\u7f72\u3002 \u56e0\u6b64\uff0c\u624d\u6709\u4e86\u672c\u6587\u6863\u3002","title":"\u57fa\u4e8eDocker\u7684\u65b9\u5f0f\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_1","text":"\u4e3a\u4e86\u80fd\u5728\u4efb\u610f\u4e3b\u673a\u4e0a\u7528Docker\u5feb\u901f\u5b89\u88c5HomeAssistant\uff0c\u5efa\u8bae\u63d0\u524d\u51c6\u5907\u597dDocker\u73af\u5883\uff0c\u4f46Docker\u5b98\u7f51\u88ab\u5c01\u9501\uff0c\u5bfc\u81f4Docker\u7684\u5b89\u88c5\uff0c\u53ca\u955c\u50cf\u7684\u62c9\u53d6\u90fd\u6781\u4e3a\u56f0\u96be\u3002\u56e0\u6b64\uff0c\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u5b89\u88c5Docker\u53caDocker Compose\uff1a \u5b89\u88c5Docker\u57fa\u7840\u73af\u5883-\u652f\u6301\u79bb\u7ebf\u5b89\u88c5","title":"\u5b89\u88c5\u51c6\u5907"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_2","text":"HKO \u5728\u7ebf\u5b89\u88c5 \u79bb\u7ebf\u5b89\u88c5","title":"\u5b89\u88c5\u65b9\u5f0f"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_3","text":"Home Assistant: http://$(\u4e3b\u673aIP):8123 Node-RED: http://$(\u4e3b\u673aIP):1880 Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 PostgreSQL: http://$(\u4e3b\u673aIP):5432 Samba: //$(\u4e3b\u673aIP)/HAConfig portainer: http://$(\u4e3b\u673aIP):9000","title":"\u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_4","text":"\u56e0\u4e3a\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u52a0\u8f7d\u9879\u662f\u6ca1\u6709\u7684\uff0c\u5b98\u65b9\u5bf9Docker\u4e0d\u63d0\u4f9b\u52a0\u8f7d\u9879\u529f\u80fd\uff0c\u4e5f\u6ca1\u529e\u5b89\u88c5\u4e0b\u3002 \u6240\u4ee5\u4f5c\u4e3a\u66ff\u4ee3\uff0c\u6211\u4eec\u628a\u52a0\u8f7d\u9879\u4e2d\u6700\u91cd\u8981\u8981\u7684\u51e0\u4e2a\u63d2\u4ef6\u90fd\u4ee5docker\u7684\u65b9\u5f0f\u5355\u72ec\u63d0\u4f9b\uff0c\u5e76\u80fd\u4e0eHomeAssistant\u76f8\u4e92\u914d\u5408\u5de5\u4f5c\uff0c\u5b83\u4eec\u662f Node-RED, Mosquitto MQTT, PostgreSQL, Samba\u7b49\u3002 \u672c\u6587\u63d0\u4f9b\u7684HomeAssistant\u662f\u81ea\u5df2\u91cd\u65b0\u6253\u5305\u7684docker\u96c6\u6210\u4e86HACS\uff0c\u53ca\u4e00\u4e9b\u65b0\u5b89\u5e38\u7528\u7684\u4e3b\u9898UI\u98ce\u683c\uff0c\u548c\u5c0f\u7c73HOME\u96c6\u6210\u7b49\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u65e0\u9700\u518d\u5b89\u88c5\u6b64\u7c7b\u63d2\u4ef6\u3002 HomeAssistant\u5df2\u914d\u7f6e\u9ed8\u8ba4\u4f7f\u7528\u5bb9\u5668\u63d0\u4f9b\u7684pgsql\u6570\u636e\u5e93\u6765\u5b58\u50a8\u6570\u636e\uff0c\u5e76\u8bbe\u5b9a\u4e865\u5929\u53ef\u80fd\u81ea\u52a8\u6e05\u9664\u6570\u636e\uff0c\u5bb9\u5668\u5185\u7684\u65e5\u5fd7\uff0c\u4fdd\u7559\u7f6e\u4e09\u5929\u3002 \u56e0\u4e3a\u4f7f\u4f7f\u7528\u4e86Docker\u5bb9\u5668\u6280\u672f\uff0c\u6240\u4ee5HomeAssistant\u7684\u914d\u7f6e\u6587\u4ef6\u662f\u5b58\u653e\u5728\u4e3b\u673a\u7684 /dt_opt/ha/config \u76ee\u5f55\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7Samba\u5171\u4eab\u8bbf\u95ee\u6b64\u76ee\u5f55\uff0c\u6216\u76f4\u63a5\u5728\u4e3b\u673a\u4e0a\u8bbf\u95ee\u6b64\u76ee\u5f55\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002\u5728HomeAssistant\u4e2d\uff0c\u4e0d\u5728\u6709FileEditor\u63d2\u4ef6\u4e86,\u56e0\u6b64\u53ea\u80fd\u4f7f\u7528\u5171\u4eab\u6587\u4ef6\u5939\u6765\u7ba1\u7406\u914d\u7f6e\u6587\u4ef6\u3002","title":"\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_5","text":"Home Assistant: http://$(\u4e3b\u673aIP):8123 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r Node-RED: http://$(\u4e3b\u673aIP):1880 \u65e0\u7528\u6237\u540d Mosquitto MQTT: http://$(\u4e3b\u673aIP):1883 \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r PostgreSQL: http://$(\u4e3b\u673aIP):5432 \u6570\u636e\u5e93\u540d:dtha \u7528\u6237\u540d:dtuser \u5bc6\u7801:Dtuse1r Samba: //$(\u4e3b\u673aIP)/HAConfig \u65e0\u9700\u8981\u5bc6\u7801\u5373\u53ef\u8bbf\u95ee portainer: http://$(\u4e3b\u673aIP):9000 \u7528\u6237\u540d:admin \u5bc6\u7801:Dtuse1r_abcd","title":"\u767b\u5f55\u4fe1\u606f"},{"location":"Usages/QA/%E5%9F%BA%E4%BA%8EDocker%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85HomeAssistant/#_6","text":"\u5173\u4e8eSamba(\u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55) Windows \u7aef\u8bbf\u95ee\u65f6\uff0c\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002\u56e0\u672c\u670d\u52a1\u914d\u7f6e\u4e86\u5141\u8bb8guest\u8bbf\u95ee\uff0c\u6240\u4ee5\u53ef\u76f4\u63a5\u8bbf\u95ee,\u800c\u65e0\u987b\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u3002\u4f46\u662f\u5bf9\u4e8ewindows10/11,\u6709\u53ef\u80fd\u4f1a\u53cd\u590d\u8981\u6c42\u8f93\u5165\u5bc6\u7801\u800c\u65e0\u6cd5\u8bbf\u95ee\uff0c\u662f\u56e0\u4e3a\u5b89\u5168\u7b56\u7565\u95ee\u9898\uff0c\u53ef\u5728 Windows \u672c\u5730\u7ec4\u7b56\u7565\u4e2d\u8c03\u6574\uff1a \u6253\u5f00\u201c\u672c\u5730\u7ec4\u7b56\u7565\u7f16\u8f91\u5668\u201d\uff08gpedit.msc\uff09\uff0c\u8ba1\u7b97\u673a\u914d\u7f6e \u2192 \u7ba1\u7406\u6a21\u677f \u2192 \u7f51\u7edc \u2192 Lanman\u5de5\u4f5c\u7ad9\uff0c\u542f\u7528\u201c\u542f\u7528\u4e0d\u5b89\u5168\u7684\u6765\u5bbe\u767b\u5f55\u201d\u3002\u542f\u7528\u540e\uff0c\u5373\u53ef\u6b63\u5e38\u8bbf\u95ee\u6b64\u5171\u4eab\u7684\u914d\u7f6e\u76ee\u5f55\u3002 \u5982\u4e0b\u56fe\u662f\u4ee5\u5171\u4eab\u7684\u65b9\u5f0f\u8bbf\u95ee\u914d\u7f6e\u76ee\u5f55\uff1a \u5171\u4eab\u76ee\u5f55\u8bbf\u95ee\u5931\u8d25\u7684\u89e3\u51b3\u529e\u6cd5 windows\u4e0d\u80fd\u8bbf\u95eeHA\u7684\u5171\u4eab\u914d\u7f6e\u76ee\u5f55\u7684\u89e3\u51b3\u529e\u6cd5 \u5173\u4e8eportainer(\u56fe\u578b\u5316Docker\u7ba1\u7406\u5de5\u5177) Portainer \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u7684\u7ba1\u7406UI\uff0c\u53ef\u4ee5\u8ba9\u4f60\u66f4\u5bb9\u6613\u5730\u7ba1\u7406Docker\u5bb9\u5668\u3002\u901a\u8fc7Portainer\uff0c\u4f60\u53ef\u4ee5\u8f7b\u677e\u5730\u521b\u5efa\u3001\u7ba1\u7406\u548c\u76d1\u63a7Docker\u5bb9\u5668\uff0c\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7\uff0c\u7ba1\u7406Docker\u955c\u50cf\u7b49\u3002Portainer\u7684Web\u754c\u9762\u53cb\u597d\uff0c\u9002\u5408Docker\u65b0\u624b\u548c\u9700\u8981\u5feb\u901f\u7ba1\u7406Docker\u73af\u5883\u7684\u7528\u6237\u3002 \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u8bf4\u660e"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/","text":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant \u00b6 \u4e00\u952e\u5b89\u88c5\u811a\u672c\u5730\u5740 \u00b6 http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh \u4f7f\u7528\u8bf4\u660e \u00b6 \u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c \u00b6 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh | sudo bash \u5982\u4e0b\u6240\u793a \u00b6","title":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"","title":"\u5982\u4f55\u5728\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_1","text":"http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh","title":"\u4e00\u952e\u5b89\u88c5\u811a\u672c\u5730\u5740"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_2","text":"","title":"\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_3","text":"curl -fsSL http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/install-ha.sh | sudo bash","title":"\u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E8%A3%85HomeAssistant/#_4","text":"","title":"\u5982\u4e0b\u6240\u793a"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/","text":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1 \u00b6 frpc\u5ba2\u6237\u7aef\u90e8\u7f72\u4e3a\u975e\u5e38\u7b80\u5355\uff0c\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1\u3002 \u5feb\u901f\u5b89\u88c5 \u00b6 # x86_64_amd curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-x86_64.sh | sudo bash # arm64 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-arm.sh | sudo bash \u7136\u540e\u6839\u636e\u63d0\u793a\u8fdb\u884c\u914d\u7f6e\u5373\u53ef\u3002 \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u5730\u5740: 115.190.**.101 <--\u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u5730\u5740-> \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u7aef\u53e3: 0000 <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u53e3-> \u662f\u5426\u4f7f\u7528 token \u9a8c\u8bc1? (y/n): y <- \u670d\u52a1\u7aef\u662f\u5426\u5f00\u542f\u4e86token\u9a8c\u8bc1\uff0c\u5982\u679c\u8f93\u5165Y\uff0c\u5426\u5219\u8f93\u5165N-> \u8bf7\u8f93\u5165 token: **** <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684 token-> \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: no_machine_test <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u540d\u79f0-> \u8bf7\u8f93\u5165\u672c\u5730 IP: 192.168.6.222 \u8bf7\u8f93\u5165\u672c\u5730\u7aef\u53e3: 4000 \u8bf7\u8f93\u5165\u8fdc\u7a0b\u7aef\u53e3: 60009 \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: \u6b63\u5728\u4e0b\u8f7d\u5e76\u5b89\u88c5 frpClient... --2025-09-02 09:50:08-- http://datacdn.data-it.tech/HomeAssistant/tools/frpc/frp_0.64.0_linux_amd64.tar.gz Resolving datacdn.data-it.tech (datacdn.data-it.tech)... 122.228.207.55, 36.25.240.217, 36.25.240.218, ... Connecting to datacdn.data-it.tech (datacdn.data-it.tech)|122.228.207.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13332918 (13M) [application/x-compressed] Saving to: \u2018/tmp/frpc.tar.gz\u2019 /tmp/frpc.tar.gz 100%[========================================================>] 12.71M 4.72MB/s in 2.7s 2025-09-02 09:50:12 (4.72 MB/s) - \u2018/tmp/frpc.tar.gz\u2019 saved [13332918/13332918] Created symlink /etc/systemd/system/multi-user.target.wants/frpc.service \u2192 /etc/systemd/system/frpc.service. frpClient \u5b89\u88c5\u5b8c\u6210\u5e76\u5df2\u542f\u52a8\u3002 \u5982\u9700\u5378\u8f7d\uff0c\u8bf7\u8fd0\u884c: sudo bash ./install-frp-x86_64.sh uninstall /etc/systemd/system/frpc.service [Unit] Description=frp Client Service After=network-online.target Wants=network-online.target [Service] Type=simple User=orangepi WorkingDirectory=/opt/frpc ExecStartPre=/bin/sleep 20 ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml Restart=on-failure [Install] WantedBy=multi-user.target","title":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/#frpc","text":"frpc\u5ba2\u6237\u7aef\u90e8\u7f72\u4e3a\u975e\u5e38\u7b80\u5355\uff0c\u672c\u6587\u6863\u5c06\u6307\u5bfc\u4f60\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1\u3002","title":"\u5982\u4f55\u5feb\u901f\u90e8\u7f72frpc\u670d\u52a1"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2frpc%E6%9C%8D%E5%8A%A1/#_1","text":"# x86_64_amd curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-x86_64.sh | sudo bash # arm64 curl -fsSL http://datacdn.data-it.tech/HomeAssistant/tools/frpc/install-frp-arm.sh | sudo bash \u7136\u540e\u6839\u636e\u63d0\u793a\u8fdb\u884c\u914d\u7f6e\u5373\u53ef\u3002 \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u5730\u5740: 115.190.**.101 <--\u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u5730\u5740-> \u8bf7\u8f93\u5165 frp \u670d\u52a1\u7aef\u7aef\u53e3: 0000 <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u7aef\u53e3-> \u662f\u5426\u4f7f\u7528 token \u9a8c\u8bc1? (y/n): y <- \u670d\u52a1\u7aef\u662f\u5426\u5f00\u542f\u4e86token\u9a8c\u8bc1\uff0c\u5982\u679c\u8f93\u5165Y\uff0c\u5426\u5219\u8f93\u5165N-> \u8bf7\u8f93\u5165 token: **** <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684 token-> \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: no_machine_test <- \u5728\u6b64\u5904\u8f93\u5165\u4f60\u7684\u670d\u52a1\u540d\u79f0-> \u8bf7\u8f93\u5165\u672c\u5730 IP: 192.168.6.222 \u8bf7\u8f93\u5165\u672c\u5730\u7aef\u53e3: 4000 \u8bf7\u8f93\u5165\u8fdc\u7a0b\u7aef\u53e3: 60009 \u8bf7\u8f93\u5165\u672c\u5730\u670d\u52a1\u540d\u79f0(\u5982 myservice)\uff0c\u4e3a\u7a7a\u5219\u7ed3\u675f: \u6b63\u5728\u4e0b\u8f7d\u5e76\u5b89\u88c5 frpClient... --2025-09-02 09:50:08-- http://datacdn.data-it.tech/HomeAssistant/tools/frpc/frp_0.64.0_linux_amd64.tar.gz Resolving datacdn.data-it.tech (datacdn.data-it.tech)... 122.228.207.55, 36.25.240.217, 36.25.240.218, ... Connecting to datacdn.data-it.tech (datacdn.data-it.tech)|122.228.207.55|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 13332918 (13M) [application/x-compressed] Saving to: \u2018/tmp/frpc.tar.gz\u2019 /tmp/frpc.tar.gz 100%[========================================================>] 12.71M 4.72MB/s in 2.7s 2025-09-02 09:50:12 (4.72 MB/s) - \u2018/tmp/frpc.tar.gz\u2019 saved [13332918/13332918] Created symlink /etc/systemd/system/multi-user.target.wants/frpc.service \u2192 /etc/systemd/system/frpc.service. frpClient \u5b89\u88c5\u5b8c\u6210\u5e76\u5df2\u542f\u52a8\u3002 \u5982\u9700\u5378\u8f7d\uff0c\u8bf7\u8fd0\u884c: sudo bash ./install-frp-x86_64.sh uninstall /etc/systemd/system/frpc.service [Unit] Description=frp Client Service After=network-online.target Wants=network-online.target [Service] Type=simple User=orangepi WorkingDirectory=/opt/frpc ExecStartPre=/bin/sleep 20 ExecStart=/opt/frpc/frpc -c /opt/frpc/frpc.toml Restart=on-failure [Install] WantedBy=multi-user.target","title":"\u5feb\u901f\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E6%8A%8AHAos%E7%9A%84%E6%BA%90%E6%8D%A2%E6%88%90%E5%9B%BD%E5%86%85%E6%BA%90/","text":"\u8981\u66f4\u6539haos\uff08\u53ef\u80fd\u662f\u6307HaOS\uff0c\u4e00\u4e2a\u57fa\u4e8eLinux\u7684\u64cd\u4f5c\u7cfb\u7edf\uff09\u7684\u8f6f\u4ef6\u6e90\u4e3a\u56fd\u5185\u6e90\uff0c \u9700\u8981\u7f16\u8f91 /etc/apk/repositories \u6587\u4ef6\uff0c\u7136\u540e\u66ff\u6362\u73b0\u6709\u7684\u6e90\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\u3002\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u5907\u4efd\u539f\u59cb\u6587\u4ef6:\u786e\u4fdd\u5728\u4fee\u6539\u4e4b\u524d\u5907\u4efd\u539f\u59cb\u7684 /etc/apk/repositories \u6587\u4ef6\uff0c\u4ee5\u9632\u4fee\u6539\u9519\u8bef\u5bfc\u81f4\u95ee\u9898\u3002 sudo cp /etc/apk/repositories /etc/apk/repositories.bak \u7f16\u8f91\u6587\u4ef6:\u4f7f\u7528\u6587\u672c\u7f16\u8f91\u5668\uff08\u5982vi\u3001nano\u7b49\uff09\u6253\u5f00 /etc/apk/repositories \u6587\u4ef6\u3002 sudo vi /etc/apk/repositories \u66ff\u6362\u6e90:\u5c06\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9\u66ff\u6362\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\uff0c\u4f8b\u5982\u963f\u91cc\u4e91\u6216\u6e05\u534e\u5927\u5b66\u7684\u6e90\u3002\\ \u4e0b\u662f\u963f\u91cc\u4e91\u7684\u793a\u4f8b\uff1a https://mirrors.aliyun.com/alpine/latest-stable/main https://mirrors.aliyun.com/alpine/latest-stable/community \u6e05\u534e\u5927\u5b66\u7684\u6e90\u793a\u4f8b\uff1a https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u9009\u62e9\u4e00\u4e2a\u6e90\uff0c\u5e76\u5c06\u539f\u6587\u4ef6\u5185\u5bb9\u66ff\u6362\u3002 \u4fdd\u5b58\u5e76\u9000\u51fa:\u5982\u679c\u4f7f\u7528vi\uff0c\u6309\u4e0bEsc\uff0c\u7136\u540e\u8f93\u5165 :wq \u4fdd\u5b58\u5e76\u9000\u51fa\u3002 \u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868:\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u66f4\u65b0\u8f6f\u4ef6\u5305\u5217\u8868\uff0c\u4f7f\u66f4\u6539\u751f\u6548\u3002 sudo apk update \u5b8c\u6210\u4ee5\u4e0a\u6b65\u9aa4\u540e\uff0chaos\u7684\u8f6f\u4ef6\u6e90\u5c31\u6210\u529f\u66f4\u6362\u4e3a\u56fd\u5185\u955c\u50cf\u6e90\u4e86\u3002","title":"\u5982\u4f55\u628aHAos\u7684\u6e90\u6362\u6210\u56fd\u5185\u6e90"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/","text":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant \u00b6 \u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u672c\u5730 \u00b6 \u5730\u5740\uff1a wget http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/ha-images1.1.zip \u8bf4\u660e\uff1a\u672c\u79bb\u7ebf\u5305\u5305\u542b\u4e86Home Assistant\u7684\u6240\u6709\u4f9d\u8d56\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728\u6ca1\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e0b\u8fdb\u884c\u5b89\u88c5\u3002\u5927\u7ea6 1.1 GB\u3002 \u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55 \u00b6 sudo apt update sudo mkdir /dt_opt/ sudo unzip ha-images1.1.zip -d /dt_opt/ \u5982\u4e0b\u56fe\u793a\u793a\uff1a \u7ed9\u89e3\u538b\u540e\u7684\u6587\u4ef6\u8d4b\u4e88\u6b63\u786e\u7684\u6743\u9650 \u00b6 sudo chown -R $USER:$USER /dt_opt/ cd /dt_opt/ sudo chmod +x install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a\uff1a \u6267\u884c\u5b89\u88c5\u811a\u672c \u00b6 cd /dt_opt/ sudo ./install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a: \u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a \u00b6 Home Assistant: http://192.168.50.170:8123 Node-RED: http://192.168.50.170:1880 Mosquitto MQTT: 192.168.50.170:1883 PostgreSQL: 192.168.50.170:5432 Samba: //192.168.50.170/HAConfig portainer: http://192.168.50.170:9000","title":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#dockerhomeassistant","text":"","title":"\u5982\u4f55\u79bb\u7ebfDocker\u4e00\u952e\u5b89\u88c5HomeAssistant"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_1","text":"\u5730\u5740\uff1a wget http://datacdn.data-it.tech/HomeAssistant/dokerimages/ha-images1.1/ha-images1.1.zip \u8bf4\u660e\uff1a\u672c\u79bb\u7ebf\u5305\u5305\u542b\u4e86Home Assistant\u7684\u6240\u6709\u4f9d\u8d56\u548c\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u4ee5\u5728\u6ca1\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e0b\u8fdb\u884c\u5b89\u88c5\u3002\u5927\u7ea6 1.1 GB\u3002","title":"\u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u672c\u5730"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_2","text":"sudo apt update sudo mkdir /dt_opt/ sudo unzip ha-images1.1.zip -d /dt_opt/ \u5982\u4e0b\u56fe\u793a\u793a\uff1a","title":"\u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_3","text":"sudo chown -R $USER:$USER /dt_opt/ cd /dt_opt/ sudo chmod +x install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a\uff1a","title":"\u7ed9\u89e3\u538b\u540e\u7684\u6587\u4ef6\u8d4b\u4e88\u6b63\u786e\u7684\u6743\u9650"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_4","text":"cd /dt_opt/ sudo ./install-ha-local.sh \u5982\u4e0b\u56fe\u6240\u793a:","title":"\u6267\u884c\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BFDocker%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85HomeAssistant/#_5","text":"Home Assistant: http://192.168.50.170:8123 Node-RED: http://192.168.50.170:1880 Mosquitto MQTT: 192.168.50.170:1883 PostgreSQL: 192.168.50.170:5432 Samba: //192.168.50.170/HAConfig portainer: http://192.168.50.170:9000","title":"\u670d\u52a1\u8bbf\u95ee\u5730\u5740\uff1a"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/","text":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu 24.04) \u00b6 \u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684Ubuntu 24.04\u7cfb\u7edf\u4e0a\u79bb\u7ebf\u5b89\u88c5Docker\u3002 - \u57fa\u4e8e\u73b0\u5728\u56fd\u5185\u7f51\u7edc\u73af\u5883\uff0c\u5efa\u8bae\u4f7f\u7528\u79bb\u7ebf\u5b89\u88c5\u65b9\u5f0f\u6765\u907f\u514d\u7f51\u7edc\u95ee\u9898\u3002 - \u57fa\u4e8e\u9700\u8981\u5185\u7f51\u90e8\u7f72\u7684\u573a\u666f\uff0c\u672c\u6587\u6863\u4e5f\u9002\u7528\u3002 \u79bb\u7ebf\u5b89\u88c5\u6b65\u9aa4 \u00b6 \u51c6\u5907\u5de5\u4f5c \u00b6 \u5728\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e2d\u4e0b\u8f7dDocker\u7684deb\u5305\u53ca\u5176\u4f9d\u8d56\u5305\u3002 \u5c06\u4e0b\u8f7d\u597d\u7684deb\u5305\u62f7\u8d1d\u5230\u76ee\u6807Ubuntu 24.04\u7cfb\u7edf\u4e2d\u3002 \u4e0b\u8f7dDocker\u53ca\u5176\u4f9d\u8d56\u5305 \u00b6 http://datacdn.data-it.tech/HomeAssistant/tools/docker_offline/docker-offline-packages.tar.gz \u5c06\u4e0b\u8f7d\u5230\u7684docker-offline-packages.tar.gz\u4f20\u8f93\u5230\u76ee\u6807\u7cfb\u7edf \u00b6 \u6bd4\u5982\u4e0b\u8f7d\u5230\u5982\u4e0b\u76ee\u5f55 tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz tst@tst-VMware-Virtual-Platform:~/down$ \u89e3\u538b\u5b89\u88c5\u5305 \u00b6 tar -zxvf docker-offline-packages.tar.gz \u5982\u4e0b\uff1a tst@tst-VMware-Virtual-Platform:~/down$ tar -zxvf docker-offline-packages.tar.gz install-docker.sh offline/ offline/docker-compose/ offline/docker-compose/docker-compose-linux-x86_64 ls offline/deb-packages/ offline/deb-packages/docker-ce-cli_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/containerd.io_1.7.27-1_amd64.deb offline/deb-packages/docker-ce_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/docker-buildx-plugin_0.26.1-1~ubuntu.24.04~noble_amd64.deb offline/scripts/ offline/scripts/offline-install.sh tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz install-docker.sh offline \u79bb\u7ebf\u5b89\u88c5 \u00b6 \u5728\u76ee\u5f55\u4e2d\u6267\u884c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline \u9a8c\u8bc1\u5b89\u88c5 \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1Docker\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker --version \u5982\u679c\u770b\u5230Docker\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u9a8c\u8bc1Docker Compose\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker-compose --version \u5982\u679c\u770b\u5230Docker Compose\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u5e38\u7528\u6307\u4ee4 \u00b6 # \u4e0b\u8f7d ./install-docker.sh --download ./offline # \u4e3b\u811a\u672c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline # \u6253\u5305 tar -czvf docker-offline-packages.tar.gz install-docker.sh offline ## \u9a8c\u8bc1 tar -tzvf docker-offline-packages.tar.gz","title":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu24.04)"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#dockerubuntu-2404","text":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684Ubuntu 24.04\u7cfb\u7edf\u4e0a\u79bb\u7ebf\u5b89\u88c5Docker\u3002 - \u57fa\u4e8e\u73b0\u5728\u56fd\u5185\u7f51\u7edc\u73af\u5883\uff0c\u5efa\u8bae\u4f7f\u7528\u79bb\u7ebf\u5b89\u88c5\u65b9\u5f0f\u6765\u907f\u514d\u7f51\u7edc\u95ee\u9898\u3002 - \u57fa\u4e8e\u9700\u8981\u5185\u7f51\u90e8\u7f72\u7684\u573a\u666f\uff0c\u672c\u6587\u6863\u4e5f\u9002\u7528\u3002","title":"\u5982\u4f55\u79bb\u7ebf\u5b89\u88c5Docker(ubuntu 24.04)"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_1","text":"","title":"\u79bb\u7ebf\u5b89\u88c5\u6b65\u9aa4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_2","text":"\u5728\u6709\u7f51\u7edc\u7684\u73af\u5883\u4e2d\u4e0b\u8f7dDocker\u7684deb\u5305\u53ca\u5176\u4f9d\u8d56\u5305\u3002 \u5c06\u4e0b\u8f7d\u597d\u7684deb\u5305\u62f7\u8d1d\u5230\u76ee\u6807Ubuntu 24.04\u7cfb\u7edf\u4e2d\u3002","title":"\u51c6\u5907\u5de5\u4f5c"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#docker","text":"http://datacdn.data-it.tech/HomeAssistant/tools/docker_offline/docker-offline-packages.tar.gz","title":"\u4e0b\u8f7dDocker\u53ca\u5176\u4f9d\u8d56\u5305"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#docker-offline-packagestargz","text":"\u6bd4\u5982\u4e0b\u8f7d\u5230\u5982\u4e0b\u76ee\u5f55 tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz tst@tst-VMware-Virtual-Platform:~/down$","title":"\u5c06\u4e0b\u8f7d\u5230\u7684docker-offline-packages.tar.gz\u4f20\u8f93\u5230\u76ee\u6807\u7cfb\u7edf"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_3","text":"tar -zxvf docker-offline-packages.tar.gz \u5982\u4e0b\uff1a tst@tst-VMware-Virtual-Platform:~/down$ tar -zxvf docker-offline-packages.tar.gz install-docker.sh offline/ offline/docker-compose/ offline/docker-compose/docker-compose-linux-x86_64 ls offline/deb-packages/ offline/deb-packages/docker-ce-cli_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/containerd.io_1.7.27-1_amd64.deb offline/deb-packages/docker-ce_5%3a28.3.3-1~ubuntu.24.04~noble_amd64.deb offline/deb-packages/docker-buildx-plugin_0.26.1-1~ubuntu.24.04~noble_amd64.deb offline/scripts/ offline/scripts/offline-install.sh tst@tst-VMware-Virtual-Platform:~/down$ ls docker-offline-packages.tar.gz install-docker.sh offline","title":"\u89e3\u538b\u5b89\u88c5\u5305"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_4","text":"\u5728\u76ee\u5f55\u4e2d\u6267\u884c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline","title":"\u79bb\u7ebf\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_5","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u9a8c\u8bc1Docker\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker --version \u5982\u679c\u770b\u5230Docker\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002 \u9a8c\u8bc1Docker Compose\u662f\u5426\u5b89\u88c5\u6210\u529f\uff1a docker-compose --version \u5982\u679c\u770b\u5230Docker Compose\u7684\u7248\u672c\u4fe1\u606f\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\u3002","title":"\u9a8c\u8bc1\u5b89\u88c5"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E7%A6%BB%E7%BA%BF%E5%AE%89%E8%A3%85Docker%28ubunt24.04%29/#_6","text":"# \u4e0b\u8f7d ./install-docker.sh --download ./offline # \u4e3b\u811a\u672c\u79bb\u7ebf\u5b89\u88c5 ./install-docker.sh --install ./offline # \u6253\u5305 tar -czvf docker-offline-packages.tar.gz install-docker.sh offline ## \u9a8c\u8bc1 tar -tzvf docker-offline-packages.tar.gz","title":"\u5e38\u7528\u6307\u4ee4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/","text":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA \u00b6 \u548c\u98ce\u5929\u6c14\u7b80\u4ecb \u00b6 \u548c\u98ce\u5929\u6c14\u662f\u4e00\u4e2a\u63d0\u4f9b\u5929\u6c14\u4fe1\u606f\u7684API\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u96c6\u6210\u5230Home Assistant\u4e2d\u3002 \u96c6\u6210\u6b65\u9aa4 \u00b6 \u5728Home Assistant\u4e2d\u5b89\u88c5\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u3002 \u914d\u7f6e\u548c\u98ce\u5929\u6c14API\u5bc6\u94a5\u3002 \u5728\u81ea\u52a8\u5316\u4e2d\u4f7f\u7528\u548c\u98ce\u5929\u6c14\u63d0\u4f9b\u7684\u5929\u6c14\u6570\u636e\u3002 \u793a\u4f8b \u00b6 \u767b\u5f55\u548c\u98ce\u5929\u6c14\u63a7\u5236\u53f0\uff0chttps://console.qweather.com/project?lang=zh \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5148\u4e3a\u6b64\u4e2d\u5fc3\u521b\u5efa\u4e00\u4e2a\u9879\u76ee\uff0c\u4e3a\u7684\u662f\u4e3a\u6bcf\u4e2a\u4e2d\u5fc3\u4f7f\u7528\u7684api\u8c03\u7528\u6b21\u6570\u7684\u7edf\u8ba1 \u8bb0\u5f55\u4e0b\u6765\u76f8\u5173\u4fe1\u606f \u9879\u76ee\u540d\u79f0\uff1a\u6e56\u5357\u65fa\u65fa \u9879\u76eeID:2HKR2MC5WM API-KEY:885d8b06871b445fbc1beb2eda11cd6c \u5f00\u53d1\u8005ID:Q137B51456 API-Host\uff1and4up3fy3t.re.qweatherapi.com \u67e5\u8be2\u57ce\u5e02\u533a\u57df\u4ee3\u7801\u7684\u7684\u5740\uff1a git clone https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u914d\u7f6e\u53c2\u8003 \u00b6 \u6253\u5f00\u7684\u914d\u7f6e\u6587\u4ef6 configuration.yaml \uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a weather: - platform: heweather location: 101210301 # \u4f60\u7684\u533a\u57df\u4ee3\u7801\u57ce\u5e02id host: nd4up3fy3t.re.qweatherapi.com # API Host key: 885d8b06871b445fbc1beb2eda11cd6c # \u4f60\u7684API KEY \u5176\u4e2d\uff0c\u8981\u66f4\u6362\u7684\u5185\u5bb9\u4e3b\u8981\u6709\uff0c\u533a\u57df\u4ee3\u7801\u57ce\u5e02id\u3001API Host\u548cAPI KEY\u3002 \u5982\u4e0b\u56fe \u83b7\u53d6\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\u7684\u65b9\u6cd5 \u00b6 \u8fd9\u91cc\u4e00\u5b9a\u8981\u914d\u5bf9\u6b63\u786e\u7684\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\uff0c\u5426\u5219\u4f1a\u62a5\u7684\u5929\u6c14\u4e0d\u51c6\u3002 \u53ef\u4ee5\u901a\u8fc7\u6b64\u6587\u6863\u63d0\u4f9b\u7684API\uff0c\u67e5\u8be2 https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u5176\u4e2d: X-QW-Api-Key \u4e3a\u4f60\u7684API\u5bc6\u94a5\u3002 location \u4e3a\u4f60\u8981\u67e5\u8be2\u7684\u57ce\u5e02\u540d\u79f0\u62fc\u97f3. curl -H \"X-QW-Api-Key: 885d8b06871b445fbc1beb2eda11cd6c\" --compressed \\ 'https://nd4up3fy3t.re.qweatherapi.com/geo/v2/city/lookup?location=changsha' \u5982\u4e0b\u56fe\u6240\u793a","title":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#ha","text":"","title":"\u5982\u4f55\u96c6\u6210\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u5230HA"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_1","text":"\u548c\u98ce\u5929\u6c14\u662f\u4e00\u4e2a\u63d0\u4f9b\u5929\u6c14\u4fe1\u606f\u7684API\uff0c\u53ef\u4ee5\u65b9\u4fbf\u5730\u96c6\u6210\u5230Home Assistant\u4e2d\u3002","title":"\u548c\u98ce\u5929\u6c14\u7b80\u4ecb"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_2","text":"\u5728Home Assistant\u4e2d\u5b89\u88c5\u548c\u98ce\u5929\u6c14\u7ec4\u4ef6\u3002 \u914d\u7f6e\u548c\u98ce\u5929\u6c14API\u5bc6\u94a5\u3002 \u5728\u81ea\u52a8\u5316\u4e2d\u4f7f\u7528\u548c\u98ce\u5929\u6c14\u63d0\u4f9b\u7684\u5929\u6c14\u6570\u636e\u3002","title":"\u96c6\u6210\u6b65\u9aa4"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_3","text":"\u767b\u5f55\u548c\u98ce\u5929\u6c14\u63a7\u5236\u53f0\uff0chttps://console.qweather.com/project?lang=zh \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u5148\u4e3a\u6b64\u4e2d\u5fc3\u521b\u5efa\u4e00\u4e2a\u9879\u76ee\uff0c\u4e3a\u7684\u662f\u4e3a\u6bcf\u4e2a\u4e2d\u5fc3\u4f7f\u7528\u7684api\u8c03\u7528\u6b21\u6570\u7684\u7edf\u8ba1 \u8bb0\u5f55\u4e0b\u6765\u76f8\u5173\u4fe1\u606f \u9879\u76ee\u540d\u79f0\uff1a\u6e56\u5357\u65fa\u65fa \u9879\u76eeID:2HKR2MC5WM API-KEY:885d8b06871b445fbc1beb2eda11cd6c \u5f00\u53d1\u8005ID:Q137B51456 API-Host\uff1and4up3fy3t.re.qweatherapi.com \u67e5\u8be2\u57ce\u5e02\u533a\u57df\u4ee3\u7801\u7684\u7684\u5740\uff1a git clone https://github.com/qwd/LocationList.git.com/docs/api/geoapi/","title":"\u793a\u4f8b"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#_4","text":"\u6253\u5f00\u7684\u914d\u7f6e\u6587\u4ef6 configuration.yaml \uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a weather: - platform: heweather location: 101210301 # \u4f60\u7684\u533a\u57df\u4ee3\u7801\u57ce\u5e02id host: nd4up3fy3t.re.qweatherapi.com # API Host key: 885d8b06871b445fbc1beb2eda11cd6c # \u4f60\u7684API KEY \u5176\u4e2d\uff0c\u8981\u66f4\u6362\u7684\u5185\u5bb9\u4e3b\u8981\u6709\uff0c\u533a\u57df\u4ee3\u7801\u57ce\u5e02id\u3001API Host\u548cAPI KEY\u3002 \u5982\u4e0b\u56fe","title":"\u914d\u7f6e\u53c2\u8003"},{"location":"Usages/QA/%E5%A6%82%E4%BD%95%E9%9B%86%E6%88%90%E5%92%8C%E9%A3%8E%E5%A4%A9%E6%B0%94%E7%BB%84%E4%BB%B6%E5%88%B0HA/#id","text":"\u8fd9\u91cc\u4e00\u5b9a\u8981\u914d\u5bf9\u6b63\u786e\u7684\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\uff0c\u5426\u5219\u4f1a\u62a5\u7684\u5929\u6c14\u4e0d\u51c6\u3002 \u53ef\u4ee5\u901a\u8fc7\u6b64\u6587\u6863\u63d0\u4f9b\u7684API\uff0c\u67e5\u8be2 https://github.com/qwd/LocationList.git.com/docs/api/geoapi/ \u5176\u4e2d: X-QW-Api-Key \u4e3a\u4f60\u7684API\u5bc6\u94a5\u3002 location \u4e3a\u4f60\u8981\u67e5\u8be2\u7684\u57ce\u5e02\u540d\u79f0\u62fc\u97f3. curl -H \"X-QW-Api-Key: 885d8b06871b445fbc1beb2eda11cd6c\" --compressed \\ 'https://nd4up3fy3t.re.qweatherapi.com/geo/v2/city/lookup?location=changsha' \u5982\u4e0b\u56fe\u6240\u793a","title":"\u83b7\u53d6\u57ce\u5e02id\u533a\u57df\u4ee3\u7801\u7684\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/","text":"\u4eba\u5b58\u5728\u4f20\u611f\u5668-\u5982\u5395\u98ce\u9669\u63d0\u793a\u914d\u7f6e\u65b9\u6cd5 \u00b6 \u4eba\u5458\u611f\u5e94\u5668\u5361\u7247\u4ee3\u7801\u751f\u6210\u5668 \u5148\u627e\u51fa\u8981\u914d\u7f6e\u7684\u4f20\u611f\u5668\u7684\u5b9e\u4f53ID \u00b6 \u4e0b\u9762\u4ee5\u5927\u8fde\u7684\u8fd9\u4e2a\u4eba\u5b58\u5728\u4f20\u611f\u566801\u4e3a\u4f8b\uff1a \u4eba\u5b58\u5728\u4f20\u611f\u566801 \u5149\u7167\u5ea6\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005 \u65e0\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082 \u6709\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081 \u5b58\u5728\u4f20\u611f\u5668 \u6709\u4eba\u65e0\u4eba \u72b6\u6001\u662f\u5426\u89e6\u53d1 sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078 \u4eea\u8868\u76d8\u914d\u7f6e \u00b6 \u5728\u4eea\u8868\u76d8\uff0c\u76f8\u5e94\u4f4d\u7f6e\uff0c\u65b0\u5efa\u7ec4\u4ef6\uff0c\u8fdb\u5165\u4ee3\u7801\u7f16\u8f91\uff0c\u8d34\u5165\u5982\u4e0b\u683c\u5f0f\u7684YAML\u5185\u5bb9: type : markdown content : > 1\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u533b\u7528\u536b\u751f\u95f4 type : markdown content : > \u533b\u62a4\u536b\u751f\u95f4{% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e8c\u53f7\u536b\u751f\u95f4 type : markdown content : > 2\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e09\u53f7\u536b\u751f\u95f4 type : markdown content : > \u7537\u536b{% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3","title":"\u5982\u5395\u98ce\u9669-\u4eba\u5b58\u5728\u4f20\u611f\u5668\u914d\u7f6e\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#-","text":"\u4eba\u5458\u611f\u5e94\u5668\u5361\u7247\u4ee3\u7801\u751f\u6210\u5668","title":"\u4eba\u5b58\u5728\u4f20\u611f\u5668-\u5982\u5395\u98ce\u9669\u63d0\u793a\u914d\u7f6e\u65b9\u6cd5"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#id","text":"\u4e0b\u9762\u4ee5\u5927\u8fde\u7684\u8fd9\u4e2a\u4eba\u5b58\u5728\u4f20\u611f\u566801\u4e3a\u4f8b\uff1a \u4eba\u5b58\u5728\u4f20\u611f\u566801 \u5149\u7167\u5ea6\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005 \u65e0\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082 \u6709\u4eba\u6301\u7eed\u65f6\u957f\uff1a sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081 \u5b58\u5728\u4f20\u611f\u5668 \u6709\u4eba\u65e0\u4eba \u72b6\u6001\u662f\u5426\u89e6\u53d1 sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078","title":"\u5148\u627e\u51fa\u8981\u914d\u7f6e\u7684\u4f20\u611f\u5668\u7684\u5b9e\u4f53ID"},{"location":"Usages/QA/%E5%A6%82%E5%8E%95%E9%A3%8E%E9%99%A9-%E4%BA%BA%E5%AD%98%E5%9C%A8%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/#_1","text":"\u5728\u4eea\u8868\u76d8\uff0c\u76f8\u5e94\u4f4d\u7f6e\uff0c\u65b0\u5efa\u7ec4\u4ef6\uff0c\u8fdb\u5165\u4ee3\u7801\u7f16\u8f91\uff0c\u8d34\u5165\u5982\u4e0b\u683c\u5f0f\u7684YAML\u5185\u5bb9: type : markdown content : > 1\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqavn130ck00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u533b\u7528\u536b\u751f\u95f4 type : markdown content : > \u533b\u62a4\u536b\u751f\u95f4{% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', 'on') or is_state('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqll06fp0c00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e8c\u53f7\u536b\u751f\u95f4 type : markdown content : > 2\u53f7{% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_illumination_p_2_1005') |default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_occupancy_status_p_2_1078', 'on') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1lqb1cfugcc00_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3 \u4e09\u53f7\u536b\u751f\u95f4 type : markdown content : > \u7537\u536b{% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} # \ud83d\udd34 \u6709\u4eba-\u4e0d\u53ef\u7528 {% else %} # \ud83d\udfe2 \u65e0\u4eba-\u53ef\u7528 {% endif %} **\u5149\u7167\u5ea6:** {{ states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_illumination_p_2_1005') | default('\u672a\u77e5') }} lx {% if is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', 'on') or is_state('binary_sensor.xiaomi_cn_blt_3_1magboil90c01_03_occupancy_status_p_2_1078', '\u6709\u4eba') %} **\u6709\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_has_someone_duration_p_2_1081') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% else %} **\u65e0\u4eba\u6301\u7eed:** {% set duration = states('sensor.xiaomi_cn_blt_3_1magboil90c01_03_no_one_duration_p_2_1082') %}{{ '\u672a\u77e5' if duration in ['unknown', 'unavailable', ''] else duration }} {% endif %} card_mod : style : | ha-card { text-align: center; } ha-card h1 { font-size: 48px !important; margin: 10px 0 !important; } ha-card p { font-size: 18px !important; margin: 5px 0 !important; } grid_options : columns : 6 rows : 3","title":"\u4eea\u8868\u76d8\u914d\u7f6e"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/","text":"\u79bb\u7ebf\u5b89\u88c5\u4eba\u8138\u8bc6\u522b\u670d\u52a1 \u00b6 \u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684\u73af\u5883\u4e0b\uff0c\u79bb\u7ebf\u5b89\u88c5\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002 1. \u51c6\u5907\u5de5\u4f5c \u00b6 \u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u5df2\u7ecf\u5b8c\u6210\u4ee5\u4e0b\u51c6\u5907\u5de5\u4f5c\uff1a \u4e00\u53f0\u8fd0\u884cLinux\u64cd\u4f5c\u7cfb\u7edf\u7684\u670d\u52a1\u5668\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 \u5df2\u5b89\u88c5Docker\u548cDocker Compose \u5df2\u4e0b\u8f7d\u6240\u9700\u7684Docker\u955c\u50cf\u548c\u914d\u7f6e\u6587\u4ef6\uff08\u8bf7\u53c2\u8003 \u5728\u7ebf\u5b89\u88c5 \u90e8\u5206\u83b7\u53d6\u4e0b\u8f7d\u94fe\u63a5\uff09 \u7aef\u53e3\u8981\u6c42\uff1a12316\uff08\u53ef\u6839\u636e\u9700\u8981\u4fee\u6539\uff09 os\u5df2\u5b89\u88c5curl\u547d\u4ee4 2. \u5b89\u88c5\u6b65\u9aa4 \u00b6 2.1 \u5148\u4ece\u4e91\u670d\u52a1\u5668\u4e0a\u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u7684\u955c\u50cf\u5305\u548c\u5b89\u88c5\u811a\u672c \u00b6 wget https://datacdn.data-it.tech/faceRec/FacRecDocker/facerec.tar wget https://datacdn.data-it.tech/faceRec/FacRecDocker/install-offline.sh \u5982\u4e0b\u6240\u793a: facerec.tar install-offline.sh \u4e0b\u8f7d\u597d\u8fd9\u4e24\u4e2a\u6587\u4ef6\u540e,\u5c06\u8fd9\u4e24\u4e2a\u6587\u4ef6\u62f7\u8d1d\u5230\u6ca1\u6709\u7f51\u7edc\u7684\u670d\u52a1\u5668\u4e0a\u3002 2.2 \u4e0a\u4f20\u6216\u62f7\u8d1d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u670d\u52a1\u5668 \u00b6 \u5c06\u4e0b\u8f7d\u597d\u7684 facerec.tar \u548c install-offline.sh \u6587\u4ef6\u4e0a\u4f20\u6216\u62f7\u8d1d\u5230\u76ee\u6807\u670d\u52a1\u5668\u7684\u67d0\u4e2a\u76ee\u5f55\u4e0b\uff0c\u4f8b\u5982 /home/user/download (\u53d6\u51b3\u4e8e\u7528\u6237\u653e\u7f6e\u76ee\u5f55\uff0c\u4e0d\u5f3a\u5236\u8981\u6c42\uff0c\u7528\u6237\u53ef\u653e\u4efb\u610f\u76ee\u5f55\uff0c\u8981\u6c42\u53ea\u6709\u4e00\u4e2a\uff0c\u8fd9\u4e24\u4e2a\u6587\u4ef6\u5728\u540c\u4e00\u4e2a\u76ee\u5f55)\u3002 tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh 2.3 \u6267\u884c\u79bb\u7ebf\u5b89\u88c5\u811a\u672c \u00b6 # \u5148\u8fdb\u5165\u653e\u7f6e\u79bb\u7ebf\u5b89\u88c5\u5305\u7684\u76ee\u5f55 cd /home/user/download # \u7ed9\u5b89\u88c5\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650 sudo chmod +x install-offline.sh # \u6267\u884c\u5b89\u88c5\u811a\u672c sudo ./install-offline.sh \u547d\u4ee4\u6267\u884c\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u52a0\u8f7dDocker\u955c\u50cf\u5e76\u914d\u7f6e\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u6574\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u5982\u4e0b\u6240\u793a: tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh tst@tst-VMware-Virtual-Platform:~/down$ sudo chmod +x ./*.sh tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-offline.sh =============================================== \u5f00\u59cb\u79bb\u7ebf\u90e8\u7f72\u4eba\u8138\u8bc6\u522b\u670d\u52a1... =============================================== [INFO] 2025-09-30 16:19:28 - \u68c0\u67e5Docker\u548cDocker Compose\u662f\u5426\u5df2\u5b89\u88c5... [INFO] 2025-09-30 16:19:28 - Docker\u548cDocker Compose\u5df2\u5b89\u88c5 [INFO] 2025-09-30 16:19:28 - \u68c0\u67e5facerec.tar\u6587\u4ef6... [INFO] 2025-09-30 16:19:28 - \u68c0\u6d4b\u5230\u6587\u4ef6\u5df2\u5b58\u5728: facerec.tar [INFO] 2025-09-30 16:19:28 - \u6b63\u5728\u9a8c\u8bc1\u6587\u4ef6\u5b8c\u6574\u6027... [INFO] 2025-09-30 16:19:28 - \u6587\u4ef6\u5b8c\u6574\u6027\u9a8c\u8bc1\u901a\u8fc7 [INFO] 2025-09-30 16:19:28 - \u5bfc\u5165facerec.tar\u4f5c\u4e3aDocker\u955c\u50cf... [INFO] 2025-09-30 16:22:37 - \u6210\u529f\u5bfc\u5165Docker\u955c\u50cf: facerec.tar [WARNING] 2025-09-30 16:22:37 - \u65e0\u6cd5\u76f4\u63a5\u4ecedocker load\u8f93\u51fa\u4e2d\u63d0\u53d6\u955c\u50cfID\uff0c\u5c1d\u8bd5\u901a\u8fc7docker images\u547d\u4ee4\u83b7\u53d6 [INFO] 2025-09-30 16:22:37 - \u6210\u529f\u5c06\u955c\u50cf 480b2ed60be7 \u6807\u8bb0\u4e3a dt_iot/facerec:latest [INFO] 2025-09-30 16:22:38 - \u521b\u5efa\u90e8\u7f72\u76ee\u5f55: /dt_opt/facerec [INFO] 2025-09-30 16:22:38 - \u590d\u5236\u6587\u4ef6\u5230\u90e8\u7f72\u76ee\u5f55... sending incremental file list ./ install-offline.sh sent 7,166 bytes received 38 bytes 14,408.00 bytes/sec total size is 7,034 speedup is 0.98 [INFO] 2025-09-30 16:22:38 - \u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\u7ed3\u6784... [INFO] 2025-09-30 16:22:38 - \u914d\u7f6e\u73af\u5883\u53d8\u91cf\u6587\u4ef6... [INFO] 2025-09-30 16:22:38 - \u521b\u5efadocker-compose.yml\u6587\u4ef6... [INFO] 2025-09-30 16:22:38 - \u68c0\u67e5Docker\u955c\u50cf\u662f\u5426\u5df2\u6b63\u786e\u5bfc\u5165... [INFO] 2025-09-30 16:22:38 - \u955c\u50cf dt_iot/facerec \u5df2\u6210\u529f\u5bfc\u5165 [INFO] 2025-09-30 16:22:38 - \u52a0\u8f7d\u73af\u5883\u53d8\u91cf... [INFO] 2025-09-30 16:22:38 - \u914d\u7f6e\u9632\u706b\u5899\u7aef\u53e3: 12316 \u9632\u706b\u5899\u89c4\u5219\u5df2\u66f4\u65b0 \u89c4\u5219\u5df2\u66f4\u65b0(v6) [INFO] 2025-09-30 16:22:39 - \u542f\u52a8\u4eba\u8138\u8bc6\u522b\u670d\u52a1... [+] Running 2/2 \u2714 Network dtnet Created 0.5s \u2714 Container facerec Started 3.2s =============================================== \u4eba\u8138\u8bc6\u522b\u670d\u52a1\u79bb\u7ebf\u90e8\u7f72\u5b8c\u6210! \u670d\u52a1\u5730\u5740: http://192.168.10.16:12316 \u90e8\u7f72\u76ee\u5f55: /dt_opt/facerec =============================================== \u7531\u4e0a\u56fe\u53ef\u89c1,\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u5df2\u7ecf\u6210\u529f\u5b89\u88c5\u5b8c\u6210\u3002","title":"\u79bb\u7ebf\u5b89\u88c5\u4eba\u8138\u8bc6\u522b\u670d\u52a1"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#_1","text":"\u672c\u6587\u6863\u4ecb\u7ecd\u5982\u4f55\u5728\u6ca1\u6709\u7f51\u7edc\u8fde\u63a5\u7684\u73af\u5883\u4e0b\uff0c\u79bb\u7ebf\u5b89\u88c5\u57fa\u4e8eDLIB\u7684\u4eba\u8138\u8bc6\u522b\u670d\u52a1\u3002","title":"\u79bb\u7ebf\u5b89\u88c5\u4eba\u8138\u8bc6\u522b\u670d\u52a1"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#1","text":"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u5df2\u7ecf\u5b8c\u6210\u4ee5\u4e0b\u51c6\u5907\u5de5\u4f5c\uff1a \u4e00\u53f0\u8fd0\u884cLinux\u64cd\u4f5c\u7cfb\u7edf\u7684\u670d\u52a1\u5668\uff08\u63a8\u8350\u4f7f\u7528Ubuntu\uff09 \u5df2\u5b89\u88c5Docker\u548cDocker Compose \u5df2\u4e0b\u8f7d\u6240\u9700\u7684Docker\u955c\u50cf\u548c\u914d\u7f6e\u6587\u4ef6\uff08\u8bf7\u53c2\u8003 \u5728\u7ebf\u5b89\u88c5 \u90e8\u5206\u83b7\u53d6\u4e0b\u8f7d\u94fe\u63a5\uff09 \u7aef\u53e3\u8981\u6c42\uff1a12316\uff08\u53ef\u6839\u636e\u9700\u8981\u4fee\u6539\uff09 os\u5df2\u5b89\u88c5curl\u547d\u4ee4","title":"1. \u51c6\u5907\u5de5\u4f5c"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#2","text":"","title":"2. \u5b89\u88c5\u6b65\u9aa4"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#21","text":"wget https://datacdn.data-it.tech/faceRec/FacRecDocker/facerec.tar wget https://datacdn.data-it.tech/faceRec/FacRecDocker/install-offline.sh \u5982\u4e0b\u6240\u793a: facerec.tar install-offline.sh \u4e0b\u8f7d\u597d\u8fd9\u4e24\u4e2a\u6587\u4ef6\u540e,\u5c06\u8fd9\u4e24\u4e2a\u6587\u4ef6\u62f7\u8d1d\u5230\u6ca1\u6709\u7f51\u7edc\u7684\u670d\u52a1\u5668\u4e0a\u3002","title":"2.1 \u5148\u4ece\u4e91\u670d\u52a1\u5668\u4e0a\u4e0b\u8f7d\u79bb\u7ebf\u5b89\u88c5\u7684\u955c\u50cf\u5305\u548c\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#22","text":"\u5c06\u4e0b\u8f7d\u597d\u7684 facerec.tar \u548c install-offline.sh \u6587\u4ef6\u4e0a\u4f20\u6216\u62f7\u8d1d\u5230\u76ee\u6807\u670d\u52a1\u5668\u7684\u67d0\u4e2a\u76ee\u5f55\u4e0b\uff0c\u4f8b\u5982 /home/user/download (\u53d6\u51b3\u4e8e\u7528\u6237\u653e\u7f6e\u76ee\u5f55\uff0c\u4e0d\u5f3a\u5236\u8981\u6c42\uff0c\u7528\u6237\u53ef\u653e\u4efb\u610f\u76ee\u5f55\uff0c\u8981\u6c42\u53ea\u6709\u4e00\u4e2a\uff0c\u8fd9\u4e24\u4e2a\u6587\u4ef6\u5728\u540c\u4e00\u4e2a\u76ee\u5f55)\u3002 tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh","title":"2.2 \u4e0a\u4f20\u6216\u62f7\u8d1d\u79bb\u7ebf\u5b89\u88c5\u5305\u5230\u670d\u52a1\u5668"},{"location":"Usages/QA/%E7%A6%BB%E7%BA%BF%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB%E5%AE%89%E8%A3%85%E6%9C%8D%E5%8A%A1docker/#23","text":"# \u5148\u8fdb\u5165\u653e\u7f6e\u79bb\u7ebf\u5b89\u88c5\u5305\u7684\u76ee\u5f55 cd /home/user/download # \u7ed9\u5b89\u88c5\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650 sudo chmod +x install-offline.sh # \u6267\u884c\u5b89\u88c5\u811a\u672c sudo ./install-offline.sh \u547d\u4ee4\u6267\u884c\u540e\uff0c\u7cfb\u7edf\u4f1a\u81ea\u52a8\u52a0\u8f7dDocker\u955c\u50cf\u5e76\u914d\u7f6e\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u6574\u4e2a\u8fc7\u7a0b\u53ef\u80fd\u9700\u8981\u51e0\u5206\u949f\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u5982\u4e0b\u6240\u793a: tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh tst@tst-VMware-Virtual-Platform:~/down$ sudo chmod +x ./*.sh tst@tst-VMware-Virtual-Platform:~/down$ ls facerec.tar install-offline.sh tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-offline.sh =============================================== \u5f00\u59cb\u79bb\u7ebf\u90e8\u7f72\u4eba\u8138\u8bc6\u522b\u670d\u52a1... =============================================== [INFO] 2025-09-30 16:19:28 - \u68c0\u67e5Docker\u548cDocker Compose\u662f\u5426\u5df2\u5b89\u88c5... [INFO] 2025-09-30 16:19:28 - Docker\u548cDocker Compose\u5df2\u5b89\u88c5 [INFO] 2025-09-30 16:19:28 - \u68c0\u67e5facerec.tar\u6587\u4ef6... [INFO] 2025-09-30 16:19:28 - \u68c0\u6d4b\u5230\u6587\u4ef6\u5df2\u5b58\u5728: facerec.tar [INFO] 2025-09-30 16:19:28 - \u6b63\u5728\u9a8c\u8bc1\u6587\u4ef6\u5b8c\u6574\u6027... [INFO] 2025-09-30 16:19:28 - \u6587\u4ef6\u5b8c\u6574\u6027\u9a8c\u8bc1\u901a\u8fc7 [INFO] 2025-09-30 16:19:28 - \u5bfc\u5165facerec.tar\u4f5c\u4e3aDocker\u955c\u50cf... [INFO] 2025-09-30 16:22:37 - \u6210\u529f\u5bfc\u5165Docker\u955c\u50cf: facerec.tar [WARNING] 2025-09-30 16:22:37 - \u65e0\u6cd5\u76f4\u63a5\u4ecedocker load\u8f93\u51fa\u4e2d\u63d0\u53d6\u955c\u50cfID\uff0c\u5c1d\u8bd5\u901a\u8fc7docker images\u547d\u4ee4\u83b7\u53d6 [INFO] 2025-09-30 16:22:37 - \u6210\u529f\u5c06\u955c\u50cf 480b2ed60be7 \u6807\u8bb0\u4e3a dt_iot/facerec:latest [INFO] 2025-09-30 16:22:38 - \u521b\u5efa\u90e8\u7f72\u76ee\u5f55: /dt_opt/facerec [INFO] 2025-09-30 16:22:38 - \u590d\u5236\u6587\u4ef6\u5230\u90e8\u7f72\u76ee\u5f55... sending incremental file list ./ install-offline.sh sent 7,166 bytes received 38 bytes 14,408.00 bytes/sec total size is 7,034 speedup is 0.98 [INFO] 2025-09-30 16:22:38 - \u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\u7ed3\u6784... [INFO] 2025-09-30 16:22:38 - \u914d\u7f6e\u73af\u5883\u53d8\u91cf\u6587\u4ef6... [INFO] 2025-09-30 16:22:38 - \u521b\u5efadocker-compose.yml\u6587\u4ef6... [INFO] 2025-09-30 16:22:38 - \u68c0\u67e5Docker\u955c\u50cf\u662f\u5426\u5df2\u6b63\u786e\u5bfc\u5165... [INFO] 2025-09-30 16:22:38 - \u955c\u50cf dt_iot/facerec \u5df2\u6210\u529f\u5bfc\u5165 [INFO] 2025-09-30 16:22:38 - \u52a0\u8f7d\u73af\u5883\u53d8\u91cf... [INFO] 2025-09-30 16:22:38 - \u914d\u7f6e\u9632\u706b\u5899\u7aef\u53e3: 12316 \u9632\u706b\u5899\u89c4\u5219\u5df2\u66f4\u65b0 \u89c4\u5219\u5df2\u66f4\u65b0(v6) [INFO] 2025-09-30 16:22:39 - \u542f\u52a8\u4eba\u8138\u8bc6\u522b\u670d\u52a1... [+] Running 2/2 \u2714 Network dtnet Created 0.5s \u2714 Container facerec Started 3.2s =============================================== \u4eba\u8138\u8bc6\u522b\u670d\u52a1\u79bb\u7ebf\u90e8\u7f72\u5b8c\u6210! \u670d\u52a1\u5730\u5740: http://192.168.10.16:12316 \u90e8\u7f72\u76ee\u5f55: /dt_opt/facerec =============================================== \u7531\u4e0a\u56fe\u53ef\u89c1,\u4eba\u8138\u8bc6\u522b\u670d\u52a1\uff0c\u5df2\u7ecf\u6210\u529f\u5b89\u88c5\u5b8c\u6210\u3002","title":"2.3 \u6267\u884c\u79bb\u7ebf\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/","text":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e \u00b6 pre, code { white-space: pre-wrap; word-break: break-all; } \u4e00\u3001\u7b80\u4ecb \u00b6 \u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u670d\u52a1\u201d\uff09\u63d0\u4f9b\u9ad8\u8d28\u91cf\u7684\u6587\u672c\u8f6c\u8bed\u97f3\uff08TTS\uff09\u548c\u8bed\u97f3\u8f6c\u6587\u672c\uff08ASR\uff09\u529f\u80fd\u3002\u4e3a\u4e86\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u90e8\u7f72\u548c\u4f7f\u7528\u8be5\u670d\u52a1\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u57fa\u4e8eDocker\u7684\u90e8\u7f72\u65b9\u6848\u3002\u672c\u6587\u6863\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Docker\u90e8\u7f72\u8be5\u670d\u52a1\u3002 \u672c\u6587\u63d0\u4f9b\u7684\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff0c\u662f\u57fa\u4e8epaddlespeech\u5f00\u53d1\u7684TTS\u548cASR\u670d\u52a1(\u7eafCPU\u670d\u52a1)\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Docker\u5feb\u901f\u90e8\u7f72\u5e76\u4f7f\u7528\u8be5\u670d\u52a1\u3002 \u4e8c\u3001\u73af\u5883\u51c6\u5907 \u00b6 \u5728\u5f00\u59cb\u90e8\u7f72\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u73af\u5883\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a 1. \u5df2\u5b89\u88c5Docker\u548cDocker Compose\u3002 2. \u5177\u5907\u4e00\u5b9a\u7684Linux\u547d\u4ee4\u884c\u64cd\u4f5c\u57fa\u7840\u3002 3. \u786e\u4fdd\u60a8\u7684\u670d\u52a1\u5668\u5177\u5907\u8db3\u591f\u7684\u8ba1\u7b97\u8d44\u6e90\uff08CPU\u3001\u5185\u5b58\u3001GPU\u7b49\uff09\u3002 \u4e09\u3001\u83b7\u53d6Docker\u955c\u50cf \u00b6 \u6211\u4eec\u63d0\u4f9b\u4e86\u9884\u6784\u5efa\u7684Docker\u955c\u50cf\uff0c\u5730\u5740\u4f4d\u4e8e\u4e03\u725b\u4e91\uff0c \u4e0b\u8f7d\u5730\u5740 \u4e3a\uff1a https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/paddlespeech.tar \u56db\u3001\u5728\u7ebf\u90e8\u7f72\u6b65\u9aa4 \u00b6 \u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c \u00b6 curl -fsSL https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/install-paddlespeech.sh | sudo bash \u5982\u4e0b\u56fe\u6240\u793a: \u00b6 \u9996\u6b21\u8fd0\u884c \u00b6 \u4f7f\u7528TTS\u6216asr\u670d\u52a1\uff0c\u9996\u6b21\u8fd0\u884c\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\uff0c\u6a21\u578b\u6587\u4ef6\u8f83\u5927, \u4e0b\u8f7d\u8fc7\u7a0b\u7ea6\u970010\u5206\u949f \uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u5982\u4e0b\u6240\u793a \u00b6 \u6211\u4eec\u53ef\u4ee5\u5982\u7528\u4e0b\u547d\u4ee4\u5b9e\u65f6\u67e5\u770b\u8fd0\u884c\u65e5\u5fd7: docker logs -f paddlespeech \u5bb9\u5668\u542f\u52a8\u540e\uff0c\u5148\u4f1a\u8f7d\u4e00\u4e2aNLP\u7684\u5c0f\u6a21\u578b\uff0c\u8017\u65f6\u7ea630\u79d2\u5de6\u53f3\uff0c\u7136\u540e\uff0c\u542f\u52a8\u670d\u52a1\u4e0e\u7aef\u53e3\uff0c \u5f53/tts\u8fd9\u4e2aapi\u9996\u6b21\u88ab\u8c03\u7528\u65f6\uff0c\u5bb9\u5668\u7684\u7a0b\u5e8f\uff0c\u4f1a\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u5b8c\u6210\u9996\u6b21TTS\u8f93\u51fa\uff0c\u5f53\u7136\u9996\u6b21\u4e5f\u6709\u53ef\u80fd\u56e0\u7f51\u7edc\u8d85\u65f6\u5931\u8d25\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 \u5f53/asr\u8fd9\u4e2aapi\u88ab\u9996\u6b21\u8c03\u7528\u65f6,\u5bb9\u5668\u4e2d\u7684\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u63d0\u4f9b\u8bed\u97f3\u8bc6\u522b\u670d\u52a1\uff0c\u5e76\u5b8c\u6210\u9996\u6b21API\u8bc6\u522b\u7684\u8f93\u51fa\uff0c\u5f53\u7136\uff0c\u4e5f\u6709\u53ef\u80fd\u5931\u8d25\uff0c\u540e\u7eed\u518d\u6b21\u8c03\u7528\u6b64API\u662f\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 \u4e0a\u8ff0\u4e0b\u8f7d\u8fc7\u7a0b\u8f83\u4e3a\u7f13\u6162\uff0c\u7ea65-10\u5206\u949f\u5de6\u53f3\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff01\u5982\u679c\u60f3\u770b\u5b9e\u65f6\u8fc7\u7a0b\uff0c\u8bf7\u8f93\u5165:docker-comopose logs paddlespeech \u6765\u67e5\u770b\u5b9e\u65f6\u65e5\u5fd7 \u8bf7\u5728\u6b63\u5f0f\u4f7f\u7528\u4e4b\u524d\uff0c\u7528postman\u6216\u6587\u6863\u4e2d\u63d0\u4f9b\u7684\u6d4b\u8bd5\u7f51\u9875\uff0c\u8c03\u8bd5\u4e00\u6b21\u6210\u529f\u540e\uff0c\u518d\u653e\u5165\u540e\u53f0\u8fd0\u884c\uff01 \u4e94\u3001\u79bb\u7ebf\u90e8\u7f72\u6b65\u9aa4 \u00b6 \u79bb\u7ebf\u90e8\u7f72\u7684\u76f8\u5173\u6587\u4ef6\u4e0b\u8f7d\u5730\u5740 \u00b6 Docker\u955c\u50cf\u6587\u4ef6: \u4e0b\u8f7d\u5730\u5740 \u6570\u636e\u5377\u6587\u4ef6: \u4ee5\u4e0b\u6587\u4ef6\u8981\u4e0b\u8f7d\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u4e34\u65f6\u8ba4\u7f6e\u7684\u76ee\u5f55,\u4e0einstall-paddlespeech-localh.sh\u6240\u5728\u76ee\u5f55\u540c\u7ea7\u7684\u5b50\u76ee\u5f55data\u76ee\u5f55\u4e0b home_dtuser_opt_paddlespeech_data_logs.tar.gz home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz home_dtuser_opt_paddlespeech_data_output.tar.gz home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u79bb\u7ebf\u5b89\u88c5\u811a\u672c: \u4e0b\u8f7d\u5730\u5740 \u6d4b\u8bd5\u6f14\u793a\u4f7f\u7528\u7f51\u9875: \u4e0b\u8f7d\u5730\u5740 \u79bb\u7ebf\u5b89\u88c5\u5305\u5206\u4e24\u90e8\u4efd\uff0c\u4e00\u90e8\u4efd\u662f\u5bb9\u5668\u955c\u50cf\uff0c\u4e00\u90e8\u4efd\u662f\u6570\u636e\u5377\u6587\u4ef6\uff0c\u5b89\u88c5\u542f\u52a8\u5bb9\u5668\u524d\u5148\u66ff\u6362\u5bf9\u636e\u5377\u7ed1\u5b9a\u7684\u76ee\u5f55\uff0c\u8fd9\u6837\u5bb9\u5668\u542f\u52a8\u540e\u65e0\u987b\u4e0b\u8f7d\u6a21\u578b\uff0c\u53ef\u4ee5\u5728\u65e0\u4e92\u8054\u7f51\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528 1. \u4e0b\u8f7dDocker\u955c\u50cf\u4e0e\u6570\u636e\u5377\u6587\u4ef6 \u00b6 \u5982\u4e0b\u793a\u4f8b\uff0c\u6211\u4eec\u5c06\u6587\u4ef6\u653e\u5230\u7528\u6237\u76ee\u5f55\u7684down\u4e0b,\u8bf7\u4fdd\u6301\u76f8\u5e94\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls data install-paddlespeech-localh.sh tst@tst-VMware-Virtual-Platform:~/down$ tree . \u251c\u2500\u2500 data \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_logs.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_output.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u2502 \u2514\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u2514\u2500\u2500 install-paddlespeech-localh.sh 2 directories, 7 files 2. \u7ed9\u8fd0\u884c\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650 \u00b6 chmod +x install-paddlespeech-localh.sh 3. \u6267\u884c\u5b89\u88c5\u811a\u672c \u00b6 sudo ./install-paddlespeech-localh.sh \u6309\u88c5\u811a\u672c\u5c06\u4f1a\u5148\u89e3\u538b\u6587\u4ef6\uff0c\u5e76\u52a0\u8f7ddocker\u955c\u50cf\uff0c\u7136\u540e\u542f\u52a8\u5bb9\u5668\uff0c\u542f\u52a8\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528docker ps\u547d\u4ee4\u67e5\u770b\u8fd0\u884c\u72b6\u6001\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-paddlespeech-localh.sh [ INFO ] \u5f00\u59cb PaddleSpeech \u79bb\u7ebf\u5b89\u88c5... [ SUCCESS ] \u78c1\u76d8\u7a7a\u95f4\u68c0\u67e5\u901a\u8fc7\uff0855GB\uff09 [ INFO ] \u68c0\u6d4b\u7f51\u7edc\u8fde\u63a5... [ SUCCESS ] \u7f51\u7edc\u8fde\u63a5\u6b63\u5e38 [ INFO ] \u521b\u5efa\u76ee\u5f55\u7ed3\u6784... [ SUCCESS ] \u76ee\u5f55\u7ed3\u6784\u521b\u5efa\u5b8c\u6210 [ INFO ] \u89e3\u538b\u6570\u636e\u5377... [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_logs.tar.gz \u5230 /dt_opt/paddlespeech/data/logs ./ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u5230 /dt_opt/paddlespeech/data/nltk_data ./ ./taggers/ ./taggers/averaged_perceptron_tagger/ ./taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle ./taggers/averaged_perceptron_tagger.zip ./corpora/ ./corpora/cmudict/ ./corpora/cmudict/cmudict ./corpora/cmudict/README ./corpora/cmudict.zip [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_output.tar.gz \u5230 /dt_opt/paddlespeech/data/output ./ ./2753d658-b228-4ae6-94fc-3404a41f4526.wav ./9f24d71e-9f29-4d60-aa13-677fd19bba46.wav ./38ea94c6-e19b-4e41-8cca-454d8e374a15.wav ./d44aa891-c36b-473f-aef3-44484f0cd74b.wav ./c5ef53d3-502b-4f81-9fdd-583836ba7096.wav ./3931cd47-e022-4385-b588-4a61e64e5eed.wav ./1d213380-eee6-43ba-88db-99ba9b5609df.wav ./c85f65de-a4c1-43aa-a251-52ce4e9df271.wav ./7cd5fc65-665b-444c-9c9f-41f1ce8036f8.wav ./f74dbda7-1cf8-4056-bd30-523b74af8b0e.wav [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlenlp_models ./ ./packages/ ./models/ ./models/bert-base-chinese/ ./models/bert-base-chinese/bert-base-chinese-vocab.txt ./models/bert-base-chinese/tokenizer_config.json ./models/bert-base-chinese/vocab.txt ./models/bert-base-chinese/special_tokens_map.json ./models/embeddings/ ./models/.locks/ ./models/.locks/bert-base-chinese/ ./datasets/ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlespeech_models ./ ./conf/ ./conf/cache.yaml ./models/ ./models/G2PWModel_1.1/ ./models/G2PWModel_1.1/config.py ./models/G2PWModel_1.1/MONOPHONIC_CHARS.txt ./models/G2PWModel_1.1/__pycache__/ ./models/G2PWModel_1.1/__pycache__/config.cpython-39.pyc ./models/G2PWModel_1.1/__pycache__/config.cpython-310.pyc ./models/G2PWModel_1.1/record.log ./models/G2PWModel_1.1/bopomofo_to_pinyin_wo_tune_dict.json ./models/G2PWModel_1.1/POLYPHONIC_CHARS.txt ./models/G2PWModel_1.1/char_bopomofo_dict.json ./models/G2PWModel_1.1/g2pW.onnx ./models/G2PWModel_1.1/version ./models/G2PWModel_1.1.zip ./models/conformer_wenetspeech-zh-16k/ ./models/conformer_wenetspeech-zh-16k/1.0/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/preprocess.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/decode.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer_infer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/vocab.txt ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/mean_std.json ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/model.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/wenetspeech.pdparams ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar.gz ./models/fastspeech2_csmsc-zh/ ./models/fastspeech2_csmsc-zh/1.0/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4.zip ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_76000.pdz ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/default.yaml ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/pitch_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/energy_stats.npy ./models/hifigan_csmsc-zh/ ./models/hifigan_csmsc-zh/1.0/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1.zip ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/default.yaml ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/snapshot_iter_2500000.pdz ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/feats_stats.npy ./datasets/ [ SUCCESS ] \u6570\u636e\u5377\u89e3\u538b\u5b8c\u6210 [ INFO ] \u89e3\u538b\u955c\u50cf\u5305... [ SUCCESS ] \u955c\u50cf\u5305\u5df2\u79fb\u52a8\u5230 /dt_opt/paddlespeech/images [ INFO ] \u52a0\u8f7dDocker\u955c\u50cf... daf557c4f08e: Loading layer [================================================== > ] 81 .04MB/81.04MB d593918d433d: Loading layer [================================================== > ] 4 .123MB/4.123MB 7c4cff21e743: Loading layer [================================================== > ] 41 .36MB/41.36MB 25f6bb353e99: Loading layer [================================================== > ] 5 .12kB/5.12kB bc3a46414f17: Loading layer [================================================== > ] 1 .536kB/1.536kB 8fc7185920f1: Loading layer [================================================== > ] 3 .584kB/3.584kB bac2a7f893df: Loading layer [================================================== > ] 847MB/847MB 092bab498a3d: Loading layer [================================================== > ] 13 .31MB/13.31MB 19db93cce63e: Loading layer [================================================== > ] 2 .56kB/2.56kB 2fc7499dded4: Loading layer [================================================== > ] 3 .042GB/3.042GB 7da6b60d7eb7: Loading layer [================================================== > ] 2 .53MB/2.53MB 057242764992 : Loading layer [================================================== > ] 8 .704kB/8.704kB 9a996f3d539d: Loading layer [================================================== > ] 3 .072kB/3.072kB 4cdf0570391d: Loading layer [================================================== > ] 104 .2MB/104.2MB Loaded image: dt_iot/paddlespeech:latest [ SUCCESS ] \u955c\u50cf\u52a0\u8f7d\u6210\u529f [ INFO ] \u751f\u6210docker-compose.yaml... [ SUCCESS ] docker-compose.yaml\u521b\u5efa\u5b8c\u6210 [ INFO ] \u542f\u52a8\u5bb9\u5668... [ + ] Running 2 /2 \u2714 Network dtnet Created 0 .5s \u2714 Container paddlespeech Started 4 .6s [ SUCCESS ] \u5bb9\u5668\u542f\u52a8\u6210\u529f [ SUCCESS ] PaddleSpeech \u79bb\u7ebf\u5b89\u88c5\u5b8c\u6210\uff01 4. \u67e5\u770b\u5bb9\u5668\u8fd0\u884c\u72b6\u6001 \u00b6 docker ps 5. \u5b9e\u65f6\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7 \u00b6 docker logs -f paddlespeech 6. \u7ba1\u7406\u5bb9\u5668 \u00b6 \u8fdb\u5165\u5bb9\u5668\u5668\u7684\u90e8\u7f72\u76ee\u5f55\uff1a /dt_opt/paddlespeech docker-compose up -d # \u542f\u52a8\u5bb9\u5668 docker-compose down # \u505c\u6b62\u5bb9\u5668 docker-compose restart paddlespeech # \u91cd\u542f\u5bb9\u5668 docker logs -f paddlespeech # \u5b9e\u65f6\u67e5\u770b\u65e5\u5fd7 docker exec -it paddlespeech /bin/bash # \u8fdb\u5165\u5bb9\u5668 docker rm -f paddlespeech # \u5220\u9664\u5bb9\u5668 docker rmi dt_iot/paddlespeech:latest # \u5220\u9664\u955c\u50cf docker volume rm paddlespeech_data # \u5220\u9664\u6570\u636e\u5377 docker network rm dtnet # \u5220\u9664\u7f51\u7edc docker system prune -a # \u6e05\u7406\u65e0\u7528\u7684\u955c\u50cf\u3001\u5bb9\u5668\u3001\u6570\u636e\u5377\u3001\u7f51\u7edc\u7b49 \u4ee5\u4e0a\u662f\u5e38\u7528\u547d\u4ee4\uff0c\u4f7f\u7528\u65f6\u6839\u636e\u9700\u8981\u7075\u6d3b\u4f7f\u7528\u3002 7. \u8c03\u6574\u7aef\u53e3 \u00b6 \u627e\u5230\u6587\u4ef6 /dt_opt/paddlespeech/docker-compose.yaml \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u5982\u4e0b\u6240\u793a\uff1a \u66f4\u6539\u7b2c\u4e00\u4e2a\u7aef\u53e3\u4e3a\u9700\u8981\u7684\u7aef\u53e3\u53f7\u5373\u53ef\uff0c\u5982\u4e0b\u6240\u793a: docker-compse down sudo nano ./docker-compose.yaml # \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u7b2c6\u884c # - \"8001:8001\" # \u4fdd\u5b58\u9000\u51fa\uff0c\u91cd\u542f\u5bb9\u5668\u5373\u53ef\u751f\u6548 docker-compose up -d \u516d\u3001\u4f7f\u7528\u8bf4\u660e \u00b6 \u4e3a\u4e86\u65b9\u4fbf\u7684\u6f14\u793a\u5982\u4f55\u8c03\u7528\u8fd9\u4e2aapi\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u7f51\u9875, \u4e0b\u8f7d\u5730\u5740 \u4e3a: https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/tts_demo.zip 1. \u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u670d\u52a1 \u00b6 curl\u793a\u4f8b \u00b6 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/tts \\ --header 'content-type: application/x-www-form-urlencoded' \\ --data 'text=\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' \\ --data lang=zh \\ --data spk_id=0 HTTTP API\u8bf4\u660e \u00b6 POST /tts HTTP / 1.1 Content-Type : application/x-www-form-urlencoded Host : ikuai.m-iot.tech:58150 Content-Length : 103 text = %E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5 & lang = zh & spk_id = 0 Java \u793a\u4f8b \u00b6 //asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/tts\" ) . setHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . setBody ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); //nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/tts\" )) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); //okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"application/x-www-form-urlencoded\" ); RequestBody body = RequestBody . create ( mediaType , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/tts\" ) . post ( body ) . addHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . build (); Response response = client . newCall ( request ). execute (); //unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/tts\" ) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . body ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . asString (); javaScript \u793a\u4f8b \u00b6 //Xhr const data = 'text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0' ; const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/tts' ); xhr . setRequestHeader ( 'content-type' , 'application/x-www-form-urlencoded' ); xhr . send ( data ); //Axios import axios from 'axios' ; const encodedParams = new URLSearchParams (); encodedParams . set ( 'text' , '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' ); encodedParams . set ( 'lang' , 'zh' ); encodedParams . set ( 'spk_id' , '0' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/tts' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : encodedParams , }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } //Fetch const url = 'http://ikuai.m-iot.tech:58150/tts' ; const options = { method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, body : new URLSearchParams ({ text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' }) }; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //JQuery const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/tts' , method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : { text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' } }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); }); C# \u793a\u4f8b \u00b6 //httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/tts\" ), Content = new FormUrlEncodedContent ( new Dictionary < string , string > { { \"text\" , \"\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5\" }, { \"lang\" , \"zh\" }, { \"spk_id\" , \"0\" }, }), }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/tts\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ); request . AddParameter ( \"application/x-www-form-urlencoded\" , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" , ParameterType . RequestBody ); var response = client . Execute ( request ); go \u793a\u4f8b \u00b6 package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/tts\" payload := strings . NewReader ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"application/x-www-form-urlencoded\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) } \u8fd4\u56de\u7ed3\u679c \u00b6 Preparing request to http://ikuai.m-iot.tech:58150/tts Current time is 2025-09-21T07:49:17.236Z POST http://ikuai.m-iot.tech:58150/tts Accept: application/json, text/plain, */* Content-Type: application/x-www-form-urlencoded User-Agent: bruno-runtime/2.3.0 text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0 SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 07:49:18 GMT server: uvicorn content-type: audio/wav content-disposition: attachment; filename=\"7b41c15b-e0a4-4ba5-aeb1-ceff058c90e6.wav\" content-length: 89444 last-modified: Sun, 21 Sep 2025 07:49:20 GMT etag: d85eaa2cadf7182ac9b54763e6a97e2c request-duration: 2224 Request completed in 2224 ms 2. \u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u670d\u52a1 \u00b6 \u4e0a\u4f20\u6587\u4ef6\u8c03\u7528\u793a\u4f8b \u00b6 curl\u793a\u4f8b \u00b6 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \\ --form format=wav \\ --form sample_rate=16000 \u76f4\u63a5\u4e0a\u4f20\u6587\u4ef6\uff0c\u6587\u4ef6\u683c\u5f0f\u652f\u6301wav\u3001m4a\u3001mp3\u7b49\u5e38\u89c1\u97f3\u9891\u683c\u5f0f\uff0c\u670d\u52a1\u7aef\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3awav\u683c\u5f0f\u8fdb\u884c\u8bc6\u522b\u3002 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \u4f20\u5165\u53c2\u6570\u53ef\u4ee5\u53ea\u6709file\u4e0elang\u8fd9\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u5b83\u53c2\u6570\uff0c\u53ef\u4ee5\u5ffd\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a HTTP \u793a\u4f8b\u8bf4\u660e \u00b6 POST /asr HTTP / 1.1 Content-Type : multipart/form-data; boundary=---011000010111000001101001 Host : ikuai.m-iot.tech:58150 Content-Length : 239 -----011000010111000001101001 Content-Disposition: form-data; name=\"file\" C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a -----011000010111000001101001 Content-Disposition: form-data; name=\"lang\" zh -----011000010111000001101001-- java \u793a\u4f8b \u00b6 // asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString (); javascript \u793a\u4f8b \u00b6 //xhr const data = new FormData (); data . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); data . append ( 'lang' , 'zh' ); const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/asr' ); xhr . send ( data ); // Axios import axios from 'axios' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/asr' , headers : { 'content-type' : 'multipart/form-data; boundary=---011000010111000001101001' }, data : '[form]' }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } // fetch const url = 'http://ikuai.m-iot.tech:58150/asr' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' }; options . body = form ; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //jquery const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/asr' , method : 'POST' , headers : {}, processData : false , contentType : false , mimeType : 'multipart/form-data' , data : form }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); }); C# \u793a\u4f8b \u00b6 //httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/asr\" ), Content = new MultipartFormDataContent { new StringContent ([ \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" ]) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"file\" , FileName = \"C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a\" , } } }, new StringContent ( \"zh\" ) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"lang\" , } } }, }, }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //Restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/asr\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ); request . AddParameter ( \"multipart/form-data; boundary=---011000010111000001101001\" , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" , ParameterType . RequestBody ); var response = client . Execute ( request ); go \u793a\u4f8b \u00b6 package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/asr\" payload := strings . NewReader ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) } java \u793a\u4f8b \u00b6 // asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString (); \u8fd4\u56de\u7ed3\u679c \u00b6 { \"result\" : \"\u5582\u8bed\u97f3\u6d4b\u8bd5\u8bed\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\" , \"file_size\" : 185334 , \"wav_info\" : { \"n_channels\" : 1 , \"sample_width\" : 2 , \"framerate\" : 16000 , \"n_frames\" : 115029 , \"duration\" : 7.1893125 }, \"ffmpeg_log\" : \"\" } body { \"_overheadLength\" : 252 , \"_valueLength\" : 2 , \"_valuesToMeasure\" : [ { \"fd\" : null , \"path\" : \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" , \"flags\" : \"r\" , \"mode\" : 438 , \"end\" : null , \"bytesRead\" : 0 , \"_events\" : {}, \"_readableState\" : { \"highWaterMark\" : 65536 , \"buffer\" : [], \"bufferIndex\" : 0 , \"length\" : 0 , \"pipes\" : [], \"awaitDrainWriters\" : null }, \"_eventsCount\" : 3 } ], \"writable\" : false , \"readable\" : true , \"dataSize\" : 0 , \"maxDataSize\" : 2097152 , \"pauseStreams\" : true , \"_released\" : false , \"_streams\" : [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\" , { \"source\" : \"[Circular]\" , \"dataSize\" : 0 , \"maxDataSize\" : null , \"pauseStream\" : true , \"_maxDataSizeExceeded\" : false , \"_released\" : false , \"_bufferedEvents\" : [ { \"0\" : \"pause\" } ], \"_events\" : {}, \"_eventsCount\" : 1 }, null , \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\" , \"zh\" , null ], \"_currentStream\" : null , \"_insideLoop\" : false , \"_pendingNext\" : false , \"_boundary\" : \"--------------------------147555471668548578107544\" } ***Network Logs *** Preparing request to http://ikuai.m-iot.tech:58150/asr Current time is 2025-09-21T08:22:20.590Z POST http://ikuai.m-iot.tech:58150/asr Accept: application/json, text/plain, */* Content-Type: multipart/form-data; boundary=--------------------------147555471668548578107544 User-Agent: bruno-runtime/2.3.0 { \"_overheadLength\": 252, \"_valueLength\": 2, \"_valuesToMeasure\": [ { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 } ], \"writable\": false, \"readable\": true, \"dataSize\": 0, \"maxDataSize\": 2097152, \"pauseStreams\": true, \"_released\": false, \"_streams\": [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\", { \"source\": { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 }, \"dataSize\": 0, \"maxDataSize\": null, \"pauseStream\": true, \"_maxDataSizeExceeded\": false, \"_released\": false, \"_bufferedEvents\": [ { \"0\": \"pause\" } ], \"_events\": {}, \"_eventsCount\": 1 }, null, \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\", \"zh\", null ], \"_currentStream\": null, \"_insideLoop\": false, \"_pendingNext\": false, \"_boundary\": \"--------------------------147555471668548578107544\" } SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 08:22:21 GMT server: uvicorn content-length: 201 content-type: application/json request-duration: 6989 Request completed in 6989 ms \u6d4f\u89c8\u5668\u5f55\u97f3\u8bc6\u522b\u793a\u4f8b \u00b6 \u8bf4\u660e paddlespeech\u4e2d\u7528\u7684\u4e00\u4e2a\u5e93\u6709\u53ef\u80fd\u662f\u5355\u7ebf\u7a0b\u7684\uff0c\u6240\u4ee5\u5728\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u54cd\u5e94\u53d8\u6162\u7684\u60c5\u51b5\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u5b9e\u4f8b\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002 \u5b9e\u9645\u4f7f\u7528\u65f6,\u5982\u679c\u60f3\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u66f4\u6539\u73af\u5883\u53d8\u91cf\u4e2d\u7684PYTHONUNBUFFFERED=4,\u6216\u66f4\u9ad8\u4e00\u4e2a\u9002\u5408\u7684\u6570\u5b57\uff0c\u6765\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\u3002 \u300a\u5b8c\u300b","title":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#docker-","text":"pre, code { white-space: pre-wrap; word-break: break-all; }","title":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1Docker-\u90e8\u7f72\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_1","text":"\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u670d\u52a1\u201d\uff09\u63d0\u4f9b\u9ad8\u8d28\u91cf\u7684\u6587\u672c\u8f6c\u8bed\u97f3\uff08TTS\uff09\u548c\u8bed\u97f3\u8f6c\u6587\u672c\uff08ASR\uff09\u529f\u80fd\u3002\u4e3a\u4e86\u65b9\u4fbf\u7528\u6237\u5feb\u901f\u90e8\u7f72\u548c\u4f7f\u7528\u8be5\u670d\u52a1\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u57fa\u4e8eDocker\u7684\u90e8\u7f72\u65b9\u6848\u3002\u672c\u6587\u6863\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528Docker\u90e8\u7f72\u8be5\u670d\u52a1\u3002 \u672c\u6587\u63d0\u4f9b\u7684\u8bed\u97f3\u5408\u6210\u4e0e\u8bc6\u522b\u670d\u52a1\uff0c\u662f\u57fa\u4e8epaddlespeech\u5f00\u53d1\u7684TTS\u548cASR\u670d\u52a1(\u7eafCPU\u670d\u52a1)\uff0c\u7528\u6237\u53ef\u4ee5\u901a\u8fc7Docker\u5feb\u901f\u90e8\u7f72\u5e76\u4f7f\u7528\u8be5\u670d\u52a1\u3002","title":"\u4e00\u3001\u7b80\u4ecb"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_2","text":"\u5728\u5f00\u59cb\u90e8\u7f72\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u73af\u5883\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a 1. \u5df2\u5b89\u88c5Docker\u548cDocker Compose\u3002 2. \u5177\u5907\u4e00\u5b9a\u7684Linux\u547d\u4ee4\u884c\u64cd\u4f5c\u57fa\u7840\u3002 3. \u786e\u4fdd\u60a8\u7684\u670d\u52a1\u5668\u5177\u5907\u8db3\u591f\u7684\u8ba1\u7b97\u8d44\u6e90\uff08CPU\u3001\u5185\u5b58\u3001GPU\u7b49\uff09\u3002","title":"\u4e8c\u3001\u73af\u5883\u51c6\u5907"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#docker","text":"\u6211\u4eec\u63d0\u4f9b\u4e86\u9884\u6784\u5efa\u7684Docker\u955c\u50cf\uff0c\u5730\u5740\u4f4d\u4e8e\u4e03\u725b\u4e91\uff0c \u4e0b\u8f7d\u5730\u5740 \u4e3a\uff1a https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/paddlespeech.tar","title":"\u4e09\u3001\u83b7\u53d6Docker\u955c\u50cf"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_3","text":"","title":"\u56db\u3001\u5728\u7ebf\u90e8\u7f72\u6b65\u9aa4"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_4","text":"curl -fsSL https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/install-paddlespeech.sh | sudo bash","title":"\u6267\u884c\u4e00\u952e\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_5","text":"","title":"\u5982\u4e0b\u56fe\u6240\u793a:"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_6","text":"\u4f7f\u7528TTS\u6216asr\u670d\u52a1\uff0c\u9996\u6b21\u8fd0\u884c\u4f1a\u81ea\u52a8\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\uff0c\u6a21\u578b\u6587\u4ef6\u8f83\u5927, \u4e0b\u8f7d\u8fc7\u7a0b\u7ea6\u970010\u5206\u949f \uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002","title":"\u9996\u6b21\u8fd0\u884c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_7","text":"\u6211\u4eec\u53ef\u4ee5\u5982\u7528\u4e0b\u547d\u4ee4\u5b9e\u65f6\u67e5\u770b\u8fd0\u884c\u65e5\u5fd7: docker logs -f paddlespeech \u5bb9\u5668\u542f\u52a8\u540e\uff0c\u5148\u4f1a\u8f7d\u4e00\u4e2aNLP\u7684\u5c0f\u6a21\u578b\uff0c\u8017\u65f6\u7ea630\u79d2\u5de6\u53f3\uff0c\u7136\u540e\uff0c\u542f\u52a8\u670d\u52a1\u4e0e\u7aef\u53e3\uff0c \u5f53/tts\u8fd9\u4e2aapi\u9996\u6b21\u88ab\u8c03\u7528\u65f6\uff0c\u5bb9\u5668\u7684\u7a0b\u5e8f\uff0c\u4f1a\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u5b8c\u6210\u9996\u6b21TTS\u8f93\u51fa\uff0c\u5f53\u7136\u9996\u6b21\u4e5f\u6709\u53ef\u80fd\u56e0\u7f51\u7edc\u8d85\u65f6\u5931\u8d25\u3002\u540e\u7eed\u518d\u6b21\u4f7f\u7528\u65f6\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 \u5f53/asr\u8fd9\u4e2aapi\u88ab\u9996\u6b21\u8c03\u7528\u65f6,\u5bb9\u5668\u4e2d\u7684\u7a0b\u5e8f\u4f1a\u81ea\u52a8\u4ece\u7f51\u7edc\u4e0b\u8f7d\u7ea62G\u7684\u6a21\u578b\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5b8c\u6210\u540e\u4f1a\u81ea\u52a8\u63d0\u4f9b\u8bed\u97f3\u8bc6\u522b\u670d\u52a1\uff0c\u5e76\u5b8c\u6210\u9996\u6b21API\u8bc6\u522b\u7684\u8f93\u51fa\uff0c\u5f53\u7136\uff0c\u4e5f\u6709\u53ef\u80fd\u5931\u8d25\uff0c\u540e\u7eed\u518d\u6b21\u8c03\u7528\u6b64API\u662f\uff0c\u4e0d\u4f1a\u91cd\u590d\u4e0b\u8f7d\u6a21\u578b\u6587\u4ef6\u3002 \u4e0a\u8ff0\u4e0b\u8f7d\u8fc7\u7a0b\u8f83\u4e3a\u7f13\u6162\uff0c\u7ea65-10\u5206\u949f\u5de6\u53f3\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff01\u5982\u679c\u60f3\u770b\u5b9e\u65f6\u8fc7\u7a0b\uff0c\u8bf7\u8f93\u5165:docker-comopose logs paddlespeech \u6765\u67e5\u770b\u5b9e\u65f6\u65e5\u5fd7 \u8bf7\u5728\u6b63\u5f0f\u4f7f\u7528\u4e4b\u524d\uff0c\u7528postman\u6216\u6587\u6863\u4e2d\u63d0\u4f9b\u7684\u6d4b\u8bd5\u7f51\u9875\uff0c\u8c03\u8bd5\u4e00\u6b21\u6210\u529f\u540e\uff0c\u518d\u653e\u5165\u540e\u53f0\u8fd0\u884c\uff01","title":"\u5982\u4e0b\u6240\u793a"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_8","text":"","title":"\u4e94\u3001\u79bb\u7ebf\u90e8\u7f72\u6b65\u9aa4"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_9","text":"Docker\u955c\u50cf\u6587\u4ef6: \u4e0b\u8f7d\u5730\u5740 \u6570\u636e\u5377\u6587\u4ef6: \u4ee5\u4e0b\u6587\u4ef6\u8981\u4e0b\u8f7d\u5e76\u590d\u5236\u5230\u76ee\u6807\u673a\u5668\u4e34\u65f6\u8ba4\u7f6e\u7684\u76ee\u5f55,\u4e0einstall-paddlespeech-localh.sh\u6240\u5728\u76ee\u5f55\u540c\u7ea7\u7684\u5b50\u76ee\u5f55data\u76ee\u5f55\u4e0b home_dtuser_opt_paddlespeech_data_logs.tar.gz home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz home_dtuser_opt_paddlespeech_data_output.tar.gz home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u79bb\u7ebf\u5b89\u88c5\u811a\u672c: \u4e0b\u8f7d\u5730\u5740 \u6d4b\u8bd5\u6f14\u793a\u4f7f\u7528\u7f51\u9875: \u4e0b\u8f7d\u5730\u5740 \u79bb\u7ebf\u5b89\u88c5\u5305\u5206\u4e24\u90e8\u4efd\uff0c\u4e00\u90e8\u4efd\u662f\u5bb9\u5668\u955c\u50cf\uff0c\u4e00\u90e8\u4efd\u662f\u6570\u636e\u5377\u6587\u4ef6\uff0c\u5b89\u88c5\u542f\u52a8\u5bb9\u5668\u524d\u5148\u66ff\u6362\u5bf9\u636e\u5377\u7ed1\u5b9a\u7684\u76ee\u5f55\uff0c\u8fd9\u6837\u5bb9\u5668\u542f\u52a8\u540e\u65e0\u987b\u4e0b\u8f7d\u6a21\u578b\uff0c\u53ef\u4ee5\u5728\u65e0\u4e92\u8054\u7f51\u7684\u60c5\u51b5\u4e0b\u76f4\u63a5\u4f7f\u7528","title":"\u79bb\u7ebf\u90e8\u7f72\u7684\u76f8\u5173\u6587\u4ef6\u4e0b\u8f7d\u5730\u5740"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#1-docker","text":"\u5982\u4e0b\u793a\u4f8b\uff0c\u6211\u4eec\u5c06\u6587\u4ef6\u653e\u5230\u7528\u6237\u76ee\u5f55\u7684down\u4e0b,\u8bf7\u4fdd\u6301\u76f8\u5e94\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ pwd /home/tst/down tst@tst-VMware-Virtual-Platform:~/down$ ls data install-paddlespeech-localh.sh tst@tst-VMware-Virtual-Platform:~/down$ tree . \u251c\u2500\u2500 data \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_logs.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_output.tar.gz \u2502 \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u2502 \u2514\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u251c\u2500\u2500 home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u2514\u2500\u2500 install-paddlespeech-localh.sh 2 directories, 7 files","title":"1. \u4e0b\u8f7dDocker\u955c\u50cf\u4e0e\u6570\u636e\u5377\u6587\u4ef6"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#2","text":"chmod +x install-paddlespeech-localh.sh","title":"2. \u7ed9\u8fd0\u884c\u811a\u672c\u6dfb\u52a0\u6267\u884c\u6743\u9650"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#3","text":"sudo ./install-paddlespeech-localh.sh \u6309\u88c5\u811a\u672c\u5c06\u4f1a\u5148\u89e3\u538b\u6587\u4ef6\uff0c\u5e76\u52a0\u8f7ddocker\u955c\u50cf\uff0c\u7136\u540e\u542f\u52a8\u5bb9\u5668\uff0c\u542f\u52a8\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528docker ps\u547d\u4ee4\u67e5\u770b\u8fd0\u884c\u72b6\u6001\uff0c\u5982\u4e0b\u6240\u793a\uff1a tst@tst-VMware-Virtual-Platform:~/down$ sudo ./install-paddlespeech-localh.sh [ INFO ] \u5f00\u59cb PaddleSpeech \u79bb\u7ebf\u5b89\u88c5... [ SUCCESS ] \u78c1\u76d8\u7a7a\u95f4\u68c0\u67e5\u901a\u8fc7\uff0855GB\uff09 [ INFO ] \u68c0\u6d4b\u7f51\u7edc\u8fde\u63a5... [ SUCCESS ] \u7f51\u7edc\u8fde\u63a5\u6b63\u5e38 [ INFO ] \u521b\u5efa\u76ee\u5f55\u7ed3\u6784... [ SUCCESS ] \u76ee\u5f55\u7ed3\u6784\u521b\u5efa\u5b8c\u6210 [ INFO ] \u89e3\u538b\u6570\u636e\u5377... [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_logs.tar.gz \u5230 /dt_opt/paddlespeech/data/logs ./ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_nltk_data.tar.gz \u5230 /dt_opt/paddlespeech/data/nltk_data ./ ./taggers/ ./taggers/averaged_perceptron_tagger/ ./taggers/averaged_perceptron_tagger/averaged_perceptron_tagger.pickle ./taggers/averaged_perceptron_tagger.zip ./corpora/ ./corpora/cmudict/ ./corpora/cmudict/cmudict ./corpora/cmudict/README ./corpora/cmudict.zip [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_output.tar.gz \u5230 /dt_opt/paddlespeech/data/output ./ ./2753d658-b228-4ae6-94fc-3404a41f4526.wav ./9f24d71e-9f29-4d60-aa13-677fd19bba46.wav ./38ea94c6-e19b-4e41-8cca-454d8e374a15.wav ./d44aa891-c36b-473f-aef3-44484f0cd74b.wav ./c5ef53d3-502b-4f81-9fdd-583836ba7096.wav ./3931cd47-e022-4385-b588-4a61e64e5eed.wav ./1d213380-eee6-43ba-88db-99ba9b5609df.wav ./c85f65de-a4c1-43aa-a251-52ce4e9df271.wav ./7cd5fc65-665b-444c-9c9f-41f1ce8036f8.wav ./f74dbda7-1cf8-4056-bd30-523b74af8b0e.wav [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlenlp_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlenlp_models ./ ./packages/ ./models/ ./models/bert-base-chinese/ ./models/bert-base-chinese/bert-base-chinese-vocab.txt ./models/bert-base-chinese/tokenizer_config.json ./models/bert-base-chinese/vocab.txt ./models/bert-base-chinese/special_tokens_map.json ./models/embeddings/ ./models/.locks/ ./models/.locks/bert-base-chinese/ ./datasets/ [ INFO ] \u6b63\u5728\u89e3\u538b: /home/tst/down/data/home_dtuser_opt_paddlespeech_data_paddlespeech_models.tar.gz \u5230 /dt_opt/paddlespeech/data/paddlespeech_models ./ ./conf/ ./conf/cache.yaml ./models/ ./models/G2PWModel_1.1/ ./models/G2PWModel_1.1/config.py ./models/G2PWModel_1.1/MONOPHONIC_CHARS.txt ./models/G2PWModel_1.1/__pycache__/ ./models/G2PWModel_1.1/__pycache__/config.cpython-39.pyc ./models/G2PWModel_1.1/__pycache__/config.cpython-310.pyc ./models/G2PWModel_1.1/record.log ./models/G2PWModel_1.1/bopomofo_to_pinyin_wo_tune_dict.json ./models/G2PWModel_1.1/POLYPHONIC_CHARS.txt ./models/G2PWModel_1.1/char_bopomofo_dict.json ./models/G2PWModel_1.1/g2pW.onnx ./models/G2PWModel_1.1/version ./models/G2PWModel_1.1.zip ./models/conformer_wenetspeech-zh-16k/ ./models/conformer_wenetspeech-zh-16k/1.0/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/preprocess.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/tuning/decode.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/conf/conformer_infer.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/lang_char/vocab.txt ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/data/mean_std.json ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/model.yaml ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/ ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar/exp/conformer/checkpoints/wenetspeech.pdparams ./models/conformer_wenetspeech-zh-16k/1.0/asr1_conformer_wenetspeech_ckpt_0.1.1.model.tar.gz ./models/fastspeech2_csmsc-zh/ ./models/fastspeech2_csmsc-zh/1.0/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4.zip ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/ ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/snapshot_iter_76000.pdz ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/phone_id_map.txt ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/default.yaml ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/speech_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/pitch_stats.npy ./models/fastspeech2_csmsc-zh/1.0/fastspeech2_nosil_baker_ckpt_0.4/energy_stats.npy ./models/hifigan_csmsc-zh/ ./models/hifigan_csmsc-zh/1.0/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1.zip ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/ ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/default.yaml ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/snapshot_iter_2500000.pdz ./models/hifigan_csmsc-zh/1.0/hifigan_csmsc_ckpt_0.1.1/feats_stats.npy ./datasets/ [ SUCCESS ] \u6570\u636e\u5377\u89e3\u538b\u5b8c\u6210 [ INFO ] \u89e3\u538b\u955c\u50cf\u5305... [ SUCCESS ] \u955c\u50cf\u5305\u5df2\u79fb\u52a8\u5230 /dt_opt/paddlespeech/images [ INFO ] \u52a0\u8f7dDocker\u955c\u50cf... daf557c4f08e: Loading layer [================================================== > ] 81 .04MB/81.04MB d593918d433d: Loading layer [================================================== > ] 4 .123MB/4.123MB 7c4cff21e743: Loading layer [================================================== > ] 41 .36MB/41.36MB 25f6bb353e99: Loading layer [================================================== > ] 5 .12kB/5.12kB bc3a46414f17: Loading layer [================================================== > ] 1 .536kB/1.536kB 8fc7185920f1: Loading layer [================================================== > ] 3 .584kB/3.584kB bac2a7f893df: Loading layer [================================================== > ] 847MB/847MB 092bab498a3d: Loading layer [================================================== > ] 13 .31MB/13.31MB 19db93cce63e: Loading layer [================================================== > ] 2 .56kB/2.56kB 2fc7499dded4: Loading layer [================================================== > ] 3 .042GB/3.042GB 7da6b60d7eb7: Loading layer [================================================== > ] 2 .53MB/2.53MB 057242764992 : Loading layer [================================================== > ] 8 .704kB/8.704kB 9a996f3d539d: Loading layer [================================================== > ] 3 .072kB/3.072kB 4cdf0570391d: Loading layer [================================================== > ] 104 .2MB/104.2MB Loaded image: dt_iot/paddlespeech:latest [ SUCCESS ] \u955c\u50cf\u52a0\u8f7d\u6210\u529f [ INFO ] \u751f\u6210docker-compose.yaml... [ SUCCESS ] docker-compose.yaml\u521b\u5efa\u5b8c\u6210 [ INFO ] \u542f\u52a8\u5bb9\u5668... [ + ] Running 2 /2 \u2714 Network dtnet Created 0 .5s \u2714 Container paddlespeech Started 4 .6s [ SUCCESS ] \u5bb9\u5668\u542f\u52a8\u6210\u529f [ SUCCESS ] PaddleSpeech \u79bb\u7ebf\u5b89\u88c5\u5b8c\u6210\uff01","title":"3. \u6267\u884c\u5b89\u88c5\u811a\u672c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#4","text":"docker ps","title":"4. \u67e5\u770b\u5bb9\u5668\u8fd0\u884c\u72b6\u6001"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#5","text":"docker logs -f paddlespeech","title":"5. \u5b9e\u65f6\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#6","text":"\u8fdb\u5165\u5bb9\u5668\u5668\u7684\u90e8\u7f72\u76ee\u5f55\uff1a /dt_opt/paddlespeech docker-compose up -d # \u542f\u52a8\u5bb9\u5668 docker-compose down # \u505c\u6b62\u5bb9\u5668 docker-compose restart paddlespeech # \u91cd\u542f\u5bb9\u5668 docker logs -f paddlespeech # \u5b9e\u65f6\u67e5\u770b\u65e5\u5fd7 docker exec -it paddlespeech /bin/bash # \u8fdb\u5165\u5bb9\u5668 docker rm -f paddlespeech # \u5220\u9664\u5bb9\u5668 docker rmi dt_iot/paddlespeech:latest # \u5220\u9664\u955c\u50cf docker volume rm paddlespeech_data # \u5220\u9664\u6570\u636e\u5377 docker network rm dtnet # \u5220\u9664\u7f51\u7edc docker system prune -a # \u6e05\u7406\u65e0\u7528\u7684\u955c\u50cf\u3001\u5bb9\u5668\u3001\u6570\u636e\u5377\u3001\u7f51\u7edc\u7b49 \u4ee5\u4e0a\u662f\u5e38\u7528\u547d\u4ee4\uff0c\u4f7f\u7528\u65f6\u6839\u636e\u9700\u8981\u7075\u6d3b\u4f7f\u7528\u3002","title":"6. \u7ba1\u7406\u5bb9\u5668"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#7","text":"\u627e\u5230\u6587\u4ef6 /dt_opt/paddlespeech/docker-compose.yaml \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u5982\u4e0b\u6240\u793a\uff1a \u66f4\u6539\u7b2c\u4e00\u4e2a\u7aef\u53e3\u4e3a\u9700\u8981\u7684\u7aef\u53e3\u53f7\u5373\u53ef\uff0c\u5982\u4e0b\u6240\u793a: docker-compse down sudo nano ./docker-compose.yaml # \u4fee\u6539\u5bf9\u5e94\u7684\u7aef\u53e3\u53f7\uff0c\u7b2c6\u884c # - \"8001:8001\" # \u4fdd\u5b58\u9000\u51fa\uff0c\u91cd\u542f\u5bb9\u5668\u5373\u53ef\u751f\u6548 docker-compose up -d","title":"7. \u8c03\u6574\u7aef\u53e3"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_10","text":"\u4e3a\u4e86\u65b9\u4fbf\u7684\u6f14\u793a\u5982\u4f55\u8c03\u7528\u8fd9\u4e2aapi\uff0c\u6211\u4eec\u63d0\u4f9b\u4e86\u4e00\u4e2a\u6d4b\u8bd5\u7f51\u9875, \u4e0b\u8f7d\u5730\u5740 \u4e3a: https://datacdn.data-it.tech/HomeAssistant/dokerimages/paddlespeech1.1/tts_demo.zip","title":"\u516d\u3001\u4f7f\u7528\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#1-tts","text":"","title":"1. \u8bed\u97f3\u5408\u6210\uff08TTS\uff09\u670d\u52a1"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#curl","text":"curl --request POST \\ --url http://ikuai.m-iot.tech:58150/tts \\ --header 'content-type: application/x-www-form-urlencoded' \\ --data 'text=\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' \\ --data lang=zh \\ --data spk_id=0","title":"curl\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#htttp-api","text":"POST /tts HTTP / 1.1 Content-Type : application/x-www-form-urlencoded Host : ikuai.m-iot.tech:58150 Content-Length : 103 text = %E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5 & lang = zh & spk_id = 0","title":"HTTTP API\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java","text":"//asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/tts\" ) . setHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . setBody ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); //nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/tts\" )) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); //okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"application/x-www-form-urlencoded\" ); RequestBody body = RequestBody . create ( mediaType , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/tts\" ) . post ( body ) . addHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . build (); Response response = client . newCall ( request ). execute (); //unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/tts\" ) . header ( \"content-type\" , \"application/x-www-form-urlencoded\" ) . body ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) . asString ();","title":"Java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#javascript","text":"//Xhr const data = 'text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0' ; const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/tts' ); xhr . setRequestHeader ( 'content-type' , 'application/x-www-form-urlencoded' ); xhr . send ( data ); //Axios import axios from 'axios' ; const encodedParams = new URLSearchParams (); encodedParams . set ( 'text' , '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' ); encodedParams . set ( 'lang' , 'zh' ); encodedParams . set ( 'spk_id' , '0' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/tts' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : encodedParams , }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } //Fetch const url = 'http://ikuai.m-iot.tech:58150/tts' ; const options = { method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, body : new URLSearchParams ({ text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' }) }; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //JQuery const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/tts' , method : 'POST' , headers : { 'content-type' : 'application/x-www-form-urlencoded' }, data : { text : '\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5' , lang : 'zh' , spk_id : '0' } }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); });","title":"javaScript \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#c","text":"//httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/tts\" ), Content = new FormUrlEncodedContent ( new Dictionary < string , string > { { \"text\" , \"\u8bf7\u5f20\u4e09\u5230\u4e00\u5ba4\u505a\u68c0\u67e5\" }, { \"lang\" , \"zh\" }, { \"spk_id\" , \"0\" }, }), }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/tts\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"application/x-www-form-urlencoded\" ); request . AddParameter ( \"application/x-www-form-urlencoded\" , \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" , ParameterType . RequestBody ); var response = client . Execute ( request );","title":"C# \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#go","text":"package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/tts\" payload := strings . NewReader ( \"text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"application/x-www-form-urlencoded\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) }","title":"go \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_11","text":"Preparing request to http://ikuai.m-iot.tech:58150/tts Current time is 2025-09-21T07:49:17.236Z POST http://ikuai.m-iot.tech:58150/tts Accept: application/json, text/plain, */* Content-Type: application/x-www-form-urlencoded User-Agent: bruno-runtime/2.3.0 text=%E8%AF%B7%E5%BC%A0%E4%B8%89%E5%88%B0%E4%B8%80%E5%AE%A4%E5%81%9A%E6%A3%80%E6%9F%A5&lang=zh&spk_id=0 SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 07:49:18 GMT server: uvicorn content-type: audio/wav content-disposition: attachment; filename=\"7b41c15b-e0a4-4ba5-aeb1-ceff058c90e6.wav\" content-length: 89444 last-modified: Sun, 21 Sep 2025 07:49:20 GMT etag: d85eaa2cadf7182ac9b54763e6a97e2c request-duration: 2224 Request completed in 2224 ms","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#2-asr","text":"","title":"2. \u8bed\u97f3\u8bc6\u522b\uff08ASR\uff09\u670d\u52a1"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_12","text":"","title":"\u4e0a\u4f20\u6587\u4ef6\u8c03\u7528\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#curl_1","text":"curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \\ --form format=wav \\ --form sample_rate=16000 \u76f4\u63a5\u4e0a\u4f20\u6587\u4ef6\uff0c\u6587\u4ef6\u683c\u5f0f\u652f\u6301wav\u3001m4a\u3001mp3\u7b49\u5e38\u89c1\u97f3\u9891\u683c\u5f0f\uff0c\u670d\u52a1\u7aef\u4f1a\u81ea\u52a8\u8f6c\u6362\u4e3awav\u683c\u5f0f\u8fdb\u884c\u8bc6\u522b\u3002 curl --request POST \\ --url http://ikuai.m-iot.tech:58150/asr \\ --header 'content-type: multipart/form-data' \\ --form 'file=@C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' \\ --form lang=zh \u4f20\u5165\u53c2\u6570\u53ef\u4ee5\u53ea\u6709file\u4e0elang\u8fd9\u4e24\u4e2a\u53c2\u6570\uff0c\u5176\u5b83\u53c2\u6570\uff0c\u53ef\u4ee5\u5ffd\u7565\uff0c\u5982\u4e0b\u56fe\u6240\u793a","title":"curl\u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#http","text":"POST /asr HTTP / 1.1 Content-Type : multipart/form-data; boundary=---011000010111000001101001 Host : ikuai.m-iot.tech:58150 Content-Length : 239 -----011000010111000001101001 Content-Disposition: form-data; name=\"file\" C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a -----011000010111000001101001 Content-Disposition: form-data; name=\"lang\" zh -----011000010111000001101001--","title":"HTTP \u793a\u4f8b\u8bf4\u660e"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java_1","text":"// asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString ();","title":"java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#javascript_1","text":"//xhr const data = new FormData (); data . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); data . append ( 'lang' , 'zh' ); const xhr = new XMLHttpRequest (); xhr . withCredentials = true ; xhr . addEventListener ( 'readystatechange' , function () { if ( this . readyState === this . DONE ) { console . log ( this . responseText ); } }); xhr . open ( 'POST' , 'http://ikuai.m-iot.tech:58150/asr' ); xhr . send ( data ); // Axios import axios from 'axios' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' , url : 'http://ikuai.m-iot.tech:58150/asr' , headers : { 'content-type' : 'multipart/form-data; boundary=---011000010111000001101001' }, data : '[form]' }; try { const { data } = await axios . request ( options ); console . log ( data ); } catch ( error ) { console . error ( error ); } // fetch const url = 'http://ikuai.m-iot.tech:58150/asr' ; const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const options = { method : 'POST' }; options . body = form ; try { const response = await fetch ( url , options ); const data = await response . json (); console . log ( data ); } catch ( error ) { console . error ( error ); } //jquery const form = new FormData (); form . append ( 'file' , 'C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a' ); form . append ( 'lang' , 'zh' ); const settings = { async : true , crossDomain : true , url : 'http://ikuai.m-iot.tech:58150/asr' , method : 'POST' , headers : {}, processData : false , contentType : false , mimeType : 'multipart/form-data' , data : form }; $ . ajax ( settings ). done ( function ( response ) { console . log ( response ); });","title":"javascript \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#c_1","text":"//httpclient using System.Net.Http.Headers ; var client = new HttpClient (); var request = new HttpRequestMessage { Method = HttpMethod . Post , RequestUri = new Uri ( \"http://ikuai.m-iot.tech:58150/asr\" ), Content = new MultipartFormDataContent { new StringContent ([ \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" ]) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"file\" , FileName = \"C:\\Users\\trphoenix\\Documents\\\u5f55\u97f3\\\u5f55\u97f3 (6).m4a\" , } } }, new StringContent ( \"zh\" ) { Headers = { ContentDisposition = new ContentDispositionHeaderValue ( \"form-data\" ) { Name = \"lang\" , } } }, }, }; using ( var response = await client . SendAsync ( request )) { response . EnsureSuccessStatusCode (); var body = await response . Content . ReadAsStringAsync (); Console . WriteLine ( body ); } //Restsharp var client = new RestClient ( \"http://ikuai.m-iot.tech:58150/asr\" ); var request = new RestRequest ( \"\" , Method . Post ); request . AddHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ); request . AddParameter ( \"multipart/form-data; boundary=---011000010111000001101001\" , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" , ParameterType . RequestBody ); var response = client . Execute ( request );","title":"C# \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#go_1","text":"package main import ( \"fmt\" \"strings\" \"net/http\" \"io\" ) func main () { url := \"http://ikuai.m-iot.tech:58150/asr\" payload := strings . NewReader ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) req , _ := http . NewRequest ( \"POST\" , url , payload ) req . Header . Add ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) res , _ := http . DefaultClient . Do ( req ) defer res . Body . Close () body , _ := io . ReadAll ( res . Body ) fmt . Println ( res ) fmt . Println ( string ( body )) }","title":"go \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#java_2","text":"// asynchttp AsyncHttpClient client = new DefaultAsyncHttpClient (); client . prepare ( \"POST\" , \"http://ikuai.m-iot.tech:58150/asr\" ) . setHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . setBody ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . execute () . toCompletableFuture () . thenAccept ( System . out :: println ) . join (); client . close (); // nethttp HttpRequest request = HttpRequest . newBuilder () . uri ( URI . create ( \"http://ikuai.m-iot.tech:58150/asr\" )) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . method ( \"POST\" , HttpRequest . BodyPublishers . ofString ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" )) . build (); HttpResponse < String > response = HttpClient . newHttpClient (). send ( request , HttpResponse . BodyHandlers . ofString ()); System . out . println ( response . body ()); // okhttp OkHttpClient client = new OkHttpClient (); MediaType mediaType = MediaType . parse ( \"multipart/form-data; boundary=---011000010111000001101001\" ); RequestBody body = RequestBody . create ( mediaType , \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ); Request request = new Request . Builder () . url ( \"http://ikuai.m-iot.tech:58150/asr\" ) . post ( body ) . addHeader ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . build (); Response response = client . newCall ( request ). execute (); // unirest HttpResponse < String > response = Unirest . post ( \"http://ikuai.m-iot.tech:58150/asr\" ) . header ( \"content-type\" , \"multipart/form-data; boundary=---011000010111000001101001\" ) . body ( \"-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"file\\\"\\r\\n\\r\\nC:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\\r\\n-----011000010111000001101001\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\nzh\\r\\n-----011000010111000001101001--\\r\\n\\r\\n\" ) . asString ();","title":"java \u793a\u4f8b"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_13","text":"{ \"result\" : \"\u5582\u8bed\u97f3\u6d4b\u8bd5\u8bed\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\u5f55\u97f3\u6d4b\u8bd5\" , \"file_size\" : 185334 , \"wav_info\" : { \"n_channels\" : 1 , \"sample_width\" : 2 , \"framerate\" : 16000 , \"n_frames\" : 115029 , \"duration\" : 7.1893125 }, \"ffmpeg_log\" : \"\" } body { \"_overheadLength\" : 252 , \"_valueLength\" : 2 , \"_valuesToMeasure\" : [ { \"fd\" : null , \"path\" : \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\" , \"flags\" : \"r\" , \"mode\" : 438 , \"end\" : null , \"bytesRead\" : 0 , \"_events\" : {}, \"_readableState\" : { \"highWaterMark\" : 65536 , \"buffer\" : [], \"bufferIndex\" : 0 , \"length\" : 0 , \"pipes\" : [], \"awaitDrainWriters\" : null }, \"_eventsCount\" : 3 } ], \"writable\" : false , \"readable\" : true , \"dataSize\" : 0 , \"maxDataSize\" : 2097152 , \"pauseStreams\" : true , \"_released\" : false , \"_streams\" : [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\" , { \"source\" : \"[Circular]\" , \"dataSize\" : 0 , \"maxDataSize\" : null , \"pauseStream\" : true , \"_maxDataSizeExceeded\" : false , \"_released\" : false , \"_bufferedEvents\" : [ { \"0\" : \"pause\" } ], \"_events\" : {}, \"_eventsCount\" : 1 }, null , \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\" , \"zh\" , null ], \"_currentStream\" : null , \"_insideLoop\" : false , \"_pendingNext\" : false , \"_boundary\" : \"--------------------------147555471668548578107544\" } ***Network Logs *** Preparing request to http://ikuai.m-iot.tech:58150/asr Current time is 2025-09-21T08:22:20.590Z POST http://ikuai.m-iot.tech:58150/asr Accept: application/json, text/plain, */* Content-Type: multipart/form-data; boundary=--------------------------147555471668548578107544 User-Agent: bruno-runtime/2.3.0 { \"_overheadLength\": 252, \"_valueLength\": 2, \"_valuesToMeasure\": [ { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 } ], \"writable\": false, \"readable\": true, \"dataSize\": 0, \"maxDataSize\": 2097152, \"pauseStreams\": true, \"_released\": false, \"_streams\": [ \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"file\\\"; filename=\\\"\u5f55\u97f3 (6).m4a\\\"\\r\\nContent-Type: wav\\r\\n\\r\\n\", { \"source\": { \"fd\": null, \"path\": \"C:\\\\Users\\\\trphoenix\\\\Documents\\\\\u5f55\u97f3\\\\\u5f55\u97f3 (6).m4a\", \"flags\": \"r\", \"mode\": 438, \"end\": null, \"bytesRead\": 0, \"_events\": {}, \"_readableState\": { \"highWaterMark\": 65536, \"buffer\": [], \"bufferIndex\": 0, \"length\": 0, \"pipes\": [], \"awaitDrainWriters\": null }, \"_eventsCount\": 3 }, \"dataSize\": 0, \"maxDataSize\": null, \"pauseStream\": true, \"_maxDataSizeExceeded\": false, \"_released\": false, \"_bufferedEvents\": [ { \"0\": \"pause\" } ], \"_events\": {}, \"_eventsCount\": 1 }, null, \"----------------------------147555471668548578107544\\r\\nContent-Disposition: form-data; name=\\\"lang\\\"\\r\\n\\r\\n\", \"zh\", null ], \"_currentStream\": null, \"_insideLoop\": false, \"_pendingNext\": false, \"_boundary\": \"--------------------------147555471668548578107544\" } SSL validation: enabled HTTP/1.1 200 OK date: Sun, 21 Sep 2025 08:22:21 GMT server: uvicorn content-length: 201 content-type: application/json request-duration: 6989 Request completed in 6989 ms","title":"\u8fd4\u56de\u7ed3\u679c"},{"location":"Usages/QA/%E8%AF%AD%E9%9F%B3%E5%90%88%E6%88%90%E4%B8%8E%E8%AF%86%E5%88%AB%E6%9C%8D%E5%8A%A1Docker-%E9%83%A8%E7%BD%B2%E8%AF%B4%E6%98%8E/#_14","text":"\u8bf4\u660e paddlespeech\u4e2d\u7528\u7684\u4e00\u4e2a\u5e93\u6709\u53ef\u80fd\u662f\u5355\u7ebf\u7a0b\u7684\uff0c\u6240\u4ee5\u5728\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u54cd\u5e94\u53d8\u6162\u7684\u60c5\u51b5\uff0c\u8fd9\u4e2a\u65f6\u5019\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u52a0\u5b9e\u4f8b\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002 \u5b9e\u9645\u4f7f\u7528\u65f6,\u5982\u679c\u60f3\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u66f4\u6539\u73af\u5883\u53d8\u91cf\u4e2d\u7684PYTHONUNBUFFFERED=4,\u6216\u66f4\u9ad8\u4e00\u4e2a\u9002\u5408\u7684\u6570\u5b57\uff0c\u6765\u63d0\u9ad8\u5e76\u53d1\u80fd\u529b\u3002 \u300a\u5b8c\u300b","title":"\u6d4f\u89c8\u5668\u5f55\u97f3\u8bc6\u522b\u793a\u4f8b"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/","text":"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357 \u00b6 1. \u524d\u63d0\u6761\u4ef6 \u00b6 \u5df2\u5b89\u88c5\u5e76\u914d\u7f6e\u597dHome Assistant \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86MQTT Broker \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86Node-RED \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff08\u5982Miaomiaoc CN BLT 3\uff09 \u5df2\u7ecf\u83b7\u53d6\u5230\u4e86\u80dc\u900f\u7684MQTT\u670d\u52a1\u5668Broker\u5730\u5740\u548c\u7aef\u53e3 2. \u5728Home Assistant\u4e2d\u914d\u7f6e\u4f20\u611f\u5668\u81ea\u52a8\u5316 \u00b6 1.\u627e\u5230\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u00b6 \u900f\u6790\u4e2d\u5fc3\u53ef\u80fd\u5b89\u88c5\u4e86\u591a\u4e2a\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff0c\u9996\u5148\u9700\u8981\u627e\u5230\u5bf9\u5e94\u7684\u5b9e\u4f53ID\u3002 \u53ef\u4ee5\u5728Home Assistant\u7684\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u5f53\u524d\u6240\u6709\u4f20\u611f\u5668\u7684\u72b6\u6001\u3002 \u4e5f\u53ef\u4ee5\u5728\u5df2\u7ecf\u8bbe\u5907\u4e0e\u670d\u52a1\uff0c\u96c6\u6210\uff0c\u4e2d\u627e\u5230\u7c73\u5bb6\u7684\u8bbe\u5907\uff0c\u627e\u5230\u90a3\u4e2a\u4f20\u611f\u5668 \u627e\u5230\u9700\u8981\u914d\u7f6e\u4e3a\u73af\u5883\u6e29\u5ea6\u7684\u4f20\u611f\u5668 \u70b9\u51fb\u6e29\u5ea6\u5b9e\u4f53 \u70b9\u51fb\u8bbe\u7f6e\u56fe\u6807 \u5982\u672c\u4f8b\u83b7\u53d6\u5230\u7684\u5b9e\u4f53ID\u4e3a sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u3002\u8bb0\u4f4f\u6b64ID\uff0c\u540e\u9762\u5f88\u591a\u5730\u65b9\u90fd\u4f1a\u7528\u5230. 2. \u521b\u5efa\u81ea\u52a8\u5316\u89c4\u5219 \u00b6 \u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5f53\u4f20\u611f\u5668\u72b6\u6001\u66f4\u65b0\u65f6\u53ca\u6bcf\u969430\u79d2\uff0c\u5c06\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230Home Assistant\u5185\u90e8\u96c6\u6210\u7684\u7684MQTT\u670d\u52a1\u5668\u3002 \u8fdb\u5165 \"\u914d\u7f6e\" \u2192 \"\u81ea\u52a8\u5316\u548c\u573a\u666f\" \u2192 \"\u81ea\u52a8\u5316\"\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684 \"+\" \u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\u89c4\u5219\u3002 \u8fdb\u5165\u81ea\u52a8\u5316\u89c4\u5219\u7f16\u8f91\u754c\u9762\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\"\u521b\u5efa\u81ea\u52a8\u5316\"\u6309\u94ae\u3002\u5728\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\u9009\u62e9\"\u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\"\u3002 \u5728\u65b0\u5efa\u81ea\u52a8\u5316\u754c\u9762\uff0c\u70b9\u53f3\u4e0a\u89d2\u7684\u4e09\u4e2a\u70b9\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5728\u5f39\u51fa\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u8fdb\u5165YHAML\u7f16\u8f91,\u8fdb\u5165\u4ee3\u7801\u6a21\u5f0f\uff0c\u5982\u4e0b\u6240\u793a \u5728\u8fd9\u4e2a\u5927\u7684\u6587\u672c\u6846\u4e2d\u7c98\u5165\u5982\u4e0b\u4ee3\u7801\uff1a alias : \u53d1\u5e03\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u5230MQTT description : \u5f53\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u53d8\u5316\u6216\u6bcf30\u79d2\u5b9a\u65f6\u65f6\uff0c\u81ea\u52a8\u53d1\u5e03\u5230MQTT\u4f9bNode-RED\u4f7f\u7528 triggers : - entity_id : sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 trigger : state - seconds : /30 trigger : time_pattern conditions : - condition : template value_template : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') not in ['unavailable', 'unknown', 'None'] and states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') | float(-999) != -999 }} actions : - data : topic : >- homeassistant/sensor/sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1/state payload : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') }} retain : false qos : 0 action : mqtt.publish mode : single \u6ce8\u610f: \u4ee5\u4e0a\u4ee3\u7801\u4e2d\u7684 sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u662f\u793a\u4f8b\u5b9e\u4f53ID\uff0c\u8bf7\u66ff\u6362\u4e3a\u4f60 \u5b9e\u9645\u7684\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u3002 \u653e\u7f6e\u5b8c\u6210\u540e\uff0c\u5982\u4e0b\u56fe\u793a\u610f \u89c2\u5bdf\u4e0a\u6b21\u89e6\u53d1\u5217\u662f\u5426\u4f1a\u6bcf\u969430\u79d2\u6267\u884c\u4e00\u6b21 \u8fd4\u56de\u5230\u4f20\u611f\u5668\u7684\u8bbe\u5907\u754c\u9762\u4e5f\u80fd\u770b\u5230\u8bbe\u5907\u7684\u81ea\u52a8\u5316\u4e0b\u9762\u6709\u4e00\u6761\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5982\u4e0b\u56fe \u5230\u6b64\uff0c\u81ea\u52a8\u5316\u89c4\u5219\u5df2\u914d\u7f6e\u5b8c\u6210\u3002 3. \u5728Node-RED\u4e2d\u914d\u7f6eMQTT\u63a5\u6536\u8f6c\u53d1 \u00b6 1. \u6253\u5f00Node-RED\u7f16\u8f91\u5668 \u00b6 \u6253\u5f00nod-red\u7f16\u8f91\u5668\uff0c\u6709\u7684HA\u53ef\u80fd\u662f\u914d\u7f6e\u5728\u5de6\u4fa7\u822a\u83dc\u5355\u4e2d\uff0c\u5982\u4e0b\u56fe\u5fd7\u793a\uff0c\u70b9\u51fb\u5373\u53ef\u8fdb\u5165 \u6709\u7684\u662f\u6ca1\u6709\u914d\u7f6enode-red\u5230\u5de6\u4fa7\u5bfc\u822a\u83dc\u5355\u7684\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u70b9\u51fb\"\u8bbe\u7f6e-\u52a0\u8f7d\u9879\"\u8fdb\u5165\u52a0\u8f7d\u9879\u9875\u9762 \u627e\u5230Node-RED\u52a0\u8f7d\u9879\uff0c\u70b9\u51fb\u8fdb\u5165 \u8fdb\u5165\u754c\u9762\u5982\u4e0b\uff1a 2. \u521b\u5efa\u65b0\u5de5\u4f5c\u6d41 \u00b6 \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\"\u83dc\u5355\"\u6309\u94ae\uff0c\u518d\u70b9\u5bfc\u5165\u3002 \u5728\u6b64\u5904\u8d34\u5165\u5de5\u4f5c\u6d41\u4ee3\u7801\uff0c\u6ce8\u610f\uff1a\u8981\u9009\u62e9\u5bfc\u5165\u5230\u65b0\u6d41\u7a0b \u5de5\u4f5c\u6d41\u4ee3\u7801\u5982\u4e0b [ { \"id\" : \"1407d4531e19a951\" , \"type\" : \"tab\" , \"label\" : \"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u6570\u636e\u8f6c\u53d1\" , \"disabled\" : false , \"info\" : \"\u4eceHomeAssistant\u83b7\u53d6\u6e29\u5ea6\u4f20\u611f\u5668\u6570\u636e\u5e76\u53d1\u5e03\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\" }, { \"id\" : \"97e254f4a87ddde9\" , \"type\" : \"mqtt in\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8ba2\u9605HA\u6e29\u5ea6\u4f20\u611f\u5668\" , \"topic\" : \"homeassistant/sensor/+/state\" , \"qos\" : \"0\" , \"datatype\" : \"auto\" , \"broker\" : \"mqtt-ha-broker\" , \"nl\" : false , \"rap\" : true , \"rh\" : 0 , \"inputs\" : 0 , \"x\" : 150 , \"y\" : 100 , \"wires\" : [ [ \"44d729e67618e4f2\" ] ] }, { \"id\" : \"44d729e67618e4f2\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u5904\u7406\u6e29\u5ea6\u6570\u636e\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst targetDeviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\n\\n// \u4ecetopic\u4e2d\u63d0\u53d6\u5f53\u524d\u8bbe\u5907ID\\nconst topicParts = msg.topic.split('/');\\nconst currentDeviceId = topicParts.length >= 3 ? topicParts[2] : \\\"\\\";\\n\\n// \u53ea\u5904\u7406\u76ee\u6807\u8bbe\u5907\u7684\u6d88\u606f\\nif (currentDeviceId !== targetDeviceId) {\\n node.log(\\\"\u5ffd\u7565\u8bbe\u5907\u6d88\u606f: \\\" + currentDeviceId + \\\" (\u76ee\u6807\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n return null;\\n}\\n\\n// \u751f\u6210\u552f\u4e00\u7684\u6d88\u606fID\\nconst messageId = \\\"temp_\\\" + Date.now() + \\\"_\\\" + Math.floor(Math.random() * 1000);\\nconst timestamp = Date.now();\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u89e3\u6790\u6e29\u5ea6\u503c\\nlet temperature = parseFloat(msg.payload);\\nif (isNaN(temperature)) {\\n node.warn(\\\"\u63a5\u6536\u5230\u65e0\u6548\u7684\u6e29\u5ea6\u503c: \\\" + msg.payload);\\n return null;\\n}\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u683c\u5f0f\u5316\u6570\u636e\\nconst protocolMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": targetDeviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"value\\\": temperature,\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"quality\\\": \\\"good\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6e\u8f93\u51fa\u6d88\u606f\\nmsg.payload = JSON.stringify(protocolMessage);\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${targetDeviceId}/properties`;\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u6e29\u5ea6\u6570\u636e\u5df2\u5904\u7406: \\\" + temperature + \\\"\u00b0C (\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 420 , \"y\" : 100 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"573842ea77192dbb\" , \"type\" : \"mqtt out\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u5230\u516c\u53f8MQTT\" , \"topic\" : \"\" , \"qos\" : \"\" , \"retain\" : \"\" , \"respTopic\" : \"\" , \"contentType\" : \"\" , \"userProps\" : \"\" , \"correl\" : \"\" , \"expiry\" : \"\" , \"broker\" : \"mqtt-company-broker\" , \"x\" : 990 , \"y\" : 80 , \"wires\" : [] }, { \"id\" : \"4c630c164e08dc2c\" , \"type\" : \"debug\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8c03\u8bd5\u8f93\u51fa\" , \"active\" : true , \"tosidebar\" : true , \"console\" : false , \"tostatus\" : false , \"complete\" : \"payload\" , \"targetType\" : \"msg\" , \"statusVal\" : \"\" , \"statusType\" : \"auto\" , \"x\" : 1040 , \"y\" : 360 , \"wires\" : [] }, { \"id\" : \"495c392574ee1bf4\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u8bbe\u5907\u7269\u6a21\u578b\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"60\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"5\" , \"topic\" : \"shengtou/sensor/TH001_HA/model\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 170 , \"y\" : 180 , \"wires\" : [ [ \"3aea3ce2deb4ea99\" ] ] }, { \"id\" : \"3aea3ce2deb4ea99\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u7269\u6a21\u578b\u6570\u636e\" , \"func\" : \"const messageId = \\\"mdl_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u7269\u6a21\u578b\u5b9a\u4e49\\nconst modelMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"model\\\": {\\n \\\"deviceInfo\\\": {\\n \\\"manufacturer\\\": \\\"\u5c0f\u7c73\\\",\\n \\\"model\\\": \\\"MIAOMIAOC_CN_BLT_3_11A1SBR5K5O01_T2\\\",\\n \\\"version\\\": \\\"1.0.0\\\",\\n \\\"description\\\": \\\"\u7c73\u5bb6\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668(\u901a\u8fc7HomeAssistant\u96c6\u6210)\\\"\\n },\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"dataType\\\": \\\"float\\\",\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"range\\\": {\\n \\\"min\\\": -40,\\n \\\"max\\\": 85\\n },\\n \\\"precision\\\": 1,\\n \\\"description\\\": \\\"\u73af\u5883\u6e29\u5ea6\\\"\\n }\\n },\\n \\\"events\\\": {\\n \\\"startup\\\": {\\n \\\"eventType\\\": \\\"info\\\",\\n \\\"description\\\": \\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\\\"\\n }\\n },\\n \\\"alarms\\\": {\\n \\\"TEMP_HIGH\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u9ad8\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 35.0\\n },\\n \\\"TEMP_LOW\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u4f4e\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 0.0\\n }\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/model`;\\nmsg.payload = JSON.stringify(modelMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u7269\u6a21\u578b\u6570\u636e\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 160 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"70e1e283448c941e\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"120\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"10\" , \"topic\" : \"shengtou/sensor/TH001_HA/status\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 240 , \"wires\" : [ [ \"ae74b6d386748045\" ] ] }, { \"id\" : \"ae74b6d386748045\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u72b6\u6001\u6570\u636e\" , \"func\" : \"const messageId = \\\"sts_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u8ba1\u7b97\u8bbe\u5907\u8fd0\u884c\u65f6\u95f4\uff08\u4ece\u7b2c\u4e00\u6b21\u542f\u52a8\u5f00\u59cb\uff09\\nif (!context.get(\\\"startTime\\\")) {\\n context.set(\\\"startTime\\\", timestamp);\\n}\\nconst startTime = context.get(\\\"startTime\\\");\\nconst uptime = timestamp - startTime;\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u72b6\u6001\u6570\u636e\\nconst statusMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"status\\\": {\\n \\\"online\\\": true,\\n \\\"lastHeartbeat\\\": timestamp,\\n \\\"uptime\\\": uptime\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/status`;\\nmsg.payload = JSON.stringify(statusMessage);\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\u5df2\u53d1\u9001\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 240 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"7f9acf10d0c6085d\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u521d\u59cb\u5316\u5168\u5c40\u914d\u7f6e\" , \"props\" : [ { \"p\" : \"payload\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"1\" , \"topic\" : \"\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 150 , \"y\" : 40 , \"wires\" : [ [ \"6f6b825dfc5e9512\" ] ] }, { \"id\" : \"6f6b825dfc5e9512\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\" , \"func\" : \"// \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf\\nglobal.set(\\\"nameSpace\\\", \\\"Environment\\\");\\nglobal.set(\\\"clientCode\\\", \\\"Data-It_XzOffice\\\");\\nglobal.set(\\\"deviceId\\\", \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\");\\n\\nnode.log(\\\"\u5168\u5c40\u914d\u7f6e\u5df2\u8bbe\u7f6e: nameSpace=\\\" + global.get(\\\"nameSpace\\\") + \\\", clientCode=\\\" + global.get(\\\"clientCode\\\") + \\\", deviceId=\\\" + global.get(\\\"deviceId\\\"));\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 360 , \"y\" : 40 , \"wires\" : [ [ \"794c422d39898a7f\" ] ] }, { \"id\" : \"794c422d39898a7f\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u66f4\u65b0MQTT\u8ba2\u9605Topic\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u751f\u6210HomeAssistant MQTT\u8ba2\u9605Topic\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst haTopic = `homeassistant/sensor/${deviceId}/state`;\\n\\n// \u5c06Topic\u4fdd\u5b58\u5230\u5168\u5c40\u53d8\u91cf\u4f9b\u5176\u4ed6\u5730\u65b9\u4f7f\u7528\\nglobal.set(\\\"haSubscribeTopic\\\", haTopic);\\n\\nnode.log(\\\"HomeAssistant\u8ba2\u9605Topic\u5df2\u66f4\u65b0: \\\" + haTopic);\\nnode.log(\\\"\u6ce8\u610f\uff1a\u5982\u9700\u66f4\u6539MQTT In\u8282\u70b9\u7684\u8ba2\u9605Topic\uff0c\u8bf7\u624b\u52a8\u4fee\u6539\u4e3a: \\\" + haTopic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 590 , \"y\" : 40 , \"wires\" : [ [] ] }, { \"id\" : \"3bf854e9bd3e6937\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u542f\u52a8\u4e8b\u4ef6\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"15\" , \"topic\" : \"shengtou/sensor/TH001_HA/events\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 340 , \"wires\" : [ [ \"26f6196b2d6fba29\" ] ] }, { \"id\" : \"26f6196b2d6fba29\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u542f\u52a8\u4e8b\u4ef6\" , \"func\" : \"const messageId = \\\"evt_startup_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u4e8b\u4ef6\u6570\u636e\\nconst eventMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"events\\\": [\\n {\\n \\\"eventType\\\": \\\"startup\\\",\\n \\\"eventLevel\\\": \\\"info\\\",\\n \\\"eventCode\\\": \\\"EVT_001\\\",\\n \\\"description\\\": \\\"HomeAssistant\u6e29\u5ea6\u4f20\u611f\u5668\u4ee3\u7406\u8bbe\u5907\u542f\u52a8\u5b8c\u6210\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n ]\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/events`;\\nmsg.payload = JSON.stringify(eventMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 380 , \"y\" : 320 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"mqtt-ha-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"HomeAssistant MQTT\" , \"broker\" : \"192.168.50.83\" , \"port\" : \"1883\" , \"clientid\" : \"\" , \"autoConnect\" : true , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"autoUnsubscribe\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"\" , \"willQos\" : \"0\" , \"willPayload\" : \"\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" }, { \"id\" : \"mqtt-company-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"\u516c\u53f8MQTT\u670d\u52a1\u5668\" , \"broker\" : \"mqtt-test.ihemodialysis.com\" , \"port\" : \"62183\" , \"clientid\" : \"\" , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"shengtou/sensor/TH001_HA/status\" , \"willQos\" : \"0\" , \"willPayload\" : \"{\\\"messageId\\\":\\\"sts_offline\\\",\\\"timestamp\\\":0,\\\"deviceId\\\":\\\"TH001_HA\\\",\\\"deviceType\\\":\\\"sensor\\\",\\\"version\\\":\\\"1.0\\\",\\\"data\\\":{\\\"status\\\":{\\\"online\\\":false,\\\"lastHeartbeat\\\":0,\\\"uptime\\\":0}}}\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" } ] \u5f53\u7136\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4ece \u5de5\u4f5c\u6d41\u6587\u4ef6 \u5bfc\u5165\u65b0\u65b0\u5de5\u4f5c\u6d41\u3002 \u70b9\u51fb\u4e0a\u8ff0\u94fe\u63a5\u540e\uff0c\u4e0b\u8f7d\u6587\u4ef6\uff0c\u5e76\u89e3\u538b\uff0c\u5f97\u5230\u4e00\u4e2a\u540d\u4e3a flows.json \u7684\u6587\u4ef6\u3002 \u70b9\u51fb\u5bfc\u5165\u8282\u70b9\u6587\u4ef6\uff0c \u90e8\u7f72\u6210\u529f\u540e\uff0c\u4f1a\u51fa\u73b0\u5982\u4e0b\u56fe\u6240\u793a\u7684\u5de5\u4f5c\u6d41 \u6b64\u65f6\uff0c\u5de5\u4f5c\u6d41\u5df2\u521b\u5b8c\u6210. 3. \u914d\u7f6eMQTT\u8282\u70b9 \u00b6 \u5de5\u4f5c\u6d41\u4e2d\u6709\u4e24\u4e2aMQTT\u8282\u70b9\uff0c\u5206\u522b\u662fHome Assistant\u7684MQTT Broker\u548c\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u8fd9\u4e24\u4e2a\u8282\u70b9\u7684\u914d\u7f6e\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u8c03\u6574\u3002 \u9996\u5148\uff0c\u8981\u5148\u914d\u7f6eHome Assistant\u7684MQTT Broker\u8282\u70b9\uff0c\u786e\u4fdd\u5176\u8fde\u63a5\u4fe1\u606f\u6b63\u786e\u65e0\u8bef\u3002 \u5728\u6211\u4eec\u6ca1\u6709\u914d\u7f6emqtt in \u7684\u8fde\u63a5\u4fe1\u606f\u65f6\uff0c\u6211\u4eec\u53d1\u73b0\u8fd9\u4e2a\u8282\u70b9\u4e00\u76f4\u5904\u7406\u8fde\u63a5\u4e2d \u53cc\u51fb\u8be5\u8282\u70b9\uff0c\u8fdb\u5165\u914d\u7f6e\u754c\u9762 \u70b9\u51fb\u7f16\u8f91\u56fe\u6807 \u5728\u7f16\u8f91mqtt-broker\u8282\u70b9\u7684\u754c\u9762\u4e2d\u7684\u8fde\u63a5\u53c2\u6570\u9009\u9879\u5361\u4e2d\uff0c\u8f93\u5165\u6b63\u786e\u7684\u670d\u52a1\u7aef\u4e0e\u7aef\u53e3\u53f7 \u5982\u679cMQTT\u6709\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u8bf7\u5728\u8ba4\u8bc1\u9009\u9879\u5361\u4e2d\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u540e\uff0c\u7136\u540e\u70b9\u66f4\u65b0 \u7136\u540e\uff0c\u518d\u70b9\u51fb\u5b8c\u6210 \u6700\u540e\u70b9\u51fb\u90e8\u7f72 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u6b64\u8282\u70b9\u4f1a\u53d8\u4e3a\u5df2\u8054\u63a5 \u5bf9\u4e8e\"\u53d1\u5e03\u5230\u516c\u53f8MQTT\"\u8282\u70b9\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u8fde\u63a5\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u4e5f\u65f6\u540c\u6837\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u53cc\u51fb \u7136\u540e\uff0c\u66f4\u65b0\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72\u5373\u53ef\u3002 \u67e5\u627eHomeAssistant\u7684Mqtt\u914d\u7f6e\u4fe1\u606f \u5bf9\u4e8eHomeAssistant\u6211\u4eec\u4e00\u822c\u90fd\u662f\u63d0\u524d\u90e8\u7f72\u4e86\u5185\u7f6e\u7684MQTT Broker,\u5728\u4e0d\u77e5\u7aef\u53e3\u4e0e\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u6211\u6837\u53ef\u4ee5\u5728HomeAssistant\u4e2d\u53bb\u67e5\u627e \u8fdb\u5165\u8bbe\u7f6e\u52a0\u8f7d\u9879 \u627e\u5230Mosquitto broker\u8fd9\u4e2a\u9009\u9879\u5361,\u70b9\u51fb\u8fdb\u5165 \u70b9\u51fb\u914d\u7f6e\u9009\u9879\u5361 \u5728\u8fd9\u91cc\u53ef\u4ee5\u770b\u5230MQTT\u7684\u7aef\u53e3\u53f7\u4e0e\u7528\u6237\u540d\u5bc6\u7801\u7b49\u4fe1\u606f\uff0c\u53ca\u4e0b\u9762\u7684mqtt\u5f00\u653e\u7684\u7aef\u53e3\u4fe1\u606f\uff0cip\u5730\u5740\uff0c\u5c31\u662fha\u4e3b\u673a\u6240\u5728\u7684Ip\u5730\u5740\u3002\u4ee5\u4e0a\u4fe1\u606f\uff0c\u7528\u6765\u914d\u7f6e\u5de5\u4f5c\u6d41\u7684mqtt in\u7684\u53c2\u6570\u3002 \u516c\u53f8mqtt\u670d\u52a1\u7aef\u53e3\u4fe1\u606f \u8fd9\u4e2a\u53c2\u6570\uff0c\u8bf7\u5411\u516c\u53f8\u7ba1\u7406\u5458\u83b7\u53d6\uff0c\u6216\u8005\u5728\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u67e5\u770b\u3002 4.\u914d\u7f6e\u5de5\u4f5c\u6d41\u5168\u5c40\u53d8\u91cf \u00b6 \u53cc\u51fb\u5de5\u4f5c\u6d41\u7684\u8282\u70b9\"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\",\u6253\u5f00\u7f16\u8f91function\u8282\u70b9 \u5bf9\u5982\u4e0b\u4e09\u884c,\u8fdb\u884c\u66f4\u6539 // \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf global . set ( \"nameSpace\" , \"Environment\" ); //\u547d\u540d\u7a7a\u95f4\uff0c\u9ed8\u8ba4\u4e3a\uff1aEnvironment\uff0c\u5982\u679c\u6709\u9700\u8981\uff0c\u4ee5\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u540e\uff0c\u66f4\u6539. global . set ( \"clientCode\" , \"Data-It_XzOffice\" ); // \u5ba2\u6237\u7aef\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4e3a\uff1aData-It_XzOffice\uff0c\u4e00\u5b9a\u8981\u6539\u4e3a\u4e2d\u5fc3\u5bf9\u5c31\u7684ClientCode\uff0c global . set ( \"deviceId\" , \"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\" ); //\u4e00\u5b9a\u8981\u6539\u4e3a\u4e4b\u524d\u6211\u4eec\u5b9a\u7684\u4f20\u611f\u5668\u5b9e\u4f53ID \u5982\u679c\u4e0d\u786e\u5b9a\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u3002 \u7136\u540e\uff0c\u70b9\u51fb\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72 \u7136\u540e\uff0c\u4e0b\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u4e00\u5b9a\u8981\u6267\u884c \u8fd9\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u5fc5\u987b\u6267\u884c\uff0c\u5426\u5219\u5de5\u4f5c\u6d41\u6ca1\u6709\u628a\u5168\u5c40\u53d8\u91cf\u5199\u5165\u5de5\u4f5c\u6d41\uff0c\u4f1a\u5bfc\u81f4\u53d1\u5e03\u6570\u636e\u4e0d\u6b63\u786e\u3002 \u7136\u540e\uff0c\u6211\u6837\u5c31\u53ef\u4ee5\u7528\u5728debug\u7684\u65e5\u5fd7\u4e2d\u770b\u5230\u6211\u4eec\u53d1\u5e03\u7684\u8282\u70b9\u6570\u636e\u4e86\uff0c \u6b64\u56fe\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5230mqtt\u53d1\u5e03\u5230\u516c\u53f8\u7684\u6570\u636e\uff0cclientCode\uff0cdeviceid\u662f\u5426\u6b63\u5e38\u4e86\u3002 5. \u6d4b\u8bd5\u5de5\u4f5c\u6d41\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38 \u00b6 \u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5de5\u5177\u6765\u67e5\u770b\u516c\u53f8mqtt\u670d\u52a1\u6536\u5230\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38\u5982\u4e0b\u56fe \u8fd9\u91cc\u6211\u63a8\u8350\u4f7f\u7528\u5de5\u5177 MQTTX \u4e0b\u8f7d\u5730\u5740\u4e3a\uff1ahttps://mqttx.app/downloads \u81f3\u6b64,\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230\u80dc\u900f\u7684\u5de5\u4f5c\u6d41\u914d\u7f6e\u5b8c\u6210\u3002","title":"\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#_1","text":"","title":"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u53d1\u9001\u5230\u80dc\u900f\u7684\u64cd\u4f5c\u6307\u5357"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1","text":"\u5df2\u5b89\u88c5\u5e76\u914d\u7f6e\u597dHome Assistant \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86MQTT Broker \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86Node-RED \u5df2\u7ecf\u5b89\u88c5\u5e76\u914d\u7f6e\u4e86\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff08\u5982Miaomiaoc CN BLT 3\uff09 \u5df2\u7ecf\u83b7\u53d6\u5230\u4e86\u80dc\u900f\u7684MQTT\u670d\u52a1\u5668Broker\u5730\u5740\u548c\u7aef\u53e3","title":"1. \u524d\u63d0\u6761\u4ef6"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2-home-assistant","text":"","title":"2. \u5728Home Assistant\u4e2d\u914d\u7f6e\u4f20\u611f\u5668\u81ea\u52a8\u5316"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1id","text":"\u900f\u6790\u4e2d\u5fc3\u53ef\u80fd\u5b89\u88c5\u4e86\u591a\u4e2a\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\uff0c\u9996\u5148\u9700\u8981\u627e\u5230\u5bf9\u5e94\u7684\u5b9e\u4f53ID\u3002 \u53ef\u4ee5\u5728Home Assistant\u7684\u5f00\u53d1\u8005\u5de5\u5177\u4e2d\u67e5\u770b\u5f53\u524d\u6240\u6709\u4f20\u611f\u5668\u7684\u72b6\u6001\u3002 \u4e5f\u53ef\u4ee5\u5728\u5df2\u7ecf\u8bbe\u5907\u4e0e\u670d\u52a1\uff0c\u96c6\u6210\uff0c\u4e2d\u627e\u5230\u7c73\u5bb6\u7684\u8bbe\u5907\uff0c\u627e\u5230\u90a3\u4e2a\u4f20\u611f\u5668 \u627e\u5230\u9700\u8981\u914d\u7f6e\u4e3a\u73af\u5883\u6e29\u5ea6\u7684\u4f20\u611f\u5668 \u70b9\u51fb\u6e29\u5ea6\u5b9e\u4f53 \u70b9\u51fb\u8bbe\u7f6e\u56fe\u6807 \u5982\u672c\u4f8b\u83b7\u53d6\u5230\u7684\u5b9e\u4f53ID\u4e3a sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u3002\u8bb0\u4f4f\u6b64ID\uff0c\u540e\u9762\u5f88\u591a\u5730\u65b9\u90fd\u4f1a\u7528\u5230.","title":"1.\u627e\u5230\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2","text":"\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5f53\u4f20\u611f\u5668\u72b6\u6001\u66f4\u65b0\u65f6\u53ca\u6bcf\u969430\u79d2\uff0c\u5c06\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230Home Assistant\u5185\u90e8\u96c6\u6210\u7684\u7684MQTT\u670d\u52a1\u5668\u3002 \u8fdb\u5165 \"\u914d\u7f6e\" \u2192 \"\u81ea\u52a8\u5316\u548c\u573a\u666f\" \u2192 \"\u81ea\u52a8\u5316\"\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684 \"+\" \u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\u89c4\u5219\u3002 \u8fdb\u5165\u81ea\u52a8\u5316\u89c4\u5219\u7f16\u8f91\u754c\u9762\u540e\uff0c\u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\"\u521b\u5efa\u81ea\u52a8\u5316\"\u6309\u94ae\u3002\u5728\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\u9009\u62e9\"\u521b\u5efa\u65b0\u7684\u81ea\u52a8\u5316\"\u3002 \u5728\u65b0\u5efa\u81ea\u52a8\u5316\u754c\u9762\uff0c\u70b9\u53f3\u4e0a\u89d2\u7684\u4e09\u4e2a\u70b9\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5728\u5f39\u51fa\u7684\u4e0b\u62c9\u83dc\u5355\u4e2d\uff0c\u70b9\u51fb\u8fdb\u5165YHAML\u7f16\u8f91,\u8fdb\u5165\u4ee3\u7801\u6a21\u5f0f\uff0c\u5982\u4e0b\u6240\u793a \u5728\u8fd9\u4e2a\u5927\u7684\u6587\u672c\u6846\u4e2d\u7c98\u5165\u5982\u4e0b\u4ee3\u7801\uff1a alias : \u53d1\u5e03\u73af\u5883\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u5230MQTT description : \u5f53\u7c73\u5bb6\u6e29\u5ea6\u4f20\u611f\u5668\u72b6\u6001\u53d8\u5316\u6216\u6bcf30\u79d2\u5b9a\u65f6\u65f6\uff0c\u81ea\u52a8\u53d1\u5e03\u5230MQTT\u4f9bNode-RED\u4f7f\u7528 triggers : - entity_id : sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 trigger : state - seconds : /30 trigger : time_pattern conditions : - condition : template value_template : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') not in ['unavailable', 'unknown', 'None'] and states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') | float(-999) != -999 }} actions : - data : topic : >- homeassistant/sensor/sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1/state payload : >- {{ states('sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1') }} retain : false qos : 0 action : mqtt.publish mode : single \u6ce8\u610f: \u4ee5\u4e0a\u4ee3\u7801\u4e2d\u7684 sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1 \u662f\u793a\u4f8b\u5b9e\u4f53ID\uff0c\u8bf7\u66ff\u6362\u4e3a\u4f60 \u5b9e\u9645\u7684\u6e29\u5ea6\u4f20\u611f\u5668\u5b9e\u4f53ID \u3002 \u653e\u7f6e\u5b8c\u6210\u540e\uff0c\u5982\u4e0b\u56fe\u793a\u610f \u89c2\u5bdf\u4e0a\u6b21\u89e6\u53d1\u5217\u662f\u5426\u4f1a\u6bcf\u969430\u79d2\u6267\u884c\u4e00\u6b21 \u8fd4\u56de\u5230\u4f20\u611f\u5668\u7684\u8bbe\u5907\u754c\u9762\u4e5f\u80fd\u770b\u5230\u8bbe\u5907\u7684\u81ea\u52a8\u5316\u4e0b\u9762\u6709\u4e00\u6761\u81ea\u52a8\u5316\u89c4\u5219\uff0c\u5982\u4e0b\u56fe \u5230\u6b64\uff0c\u81ea\u52a8\u5316\u89c4\u5219\u5df2\u914d\u7f6e\u5b8c\u6210\u3002","title":"2. \u521b\u5efa\u81ea\u52a8\u5316\u89c4\u5219"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#3-node-redmqtt","text":"","title":"3. \u5728Node-RED\u4e2d\u914d\u7f6eMQTT\u63a5\u6536\u8f6c\u53d1"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#1-node-red","text":"\u6253\u5f00nod-red\u7f16\u8f91\u5668\uff0c\u6709\u7684HA\u53ef\u80fd\u662f\u914d\u7f6e\u5728\u5de6\u4fa7\u822a\u83dc\u5355\u4e2d\uff0c\u5982\u4e0b\u56fe\u5fd7\u793a\uff0c\u70b9\u51fb\u5373\u53ef\u8fdb\u5165 \u6709\u7684\u662f\u6ca1\u6709\u914d\u7f6enode-red\u5230\u5de6\u4fa7\u5bfc\u822a\u83dc\u5355\u7684\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u70b9\u51fb\"\u8bbe\u7f6e-\u52a0\u8f7d\u9879\"\u8fdb\u5165\u52a0\u8f7d\u9879\u9875\u9762 \u627e\u5230Node-RED\u52a0\u8f7d\u9879\uff0c\u70b9\u51fb\u8fdb\u5165 \u8fdb\u5165\u754c\u9762\u5982\u4e0b\uff1a","title":"1. \u6253\u5f00Node-RED\u7f16\u8f91\u5668"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#2_1","text":"\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\"\u83dc\u5355\"\u6309\u94ae\uff0c\u518d\u70b9\u5bfc\u5165\u3002 \u5728\u6b64\u5904\u8d34\u5165\u5de5\u4f5c\u6d41\u4ee3\u7801\uff0c\u6ce8\u610f\uff1a\u8981\u9009\u62e9\u5bfc\u5165\u5230\u65b0\u6d41\u7a0b \u5de5\u4f5c\u6d41\u4ee3\u7801\u5982\u4e0b [ { \"id\" : \"1407d4531e19a951\" , \"type\" : \"tab\" , \"label\" : \"\u900f\u6790\u4e2d\u5fc3\u73af\u5883\u6e29\u5ea6\u6570\u636e\u8f6c\u53d1\" , \"disabled\" : false , \"info\" : \"\u4eceHomeAssistant\u83b7\u53d6\u6e29\u5ea6\u4f20\u611f\u5668\u6570\u636e\u5e76\u53d1\u5e03\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\" }, { \"id\" : \"97e254f4a87ddde9\" , \"type\" : \"mqtt in\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8ba2\u9605HA\u6e29\u5ea6\u4f20\u611f\u5668\" , \"topic\" : \"homeassistant/sensor/+/state\" , \"qos\" : \"0\" , \"datatype\" : \"auto\" , \"broker\" : \"mqtt-ha-broker\" , \"nl\" : false , \"rap\" : true , \"rh\" : 0 , \"inputs\" : 0 , \"x\" : 150 , \"y\" : 100 , \"wires\" : [ [ \"44d729e67618e4f2\" ] ] }, { \"id\" : \"44d729e67618e4f2\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u5904\u7406\u6e29\u5ea6\u6570\u636e\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst targetDeviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\n\\n// \u4ecetopic\u4e2d\u63d0\u53d6\u5f53\u524d\u8bbe\u5907ID\\nconst topicParts = msg.topic.split('/');\\nconst currentDeviceId = topicParts.length >= 3 ? topicParts[2] : \\\"\\\";\\n\\n// \u53ea\u5904\u7406\u76ee\u6807\u8bbe\u5907\u7684\u6d88\u606f\\nif (currentDeviceId !== targetDeviceId) {\\n node.log(\\\"\u5ffd\u7565\u8bbe\u5907\u6d88\u606f: \\\" + currentDeviceId + \\\" (\u76ee\u6807\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n return null;\\n}\\n\\n// \u751f\u6210\u552f\u4e00\u7684\u6d88\u606fID\\nconst messageId = \\\"temp_\\\" + Date.now() + \\\"_\\\" + Math.floor(Math.random() * 1000);\\nconst timestamp = Date.now();\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u89e3\u6790\u6e29\u5ea6\u503c\\nlet temperature = parseFloat(msg.payload);\\nif (isNaN(temperature)) {\\n node.warn(\\\"\u63a5\u6536\u5230\u65e0\u6548\u7684\u6e29\u5ea6\u503c: \\\" + msg.payload);\\n return null;\\n}\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u683c\u5f0f\u5316\u6570\u636e\\nconst protocolMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": targetDeviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"value\\\": temperature,\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"quality\\\": \\\"good\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6e\u8f93\u51fa\u6d88\u606f\\nmsg.payload = JSON.stringify(protocolMessage);\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${targetDeviceId}/properties`;\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u6e29\u5ea6\u6570\u636e\u5df2\u5904\u7406: \\\" + temperature + \\\"\u00b0C (\u8bbe\u5907: \\\" + targetDeviceId + \\\")\\\");\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 420 , \"y\" : 100 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"573842ea77192dbb\" , \"type\" : \"mqtt out\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u5230\u516c\u53f8MQTT\" , \"topic\" : \"\" , \"qos\" : \"\" , \"retain\" : \"\" , \"respTopic\" : \"\" , \"contentType\" : \"\" , \"userProps\" : \"\" , \"correl\" : \"\" , \"expiry\" : \"\" , \"broker\" : \"mqtt-company-broker\" , \"x\" : 990 , \"y\" : 80 , \"wires\" : [] }, { \"id\" : \"4c630c164e08dc2c\" , \"type\" : \"debug\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8c03\u8bd5\u8f93\u51fa\" , \"active\" : true , \"tosidebar\" : true , \"console\" : false , \"tostatus\" : false , \"complete\" : \"payload\" , \"targetType\" : \"msg\" , \"statusVal\" : \"\" , \"statusType\" : \"auto\" , \"x\" : 1040 , \"y\" : 360 , \"wires\" : [] }, { \"id\" : \"495c392574ee1bf4\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u53d1\u5e03\u8bbe\u5907\u7269\u6a21\u578b\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"60\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"5\" , \"topic\" : \"shengtou/sensor/TH001_HA/model\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 170 , \"y\" : 180 , \"wires\" : [ [ \"3aea3ce2deb4ea99\" ] ] }, { \"id\" : \"3aea3ce2deb4ea99\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u7269\u6a21\u578b\u6570\u636e\" , \"func\" : \"const messageId = \\\"mdl_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u7269\u6a21\u578b\u5b9a\u4e49\\nconst modelMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"model\\\": {\\n \\\"deviceInfo\\\": {\\n \\\"manufacturer\\\": \\\"\u5c0f\u7c73\\\",\\n \\\"model\\\": \\\"MIAOMIAOC_CN_BLT_3_11A1SBR5K5O01_T2\\\",\\n \\\"version\\\": \\\"1.0.0\\\",\\n \\\"description\\\": \\\"\u7c73\u5bb6\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668(\u901a\u8fc7HomeAssistant\u96c6\u6210)\\\"\\n },\\n \\\"properties\\\": {\\n \\\"temperature\\\": {\\n \\\"dataType\\\": \\\"float\\\",\\n \\\"unit\\\": \\\"\u00b0C\\\",\\n \\\"range\\\": {\\n \\\"min\\\": -40,\\n \\\"max\\\": 85\\n },\\n \\\"precision\\\": 1,\\n \\\"description\\\": \\\"\u73af\u5883\u6e29\u5ea6\\\"\\n }\\n },\\n \\\"events\\\": {\\n \\\"startup\\\": {\\n \\\"eventType\\\": \\\"info\\\",\\n \\\"description\\\": \\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\\\"\\n }\\n },\\n \\\"alarms\\\": {\\n \\\"TEMP_HIGH\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u9ad8\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 35.0\\n },\\n \\\"TEMP_LOW\\\": {\\n \\\"alarmType\\\": \\\"threshold_exceeded\\\",\\n \\\"description\\\": \\\"\u6e29\u5ea6\u8fc7\u4f4e\u62a5\u8b66\\\",\\n \\\"defaultThreshold\\\": 0.0\\n }\\n }\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/model`;\\nmsg.payload = JSON.stringify(modelMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u7269\u6a21\u578b\u6570\u636e\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 160 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"70e1e283448c941e\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"120\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"10\" , \"topic\" : \"shengtou/sensor/TH001_HA/status\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 240 , \"wires\" : [ [ \"ae74b6d386748045\" ] ] }, { \"id\" : \"ae74b6d386748045\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u72b6\u6001\u6570\u636e\" , \"func\" : \"const messageId = \\\"sts_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u8ba1\u7b97\u8bbe\u5907\u8fd0\u884c\u65f6\u95f4\uff08\u4ece\u7b2c\u4e00\u6b21\u542f\u52a8\u5f00\u59cb\uff09\\nif (!context.get(\\\"startTime\\\")) {\\n context.set(\\\"startTime\\\", timestamp);\\n}\\nconst startTime = context.get(\\\"startTime\\\");\\nconst uptime = timestamp - startTime;\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u72b6\u6001\u6570\u636e\\nconst statusMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"status\\\": {\\n \\\"online\\\": true,\\n \\\"lastHeartbeat\\\": timestamp,\\n \\\"uptime\\\": uptime\\n }\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/status`;\\nmsg.payload = JSON.stringify(statusMessage);\\nmsg.qos = 0;\\n\\nnode.log(\\\"\u8bbe\u5907\u72b6\u6001\u5fc3\u8df3\u5df2\u53d1\u9001\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 400 , \"y\" : 240 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"7f9acf10d0c6085d\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u521d\u59cb\u5316\u5168\u5c40\u914d\u7f6e\" , \"props\" : [ { \"p\" : \"payload\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"1\" , \"topic\" : \"\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 150 , \"y\" : 40 , \"wires\" : [ [ \"6f6b825dfc5e9512\" ] ] }, { \"id\" : \"6f6b825dfc5e9512\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\" , \"func\" : \"// \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf\\nglobal.set(\\\"nameSpace\\\", \\\"Environment\\\");\\nglobal.set(\\\"clientCode\\\", \\\"Data-It_XzOffice\\\");\\nglobal.set(\\\"deviceId\\\", \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\");\\n\\nnode.log(\\\"\u5168\u5c40\u914d\u7f6e\u5df2\u8bbe\u7f6e: nameSpace=\\\" + global.get(\\\"nameSpace\\\") + \\\", clientCode=\\\" + global.get(\\\"clientCode\\\") + \\\", deviceId=\\\" + global.get(\\\"deviceId\\\"));\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 360 , \"y\" : 40 , \"wires\" : [ [ \"794c422d39898a7f\" ] ] }, { \"id\" : \"794c422d39898a7f\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u66f4\u65b0MQTT\u8ba2\u9605Topic\" , \"func\" : \"// \u4ece\u5168\u5c40\u53d8\u91cf\u751f\u6210HomeAssistant MQTT\u8ba2\u9605Topic\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst haTopic = `homeassistant/sensor/${deviceId}/state`;\\n\\n// \u5c06Topic\u4fdd\u5b58\u5230\u5168\u5c40\u53d8\u91cf\u4f9b\u5176\u4ed6\u5730\u65b9\u4f7f\u7528\\nglobal.set(\\\"haSubscribeTopic\\\", haTopic);\\n\\nnode.log(\\\"HomeAssistant\u8ba2\u9605Topic\u5df2\u66f4\u65b0: \\\" + haTopic);\\nnode.log(\\\"\u6ce8\u610f\uff1a\u5982\u9700\u66f4\u6539MQTT In\u8282\u70b9\u7684\u8ba2\u9605Topic\uff0c\u8bf7\u624b\u52a8\u4fee\u6539\u4e3a: \\\" + haTopic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 590 , \"y\" : 40 , \"wires\" : [ [] ] }, { \"id\" : \"3bf854e9bd3e6937\" , \"type\" : \"inject\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u542f\u52a8\u4e8b\u4ef6\" , \"props\" : [ { \"p\" : \"payload\" }, { \"p\" : \"topic\" , \"vt\" : \"str\" } ], \"repeat\" : \"\" , \"crontab\" : \"\" , \"once\" : true , \"onceDelay\" : \"15\" , \"topic\" : \"shengtou/sensor/TH001_HA/events\" , \"payload\" : \"\" , \"payloadType\" : \"date\" , \"x\" : 160 , \"y\" : 340 , \"wires\" : [ [ \"26f6196b2d6fba29\" ] ] }, { \"id\" : \"26f6196b2d6fba29\" , \"type\" : \"function\" , \"z\" : \"1407d4531e19a951\" , \"name\" : \"\u751f\u6210\u542f\u52a8\u4e8b\u4ef6\" , \"func\" : \"const messageId = \\\"evt_startup_\\\" + Date.now();\\nconst timestamp = Date.now();\\n// \u4ece\u5168\u5c40\u53d8\u91cf\u83b7\u53d6\u5171\u4eab\u914d\u7f6e\\nconst nameSpace = global.get(\\\"nameSpace\\\") || \\\"Environment\\\";\\nconst clientCode = global.get(\\\"clientCode\\\") || \\\"Data-It_XzOffice\\\";\\nconst deviceId = global.get(\\\"deviceId\\\") || \\\"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\\\";\\nconst deviceType = \\\"sensor\\\";\\n\\n// \u6309\u7167\u80dc\u900f\u7269\u8054\u7f51\u901a\u4fe1\u534f\u8bae\u751f\u6210\u4e8b\u4ef6\u6570\u636e\\nconst eventMessage = {\\n \\\"messageId\\\": messageId,\\n \\\"timestamp\\\": timestamp,\\n \\\"clientCode\\\": clientCode,\\n \\\"deviceId\\\": deviceId,\\n \\\"deviceType\\\": deviceType,\\n \\\"version\\\": \\\"1.0\\\",\\n \\\"data\\\": {\\n \\\"events\\\": [\\n {\\n \\\"eventType\\\": \\\"startup\\\",\\n \\\"eventLevel\\\": \\\"info\\\",\\n \\\"eventCode\\\": \\\"EVT_001\\\",\\n \\\"description\\\": \\\"HomeAssistant\u6e29\u5ea6\u4f20\u611f\u5668\u4ee3\u7406\u8bbe\u5907\u542f\u52a8\u5b8c\u6210\\\",\\n \\\"timestamp\\\": timestamp\\n }\\n ]\\n }\\n};\\n\\n// \u8bbe\u7f6eMQTT\u53d1\u5e03\u4e3b\u9898\\nmsg.topic = `${nameSpace}/sensor/${clientCode}/${deviceId}/events`;\\nmsg.payload = JSON.stringify(eventMessage);\\nmsg.qos = 1;\\n\\nnode.log(\\\"\u8bbe\u5907\u542f\u52a8\u4e8b\u4ef6\u5df2\u751f\u6210\uff0c\u53d1\u5e03\u5230\u4e3b\u9898: \\\" + msg.topic);\\n\\nreturn msg;\" , \"outputs\" : 1 , \"timeout\" : \"\" , \"noerr\" : 0 , \"initialize\" : \"\" , \"finalize\" : \"\" , \"libs\" : [], \"x\" : 380 , \"y\" : 320 , \"wires\" : [ [ \"573842ea77192dbb\" , \"4c630c164e08dc2c\" ] ] }, { \"id\" : \"mqtt-ha-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"HomeAssistant MQTT\" , \"broker\" : \"192.168.50.83\" , \"port\" : \"1883\" , \"clientid\" : \"\" , \"autoConnect\" : true , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"autoUnsubscribe\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"\" , \"willQos\" : \"0\" , \"willPayload\" : \"\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" }, { \"id\" : \"mqtt-company-broker\" , \"type\" : \"mqtt-broker\" , \"name\" : \"\u516c\u53f8MQTT\u670d\u52a1\u5668\" , \"broker\" : \"mqtt-test.ihemodialysis.com\" , \"port\" : \"62183\" , \"clientid\" : \"\" , \"usetls\" : false , \"protocolVersion\" : \"4\" , \"keepalive\" : \"60\" , \"cleansession\" : true , \"birthTopic\" : \"\" , \"birthQos\" : \"0\" , \"birthPayload\" : \"\" , \"birthMsg\" : {}, \"closeTopic\" : \"\" , \"closeQos\" : \"0\" , \"closePayload\" : \"\" , \"closeMsg\" : {}, \"willTopic\" : \"shengtou/sensor/TH001_HA/status\" , \"willQos\" : \"0\" , \"willPayload\" : \"{\\\"messageId\\\":\\\"sts_offline\\\",\\\"timestamp\\\":0,\\\"deviceId\\\":\\\"TH001_HA\\\",\\\"deviceType\\\":\\\"sensor\\\",\\\"version\\\":\\\"1.0\\\",\\\"data\\\":{\\\"status\\\":{\\\"online\\\":false,\\\"lastHeartbeat\\\":0,\\\"uptime\\\":0}}}\" , \"willMsg\" : {}, \"sessionExpiry\" : \"\" } ] \u5f53\u7136\uff0c\u4f60\u4e5f\u53ef\u4ee5\u4ece \u5de5\u4f5c\u6d41\u6587\u4ef6 \u5bfc\u5165\u65b0\u65b0\u5de5\u4f5c\u6d41\u3002 \u70b9\u51fb\u4e0a\u8ff0\u94fe\u63a5\u540e\uff0c\u4e0b\u8f7d\u6587\u4ef6\uff0c\u5e76\u89e3\u538b\uff0c\u5f97\u5230\u4e00\u4e2a\u540d\u4e3a flows.json \u7684\u6587\u4ef6\u3002 \u70b9\u51fb\u5bfc\u5165\u8282\u70b9\u6587\u4ef6\uff0c \u90e8\u7f72\u6210\u529f\u540e\uff0c\u4f1a\u51fa\u73b0\u5982\u4e0b\u56fe\u6240\u793a\u7684\u5de5\u4f5c\u6d41 \u6b64\u65f6\uff0c\u5de5\u4f5c\u6d41\u5df2\u521b\u5b8c\u6210.","title":"2. \u521b\u5efa\u65b0\u5de5\u4f5c\u6d41"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#3-mqtt","text":"\u5de5\u4f5c\u6d41\u4e2d\u6709\u4e24\u4e2aMQTT\u8282\u70b9\uff0c\u5206\u522b\u662fHome Assistant\u7684MQTT Broker\u548c\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u8fd9\u4e24\u4e2a\u8282\u70b9\u7684\u914d\u7f6e\u9700\u8981\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u8c03\u6574\u3002 \u9996\u5148\uff0c\u8981\u5148\u914d\u7f6eHome Assistant\u7684MQTT Broker\u8282\u70b9\uff0c\u786e\u4fdd\u5176\u8fde\u63a5\u4fe1\u606f\u6b63\u786e\u65e0\u8bef\u3002 \u5728\u6211\u4eec\u6ca1\u6709\u914d\u7f6emqtt in \u7684\u8fde\u63a5\u4fe1\u606f\u65f6\uff0c\u6211\u4eec\u53d1\u73b0\u8fd9\u4e2a\u8282\u70b9\u4e00\u76f4\u5904\u7406\u8fde\u63a5\u4e2d \u53cc\u51fb\u8be5\u8282\u70b9\uff0c\u8fdb\u5165\u914d\u7f6e\u754c\u9762 \u70b9\u51fb\u7f16\u8f91\u56fe\u6807 \u5728\u7f16\u8f91mqtt-broker\u8282\u70b9\u7684\u754c\u9762\u4e2d\u7684\u8fde\u63a5\u53c2\u6570\u9009\u9879\u5361\u4e2d\uff0c\u8f93\u5165\u6b63\u786e\u7684\u670d\u52a1\u7aef\u4e0e\u7aef\u53e3\u53f7 \u5982\u679cMQTT\u6709\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u8bf7\u5728\u8ba4\u8bc1\u9009\u9879\u5361\u4e2d\u8f93\u5165\u6b63\u786e\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u540e\uff0c\u7136\u540e\u70b9\u66f4\u65b0 \u7136\u540e\uff0c\u518d\u70b9\u51fb\u5b8c\u6210 \u6700\u540e\u70b9\u51fb\u90e8\u7f72 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u6b64\u8282\u70b9\u4f1a\u53d8\u4e3a\u5df2\u8054\u63a5 \u5bf9\u4e8e\"\u53d1\u5e03\u5230\u516c\u53f8MQTT\"\u8282\u70b9\uff0c\u6211\u4eec\u9700\u8981\u914d\u7f6e\u8fde\u63a5\u5230\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684Broker\u3002\u4e5f\u65f6\u540c\u6837\u7684\u64cd\u4f5c\u65b9\u6cd5\uff0c\u53cc\u51fb \u7136\u540e\uff0c\u66f4\u65b0\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72\u5373\u53ef\u3002 \u67e5\u627eHomeAssistant\u7684Mqtt\u914d\u7f6e\u4fe1\u606f \u5bf9\u4e8eHomeAssistant\u6211\u4eec\u4e00\u822c\u90fd\u662f\u63d0\u524d\u90e8\u7f72\u4e86\u5185\u7f6e\u7684MQTT Broker,\u5728\u4e0d\u77e5\u7aef\u53e3\u4e0e\u5bc6\u7801\u7684\u60c5\u51b5\u4e0b\uff0c\u6211\u6837\u53ef\u4ee5\u5728HomeAssistant\u4e2d\u53bb\u67e5\u627e \u8fdb\u5165\u8bbe\u7f6e\u52a0\u8f7d\u9879 \u627e\u5230Mosquitto broker\u8fd9\u4e2a\u9009\u9879\u5361,\u70b9\u51fb\u8fdb\u5165 \u70b9\u51fb\u914d\u7f6e\u9009\u9879\u5361 \u5728\u8fd9\u91cc\u53ef\u4ee5\u770b\u5230MQTT\u7684\u7aef\u53e3\u53f7\u4e0e\u7528\u6237\u540d\u5bc6\u7801\u7b49\u4fe1\u606f\uff0c\u53ca\u4e0b\u9762\u7684mqtt\u5f00\u653e\u7684\u7aef\u53e3\u4fe1\u606f\uff0cip\u5730\u5740\uff0c\u5c31\u662fha\u4e3b\u673a\u6240\u5728\u7684Ip\u5730\u5740\u3002\u4ee5\u4e0a\u4fe1\u606f\uff0c\u7528\u6765\u914d\u7f6e\u5de5\u4f5c\u6d41\u7684mqtt in\u7684\u53c2\u6570\u3002 \u516c\u53f8mqtt\u670d\u52a1\u7aef\u53e3\u4fe1\u606f \u8fd9\u4e2a\u53c2\u6570\uff0c\u8bf7\u5411\u516c\u53f8\u7ba1\u7406\u5458\u83b7\u53d6\uff0c\u6216\u8005\u5728\u516c\u53f8MQTT\u670d\u52a1\u5668\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u67e5\u770b\u3002","title":"3. \u914d\u7f6eMQTT\u8282\u70b9"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#4","text":"\u53cc\u51fb\u5de5\u4f5c\u6d41\u7684\u8282\u70b9\"\u8bbe\u7f6e\u5168\u5c40\u914d\u7f6e\",\u6253\u5f00\u7f16\u8f91function\u8282\u70b9 \u5bf9\u5982\u4e0b\u4e09\u884c,\u8fdb\u884c\u66f4\u6539 // \u8bbe\u7f6e\u5168\u5c40\u5171\u4eab\u5e38\u91cf global . set ( \"nameSpace\" , \"Environment\" ); //\u547d\u540d\u7a7a\u95f4\uff0c\u9ed8\u8ba4\u4e3a\uff1aEnvironment\uff0c\u5982\u679c\u6709\u9700\u8981\uff0c\u4ee5\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u540e\uff0c\u66f4\u6539. global . set ( \"clientCode\" , \"Data-It_XzOffice\" ); // \u5ba2\u6237\u7aef\u4ee3\u7801\uff0c\u9ed8\u8ba4\u4e3a\uff1aData-It_XzOffice\uff0c\u4e00\u5b9a\u8981\u6539\u4e3a\u4e2d\u5fc3\u5bf9\u5c31\u7684ClientCode\uff0c global . set ( \"deviceId\" , \"sensor.miaomiaoc_cn_blt_3_11a1sbr5k5o01_t2_temperature_p_2_1\" ); //\u4e00\u5b9a\u8981\u6539\u4e3a\u4e4b\u524d\u6211\u4eec\u5b9a\u7684\u4f20\u611f\u5668\u5b9e\u4f53ID \u5982\u679c\u4e0d\u786e\u5b9a\uff0c\u8bf7\u8054\u7cfb\u76f8\u5173\u5de5\u7a0b\u5e08\u786e\u8ba4\u3002 \u7136\u540e\uff0c\u70b9\u51fb\uff0c\u5b8c\u6210\uff0c\u90e8\u7f72 \u7136\u540e\uff0c\u4e0b\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u4e00\u5b9a\u8981\u6267\u884c \u8fd9\u4e00\u6b65\uff0c\u975e\u5e38\u91cd\u8981\uff0c\u5fc5\u987b\u6267\u884c\uff0c\u5426\u5219\u5de5\u4f5c\u6d41\u6ca1\u6709\u628a\u5168\u5c40\u53d8\u91cf\u5199\u5165\u5de5\u4f5c\u6d41\uff0c\u4f1a\u5bfc\u81f4\u53d1\u5e03\u6570\u636e\u4e0d\u6b63\u786e\u3002 \u7136\u540e\uff0c\u6211\u6837\u5c31\u53ef\u4ee5\u7528\u5728debug\u7684\u65e5\u5fd7\u4e2d\u770b\u5230\u6211\u4eec\u53d1\u5e03\u7684\u8282\u70b9\u6570\u636e\u4e86\uff0c \u6b64\u56fe\uff0c\u53ef\u4ee5\u89c2\u5bdf\u5230mqtt\u53d1\u5e03\u5230\u516c\u53f8\u7684\u6570\u636e\uff0cclientCode\uff0cdeviceid\u662f\u5426\u6b63\u5e38\u4e86\u3002","title":"4.\u914d\u7f6e\u5de5\u4f5c\u6d41\u5168\u5c40\u53d8\u91cf"},{"location":"Usages/QA/%E9%80%8F%E6%9E%90%E4%B8%AD%E5%BF%83HA%E7%8E%AF%E5%A2%83%E6%B8%A9%E5%BA%A6%E5%8F%91%E9%80%81%E5%88%B0%E8%83%9C%E9%80%8F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97/#5","text":"\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u7b2c\u4e09\u65b9\u5de5\u5177\u6765\u67e5\u770b\u516c\u53f8mqtt\u670d\u52a1\u6536\u5230\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38\u5982\u4e0b\u56fe \u8fd9\u91cc\u6211\u63a8\u8350\u4f7f\u7528\u5de5\u5177 MQTTX \u4e0b\u8f7d\u5730\u5740\u4e3a\uff1ahttps://mqttx.app/downloads \u81f3\u6b64,\u900f\u6790\u4e2d\u5fc3HA\u73af\u5883\u6e29\u5ea6\u6570\u636e\u53d1\u9001\u5230\u80dc\u900f\u7684\u5de5\u4f5c\u6d41\u914d\u7f6e\u5b8c\u6210\u3002","title":"5. \u6d4b\u8bd5\u5de5\u4f5c\u6d41\u7684\u6570\u636e\u662f\u5426\u6b63\u5e38"},{"location":"Usages/backupAndRestore/BackupToFile/","text":"\u5907\u4efd\u5230\u6587\u4ef6 \u00b6","title":"BackupToFile"},{"location":"Usages/backupAndRestore/BackupToFile/#_1","text":"","title":"\u5907\u4efd\u5230\u6587\u4ef6"},{"location":"Usages/backupAndRestore/RestoreFromFile/","text":"\u4ece\u5907\u4efd\u6587\u4ef6\u6587\u4ef6\u4e2d\u6062\u590d \u00b6 HomeAssistant\u652f\u6301\u4ece\u5907\u4efd\u6587\u4ef6\u4e32\u6062\u590d\u5df2\u914d\u7f6e\u597d\u7684HomeAssistant","title":"RestoreFromFile"},{"location":"Usages/backupAndRestore/RestoreFromFile/#_1","text":"HomeAssistant\u652f\u6301\u4ece\u5907\u4efd\u6587\u4ef6\u4e32\u6062\u590d\u5df2\u914d\u7f6e\u597d\u7684HomeAssistant","title":"\u4ece\u5907\u4efd\u6587\u4ef6\u6587\u4ef6\u4e2d\u6062\u590d"},{"location":"Usages/initConfig/initConfig/","text":"\u521d\u59cb\u5316\u914d\u7f6eHomeAssistant \u00b6 \u9996\u6b21\u6253\u5f00HomeAssistant \u00b6 \u9996\u6b21\u6253\u5f00HomeAssistant\u901a\u8fc7,\u8def\u7531\u5668\u4e3a\u5176\u5206\u914d\u7684IP\u5730\u5740\u52a0\u7aef\u53e3\u53f7\u5373\u53ef\u8fdb\u884cHomeAssistant. \u683c\u5f0f\u5982\u4e0b: http://Ip:Port \u5982:http://192.168.3.2:8123 \u57fa\u4e2d:8123\u4e3a\u5176\u9ed8\u8ba4\u7684\u7aef\u53e3\u540e,\u5f53\u7136,\u7cfb\u7edf\u521d\u59cb\u5316\u6210\u529f\u540e,\u53ef\u4ee5\u6539. \u5982\u4e0b\u56fe\u6240\u793a: \u70b9\u51fb\"\u521b\u5efa\u6211\u667a\u80fd\u5bb6\u5bb6\u5c45\"\u6309\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5728\u8fd9\u91cc\u6211\u4eec\u8f93\u5165\u59d3\u540d,\u7528\u6237\u540d,\u5bc6\u7801,\u786e\u8ba4\u5bc6\u7801 \u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u7edf\u4e00\u7684\u4fe1\u606f \u59d3\u540d:\u5cb1\u7279\u667a\u80fd \u7528\u6237\u540d:dtuser \u5bc6\u7801:****** \u786e\u8ba4\u5bc6\u7801:***** \u6ce8\u610f:\u4e0a\u8ff0\u5bc6\u7801\u4e3a\u4e86\u5b89\u5168,\u6ca1\u6709\u663e\u793a,\u8bf7\u54a8\u8be2\u7cfb\u7edf\u7ba1\u7406\u5458\u83b7\u53d6\u771f\u6b63\u7684\u5bc6\u7801. \u70b9\u51fb\"\u521b\u5efa\u5e10\u6237\", \u8fd9\u4e00\u6b65,\u4f1a\u8981\u6c42\u4f60\u8f93\u5165\u4f4d\u7f6e,\u8f93\u5165\u57ce\u5e02\u70b9\u83b7\u53d6,\u5982\u679c\u53d6\u4e0b\u5230\u4f1a\u62a5\u9519.\u6ca1\u5173\u7cfb,\u76f4\u63a5\u4e0b\u4e00\u6b65\u5373\u53ef,\u7cfb\u7edf\u914d\u7f6e\u5b8c\u6210\u540e,\u8fd8\u53ef\u66f4\u6539. \u8fd9\u4e00\u6b65\u662f\u8981\u6c42,\u4f60\u8f93\u4e0b\u6240\u5c5e\u7684\u56fd\u5bb6\u4e0e\u5730\u533a,\u5b83\u4f1a\u81ea\u52a8\u5224\u65ad\u51fa\u6765,\u56fd\u5bb6,\u76f4\u63a5\u70b9\u4e0b\u4e00\u6b65\u5373\u53ef. \u6b64\u65f6,\u5b83\u53ef\u80fd\u8fd8\u4f1a\u5f39\u51fa\u4e00\u4e2a\u5bf9\u8bdd\u6846\u6846,\u5e2e\u4f60\u68c0\u6d4b\u4f4d\u7f6e ,\u70b9\u786e\u5b9a\u5373\u53ef \u5982\u679c\u4e0d\u60f3\u8ba9\u5176\u68c0\u6d4b,\u76f4\u63a5\u70b9\u53d6\u6d88\u5373\u53ef,\u56e0\u4e3a\u5176\u68c0\u6d4b\u6298\u53ef\u80fd\u5f88\u6162,\u6240\u4ee5,\u76f4\u63a5\u70b9\u53d6\u6d88,\u9009\u62e9\u4e2d\u56fd\u5373\u53ef. \u8fd9\u91cc\u7684\u51e0\u9879,\u5168\u90e8\u4e0d\u7528\u9009,\u76f4\u63a5\u4e0b\u4e00\u6b65 \u8fd9\u4e00\u6b65,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u626b\u63cf\u5c40\u57df\u7f51\u4e2d\u7684\u80fd\u76f4\u63a5\u5165\u7684\u8bbe\u5907.\u76f4\u63a5\u70b9\u51fb\u5b8c\u6210, \u7136\u540e,\u7cfb\u7edf\u4f1a\u8f6c\u5230\u5982\u4e0b\u754c\u9762 \u53ef\u80fd\u8981\u6301\u7eed\u4e00\u9635,\u7b49\u5f85\u5176\u5b8c\u6210\u5373\u53ef. \u5f00\u59cb\u7b2c\u4e00\u6b21,\u53ef\u80fd\u5f88\u6162 \u9996\u6b21\u5b8c\u6210\u5982\u4e0b\u663e\u793a \u66f4\u65b0\u5fc5\u8981\u7684\u7ec4\u4ef6 \u00b6 \u9996\u6b21\u767b\u5f55,\u53ef\u80fd\u4f1a\u663e\u793a\u66f4\u65b0,\u5982\u6b64\u65f6\u663e\u793a \u63d0\u793a\u66f4\u65b0Home Assistnat Operating System Update,\u70b9\u51fb\u5982\u4e0b\u6309\u94ae,\u4ee5\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\uff0c\u70b9\u66f4\u65b0\u6309\u94ae \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u7cfb\u7edf\u5c06\u4f1a\uff0c\u8fdb\u884c\u66f4\u65b0 \u6ce8\u610f\uff0c\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u4e00\u822c\u662f\u4ece\u4e24\u4e2a\u5730\u65b9\u83b7\u53d6\u66f4\u65b0\u5305\uff0c\u4e00\u662fgithub\u4e00\u4e2a\u662fdocker\u7684\u4ed3\u5e93\uff0c\u6240\u4ee5\uff0c \u8981\u4fdd\u6301\u79d1\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u3002\u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u4f30\u8ba1\u8981\u51e0\u5206\u949f\uff0c\u9700\u8981\u8010\u5fc3\u7b49\u7b49\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u66f4\u65b0\u5931\u8d25\uff0c\u7136\u540e\uff0c\u518d\u6b21\u66f4\u65b0\u3002 \u66f4\u65b0\u65f6,\u5982\u679c\u7f51\u7edc\u6709\u95ee\u9898\u53ef\u80fd\u4f1a\u51fa\u5728\u65e5\u5fd7 \u4e2d\u62a5\u51fa\u5982\u4e0b\u9519\u8bef aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.439 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') [09:26:17] INFO: Home Assistant Core finish process exit code 0 [09:26:17] INFO: Home Assistant Core service shutdown s6-rc: info: service legacy-services successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun home-assistant (no readiness notification) s6-rc: info: service legacy-services successfully started 2025-04-16 17:28:26.876 ERROR (MainThread) [homeassistant.components.homeassistant_alerts.coordinator] Timeout fetching homeassistant_alerts data 2025-04-16 17:51:56.276 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.update 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain cloud.tts 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain mobile_app.notify 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain backup.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain energy.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain sun.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain homeassistant.scene 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.binary_sensor 2025-04-16 17:51:56.280 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.sensor \u4e0a\u8ff0\u9519\u8bef\u591a\u662f\u7531\u4e8e\u7f51\u7edc\u95ee\u9898\u5f15\u8d77\u7684,\u8981\u53bb\u68c0\u662f\u79d1\u5b66\u4e0a\u7f51\u662f\u5426\u8fd8\u6b63\u5e38. \u66f4\u5b8c\u5b8c\u6210\u540e,\u518d\u6b21\u542f\u52a8\u540e,\u4f1a\u663e\u793a\u6ca1\u6709\u53ef\u7528\u7684\u66f4\u65b0 \u914d\u7f6e-\u901a\u7528 \u00b6 \u70b9\u51fb,\u5f00\u59cb,\u901a\u7528 \u66f4\u6539\u540d\u79f0\u4e3a:\u5cb1\u7279\u667a\u80fd \u5176\u5b83\u7684\u4e0d\u53d8 #### \u914d\u7f6e-\u7f51\u7edc-\u4e3b\u673a\u540d \u628a\u4e3b\u673a\u540d\u914d\u7f6e\u6210\u4e3a\u5c40\u57df\u7f51\u4e2d\u552f\u4e00\u7684,\u5b9e\u9645\u8ba9\u5c31\u662f\u8ba1\u7b97\u673a\u540d,\u56e0\u4e3a\u540c\u4e00\u5c40\u57df\u7f51\u4e2d,\u8ba1\u7b97\u673a\u540d,\u4e0d\u5141\u8bb8\u76f8\u540c \u914d\u7f6e-\u8bbe\u7f6e-\u52a0\u8f7d\u9879 \u00b6 \u52a0\u8f7d\u9879\u4e2d\u6709\u8bb8\u591a\u5fc5\u88c5\u7ec4\u4ef6,\u9700\u8981\u4e00\u4e00\u5b89\u88c5,\u9996\u6b21\u8fdb\u5165\u65f6,\u53ef\u80fd\u4f1a\u663e\u793a\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u4e0b\u89d2\u7684\"\u52a0\u8f7d\u9879\u5546\u5e97\" \u5b89\u88c5File editor \u00b6 File editor \u662f\u4e00\u4e2a\u7528\u4e8e\u4fee\u6539HA\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u96c6\u6210\u5de5\u5177,\u5c5e\u5fc5\u88c5\u9879,\u70b9\u51fb\u5b89\u88c5 \u70b9\u51fb\u5b89\u88c5,\u7cfb\u7edf\u4f1a\u5728\u540e\u53f0\u81ea\u52a8\u5b89\u88c5\u6b64\u63d2\u4ef6, \u5b89\u88c5\u5b8c\u6210\u540e,\u4f1a\u81ea\u52a8\u91cd\u542f \u6709\u65f6\u4e5f\u4f1a\u63d0\u793a\u5b89\u88c5\u5931\u8d25 \u8fd9\u79cd\u7ecf\u67e5\u770b\u65e5\u5fd7 \u591a\u4e3a\u7f51\u5f3a\u884c\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee.docker.io,\u8fd9\u662f\u56e0\u4e3a\u79d1\u5b66\u4e0a\u98ce\u7684\u539f\u56e0,\u91cd\u70b9\u6392\u67e5\u7f51\u7edc,\u5b89\u88c5\u6210\u529f\u540e,\u518d\u6b21\u8fdb\u5165\u4f1a\u663e\u793a\u5982\u4e0b\u754c\u9762 \u52fe\u9009,\u5f00\u673a\u542f\u52a8,\u81ea\u52a8\u6062\u590d,\u663e\u793a\u4e8e\u4fa7\u8fb9\u680f \u70b9\u51fb\u542f\u52a8,\u6216\u91cd\u542f,\u5c06\u4f1a\u5728\u4fa7\u8fb9\u680f\u770b\u5230\u6b64\u56fe\u6807,\u70b9\u51fb\u6253\u5f00\u7f51\u9875\u754c\u9762 \u80fd\u770b\u5230\u5982\u4e0b\u754c\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u6b64\u65f6\u52a0\u8f7d\u9879\u4e2d,\u5c31\u591a\u51fa\u4e86File editor\u9009\u9879 \u5b89\u88c5Samba share\u63d2\u4ef6 \u00b6 Samba share\u63d2\u4ef6\u662f\u4e00\u4e2a\u63d0\u4f9b\u5171\u4eab\u76ee\u5f55\u7684\u65b9\u5f0f\u5141\u884c\u5176\u5b83\u8ba1\u7b97\u673a\u7528\u8fd9\u79cd\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91ha\u7684\u6587\u4ef6\u7684\u7ec4\u4ef6. \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5931\u8d25\u65f6,\u4f1a\u6709\u5982\u4e0b\u63d0\u4e0b\u63d0\u793a \u6253\u5f00\u81ea\u52a8\u6062\u590d \u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5230\u914d\u7f6e\u9009\u9879\u4e2d \u6b64\u5904\u6211\u4eec\u8bbe\u7f6e\u5982\u4e0b\u4fe1\u606f Username:dtuser Password:***** # \u6b64\u5904\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 Workgroup:WORKGROUP # \u4fdd\u6301\u4e0d\u53d8 \u66f4\u6539\u5b8c\u6210\u540e,\u6709\u5982\u4e0b\u914d\u7f6e \u914d\u7f6e \u5b8c\u6210\u540e,\u70b9\u51fb\u542f\u52a8 \u542f\u52a8\u6210\u529f\u540e,\u4f1a\u51fa\u4e0b\u56fe\u663e\u793a \u6b64\u65f6,\u5982\u679c,\u4e0eHA\u5728\u540c\u4e00\u5c40\u57df\u7f51\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u67e5\u770bHA\u7684\u6587\u4ef6\u76ee\u5f55 \u5728\u5730\u5740\u680f\u8f93\u5165\\HA\u7684IP \u8f93\u5165\u9884\u8bbe\u7684\u7528\u6237\u540d\u4e0e\u5bc6\u7801,\u5373\u53ef\u67e5\u770b,\u7f16\u8f91HA\u7684\u5404\u79cd\u6587\u4ef6\u3002 \u5b89\u88c5Terminal & SSH \u00b6 Terminal & SSH \u63d2\u4ef6\u4e3aHA\u63d0\u4f9b\u4e86\u5728web\u7aef\u4f7f\u7528\u63a7\u5236\u53f0\u7ec8\u7aef\u529f\u80fd,\u53ca\u5f00\u542f\u4e86ssh\u670d\u52a1,\u4f7f\u4e4b\u53ef\u4ee5\u8fdc\u7a0b\u4f7f\u7528SSH\u8bbf\u95eeHA\u7ec8\u7aef\u3002 \u5728\u641c\u7d22\u4e2d\u8f93\u5165Terminal & SSH \u7ed3\u679c\u6709\u53ef\u80fd\u663e\u793a \u641c\u7d22\u4e0d\u5230\uff0c\u8fd9\u65f6\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u4ed3\u5e93\u6ca1\u6709\u914d\u7f6e\uff0c\u8fd8\u662f\u4f7f\u7528\u7684\u9ed8\u8ba4\u7684\u4ed3\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u589e\u52a0\u4e00\u4e0b\u4ed3\u5e93\uff0c\u5982\u4e0b\uff1a https://github.com/AlexxIT/hassio-addons \u70b9\u51fb\u53f3\u4e0a\u89e3\u7684\u4e09\u4e2a\u70b9,\u9009\u4e2d\u4ed3\u5e93 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165,\u6211\u4eec\u8bb0\u5f55\u7684\u4ed3\u5e93\u5730\u5740,\u7136\u540e\u70b9\u6dfb\u52a0 \u5b8c\u6210\u540e,\u70b9\u51fb\u5173\u95ed. \u7136\u540e,\u70b9\u51fb\u8fd4\u56de,\u91cd\u65b0\u641c\u7d22 \u8fd9\u6b21\u627e\u5230\u4e86Advance SSH & Web Terminal \u70b9\u51fb\u5b89\u88c5,\u6253\u5f00\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u5b89\u88c5,\u6709\u65f6\u4f1a\u5b89\u88c5\u5931\u8d25, \u5931\u8d25\u540e,\u9700\u518d\u6b21\u5b89\u88c5,\u540c\u65f6\u68c0\u67e5\u65e5\u5fd7\u4e2d\u63d0\u5230\u7684\u54ea\u4e2a\u7f51\u5740\u65e0\u6cd5\u8bbf\u95ee ,\u628a\u5176\u52a0\u79d1\u5b66\u4e0a\u7f51\u7684\u4ee3\u7406\u540d\u5355\u4e2d. \u5b89\u88c5\u5b8c\u6210\u540e,\u5c31\u53d8\u6210\u5982\u4e0b \u5f00\u542f\u81ea\u52a8\u6062\u5f97,\u663e\u793a\u4fa7\u8fb9\u680f \u63a5\u4e0b\u6765,\u6211\u4eec\u914d\u7f6essh\u7684\u767b\u5f55\u4fe1\u606f,\u5982\u4e0b \u76f8\u5173\u4fe1\u606f\u5982\u4e0b: username:dtuser passsword:**** # \u6b64\u5904\u9700\u8981\u54a8\u8be2\u7ba1\u7406\u5458 \u5176\u5b83\u914d\u7f6e\u9009\u9879\u5982\u4e0b,\u6ce8\u610f\u9009\u9879,\u9009\u9519\u4e86ssh\u53ef\u80fd\u542f\u4e0d\u8d77\u6765,sftp\u5173\u95ed,zsh\u5173\u95ed.compatibility_mode\u8981\u5f00\u542f \u7136\u540e,\u70b9\u51fb\u542f\u52a8\u6309\u94ae \u542f\u52a8\u540e\u5982\u4e0b \u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u5730\u65b9\u8fdb\u5165 \u5728\u65e5\u5fd7 \u7aef\u80fd\u770b\u5230 ssh\u5df2\u542f\u52a8\u6210\u529f s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-ssh: starting s6-rc: info: service init-mysql: starting s6-rc: info: service init-mosquitto: starting s6-rc: info: service init-docker: starting s6-rc: info: service init-docker successfully started s6-rc: info: service init-mysql successfully started s6-rc: info: service init-mosquitto successfully started [14:51:05] WARNING: [14:51:05] WARNING: Logging in with a SSH password is security wise, a bad idea! [14:51:05] WARNING: Please, consider using a public/private key pair. [14:51:05] WARNING: What is this? https://kb.iu.edu/d/aews [14:51:05] WARNING: [14:51:05] NOTICE: RSA host key missing, generating one... Generating public/private rsa key pair. Your identification has been saved in /data/ssh_host_rsa_key Your public key has been saved in /data/ssh_host_rsa_key.pub The key fingerprint is: SHA256:+9pEl2QvyUqsu4B3gnPjhL/Ab71iBIDjWRdYvgZeg0c root@a0d7b954-ssh The key's randomart image is: +---[RSA 3072]----+ | . oE. | |o .o+. | |..o+.= o | | o. = o . + + | | . + S + * . | | ..+. = o . | | B.B.+ o | | X+=.= | | o=o=+o | +----[SHA256]-----+ [14:51:08] NOTICE: ED25519 host key missing, generating one... Generating public/private ed25519 key pair. Your identification has been saved in /data/ssh_host_ed25519_key Your public key has been saved in /data/ssh_host_ed25519_key.pub The key fingerprint is: SHA256:MgbUsAJ+23skjVTwD0pWVRBCmZ0BjU3jwV/99gGnNVc root@a0d7b954-ssh The key's randomart image is: +--[ED25519 256]--+ |. o+o*%O*. . E| |.. . .=+o*o o =.| | ...o+ o .. . = +| | ..*.+ o . . .o| | . =+oS. .o| | .+o .| | . . | | . | | | +----[SHA256]-----+ s6-rc: info: service init-ssh successfully started s6-rc: info: service init-user: starting [14:51:08] NOTICE: Session sharing has been disabled! s6-rc: info: service init-user successfully started s6-rc: info: service ttyd: starting s6-rc: info: service sshd: starting s6-rc: info: service sshd successfully started s6-rc: info: service ttyd successfully started s6-rc: info: service legacy-services: starting [14:51:09] INFO: Starting the ttyd daemon... [14:51:09] INFO: Starting the SSH daemon... s6-rc: info: service legacy-services successfully started Server listening on 0.0.0.0 port 22. Server listening on :: port 22. \u914d\u7f6e\u6210\u529f\u540e,\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u6765\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u8fdc\u7a0bSSH\u8fde\u5165 \u8f93\u5165yes\u540e\u4f1a\u8981\u6c42 \u8f93\u5165\u5bc6\u7801,\u9a8c\u8bc1\u6b63\u786e\u540e,\u4f1a\u8fdb\u5165\u770b\u5230\u5982\u4e2a\u56fe,\u5c31\u8bf4\u660essh\u5df2\u6b63\u5e38\u7684\u5f00\u542f\u6210\u529f\u4e86 \u4ee5\u4e0b\u754c\u9762\u662f\u5728ha\u4e2d\u770b\u5230\u7684\u5185\u7f6e\u7684ssh \u5176\u5b83,\u5f53\u8bbf\u95ee\u4e00\u4e9b\u7cfb\u7edf\u64cd\u4f5c\u65e0\u6743\u9650\u65f6,\u53ef\u4ee5\u5173\u95ed\u4fdd\u62a4\u5f00\u5173 \u5b89\u88c5Mosquitto broker \u00b6 Mosquitto broker\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u63d2\u4ef6,\u5176\u63d0\u4f9b\u7684MQTT \u670d\u52a1\u4e3a\u516c\u53f8\u5927\u591a\u6570\u6570\u8bbe\u5907\u6298\u96c6\u6210\uff0cmqtt\u901a\u4fe1\u901a\u9053\uff0c\u6240\u4ee5\uff0c\u6b64\u4e3a\u5fc5\u88c5\u63d2\u4ef6\u3002 \u70b9\u51fb\u5b89\u88c5 \u770b\u5230\u5982\u4e0b\u754c\u9762\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\uff0c \u63a5\u4e0b\u6765\u662f\u914d\u7f6emqtt \u5f00\u542f\u81ea\u52a8\u6062\u590d \u00b6 \u914d\u7f6emqtt\u7684\u7528\u6237\u540d\u5bc6\u7801\u53ca\u5b9a\u5236\u914d\u7f6e \u00b6 username:dtuser password:****** #\u6b64\u5904\u7684\u5bc6\u7801\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 \u914d\u7f6e\u5b8c\u6210\u540e,\u542f\u52a8mqtt\u670d\u52a1 \u65e5\u5fd7\u4e2d\u663e\u793a\u5982\u4e0b\u4fe1\u606f,\u8bf4\u660e\u6210\u529f s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting cont-init: info: running /etc/cont-init.d/mosquitto.sh [16:33:27] INFO: Setting up user dtuser [16:33:28] INFO: SSL is not enabled cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0 cont-init: info: running /etc/cont-init.d/nginx.sh cont-init: info: /etc/cont-init.d/nginx.sh exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun mosquitto (no readiness notification) services-up: info: copying legacy longrun nginx (no readiness notification) [16:33:29] INFO: Starting NGINX for authentication handling... s6-rc: info: service legacy-services successfully started [16:33:29] INFO: Starting mosquitto MQTT broker... 2025-04-17 16:33:29: Warning: Mosquitto should not be run as root/administrator. 2025-04-17 16:33:29: mosquitto version 2.0.20 starting 2025-04-17 16:33:29: Config loaded from /etc/mosquitto/mosquitto.conf. 2025-04-17 16:33:29: Loading plugin: /usr/share/mosquitto/go-auth.so 2025-04-17 16:33:29: \u251c\u2500\u2500 Username/password checking enabled. 2025-04-17 16:33:29: \u251c\u2500\u2500 TLS-PSK checking enabled. 2025-04-17 16:33:29: \u2514\u2500\u2500 Extended authentication not enabled. 2025-04-17 16:33:29: Opening ipv4 listen socket on port 1883. 2025-04-17 16:33:29: Opening ipv6 listen socket on port 1883. 2025-04-17 16:33:29: Opening websockets listen socket on port 1884. 2025-04-17 16:33:29: mosquitto version 2.0.20 running 2025-04-17 16:33:29: New connection from ::1:56336 on port 1883. 2025-04-17 16:33:29: Client <unknown> disconnected due to protocol error. [16:33:30] INFO: Successfully send discovery information to Home Assistant. [16:33:31] INFO: Successfully send service information to the Supervisor. \u5f53\u6d88\u606f,\u63d0\u793a\u53d1\u73b0\u8bbe\u5907\u65f6,\u70b9\u51fb,\u5f39\u51fa\u7684\u6d88\u606f\u4e2d,\u70b9check it out,\u7136\u540e,\u770b\u5230\u5df2\u53d1\u73b0mqtt,\u70b9\u51fb\u6dfb\u52a0 \u7136\u540e,\u70b9\u51fb\u5b8c\u6210 \u7136\u540e\u5c31\u4f1a\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u96c6\u6210\u4e2d,\u663e\u793aMqtt,\u4ee5\u540e,\u6240\u6709\u589e\u52a0\u7684MQTT\u7c7b\u8bbe\u5907\uff0c\u90fd\u4f1a\u663e\u793a\u5728\u8fd9\u4e2a\u7c7b\u522b\u4e2d\u3002 \u5b89\u88c5Node-RED\u63d2\u4ef6 \u00b6 Node-Red\u63d2\u4ef6\u662f\u6211\u4eec\u96c6\u4e2d\u5404\u79cd\u8bbe\u5907\u7684\u91cd\u8981\u6d88\u606f\u5904\u7406\u8f6c\u6362\u63d2\u4ef6,\u5c5e\u5fc5\u88c5\u63d2\u4ef6. \u5728\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22nod\u663e\u793a\u5982\u4e0b \u70b9\u51fb,\u8fdb\u5165\u8be6\u7ec6\u9875\u9762 \u70b9\u51fb\u5b89\u88c5 \u5982\u679c\u5b89\u88c5\u51fa\u9519,\u591a\u534a\u662f\u79d1\u5b66\u4e0a\u7f51\u7684\u95ee\u9898, \u5982\u73b0\u5982\u4e0b\u9875\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u5f00\u542f\u81ea\u52a8\u6062\u590d,\u5173\u95ed\u4fa7\u8fb9\u680f \u914d\u7f6enod-red \u6b64\u5904\u7684\u914d\u7f6e\u4fe1\u606f\u4e3a username:admin password:**** #\u6b64\u5904\u7684\u5bc6\u7801,\u8bf7\u5411\u7ba1\u7406\u5458\u83b7\u53d6 ### \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5173\u95edssl \u7136\u540e\u542f\u52a8node-red \u70b9\u51fb\u6253\u5f00web-\u9875\u9762\u5982\u4e0b \u5b89\u88c5go2rtc\u63d2\u4ef6 \u00b6 go2rtc\u63d2\u4ef6\u662f\u4e3a\u4e86\u5bf9\u89c6\u6d41\u8f6c\u53d1\u7528\u7684\u4e13\u7528\u63d2\u4ef6,\u5982\u679c\u60f3\u628a\u76d1\u63a7\u89c6\u9891\u6d41\u63a5\u5165,\u5219\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u63d2\u4ef6,\u5b89\u88c5\u65b9\u6cd5\u662f,\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22go2rtc, \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5b8c\u6210\u540e\u5f00\u542f\u81ea\u52a8\u6062\u590d,\u81ea\u52a8\u66f4\u65b0 \u5176\u8bbe\u7f6e\u4e2d\u57fa\u672c\u6ca1\u4ec0\u4e48\u8981\u6539\u7684. \u5b89\u88c5VLC\u53ef\u4ee5\u64ad\u653e\u89c6\u9891\u7b49\u529f\u80fd,\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u5b89\u88c5 \u00b6 \u5728\u52a0\u8f7d\u5546\u5e97\u4e2d\u641c\u7d22vlc \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u6210\u529f\u5982\u4e0b\u6240\u793a \u914d\u7f6e\u4e2d\u57fa\u672c\u6ca1\u8981\u8981\u914d\u7f6e\u7684\u4e1c\u897f \u5229\u7528 Docker \u5b89\u88c5 PostgreSQL \u00b6 \u867d\u7136 Home Assistant OS \u672c\u8eab\u4e0d\u5141\u8bb8\u76f4\u63a5\u8bbf\u95ee\u7cfb\u7edf\u5e95\u5c42\uff0c\u4f46\u5b83\u5185\u7f6e\u4e86 Docker \u652f\u6301\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c PostgreSQL \u7684 Docker \u5bb9\u5668\u3002 \u6b65\u9aa4 \u00b6 \u786e\u4fdd\u60a8\u6709 SSH \u8bbf\u95ee\u6743\u9650 \u5b89\u88c5 Home Assistant \u7684 SSH & Web Terminal Add-on\uff08\u9ad8\u7ea7\u6a21\u5f0f\uff09\u3002 \u5f00\u542f SSH \u8bbf\u95ee\uff0c\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u524d\u5f80 Supervisor > Add-on Store \u3002 \u641c\u7d22\u5e76\u5b89\u88c5 SSH & Web Terminal \uff08\u5b98\u65b9\u63d2\u4ef6\uff09\u3002 \u914d\u7f6e SSH \u63d2\u4ef6\uff0c\u786e\u4fdd protected \u8bbe\u7f6e\u4e3a false \uff0c\u7136\u540e\u542f\u52a8\u5b83\u3002 \u8fd0\u884c PostgreSQL \u5bb9\u5668 \u5728 SSH \u6216 Web Terminal \u4e2d\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD= **pwd** \\ -e POSTGRES_DB=dtha \\ -v /db/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ postgres \u66ff\u6362 **pwd** \u4e3a\u60a8\u60f3\u8981\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u5bc6\u7801,\u4e9b\u5bc6\u7801,\u9700\u8981\u7ba1\u7406\u5458\u54a8\u8be2 \u6570\u636e\u5e93\u540d\u79f0\u4e3a dtha \uff0c\u7528\u6237\u540d\u4e3a dtuser \u3002 \u6570\u636e\u5c06\u5b58\u50a8\u5728 /mnt/data/supervisor/postgresql \uff0c\u786e\u4fdd\u6570\u636e\u5728\u91cd\u542f\u540e\u4e0d\u4f1a\u4e22\u5931\u3002 \u767b\u5f55ssh,\u5e76\u67e5\u770b\u5df2\u5b89\u88c5\u7684docker\u955c\u50cf\u5982\u4e0b \u5148\u521b\u5efapgsql\u5b58\u50a8\u5377\u9700\u8981\u7684\u76ee\u5f55,\u8fd9\u4e2a\u6211\u4eec\u7edf\u4e00\u5b9a\u4e3a\u5982\u4e0b\u76ee\u5f55,\u5e76\u7ed9777\u6743\u9650 /db/pgsqldata \u5373\u5728\u6839\u76ee\u5f55\u4e0b,\u521b\u5efadb\u76ee\u5f55,\u7136\u540e\u5728db\u76ee\u5f55\u4e2d\u521b\u5efapgsqldata,\u5e76\u7ed9\u8db3\u6743\u9650 / # cd homeassistant homeassistant # ls automations.yaml configuration.yaml home-assistant.log home-assistant.log.fault home-assistant_v2.db-shm scenes.yaml secrets.yaml blueprints deps home-assistant.log.1 home-assistant_v2.db home-assistant_v2.db-wal scripts.yaml tts homeassistant # mkdir db homeassistant # sudo chmod -R 7777 ./db homeassistant # cd db db # ls db # pwd /homeassistant/db db # sudo mkdir pgsqldata db # sudo chmod -R 7777 ./pgsqldata db # ls pgsqldata db # cd pgsqldata pgsqldata # ls -l ./ total 0 pgsqldata # cd .. db # ls -l ./ total 4 drwsrwsrwt 2 root root 4096 Apr 18 16:30 pgsqldata \u63a5\u4e0b\u6765,\u62c9\u53d6\u955cpgsql\u7684\u955c\u50cf,\u5e76\u6307\u5411/mnt/data/pgsqldata,\u6b64\u5904\u8981\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u76ee\u5f55\u90fd\u6709\u5199\u5165\u6743\u9650,homeAssitant\u4e2d\u5927\u90e8\u4efd\u76ee\u5f55\u90fd\u6ca1\u6709\u5199\u5165\u6743\u9650,\u8981\u6ce8\u610f\u627e\u6709\u5199\u5165\u6743\u9650\u7684\u76ee\u5f55 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7cfb\u7edf\u4f1a\u81ea\u52a8\u62c9\u53d6\u955c\u50cf,\u5e76\u542f\u52a8,\u6b64\u8fc7\u7a0b\u52a1\u5fc5\u4fdd\u8bc1\u79d2\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u5982\u4e0b\u56fe,\u6240\u793a, \u8bf4\u660e\u76ee\u5f55\u6ca1\u6709\u6743\u9650, chown -R root:root mnt/data/pgsqldata chmod -R 7777 /mnt/data/pgsqldata \u7ed9\u591f\u76ee\u5f55\u6743\u9650\u540e,\u518d\u6b21\u8fd0\u884c,\u5b89\u88c5\u6307\u4ee4 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: docker: Error response from daemon: Conflict. The container name \"/postgresql\" is already in use by container \"f5b838e28f30ff3bde9f90276b8aa4924b4f1ecec2cdbd4e38dfe27e2c988edb\". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help \u4e0a\u8ff0\u8bf4\u660epgswl\u7684\u5bb9\u5668\u5df2\u7ecf\u5b58\u5728,\u9700\u8981\u5220\u9664 docker stop postgresql docker rm postgresql \u7136\u540e,\u518d\u6b21\u6267\u884c,\u5373\u53ef\u6210\u529f data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7528ps -a \u67e5\u8be2\u4e00\u4e0b,\u5982\u4e0b\u56fe\u6240\u793a,\u8bf4\u660edocker \u542f\u52a8\u6210\u529f, \u4e3a\u4e86\u9a8c\u8bc1\u91cd\u65b0\u542f\u52a8\u540e,pgsql\u5bb9\u5668\u662f\u5426\u542f\u52a8,\u53ef\u4ee5\u91cd\u542f\u540e,\u518d\u6b21\u67e5\u770b\u4e00\u4e0b,\u6b64\u5bb9\u5668\u662f\u5426\u8ddf\u968f\u7cfb\u7edf\u542f\u52a8\u6210\u529f. \u63a5\u4e0b\u6765,\u6211\u4eec\u53ef\u4ee5\u5728\u5c40\u57df\u7f51\u4e2d\u627e\u53f0\u673a\u5668\u6765\u505a\u4e00\u4e0b\u6570\u636e\u5e93\u8fde\u63a5\u6d4b\u8bd5 \u5982\u4e0a\u56fe,\u8bf4\u660epgsql\u5df2\u7ecf\u5b89\u88c5\u6210\u529f\u4e86,\u5e76\u80fd\u6b63\u5e38\u8bbf\u95ee. \u66f4\u6539homeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3apgSql \u00b6 HomeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3asqlite,\u6211\u4eec\u9700\u8981\u628a\u5176\u6362\u6210\u6211\u4eec\u65b0\u5b89\u88c5\u7684pgsql, \u901a\u8fc7\u6211\u4eec\u5b89\u88c5\u7684\u63d2\u4ef6File editor \u6253\u5f00\u914d\u7f6e\u6587\u4ef6 /homeassistant/configruration.yaml \u589e\u52a0recorder\u4e2d\u7684\u914d\u7f6e\u5982\u4e0b \u7136\u540e,\u4fdd\u5b58\u9000\u51fa,\u91cd\u542f,\u770b\u770bha\u6709\u6ed1\u7684\u7ed9\u51fa\u9519\u8bef\u63d0\u793a,\u4e5f\u53ef\u4ee5\u901a\u8fc7,\u8fde\u63a5\u5de5\u5177\u6765\u67e5\u770b,ha\u6709\u6ca1\u6709\u5728\u6570\u636e\u5e93\u4e2d\u5efa\u8868,\u5199\u5165\u6570\u636e \u5982\u4e0a\u56fe,\u8bf4\u660e\u6570\u636e\u5df2\u529f\u529f\u6298\u5199\u5165PGSQL,\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u628a\u7cfb\u7edf\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u5220\u9664\u4e86 \u8fd9\u4e2a\u6587\u4ef6\u662fhomeAssistant\u9ed8\u8ba4\u7684sqlite\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u4e86\uff0c\u70b9\u53f3\u5219\u7684\u4e09\u4e2a\u70b9\uff0c\u5728\u5f39\u51fa\u7684\u83dc\u5355\u4e2d\uff0c\u70b9delete \u70b9\u51fbyes\u786e\u8ba4 \u7136\u540e\u91cd\u542f,\u518d\u6b21\u67e5\u770b,\u662f\u5426\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6, \u5982\u679c\u6ca1\u6709\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6 ,\u8bf4\u660e,\u7cfb\u7edf\u5df2\u7ecf\u5728\u7528pgsql\u4e86 \u5b89\u88c5HACS \u00b6 hacs\u7b80\u4ecb \u00b6 HACS\uff0c\u5168\u79f0 Home Assistant Community Store\uff08Home Assistant \u793e\u533a\u5546\u5e97\uff09\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e Home Assistant \u7684\u7b2c\u4e09\u65b9\u6269\u5c55\u63d2\u4ef6\u7ba1\u7406\u5668\u3002\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u65b9\u4fbf\u7684\u65b9\u5f0f\u6765\u5b89\u88c5\u548c\u7ba1\u7406\u793e\u533a\u5f00\u53d1\u7684\u81ea\u5b9a\u4e49\u96c6\u6210\u3001\u63d2\u4ef6\u3001\u4e3b\u9898\u548c\u5176\u4ed6\u6269\u5c55\u7ec4\u4ef6\u3002 \u8fd9\u4e2a\u63d2\u4ef6\u96c6\u4e2d\u4e86\u8bb8\u591a\u5927\u5c4f\u7528\u7684\u4e3b\u9898\u4e0e\u63d2\u4ef6\uff0c\u5c5e\u4e8e\u5fc5\u88c5\u63d2\u4ef6\uff0e \u5b89\u88c5hacs \u00b6 \u8fdb\u5165ssh\u767b \u5f55\u540e,\u8f93\u5165\u5982\u4e0b\u6307\u4ee4 wget -O - https://get.hacs.xyz | bash - \u56de\u8f66\u540e,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7dHACS\uff0c\u5e76\u653e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u4e14\u63d0\u793a\u91cd\u542f\uff0c\u6211\u4eec\u6309\u8981\u6c42\u91cd\u542f\uff0c\u5373\u53ef\u3002 \u542f\u7528HACS \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5728 Home Assistant \u7684\u754c\u9762\u4e2d\u542f\u7528 HACS\uff1a \u6253\u5f00 Home Assistant UI\u3002 \u70b9\u51fb \u8bbe\u7f6e > \u8bbe\u5907\u4e0e\u670d\u52a1 > \u96c6\u6210 \u3002 \u70b9\u51fb\u53f3\u4e0b\u89d2 \u6dfb\u52a0\u96c6\u6210 \u3002 \u641c\u7d22\u5e76\u9009\u62e9 HACS \uff0c\u7136\u540e\u6309\u7167\u5c4f\u5e55\u4e0a\u7684\u63d0\u793a\u5b8c\u6210\u8bbe\u7f6e\u3002 \u70b9\u51fb\u540e,\u5728\u5f39\u51fa\u7684\u7a97\u53e3\u4e2d,\u5168\u6253\u52fe,\u70b9\u63d0\u4ea4 \u5f15\u65f6,\u5f39\u51fa\u65b0\u7684\u7a97\u53e3,\u9a8c\u8bc1github\u6388\u6743 \u70b9\u51fb\u8fd9\u4e2agithub\u94fe\u63a5,\u5e76\u8bb0\u4f4f\u4e0b\u65b9\u7684\u6388\u6743\u7801\u540e\u9762\u4f1a\u7528\u5230 \u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d,\u8f93\u5165,\u8bb0\u4f4f\u7684\u6388\u6743\u7801,\u70b9Continue \u63d0\u793a\u5177\u4f53\u7684\u6388\u6743\u5bf9\u50cf\u4e3ahacs,\u70b9\u51fbAutuorize hacs \u6388\u6743\u6210\u529f \u8fd4\u56dehacs\u540e,\u63d0\u793a\u6210\u529f,\u5e76\u663e\u793a\u5df2\u53d1\u73b0\u5982\u4e0b\u8bbe\u5907,hacs,\u9009\u62e9\u533a\u57df,\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e2a\u533a\u57df,\u7136\u540e\u70b9\u5b8c\u6210 \u770b\u5230\u5982\u4e0b\u754c\u9762hacs\u5c31\u5b89\u88c5\u597d\u4e86 \u70b9\u51fb\u914d\u7f6e,\u542f\u7528App Daemon apps discovery & tgracking. \u4ee5\u4e0a\u914d\u7f6e \u5b8c\u6210\u540e,\u91cd\u65b0\u542f\u52a8HA\uff0c\u5219\u53ef\u4ee5\u5728\u5de6\u4fa7\u680f\u4e2d\u627e\u5230HACS\u83dc\u5355\u4e86 \u66f4\u6539HomeAssistant\u5de6\u4e0a\u89d2LOGO\u6807\u9898 \u00b6 homeAssistant \u5de6\u4e0a\u89d2\u9ed8\u8ba4\u7684\u6807\u9898\u4e3a Home Assistant \u6211\u4eec\u5e0c\u671b\u6539\u6210\u81ea\u5df2\u7684\u6807\u8bc6\u5982:\u5cb1\u7279\u667a\u80fd \u4e0b\u8f7d\u7b2c\u4e09\u65b9\u63d2\u4ef6hass-favicon\u7684Releases\u5230\u672c\u5730\u76ee\u5f55 \u00b6 \u70b9\u51fb\u94fe\u63a5 ,\u5230\u5176github\u7684\u5b98\u65b9\u9875\u9762 \u4e0b\u8f7d\u5176\u6e90\u7801 \u89e3\u538b\u4e0b\u8f7d\u7684\u6e90\u7801 \u00b6 \u5c06\u63d2\u4ef6\u590d\u5236\u5230ha\u4e0a \u00b6 \u6253\u5f00\u6e90\u7801\u76ee\u5f55,\u8fdb\u5165custom_commponents\u76ee\u5f55,\u628afavicon\u76ee\u5f55\u6574\u4f53\u590d\u5236 \u7136\u540e,\u8fdb\u5165ha\u7684config-custom_compoents\u76ee\u5f55\u7c98\u8d34,\u590d\u5236\u5230\u7684favicon \u7136\u540e\u521b\u5efa\u76ee\u5f55 \\\\ha-o[\\config\\www\\favicons \u5e76\u628a\u80dc\u900f\u7684logo\u6587\u4ef6st-logo.,png\u653e\u5230\u76ee\u5f55\u4e2d \u7136\u540e\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u5185\u5bb9 \u7136\u540e,\u91cd\u542fHomeAssistant\u5373\u53ef \u91cd\u542f\u540e,\u5de6\u4e0a\u811a\u7684LOGO\uff0c\u5df2\u53d8\u4e3a\u5cb1\u7279\u667a\u80fd. \u5b89\u88c5\u7c73\u5bb6\u96c6\u6210\u63d2\u4ef6 \u00b6 \u7c73\u5bb6\u96c6\u6210\u662f\u4e00\u4e2a\u7531\u5c0f\u7c73\u5b98\u65b9\u63d0\u4f9b\u652f\u6301\u7684 Home Assistant \u7684\u96c6\u6210\u7ec4\u4ef6\uff0c\u5b83\u53ef\u4ee5\u8ba9\u60a8\u5728 Home Assistant \u4e2d\u4f7f\u7528\u5c0f\u7c73 IoT \u667a\u80fd\u8bbe\u5907\u3002 \u8fd9\u4e2a\u63d2\u4ef6,\u53ef\u4ee5\u76f4\u63a5\u628a\u6240\u6709\u5c0f\u7c73\u7684\u5404\u79cd\u4f20\u611f\u5668\u96c6\u6210\u5230HomeAssistant\u4e2d,\u6240\u4ee5\u8fd9\u4e2a\u662f\u5fc5\u88c5\u63d2\u4ef6. \u5176\u5b98\u65b9\u4ed3\u5e93\u5730\u5740\u4e3a: Xiaomi Home Integration for Home Assistant https://github.com/XiaoMi/ha_xiaomi_home \u5176\u5b89\u88c5\u65b9\u6cd5\u6709\u4e09\u79cd,\u6211\u4eec\u4e3a\u4e86\u65b9\u4fbf\u9009\u62e9\u7b2c\u4e00\u79cd,\u5176\u5b83\u4e24\u79cd\u65b9\u6cd5,\u53ef\u4ee5\u81ea\u884c\u5c1d\u8bd5.\u5b98\u65b9\u63cf\u8ff0\u7684\u65b9\u88c5\u4e3b\u5f0f\u5982\u4e0b: cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config \u5176\u4e5f\u63d0\u4f9b \u4e2d\u6587\u7684\u5b89\u88c5\u8bf4\u660e \u5b89\u88c5 \u00b6 \u9996\u5148,\u767b\u5f55SSH.\u7136\u540e\u8fdb\u5165config\u76ee\u5f55 \u5148\u62c9\u53d6\u4ee3\u7801 config # git clone https://github.com/XiaoMi/ha_xiaomi_home.git Cloning into 'ha_xiaomi_home'... remote: Enumerating objects: 1322, done. remote: Counting objects: 100% (761/761), done. remote: Compressing objects: 100% (342/342), done. remote: Total 1322 (delta 628), reused 419 (delta 419), pack-reused 561 (from 2) Receiving objects: 100% (1322/1322), 847.87 KiB | 1.64 MiB/s, done. Resolving deltas: 100% (817/817), done. \u7136\u540e,\u518d\u5207\u6362\u5230ha_xiaomi_home\u76ee\u5f55 cd ha_xiaomi_home \u7136\u540e\u6267\u884c\u5b89\u88c5\u6307\u4ee4 ./install.sh /config # Xiaomi Home installation is completed. Please restart Home Assistant. \u5b89\u88c5\u5b8c\u6210,\u63d0\u793a\u9700\u8981\u91cd\u542f. \u914d\u7f6e \u00b6 \u5728\u91cd\u65b0\u542f\u52a8\u540e,\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210\u4e2d,\u641c\u7d22\u201c Xiaomi Home \u201d \u70b9\u51fb,\u4f1a\u63d0\u793a\u98ce\u9669\u63d0\u793a \u52fe\u9009,\u6211\u77e5\u6089,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u4f1a\u8fdb\u5165\u57fa\u7840\u914d\u7f6e\u9875\u9762,\u5982\u4e0b\u56fe \u52fe\u9009\u96c6\u6210\u7f51\u7edc\u914d\u7f6e,\u540c\u86d9,\u6ce8\u610f\u4e00\u4e0b,\u8ba4\u8bc1\u8df3\u8f6c\u5730\u5740,\u6b64\u5904\u663e\u6b3e\u4e3ahttp://homeassistant.lcaol:8123,\u8fd9\u4e2a\u5730\u5740,\u4f30\u8ba1\u4e0d\u53ef\u80fd\u901a\u8fc7,\u53ea\u56e0\u4e3a\u6211\u4eec\u662f\u5728\u5c40\u57df\u7f51\u5176\u5b83\u673a\u5668\u64cd\u4f5c\u8fd9\u4e00\u6b65\u7684,\u5b9e\u9645\u4e0a\u6211\u4eec\u7684\u5730\u5740,\u5e94\u662f\u5730\u5740\u680f\u4e2d\u6298\u5b9e\u9645\u5730\u5740,\u5982\u4e0a\u56fe,\u6211\u4eec\u7684\u8ba4\u8bc1\u5730\u5740\u662f:http://192.168.3.2:8123, \u5728\u4e0b\u4e00\u6b65\u8df3\u8f6c\u8f6c\u5c0f\u7c73\u540e,\u6253\u5f00\u7684\u7f51\u5740\u65f6,\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u4f30\u8ba1\u662f\u6253\u4e0d\u5f00\u7684,\u9700\u8981\u628a\u90a3\u4e2a\u5730\u5740\u7684\u524d\u534a\u6bb5,\u6362\u6210\u8fd9\u4e2a\u5b9e\u9645\u5730\u5740. \u70b9\u51fb\u4e0b\u4e00\u6b65, \u6b64\u5904\u4e3a\u68c0\u6d4b\u7f51\u7edc,\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u65f6,\u624d\u80fd\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5f53\u5f39\u51fa\u5982\u4e0b\u754c\u9762\u65f6,\u8bf4\u660e\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u4e86, \u70b9\u51fb,\"\u8bf7\u70b9\u6b64\u5904\u8fdb\u884c\u767b\u5f55\", \u6b64\u65f6,\u8df3\u8f6c\u5230\u5c0f\u7c73\u6298\u8ba4\u8bc1\u7f51\u9875,\u6b64\u65f6\u8f93\u5165\u6b63\u786e\u7c73\u5bb6\u5e10\u53f7\u4e0e\u5bc6\u7801,\u70b9\u767b\u5f55 \u5f39\u51fa \u53cb\u60c5\u63d0\u793a,\u70b9\u51fb,\u540c\u610f\u5e76\u7ee7\u7eed \u5c0f\u7c73\u7684\u5b89\u5168\u9a8c\u8bc1,\u70b9\u4e0b\u4e00\u6b65, \u70b9\u51fb \u53d1\u9001\u9a8c\u8bc1\u7801 \u8f93\u5165\u9a8c\u8bc1\u7801\u540e,\u70b9\u786e\u5b9a \u8df3\u8f6c\u5230\u4e86\u8ba4\u8bc1\u7a97\u53e3,\u4f46\u662f\u5374\u662f\u65e0\u65b9\u8bbf\u95ee\u6b64\u9875\u9762,\u8bf4\u660e\u8ba4\u8bc1\u5730\u5740,\u9519\u4e86,\u6211\u4eec\u9700\u8981\u628a\u5b83\u6362\u6210\u6211\u4eec\u6b63\u786e\u7684HA\u5730\u5740\uff1ahttp://192.168.3.2:8123,\u5982\u4e0b\u56fe\u6240\u793a \u624b\u5de5\u5c06\u6b63\u786e\u7684\u5730\u5740\u66ff\u6362\u5730\u5740\u5934\u90e8\u540e,\u56de\u8f66,\u6253\u5f00\u8fd9\u4e2a\u5730\u5740,\u7c7b\u4f3c\u5982\u4e0b\u683c\u5f0f: http://192.168.3.2:8123/api/webhook/3062281226000218850?code=C3_B7440E147BCCA71A76831877D510611F&state=d90a727abad348efee834884dae174b80a15de14 \u5982\u679c,\u7528\u4e0a\u8ff0\u65b9\u5f0f,\u4ecd\u7136\u4e0d\u80fd\u8bbf\u95ee,\u5219\u53ef\u7528\u5982\u4e0b\u65b9\u6cd5,\u66f4\u6539host\u6587\u4ef6,\u5f3a\u884c\u6307\u5b9a\u672c\u5730DNS,\u6307\u5411homeassistant.local,\u65b9\u6cd5\u5982\u4e0b: \u4fee\u6539 Windows hosts \u6587\u4ef6\u7684\u65b9\u6cd5 \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u7528\u8bb0\u4e8b\u672c\u6253\u5f00\u5982\u4e0b\u6587\u4ef6 :C:\\Windows\\System32\\drivers\\etc\\hosts \u5728\u6700\u540e\u4e00\u884c\u589e\u52a0 192.168.3.2 homeassistant.local \u5982\u4e0b\u56fe \u7136\u540e,\u518d\u91cd\u65b0\u8bd5\u8fc7\u4e00\u6b21 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd,\u5c31\u4f1a\u81ea\u52a8\u8ba4\u8bc1\u901a\u8fc7 \u53ef\u4ee5\u6839\u636e\u63d0\u793a\u81ea\u52a8\u9009 \u5219\u623f\u95f4\u540c\u6b65\u6a21\u5f0f,\u8fd9\u4e2a\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u5c06\u63d0\u793a\u63d2\u4ef6\u96c6\u6210\u6210\u529f.\u5982\u4e0b\u793a\u610f\u56fe \u770b\u5230\u5982\u4e0b\u56fe,\u5c31\u8bf4\u660e\u96c6\u6210\u5b8c\u6210\u4e86 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u6982\u89c8\u4e2d,\u5c31\u5df2\u7ecf\u81ea\u52a8\u589e\u52a0\u4e86\u8bb8\u591a\u8bbe\u5907. \u5b89\u88c5WebRTC Camera \u00b6 WebRTC camera\u63d2\u4ef6\u4ee5\u5b9e\u73b0\u9891\u6d41\u64ad\u653e.\u5982\u679cha\u8981\u63a5\u5165\u89c6\u9891\u76d1\u63a7,\u5219\u9700\u8981\u5b89\u88c5\u8fd9\u4e2a\u7ec4\u4ef6, \u4ed3\u5e93\u5730\u5740 : https://github.com/AlexxIT/WebRTC \u8fd9\u4e2a\u63d2\u4ef6\u4e5f\u6709\u591a\u79cd\u5b89\u88c5\u65b9\u6cd5,hacs\u5b89\u88c5,\u76f4\u63a5\u590d\u5236\u7b49\u65b9\u6cd5,\u56e0\u4e3a\u4e0a\u6587,\u6211\u4eec\u5df2\u7ecf\u5b89\u88c5\u8fc7\u4e86HACS\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u4f7f\u7528HACS\u65b9\u5f0f\u5b89\u88c5\u3002 \u70b9\u51fb\u540e\uff0c\u5f39\u51fa\u5982\u4e0b\u9875\u9762 \u70b9\u51fbDownLoad\u6309\u94ae \u70b9\u51fbDownLoad \u5f53\u7136,\u6211\u4eec\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u6298\u7248\u672c \u5f53\u5f39\u51fa\u7a97\u53e3\u81ea\u52a8\u6d88\u5931,\u70b9\u51fb\u4e0a\u65b9\u7684\u8fd4\u56de( \u6ce8\u610f:\u4e0d\u4f1a\u81ea\u52a8\u8fd4\u56de,\u987b\u4eba\u5de5\u8fd4\u56de ),\u8fd4\u56de\u5982\u4e0b\u56fe \u770b\u5230\u4e0a\u65b9\u7684\u7b49\u5f85\u91cd\u542f,\u8bf4\u660e\u7ec4\u4ef6\u5df2\u7ecf\u5b89\u88c5\u4e0a,\u9700\u8981\u91cd\u542f,\u6211\u4eec\u6267\u884c\u91cd\u542f. \u91cd\u542f\u5b8c\u6210\u540e,\u4f1a\u770b\u5230,Downloaded\u4e2d\u5df2\u7ecf\u663e\u793a,\u4e86\u5b89\u88c5\u6210\u529f\u6298WebRTC Camera\u7ec4\u4ef6. \u7136\u540e,\u8fdb\u5165\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210,\u641c\u7d22WebRTC \u70b9\u51fbWebRtc Camera \u5f39\u51fago2rtc url\u5730\u5740\u7a97\u53e3,\u6b64\u63d2\u4ef6,\u6211\u4eec\u4e4b\u524d\u5df2\u88c5\u8fc7,\u5c31\u5728\u672c\u673a,\u6240\u5730\u5740\u4e0d\u7528\u6539,\u76f4\u63a5\u70b9\u63d0\u4ea4 \u70b9\u5b8c\u6210.WebRTC\u5b89\u88c5\u6210\u529f.\u5982\u4e0b\u56fe\u6240\u793a \u4e3a\u4e86\u6f14\u793a\u5982\u4f55\u663e\u793a\u76d1\u63a7\u89c6\u9891,\u6211\u4eec\u65b0\u589e\u52a0\u4e00\u4e2asample\u7684\u4eea\u8868\u76d8. \u70b9\u51fb,\u6dfb\u52a0\u4eea\u8868\u76d8 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d,\u8f93\u5165\u4eea\u8868\u76d8\u6807\u9898 \u8fd9\u6837\u6211\u6837\u5c31\u589e\u52a0\u4e86\u4e00\u4e2a\u4eea\u8868\u76d8dashboard-sampale,\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u4e2a\u4eea\u8868\u76d8\u4e2d\u589e\u52a0\u6f14\u793a\u7528\u7684\u7ec4\u4ef6,\u6b64\u5904,\u6211\u4eec\u60f3\u589e\u52a0\u4e00\u4e2a\u6f14\u793a\u7528\u7684\u76d1\u63a7\u6444\u50cf\u5934.\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u7f16\u8f91\u6309\u94ae. \u70b9\u51fb\u521b\u5efa\u4e00\u4e2a\u7ec4\u4ef6 \u7136\u540e,\u65b0\u5efa\u5361\u7247,\u9009\u62e9\u81ea\u5b9a\u4e49WebRTC\u5361\u7247,\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a\u7ec4\u4ef6,\u5219\u9700\u8981\u5237\u65b0\u51e0\u6b21,\u5c31\u80fd\u770b\u5230\u8fd9\u4e2a\u7ec4\u4ef6. \u6211\u6837\u5728\u5361\u7247\u8bbe\u7f6e\u4e2d\u8f93\u5165url\u7684\u89c6\u9891\u6d41\u5730\u5740 type: custom:webrtc-camera url: \"rtsp://admin:Camera_data2018@192.168.50.131:554/stream2\" \u5b89\u88c5motionEye \u00b6 motionEye \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6444\u50cf\u5934\u8f6f\u4ef6\uff08\u79f0\u4e3a motion\uff09\u7684\u524d\u7aef\u3002\u672c\u63d2\u4ef6\u540c\u65f6\u63d0\u4f9b\u4e86\u524d\u7aef\u548c\u6444\u50cf\u5934\u8f6f\u4ef6\uff0c\u8ba9\u60a8\u53ef\u4ee5\u5c06\u6444\u50cf\u5934\u6dfb\u52a0\u5230 Hass.io \uff08Home Assistant\uff09\u7cfb\u7edf\u4e2d\u3002 motionEye \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ed\u8def\u7535\u89c6\uff08CCTV\uff09\u548c\u7f51\u7edc\u89c6\u9891\u5f55\u50cf\u673a\uff08NVR\uff09\uff0c\u5b83\u8bbe\u8ba1\u4f18\u96c5\u4e14\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002\u5b83\u53ef\u4ee5\u7528\u4f5c\u5a74\u513f\u76d1\u89c6\u5668\u3001\u5efa\u7b51\u5de5\u5730\u76d1\u63a7\u3001\u5546\u5e97\u6444\u50cf\u5934\u5f55\u50cf\u673a\u3001\u82b1\u56ed\u5b89\u9632\u7b49\u3002 motionEye \u7684\u4e00\u4e9b\u7279\u70b9\uff1a \u00b6 \u652f\u6301\u5927\u91cf\u6444\u50cf\u5934\uff0c\u5305\u62ec IP \u6444\u50cf\u5934\u3002 \u53ef\u4ee5\u901a\u8fc7\u5c06\u591a\u4e2a motionEye \u5b9e\u4f8b\u8fde\u63a5\u5728\u4e00\u8d77\u6dfb\u52a0\u591a\u4e2a\u6444\u50cf\u5934\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u7f51\u7edc\u4e2d\u4f7f\u7528\u8fd0\u884c MotionEyeOS \u7684 Pi Zero \u548c Pi \u6444\u50cf\u5934\u3002 \u652f\u6301\u5c06\u5f55\u50cf\u4e0a\u4f20\u5230 Google Drive \u548c Dropbox\u3002 \u652f\u6301\u8fd0\u52a8\u68c0\u6d4b\uff0c\u5305\u62ec\u90ae\u4ef6\u901a\u77e5\u548c\u8ba1\u5212\u4efb\u52a1\u3002 \u53ef\u4ee5\u8fde\u7eed\u5f55\u50cf\u3001\u8fd0\u52a8\u5f55\u50cf\u6216\u5ef6\u65f6\u5f55\u50cf\uff0c\u5e76\u652f\u6301\u4fdd\u7559\u8bbe\u7f6e\u3002 \u652f\u6301\u914d\u7f6e\u4e2d\u7684\u201c\u64cd\u4f5c\u6309\u94ae\u201d\u3002 \u5b89\u88c5\u65b9\u6cd5 \u00b6 \u5728\u8bbe\u7f6e-\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22\"motionEye\", \u70b9\u51fb\u67e5\u770b\u8be6\u60c5\u9875,\u5e76\u5b89\u88c5 motioneye\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u4e3aadmin,\u5bc6\u7801\u4e3a\u7a7a.","title":"\u7cfb\u7edf\u521d\u59cb\u5316\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#homeassistant","text":"","title":"\u521d\u59cb\u5316\u914d\u7f6eHomeAssistant"},{"location":"Usages/initConfig/initConfig/#homeassistant_1","text":"\u9996\u6b21\u6253\u5f00HomeAssistant\u901a\u8fc7,\u8def\u7531\u5668\u4e3a\u5176\u5206\u914d\u7684IP\u5730\u5740\u52a0\u7aef\u53e3\u53f7\u5373\u53ef\u8fdb\u884cHomeAssistant. \u683c\u5f0f\u5982\u4e0b: http://Ip:Port \u5982:http://192.168.3.2:8123 \u57fa\u4e2d:8123\u4e3a\u5176\u9ed8\u8ba4\u7684\u7aef\u53e3\u540e,\u5f53\u7136,\u7cfb\u7edf\u521d\u59cb\u5316\u6210\u529f\u540e,\u53ef\u4ee5\u6539. \u5982\u4e0b\u56fe\u6240\u793a: \u70b9\u51fb\"\u521b\u5efa\u6211\u667a\u80fd\u5bb6\u5bb6\u5c45\"\u6309\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5728\u8fd9\u91cc\u6211\u4eec\u8f93\u5165\u59d3\u540d,\u7528\u6237\u540d,\u5bc6\u7801,\u786e\u8ba4\u5bc6\u7801 \u8fd9\u91cc\u6211\u4eec\u4f7f\u7528\u7edf\u4e00\u7684\u4fe1\u606f \u59d3\u540d:\u5cb1\u7279\u667a\u80fd \u7528\u6237\u540d:dtuser \u5bc6\u7801:****** \u786e\u8ba4\u5bc6\u7801:***** \u6ce8\u610f:\u4e0a\u8ff0\u5bc6\u7801\u4e3a\u4e86\u5b89\u5168,\u6ca1\u6709\u663e\u793a,\u8bf7\u54a8\u8be2\u7cfb\u7edf\u7ba1\u7406\u5458\u83b7\u53d6\u771f\u6b63\u7684\u5bc6\u7801. \u70b9\u51fb\"\u521b\u5efa\u5e10\u6237\", \u8fd9\u4e00\u6b65,\u4f1a\u8981\u6c42\u4f60\u8f93\u5165\u4f4d\u7f6e,\u8f93\u5165\u57ce\u5e02\u70b9\u83b7\u53d6,\u5982\u679c\u53d6\u4e0b\u5230\u4f1a\u62a5\u9519.\u6ca1\u5173\u7cfb,\u76f4\u63a5\u4e0b\u4e00\u6b65\u5373\u53ef,\u7cfb\u7edf\u914d\u7f6e\u5b8c\u6210\u540e,\u8fd8\u53ef\u66f4\u6539. \u8fd9\u4e00\u6b65\u662f\u8981\u6c42,\u4f60\u8f93\u4e0b\u6240\u5c5e\u7684\u56fd\u5bb6\u4e0e\u5730\u533a,\u5b83\u4f1a\u81ea\u52a8\u5224\u65ad\u51fa\u6765,\u56fd\u5bb6,\u76f4\u63a5\u70b9\u4e0b\u4e00\u6b65\u5373\u53ef. \u6b64\u65f6,\u5b83\u53ef\u80fd\u8fd8\u4f1a\u5f39\u51fa\u4e00\u4e2a\u5bf9\u8bdd\u6846\u6846,\u5e2e\u4f60\u68c0\u6d4b\u4f4d\u7f6e ,\u70b9\u786e\u5b9a\u5373\u53ef \u5982\u679c\u4e0d\u60f3\u8ba9\u5176\u68c0\u6d4b,\u76f4\u63a5\u70b9\u53d6\u6d88\u5373\u53ef,\u56e0\u4e3a\u5176\u68c0\u6d4b\u6298\u53ef\u80fd\u5f88\u6162,\u6240\u4ee5,\u76f4\u63a5\u70b9\u53d6\u6d88,\u9009\u62e9\u4e2d\u56fd\u5373\u53ef. \u8fd9\u91cc\u7684\u51e0\u9879,\u5168\u90e8\u4e0d\u7528\u9009,\u76f4\u63a5\u4e0b\u4e00\u6b65 \u8fd9\u4e00\u6b65,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u626b\u63cf\u5c40\u57df\u7f51\u4e2d\u7684\u80fd\u76f4\u63a5\u5165\u7684\u8bbe\u5907.\u76f4\u63a5\u70b9\u51fb\u5b8c\u6210, \u7136\u540e,\u7cfb\u7edf\u4f1a\u8f6c\u5230\u5982\u4e0b\u754c\u9762 \u53ef\u80fd\u8981\u6301\u7eed\u4e00\u9635,\u7b49\u5f85\u5176\u5b8c\u6210\u5373\u53ef. \u5f00\u59cb\u7b2c\u4e00\u6b21,\u53ef\u80fd\u5f88\u6162 \u9996\u6b21\u5b8c\u6210\u5982\u4e0b\u663e\u793a","title":"\u9996\u6b21\u6253\u5f00HomeAssistant"},{"location":"Usages/initConfig/initConfig/#_1","text":"\u9996\u6b21\u767b\u5f55,\u53ef\u80fd\u4f1a\u663e\u793a\u66f4\u65b0,\u5982\u6b64\u65f6\u663e\u793a \u63d0\u793a\u66f4\u65b0Home Assistnat Operating System Update,\u70b9\u51fb\u5982\u4e0b\u6309\u94ae,\u4ee5\u5f39\u51fa\u7684\u5bf9\u8bdd\u6846\u4e2d\uff0c\u70b9\u66f4\u65b0\u6309\u94ae \u5982\u4e0b\u56fe\u6240\u793a\uff0c\u7cfb\u7edf\u5c06\u4f1a\uff0c\u8fdb\u884c\u66f4\u65b0 \u6ce8\u610f\uff0c\u8fd9\u4e2a\u64cd\u4f5c\uff0c\u4e00\u822c\u662f\u4ece\u4e24\u4e2a\u5730\u65b9\u83b7\u53d6\u66f4\u65b0\u5305\uff0c\u4e00\u662fgithub\u4e00\u4e2a\u662fdocker\u7684\u4ed3\u5e93\uff0c\u6240\u4ee5\uff0c \u8981\u4fdd\u6301\u79d1\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u3002\u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u4f30\u8ba1\u8981\u51e0\u5206\u949f\uff0c\u9700\u8981\u8010\u5fc3\u7b49\u7b49\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u66f4\u65b0\u5931\u8d25\uff0c\u7136\u540e\uff0c\u518d\u6b21\u66f4\u65b0\u3002 \u66f4\u65b0\u65f6,\u5982\u679c\u7f51\u7edc\u6709\u95ee\u9898\u53ef\u80fd\u4f1a\u51fa\u5728\u65e5\u5fd7 \u4e2d\u62a5\u51fa\u5982\u4e0b\u9519\u8bef aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.438 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.439 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') 2025-04-16 17:26:15.440 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved (None) aiodns.error.DNSError: (12, 'Timeout while contacting DNS servers') [09:26:17] INFO: Home Assistant Core finish process exit code 0 [09:26:17] INFO: Home Assistant Core service shutdown s6-rc: info: service legacy-services successfully stopped s6-rc: info: service legacy-cont-init: stopping s6-rc: info: service legacy-cont-init successfully stopped s6-rc: info: service fix-attrs: stopping s6-rc: info: service fix-attrs successfully stopped s6-rc: info: service s6rc-oneshot-runner: stopping s6-rc: info: service s6rc-oneshot-runner successfully stopped s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun home-assistant (no readiness notification) s6-rc: info: service legacy-services successfully started 2025-04-16 17:28:26.876 ERROR (MainThread) [homeassistant.components.homeassistant_alerts.coordinator] Timeout fetching homeassistant_alerts data 2025-04-16 17:51:56.276 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.update 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain cloud.tts 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain mobile_app.notify 2025-04-16 17:51:56.278 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain backup.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain energy.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain sun.sensor 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain homeassistant.scene 2025-04-16 17:51:56.279 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.binary_sensor 2025-04-16 17:51:56.280 WARNING (MainThread) [homeassistant.helpers.translation] Failed to load integration for translation: Invalid domain hassio.sensor \u4e0a\u8ff0\u9519\u8bef\u591a\u662f\u7531\u4e8e\u7f51\u7edc\u95ee\u9898\u5f15\u8d77\u7684,\u8981\u53bb\u68c0\u662f\u79d1\u5b66\u4e0a\u7f51\u662f\u5426\u8fd8\u6b63\u5e38. \u66f4\u5b8c\u5b8c\u6210\u540e,\u518d\u6b21\u542f\u52a8\u540e,\u4f1a\u663e\u793a\u6ca1\u6709\u53ef\u7528\u7684\u66f4\u65b0","title":"\u66f4\u65b0\u5fc5\u8981\u7684\u7ec4\u4ef6"},{"location":"Usages/initConfig/initConfig/#-","text":"\u70b9\u51fb,\u5f00\u59cb,\u901a\u7528 \u66f4\u6539\u540d\u79f0\u4e3a:\u5cb1\u7279\u667a\u80fd \u5176\u5b83\u7684\u4e0d\u53d8 #### \u914d\u7f6e-\u7f51\u7edc-\u4e3b\u673a\u540d \u628a\u4e3b\u673a\u540d\u914d\u7f6e\u6210\u4e3a\u5c40\u57df\u7f51\u4e2d\u552f\u4e00\u7684,\u5b9e\u9645\u8ba9\u5c31\u662f\u8ba1\u7b97\u673a\u540d,\u56e0\u4e3a\u540c\u4e00\u5c40\u57df\u7f51\u4e2d,\u8ba1\u7b97\u673a\u540d,\u4e0d\u5141\u8bb8\u76f8\u540c","title":"\u914d\u7f6e-\u901a\u7528"},{"location":"Usages/initConfig/initConfig/#-_1","text":"\u52a0\u8f7d\u9879\u4e2d\u6709\u8bb8\u591a\u5fc5\u88c5\u7ec4\u4ef6,\u9700\u8981\u4e00\u4e00\u5b89\u88c5,\u9996\u6b21\u8fdb\u5165\u65f6,\u53ef\u80fd\u4f1a\u663e\u793a\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u4e0b\u89d2\u7684\"\u52a0\u8f7d\u9879\u5546\u5e97\"","title":"\u914d\u7f6e-\u8bbe\u7f6e-\u52a0\u8f7d\u9879"},{"location":"Usages/initConfig/initConfig/#file-editor","text":"File editor \u662f\u4e00\u4e2a\u7528\u4e8e\u4fee\u6539HA\u7684\u914d\u7f6e\u6587\u4ef6\u7684\u96c6\u6210\u5de5\u5177,\u5c5e\u5fc5\u88c5\u9879,\u70b9\u51fb\u5b89\u88c5 \u70b9\u51fb\u5b89\u88c5,\u7cfb\u7edf\u4f1a\u5728\u540e\u53f0\u81ea\u52a8\u5b89\u88c5\u6b64\u63d2\u4ef6, \u5b89\u88c5\u5b8c\u6210\u540e,\u4f1a\u81ea\u52a8\u91cd\u542f \u6709\u65f6\u4e5f\u4f1a\u63d0\u793a\u5b89\u88c5\u5931\u8d25 \u8fd9\u79cd\u7ecf\u67e5\u770b\u65e5\u5fd7 \u591a\u4e3a\u7f51\u5f3a\u884c\u95ee\u9898\u65e0\u6cd5\u8bbf\u95ee.docker.io,\u8fd9\u662f\u56e0\u4e3a\u79d1\u5b66\u4e0a\u98ce\u7684\u539f\u56e0,\u91cd\u70b9\u6392\u67e5\u7f51\u7edc,\u5b89\u88c5\u6210\u529f\u540e,\u518d\u6b21\u8fdb\u5165\u4f1a\u663e\u793a\u5982\u4e0b\u754c\u9762 \u52fe\u9009,\u5f00\u673a\u542f\u52a8,\u81ea\u52a8\u6062\u590d,\u663e\u793a\u4e8e\u4fa7\u8fb9\u680f \u70b9\u51fb\u542f\u52a8,\u6216\u91cd\u542f,\u5c06\u4f1a\u5728\u4fa7\u8fb9\u680f\u770b\u5230\u6b64\u56fe\u6807,\u70b9\u51fb\u6253\u5f00\u7f51\u9875\u754c\u9762 \u80fd\u770b\u5230\u5982\u4e0b\u754c\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u6b64\u65f6\u52a0\u8f7d\u9879\u4e2d,\u5c31\u591a\u51fa\u4e86File editor\u9009\u9879","title":"\u5b89\u88c5File editor"},{"location":"Usages/initConfig/initConfig/#samba-share","text":"Samba share\u63d2\u4ef6\u662f\u4e00\u4e2a\u63d0\u4f9b\u5171\u4eab\u76ee\u5f55\u7684\u65b9\u5f0f\u5141\u884c\u5176\u5b83\u8ba1\u7b97\u673a\u7528\u8fd9\u79cd\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91ha\u7684\u6587\u4ef6\u7684\u7ec4\u4ef6. \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5931\u8d25\u65f6,\u4f1a\u6709\u5982\u4e0b\u63d0\u4e0b\u63d0\u793a \u6253\u5f00\u81ea\u52a8\u6062\u590d \u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5230\u914d\u7f6e\u9009\u9879\u4e2d \u6b64\u5904\u6211\u4eec\u8bbe\u7f6e\u5982\u4e0b\u4fe1\u606f Username:dtuser Password:***** # \u6b64\u5904\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 Workgroup:WORKGROUP # \u4fdd\u6301\u4e0d\u53d8 \u66f4\u6539\u5b8c\u6210\u540e,\u6709\u5982\u4e0b\u914d\u7f6e \u914d\u7f6e \u5b8c\u6210\u540e,\u70b9\u51fb\u542f\u52a8 \u542f\u52a8\u6210\u529f\u540e,\u4f1a\u51fa\u4e0b\u56fe\u663e\u793a \u6b64\u65f6,\u5982\u679c,\u4e0eHA\u5728\u540c\u4e00\u5c40\u57df\u7f51\uff0c\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u5982\u4e0b\u65b9\u5f0f\u67e5\u770bHA\u7684\u6587\u4ef6\u76ee\u5f55 \u5728\u5730\u5740\u680f\u8f93\u5165\\HA\u7684IP \u8f93\u5165\u9884\u8bbe\u7684\u7528\u6237\u540d\u4e0e\u5bc6\u7801,\u5373\u53ef\u67e5\u770b,\u7f16\u8f91HA\u7684\u5404\u79cd\u6587\u4ef6\u3002","title":"\u5b89\u88c5Samba share\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#terminal-ssh","text":"Terminal & SSH \u63d2\u4ef6\u4e3aHA\u63d0\u4f9b\u4e86\u5728web\u7aef\u4f7f\u7528\u63a7\u5236\u53f0\u7ec8\u7aef\u529f\u80fd,\u53ca\u5f00\u542f\u4e86ssh\u670d\u52a1,\u4f7f\u4e4b\u53ef\u4ee5\u8fdc\u7a0b\u4f7f\u7528SSH\u8bbf\u95eeHA\u7ec8\u7aef\u3002 \u5728\u641c\u7d22\u4e2d\u8f93\u5165Terminal & SSH \u7ed3\u679c\u6709\u53ef\u80fd\u663e\u793a \u641c\u7d22\u4e0d\u5230\uff0c\u8fd9\u65f6\uff0c\u53ef\u80fd\u662f\u56e0\u4e3a\u4ed3\u5e93\u6ca1\u6709\u914d\u7f6e\uff0c\u8fd8\u662f\u4f7f\u7528\u7684\u9ed8\u8ba4\u7684\u4ed3\u5e93\uff0c\u6211\u4eec\u53ef\u4ee5\u589e\u52a0\u4e00\u4e0b\u4ed3\u5e93\uff0c\u5982\u4e0b\uff1a https://github.com/AlexxIT/hassio-addons \u70b9\u51fb\u53f3\u4e0a\u89e3\u7684\u4e09\u4e2a\u70b9,\u9009\u4e2d\u4ed3\u5e93 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d\u8f93\u5165,\u6211\u4eec\u8bb0\u5f55\u7684\u4ed3\u5e93\u5730\u5740,\u7136\u540e\u70b9\u6dfb\u52a0 \u5b8c\u6210\u540e,\u70b9\u51fb\u5173\u95ed. \u7136\u540e,\u70b9\u51fb\u8fd4\u56de,\u91cd\u65b0\u641c\u7d22 \u8fd9\u6b21\u627e\u5230\u4e86Advance SSH & Web Terminal \u70b9\u51fb\u5b89\u88c5,\u6253\u5f00\u5982\u4e0b\u9875\u9762 \u70b9\u51fb\u5b89\u88c5,\u6709\u65f6\u4f1a\u5b89\u88c5\u5931\u8d25, \u5931\u8d25\u540e,\u9700\u518d\u6b21\u5b89\u88c5,\u540c\u65f6\u68c0\u67e5\u65e5\u5fd7\u4e2d\u63d0\u5230\u7684\u54ea\u4e2a\u7f51\u5740\u65e0\u6cd5\u8bbf\u95ee ,\u628a\u5176\u52a0\u79d1\u5b66\u4e0a\u7f51\u7684\u4ee3\u7406\u540d\u5355\u4e2d. \u5b89\u88c5\u5b8c\u6210\u540e,\u5c31\u53d8\u6210\u5982\u4e0b \u5f00\u542f\u81ea\u52a8\u6062\u5f97,\u663e\u793a\u4fa7\u8fb9\u680f \u63a5\u4e0b\u6765,\u6211\u4eec\u914d\u7f6essh\u7684\u767b\u5f55\u4fe1\u606f,\u5982\u4e0b \u76f8\u5173\u4fe1\u606f\u5982\u4e0b: username:dtuser passsword:**** # \u6b64\u5904\u9700\u8981\u54a8\u8be2\u7ba1\u7406\u5458 \u5176\u5b83\u914d\u7f6e\u9009\u9879\u5982\u4e0b,\u6ce8\u610f\u9009\u9879,\u9009\u9519\u4e86ssh\u53ef\u80fd\u542f\u4e0d\u8d77\u6765,sftp\u5173\u95ed,zsh\u5173\u95ed.compatibility_mode\u8981\u5f00\u542f \u7136\u540e,\u70b9\u51fb\u542f\u52a8\u6309\u94ae \u542f\u52a8\u540e\u5982\u4e0b \u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e24\u4e2a\u5730\u65b9\u8fdb\u5165 \u5728\u65e5\u5fd7 \u7aef\u80fd\u770b\u5230 ssh\u5df2\u542f\u52a8\u6210\u529f s6-rc: info: service base-addon-banner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service base-addon-log-level: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service base-addon-log-level successfully started s6-rc: info: service legacy-cont-init: starting s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service init-ssh: starting s6-rc: info: service init-mysql: starting s6-rc: info: service init-mosquitto: starting s6-rc: info: service init-docker: starting s6-rc: info: service init-docker successfully started s6-rc: info: service init-mysql successfully started s6-rc: info: service init-mosquitto successfully started [14:51:05] WARNING: [14:51:05] WARNING: Logging in with a SSH password is security wise, a bad idea! [14:51:05] WARNING: Please, consider using a public/private key pair. [14:51:05] WARNING: What is this? https://kb.iu.edu/d/aews [14:51:05] WARNING: [14:51:05] NOTICE: RSA host key missing, generating one... Generating public/private rsa key pair. Your identification has been saved in /data/ssh_host_rsa_key Your public key has been saved in /data/ssh_host_rsa_key.pub The key fingerprint is: SHA256:+9pEl2QvyUqsu4B3gnPjhL/Ab71iBIDjWRdYvgZeg0c root@a0d7b954-ssh The key's randomart image is: +---[RSA 3072]----+ | . oE. | |o .o+. | |..o+.= o | | o. = o . + + | | . + S + * . | | ..+. = o . | | B.B.+ o | | X+=.= | | o=o=+o | +----[SHA256]-----+ [14:51:08] NOTICE: ED25519 host key missing, generating one... Generating public/private ed25519 key pair. Your identification has been saved in /data/ssh_host_ed25519_key Your public key has been saved in /data/ssh_host_ed25519_key.pub The key fingerprint is: SHA256:MgbUsAJ+23skjVTwD0pWVRBCmZ0BjU3jwV/99gGnNVc root@a0d7b954-ssh The key's randomart image is: +--[ED25519 256]--+ |. o+o*%O*. . E| |.. . .=+o*o o =.| | ...o+ o .. . = +| | ..*.+ o . . .o| | . =+oS. .o| | .+o .| | . . | | . | | | +----[SHA256]-----+ s6-rc: info: service init-ssh successfully started s6-rc: info: service init-user: starting [14:51:08] NOTICE: Session sharing has been disabled! s6-rc: info: service init-user successfully started s6-rc: info: service ttyd: starting s6-rc: info: service sshd: starting s6-rc: info: service sshd successfully started s6-rc: info: service ttyd successfully started s6-rc: info: service legacy-services: starting [14:51:09] INFO: Starting the ttyd daemon... [14:51:09] INFO: Starting the SSH daemon... s6-rc: info: service legacy-services successfully started Server listening on 0.0.0.0 port 22. Server listening on :: port 22. \u914d\u7f6e\u6210\u529f\u540e,\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u6765\u6d4b\u8bd5\u662f\u5426\u53ef\u4ee5\u8fdc\u7a0bSSH\u8fde\u5165 \u8f93\u5165yes\u540e\u4f1a\u8981\u6c42 \u8f93\u5165\u5bc6\u7801,\u9a8c\u8bc1\u6b63\u786e\u540e,\u4f1a\u8fdb\u5165\u770b\u5230\u5982\u4e2a\u56fe,\u5c31\u8bf4\u660essh\u5df2\u6b63\u5e38\u7684\u5f00\u542f\u6210\u529f\u4e86 \u4ee5\u4e0b\u754c\u9762\u662f\u5728ha\u4e2d\u770b\u5230\u7684\u5185\u7f6e\u7684ssh \u5176\u5b83,\u5f53\u8bbf\u95ee\u4e00\u4e9b\u7cfb\u7edf\u64cd\u4f5c\u65e0\u6743\u9650\u65f6,\u53ef\u4ee5\u5173\u95ed\u4fdd\u62a4\u5f00\u5173","title":"\u5b89\u88c5Terminal & SSH"},{"location":"Usages/initConfig/initConfig/#mosquitto-broker","text":"Mosquitto broker\u662f\u4e00\u4e2a\u91cd\u8981\u7684\u63d2\u4ef6,\u5176\u63d0\u4f9b\u7684MQTT \u670d\u52a1\u4e3a\u516c\u53f8\u5927\u591a\u6570\u6570\u8bbe\u5907\u6298\u96c6\u6210\uff0cmqtt\u901a\u4fe1\u901a\u9053\uff0c\u6240\u4ee5\uff0c\u6b64\u4e3a\u5fc5\u88c5\u63d2\u4ef6\u3002 \u70b9\u51fb\u5b89\u88c5 \u770b\u5230\u5982\u4e0b\u754c\u9762\uff0c\u8bf4\u660e\u5b89\u88c5\u6210\u529f\uff0c \u63a5\u4e0b\u6765\u662f\u914d\u7f6emqtt","title":"\u5b89\u88c5Mosquitto broker"},{"location":"Usages/initConfig/initConfig/#_2","text":"","title":"\u5f00\u542f\u81ea\u52a8\u6062\u590d"},{"location":"Usages/initConfig/initConfig/#mqtt","text":"username:dtuser password:****** #\u6b64\u5904\u7684\u5bc6\u7801\u8bf7\u54a8\u8be2\u7ba1\u7406\u5458 \u914d\u7f6e\u5b8c\u6210\u540e,\u542f\u52a8mqtt\u670d\u52a1 \u65e5\u5fd7\u4e2d\u663e\u793a\u5982\u4e0b\u4fe1\u606f,\u8bf4\u660e\u6210\u529f s6-rc: info: service s6rc-oneshot-runner: starting s6-rc: info: service s6rc-oneshot-runner successfully started s6-rc: info: service fix-attrs: starting s6-rc: info: service fix-attrs successfully started s6-rc: info: service legacy-cont-init: starting cont-init: info: running /etc/cont-init.d/mosquitto.sh [16:33:27] INFO: Setting up user dtuser [16:33:28] INFO: SSL is not enabled cont-init: info: /etc/cont-init.d/mosquitto.sh exited 0 cont-init: info: running /etc/cont-init.d/nginx.sh cont-init: info: /etc/cont-init.d/nginx.sh exited 0 s6-rc: info: service legacy-cont-init successfully started s6-rc: info: service legacy-services: starting services-up: info: copying legacy longrun mosquitto (no readiness notification) services-up: info: copying legacy longrun nginx (no readiness notification) [16:33:29] INFO: Starting NGINX for authentication handling... s6-rc: info: service legacy-services successfully started [16:33:29] INFO: Starting mosquitto MQTT broker... 2025-04-17 16:33:29: Warning: Mosquitto should not be run as root/administrator. 2025-04-17 16:33:29: mosquitto version 2.0.20 starting 2025-04-17 16:33:29: Config loaded from /etc/mosquitto/mosquitto.conf. 2025-04-17 16:33:29: Loading plugin: /usr/share/mosquitto/go-auth.so 2025-04-17 16:33:29: \u251c\u2500\u2500 Username/password checking enabled. 2025-04-17 16:33:29: \u251c\u2500\u2500 TLS-PSK checking enabled. 2025-04-17 16:33:29: \u2514\u2500\u2500 Extended authentication not enabled. 2025-04-17 16:33:29: Opening ipv4 listen socket on port 1883. 2025-04-17 16:33:29: Opening ipv6 listen socket on port 1883. 2025-04-17 16:33:29: Opening websockets listen socket on port 1884. 2025-04-17 16:33:29: mosquitto version 2.0.20 running 2025-04-17 16:33:29: New connection from ::1:56336 on port 1883. 2025-04-17 16:33:29: Client <unknown> disconnected due to protocol error. [16:33:30] INFO: Successfully send discovery information to Home Assistant. [16:33:31] INFO: Successfully send service information to the Supervisor. \u5f53\u6d88\u606f,\u63d0\u793a\u53d1\u73b0\u8bbe\u5907\u65f6,\u70b9\u51fb,\u5f39\u51fa\u7684\u6d88\u606f\u4e2d,\u70b9check it out,\u7136\u540e,\u770b\u5230\u5df2\u53d1\u73b0mqtt,\u70b9\u51fb\u6dfb\u52a0 \u7136\u540e,\u70b9\u51fb\u5b8c\u6210 \u7136\u540e\u5c31\u4f1a\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u96c6\u6210\u4e2d,\u663e\u793aMqtt,\u4ee5\u540e,\u6240\u6709\u589e\u52a0\u7684MQTT\u7c7b\u8bbe\u5907\uff0c\u90fd\u4f1a\u663e\u793a\u5728\u8fd9\u4e2a\u7c7b\u522b\u4e2d\u3002","title":"\u914d\u7f6emqtt\u7684\u7528\u6237\u540d\u5bc6\u7801\u53ca\u5b9a\u5236\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#node-red","text":"Node-Red\u63d2\u4ef6\u662f\u6211\u4eec\u96c6\u4e2d\u5404\u79cd\u8bbe\u5907\u7684\u91cd\u8981\u6d88\u606f\u5904\u7406\u8f6c\u6362\u63d2\u4ef6,\u5c5e\u5fc5\u88c5\u63d2\u4ef6. \u5728\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22nod\u663e\u793a\u5982\u4e0b \u70b9\u51fb,\u8fdb\u5165\u8be6\u7ec6\u9875\u9762 \u70b9\u51fb\u5b89\u88c5 \u5982\u679c\u5b89\u88c5\u51fa\u9519,\u591a\u534a\u662f\u79d1\u5b66\u4e0a\u7f51\u7684\u95ee\u9898, \u5982\u73b0\u5982\u4e0b\u9875\u9762,\u8bf4\u660e\u5b89\u88c5\u6210\u529f \u5f00\u542f\u81ea\u52a8\u6062\u590d,\u5173\u95ed\u4fa7\u8fb9\u680f \u914d\u7f6enod-red \u6b64\u5904\u7684\u914d\u7f6e\u4fe1\u606f\u4e3a username:admin password:**** #\u6b64\u5904\u7684\u5bc6\u7801,\u8bf7\u5411\u7ba1\u7406\u5458\u83b7\u53d6 ### \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u5173\u95edssl \u7136\u540e\u542f\u52a8node-red \u70b9\u51fb\u6253\u5f00web-\u9875\u9762\u5982\u4e0b","title":"\u5b89\u88c5Node-RED\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#go2rtc","text":"go2rtc\u63d2\u4ef6\u662f\u4e3a\u4e86\u5bf9\u89c6\u6d41\u8f6c\u53d1\u7528\u7684\u4e13\u7528\u63d2\u4ef6,\u5982\u679c\u60f3\u628a\u76d1\u63a7\u89c6\u9891\u6d41\u63a5\u5165,\u5219\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u63d2\u4ef6,\u5b89\u88c5\u65b9\u6cd5\u662f,\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22go2rtc, \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u5b8c\u6210\u540e\u5f00\u542f\u81ea\u52a8\u6062\u590d,\u81ea\u52a8\u66f4\u65b0 \u5176\u8bbe\u7f6e\u4e2d\u57fa\u672c\u6ca1\u4ec0\u4e48\u8981\u6539\u7684.","title":"\u5b89\u88c5go2rtc\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#vlc","text":"\u5728\u52a0\u8f7d\u5546\u5e97\u4e2d\u641c\u7d22vlc \u70b9\u51fb\u5b89\u88c5 \u5b89\u88c5\u6210\u529f\u5982\u4e0b\u6240\u793a \u914d\u7f6e\u4e2d\u57fa\u672c\u6ca1\u8981\u8981\u914d\u7f6e\u7684\u4e1c\u897f","title":"\u5b89\u88c5VLC\u53ef\u4ee5\u64ad\u653e\u89c6\u9891\u7b49\u529f\u80fd,\u9700\u8981\u7684\u8bdd\u53ef\u4ee5\u5b89\u88c5"},{"location":"Usages/initConfig/initConfig/#docker-postgresql","text":"\u867d\u7136 Home Assistant OS \u672c\u8eab\u4e0d\u5141\u8bb8\u76f4\u63a5\u8bbf\u95ee\u7cfb\u7edf\u5e95\u5c42\uff0c\u4f46\u5b83\u5185\u7f6e\u4e86 Docker \u652f\u6301\uff0c\u56e0\u6b64\u53ef\u4ee5\u76f4\u63a5\u8fd0\u884c PostgreSQL \u7684 Docker \u5bb9\u5668\u3002","title":"\u5229\u7528 Docker \u5b89\u88c5 PostgreSQL"},{"location":"Usages/initConfig/initConfig/#_3","text":"\u786e\u4fdd\u60a8\u6709 SSH \u8bbf\u95ee\u6743\u9650 \u5b89\u88c5 Home Assistant \u7684 SSH & Web Terminal Add-on\uff08\u9ad8\u7ea7\u6a21\u5f0f\uff09\u3002 \u5f00\u542f SSH \u8bbf\u95ee\uff0c\u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u524d\u5f80 Supervisor > Add-on Store \u3002 \u641c\u7d22\u5e76\u5b89\u88c5 SSH & Web Terminal \uff08\u5b98\u65b9\u63d2\u4ef6\uff09\u3002 \u914d\u7f6e SSH \u63d2\u4ef6\uff0c\u786e\u4fdd protected \u8bbe\u7f6e\u4e3a false \uff0c\u7136\u540e\u542f\u52a8\u5b83\u3002 \u8fd0\u884c PostgreSQL \u5bb9\u5668 \u5728 SSH \u6216 Web Terminal \u4e2d\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\uff1a docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD= **pwd** \\ -e POSTGRES_DB=dtha \\ -v /db/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ postgres \u66ff\u6362 **pwd** \u4e3a\u60a8\u60f3\u8981\u8bbe\u7f6e\u7684\u6570\u636e\u5e93\u5bc6\u7801,\u4e9b\u5bc6\u7801,\u9700\u8981\u7ba1\u7406\u5458\u54a8\u8be2 \u6570\u636e\u5e93\u540d\u79f0\u4e3a dtha \uff0c\u7528\u6237\u540d\u4e3a dtuser \u3002 \u6570\u636e\u5c06\u5b58\u50a8\u5728 /mnt/data/supervisor/postgresql \uff0c\u786e\u4fdd\u6570\u636e\u5728\u91cd\u542f\u540e\u4e0d\u4f1a\u4e22\u5931\u3002 \u767b\u5f55ssh,\u5e76\u67e5\u770b\u5df2\u5b89\u88c5\u7684docker\u955c\u50cf\u5982\u4e0b \u5148\u521b\u5efapgsql\u5b58\u50a8\u5377\u9700\u8981\u7684\u76ee\u5f55,\u8fd9\u4e2a\u6211\u4eec\u7edf\u4e00\u5b9a\u4e3a\u5982\u4e0b\u76ee\u5f55,\u5e76\u7ed9777\u6743\u9650 /db/pgsqldata \u5373\u5728\u6839\u76ee\u5f55\u4e0b,\u521b\u5efadb\u76ee\u5f55,\u7136\u540e\u5728db\u76ee\u5f55\u4e2d\u521b\u5efapgsqldata,\u5e76\u7ed9\u8db3\u6743\u9650 / # cd homeassistant homeassistant # ls automations.yaml configuration.yaml home-assistant.log home-assistant.log.fault home-assistant_v2.db-shm scenes.yaml secrets.yaml blueprints deps home-assistant.log.1 home-assistant_v2.db home-assistant_v2.db-wal scripts.yaml tts homeassistant # mkdir db homeassistant # sudo chmod -R 7777 ./db homeassistant # cd db db # ls db # pwd /homeassistant/db db # sudo mkdir pgsqldata db # sudo chmod -R 7777 ./pgsqldata db # ls pgsqldata db # cd pgsqldata pgsqldata # ls -l ./ total 0 pgsqldata # cd .. db # ls -l ./ total 4 drwsrwsrwt 2 root root 4096 Apr 18 16:30 pgsqldata \u63a5\u4e0b\u6765,\u62c9\u53d6\u955cpgsql\u7684\u955c\u50cf,\u5e76\u6307\u5411/mnt/data/pgsqldata,\u6b64\u5904\u8981\u6ce8\u610f\u4e0d\u662f\u6240\u6709\u7684\u76ee\u5f55\u90fd\u6709\u5199\u5165\u6743\u9650,homeAssitant\u4e2d\u5927\u90e8\u4efd\u76ee\u5f55\u90fd\u6ca1\u6709\u5199\u5165\u6743\u9650,\u8981\u6ce8\u610f\u627e\u6709\u5199\u5165\u6743\u9650\u7684\u76ee\u5f55 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7cfb\u7edf\u4f1a\u81ea\u52a8\u62c9\u53d6\u955c\u50cf,\u5e76\u542f\u52a8,\u6b64\u8fc7\u7a0b\u52a1\u5fc5\u4fdd\u8bc1\u79d2\u5b66\u4e0a\u7f51\u7684\u7545\u901a \u5982\u4e0b\u56fe,\u6240\u793a, \u8bf4\u660e\u76ee\u5f55\u6ca1\u6709\u6743\u9650, chown -R root:root mnt/data/pgsqldata chmod -R 7777 /mnt/data/pgsqldata \u7ed9\u591f\u76ee\u5f55\u6743\u9650\u540e,\u518d\u6b21\u8fd0\u884c,\u5b89\u88c5\u6307\u4ee4 data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: docker: Error response from daemon: Conflict. The container name \"/postgresql\" is already in use by container \"f5b838e28f30ff3bde9f90276b8aa4924b4f1ecec2cdbd4e38dfe27e2c988edb\". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help \u4e0a\u8ff0\u8bf4\u660epgswl\u7684\u5bb9\u5668\u5df2\u7ecf\u5b58\u5728,\u9700\u8981\u5220\u9664 docker stop postgresql docker rm postgresql \u7136\u540e,\u518d\u6b21\u6267\u884c,\u5373\u53ef\u6210\u529f data # docker run -d \\ --name=postgresql \\ -e POSTGRES_USER=dtuser \\ -e POSTGRES_PASSWORD=Dtuse1r \\ -e POSTGRES_DB=dtha \\ -v /mnt/data/pgsqldata:/var/lib/postgresql/data \\ -p 5432:5432 \\ --restart unless-stopped postgres # \u6267\u884c\u5b8c\u6210\u540e,\u8fd4\u56de: 9a4721cccb0d5c63671da5cba4a6b6c13721f48ac664de03312cddaa216a2e56 \u7528ps -a \u67e5\u8be2\u4e00\u4e0b,\u5982\u4e0b\u56fe\u6240\u793a,\u8bf4\u660edocker \u542f\u52a8\u6210\u529f, \u4e3a\u4e86\u9a8c\u8bc1\u91cd\u65b0\u542f\u52a8\u540e,pgsql\u5bb9\u5668\u662f\u5426\u542f\u52a8,\u53ef\u4ee5\u91cd\u542f\u540e,\u518d\u6b21\u67e5\u770b\u4e00\u4e0b,\u6b64\u5bb9\u5668\u662f\u5426\u8ddf\u968f\u7cfb\u7edf\u542f\u52a8\u6210\u529f. \u63a5\u4e0b\u6765,\u6211\u4eec\u53ef\u4ee5\u5728\u5c40\u57df\u7f51\u4e2d\u627e\u53f0\u673a\u5668\u6765\u505a\u4e00\u4e0b\u6570\u636e\u5e93\u8fde\u63a5\u6d4b\u8bd5 \u5982\u4e0a\u56fe,\u8bf4\u660epgsql\u5df2\u7ecf\u5b89\u88c5\u6210\u529f\u4e86,\u5e76\u80fd\u6b63\u5e38\u8bbf\u95ee.","title":"\u6b65\u9aa4"},{"location":"Usages/initConfig/initConfig/#homeassistantpgsql","text":"HomeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3asqlite,\u6211\u4eec\u9700\u8981\u628a\u5176\u6362\u6210\u6211\u4eec\u65b0\u5b89\u88c5\u7684pgsql, \u901a\u8fc7\u6211\u4eec\u5b89\u88c5\u7684\u63d2\u4ef6File editor \u6253\u5f00\u914d\u7f6e\u6587\u4ef6 /homeassistant/configruration.yaml \u589e\u52a0recorder\u4e2d\u7684\u914d\u7f6e\u5982\u4e0b \u7136\u540e,\u4fdd\u5b58\u9000\u51fa,\u91cd\u542f,\u770b\u770bha\u6709\u6ed1\u7684\u7ed9\u51fa\u9519\u8bef\u63d0\u793a,\u4e5f\u53ef\u4ee5\u901a\u8fc7,\u8fde\u63a5\u5de5\u5177\u6765\u67e5\u770b,ha\u6709\u6ca1\u6709\u5728\u6570\u636e\u5e93\u4e2d\u5efa\u8868,\u5199\u5165\u6570\u636e \u5982\u4e0a\u56fe,\u8bf4\u660e\u6570\u636e\u5df2\u529f\u529f\u6298\u5199\u5165PGSQL,\u6b64\u65f6\uff0c\u6211\u4eec\u53ef\u4ee5\u628a\u7cfb\u7edf\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u5220\u9664\u4e86 \u8fd9\u4e2a\u6587\u4ef6\u662fhomeAssistant\u9ed8\u8ba4\u7684sqlite\u6570\u636e\u5e93\u6587\u4ef6\uff0c\u53ef\u4ee5\u5220\u9664\u4e86\uff0c\u70b9\u53f3\u5219\u7684\u4e09\u4e2a\u70b9\uff0c\u5728\u5f39\u51fa\u7684\u83dc\u5355\u4e2d\uff0c\u70b9delete \u70b9\u51fbyes\u786e\u8ba4 \u7136\u540e\u91cd\u542f,\u518d\u6b21\u67e5\u770b,\u662f\u5426\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6, \u5982\u679c\u6ca1\u6709\u91cd\u65b0\u751f\u6210\u6b64\u6587\u4ef6 ,\u8bf4\u660e,\u7cfb\u7edf\u5df2\u7ecf\u5728\u7528pgsql\u4e86","title":"\u66f4\u6539homeAssistant\u9ed8\u8ba4\u7684\u6570\u636e\u5e93\u4e3apgSql"},{"location":"Usages/initConfig/initConfig/#hacs","text":"","title":"\u5b89\u88c5HACS"},{"location":"Usages/initConfig/initConfig/#hacs_1","text":"HACS\uff0c\u5168\u79f0 Home Assistant Community Store\uff08Home Assistant \u793e\u533a\u5546\u5e97\uff09\uff0c\u662f\u4e00\u4e2a\u7528\u4e8e Home Assistant \u7684\u7b2c\u4e09\u65b9\u6269\u5c55\u63d2\u4ef6\u7ba1\u7406\u5668\u3002\u5b83\u4e3a\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u65b9\u4fbf\u7684\u65b9\u5f0f\u6765\u5b89\u88c5\u548c\u7ba1\u7406\u793e\u533a\u5f00\u53d1\u7684\u81ea\u5b9a\u4e49\u96c6\u6210\u3001\u63d2\u4ef6\u3001\u4e3b\u9898\u548c\u5176\u4ed6\u6269\u5c55\u7ec4\u4ef6\u3002 \u8fd9\u4e2a\u63d2\u4ef6\u96c6\u4e2d\u4e86\u8bb8\u591a\u5927\u5c4f\u7528\u7684\u4e3b\u9898\u4e0e\u63d2\u4ef6\uff0c\u5c5e\u4e8e\u5fc5\u88c5\u63d2\u4ef6\uff0e","title":"hacs\u7b80\u4ecb"},{"location":"Usages/initConfig/initConfig/#hacs_2","text":"\u8fdb\u5165ssh\u767b \u5f55\u540e,\u8f93\u5165\u5982\u4e0b\u6307\u4ee4 wget -O - https://get.hacs.xyz | bash - \u56de\u8f66\u540e,\u7cfb\u7edf\u4f1a\u81ea\u52a8\u4e0b\u8f7dHACS\uff0c\u5e76\u653e\u5230\u6307\u5b9a\u7684\u76ee\u5f55\uff0c\u4e14\u63d0\u793a\u91cd\u542f\uff0c\u6211\u4eec\u6309\u8981\u6c42\u91cd\u542f\uff0c\u5373\u53ef\u3002","title":"\u5b89\u88c5hacs"},{"location":"Usages/initConfig/initConfig/#hacs_3","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u60a8\u9700\u8981\u5728 Home Assistant \u7684\u754c\u9762\u4e2d\u542f\u7528 HACS\uff1a \u6253\u5f00 Home Assistant UI\u3002 \u70b9\u51fb \u8bbe\u7f6e > \u8bbe\u5907\u4e0e\u670d\u52a1 > \u96c6\u6210 \u3002 \u70b9\u51fb\u53f3\u4e0b\u89d2 \u6dfb\u52a0\u96c6\u6210 \u3002 \u641c\u7d22\u5e76\u9009\u62e9 HACS \uff0c\u7136\u540e\u6309\u7167\u5c4f\u5e55\u4e0a\u7684\u63d0\u793a\u5b8c\u6210\u8bbe\u7f6e\u3002 \u70b9\u51fb\u540e,\u5728\u5f39\u51fa\u7684\u7a97\u53e3\u4e2d,\u5168\u6253\u52fe,\u70b9\u63d0\u4ea4 \u5f15\u65f6,\u5f39\u51fa\u65b0\u7684\u7a97\u53e3,\u9a8c\u8bc1github\u6388\u6743 \u70b9\u51fb\u8fd9\u4e2agithub\u94fe\u63a5,\u5e76\u8bb0\u4f4f\u4e0b\u65b9\u7684\u6388\u6743\u7801\u540e\u9762\u4f1a\u7528\u5230 \u5728\u5f39\u51fa\u7684\u9875\u9762\u4e2d,\u8f93\u5165,\u8bb0\u4f4f\u7684\u6388\u6743\u7801,\u70b9Continue \u63d0\u793a\u5177\u4f53\u7684\u6388\u6743\u5bf9\u50cf\u4e3ahacs,\u70b9\u51fbAutuorize hacs \u6388\u6743\u6210\u529f \u8fd4\u56dehacs\u540e,\u63d0\u793a\u6210\u529f,\u5e76\u663e\u793a\u5df2\u53d1\u73b0\u5982\u4e0b\u8bbe\u5907,hacs,\u9009\u62e9\u533a\u57df,\u53ef\u4ee5\u81ea\u5b9a\u4e49\u4e2a\u533a\u57df,\u7136\u540e\u70b9\u5b8c\u6210 \u770b\u5230\u5982\u4e0b\u754c\u9762hacs\u5c31\u5b89\u88c5\u597d\u4e86 \u70b9\u51fb\u914d\u7f6e,\u542f\u7528App Daemon apps discovery & tgracking. \u4ee5\u4e0a\u914d\u7f6e \u5b8c\u6210\u540e,\u91cd\u65b0\u542f\u52a8HA\uff0c\u5219\u53ef\u4ee5\u5728\u5de6\u4fa7\u680f\u4e2d\u627e\u5230HACS\u83dc\u5355\u4e86","title":"\u542f\u7528HACS"},{"location":"Usages/initConfig/initConfig/#homeassistantlogo","text":"homeAssistant \u5de6\u4e0a\u89d2\u9ed8\u8ba4\u7684\u6807\u9898\u4e3a Home Assistant \u6211\u4eec\u5e0c\u671b\u6539\u6210\u81ea\u5df2\u7684\u6807\u8bc6\u5982:\u5cb1\u7279\u667a\u80fd","title":"\u66f4\u6539HomeAssistant\u5de6\u4e0a\u89d2LOGO\u6807\u9898"},{"location":"Usages/initConfig/initConfig/#hass-faviconreleases","text":"\u70b9\u51fb\u94fe\u63a5 ,\u5230\u5176github\u7684\u5b98\u65b9\u9875\u9762 \u4e0b\u8f7d\u5176\u6e90\u7801","title":"\u4e0b\u8f7d\u7b2c\u4e09\u65b9\u63d2\u4ef6hass-favicon\u7684Releases\u5230\u672c\u5730\u76ee\u5f55"},{"location":"Usages/initConfig/initConfig/#_4","text":"","title":"\u89e3\u538b\u4e0b\u8f7d\u7684\u6e90\u7801"},{"location":"Usages/initConfig/initConfig/#ha","text":"\u6253\u5f00\u6e90\u7801\u76ee\u5f55,\u8fdb\u5165custom_commponents\u76ee\u5f55,\u628afavicon\u76ee\u5f55\u6574\u4f53\u590d\u5236 \u7136\u540e,\u8fdb\u5165ha\u7684config-custom_compoents\u76ee\u5f55\u7c98\u8d34,\u590d\u5236\u5230\u7684favicon \u7136\u540e\u521b\u5efa\u76ee\u5f55 \\\\ha-o[\\config\\www\\favicons \u5e76\u628a\u80dc\u900f\u7684logo\u6587\u4ef6st-logo.,png\u653e\u5230\u76ee\u5f55\u4e2d \u7136\u540e\u5728\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\u5982\u4e0b\u5185\u5bb9 \u7136\u540e,\u91cd\u542fHomeAssistant\u5373\u53ef \u91cd\u542f\u540e,\u5de6\u4e0a\u811a\u7684LOGO\uff0c\u5df2\u53d8\u4e3a\u5cb1\u7279\u667a\u80fd.","title":"\u5c06\u63d2\u4ef6\u590d\u5236\u5230ha\u4e0a"},{"location":"Usages/initConfig/initConfig/#_5","text":"\u7c73\u5bb6\u96c6\u6210\u662f\u4e00\u4e2a\u7531\u5c0f\u7c73\u5b98\u65b9\u63d0\u4f9b\u652f\u6301\u7684 Home Assistant \u7684\u96c6\u6210\u7ec4\u4ef6\uff0c\u5b83\u53ef\u4ee5\u8ba9\u60a8\u5728 Home Assistant \u4e2d\u4f7f\u7528\u5c0f\u7c73 IoT \u667a\u80fd\u8bbe\u5907\u3002 \u8fd9\u4e2a\u63d2\u4ef6,\u53ef\u4ee5\u76f4\u63a5\u628a\u6240\u6709\u5c0f\u7c73\u7684\u5404\u79cd\u4f20\u611f\u5668\u96c6\u6210\u5230HomeAssistant\u4e2d,\u6240\u4ee5\u8fd9\u4e2a\u662f\u5fc5\u88c5\u63d2\u4ef6. \u5176\u5b98\u65b9\u4ed3\u5e93\u5730\u5740\u4e3a: Xiaomi Home Integration for Home Assistant https://github.com/XiaoMi/ha_xiaomi_home \u5176\u5b89\u88c5\u65b9\u6cd5\u6709\u4e09\u79cd,\u6211\u4eec\u4e3a\u4e86\u65b9\u4fbf\u9009\u62e9\u7b2c\u4e00\u79cd,\u5176\u5b83\u4e24\u79cd\u65b9\u6cd5,\u53ef\u4ee5\u81ea\u884c\u5c1d\u8bd5.\u5b98\u65b9\u63cf\u8ff0\u7684\u65b9\u88c5\u4e3b\u5f0f\u5982\u4e0b: cd config git clone https://github.com/XiaoMi/ha_xiaomi_home.git cd ha_xiaomi_home ./install.sh /config \u5176\u4e5f\u63d0\u4f9b \u4e2d\u6587\u7684\u5b89\u88c5\u8bf4\u660e","title":"\u5b89\u88c5\u7c73\u5bb6\u96c6\u6210\u63d2\u4ef6"},{"location":"Usages/initConfig/initConfig/#_6","text":"\u9996\u5148,\u767b\u5f55SSH.\u7136\u540e\u8fdb\u5165config\u76ee\u5f55 \u5148\u62c9\u53d6\u4ee3\u7801 config # git clone https://github.com/XiaoMi/ha_xiaomi_home.git Cloning into 'ha_xiaomi_home'... remote: Enumerating objects: 1322, done. remote: Counting objects: 100% (761/761), done. remote: Compressing objects: 100% (342/342), done. remote: Total 1322 (delta 628), reused 419 (delta 419), pack-reused 561 (from 2) Receiving objects: 100% (1322/1322), 847.87 KiB | 1.64 MiB/s, done. Resolving deltas: 100% (817/817), done. \u7136\u540e,\u518d\u5207\u6362\u5230ha_xiaomi_home\u76ee\u5f55 cd ha_xiaomi_home \u7136\u540e\u6267\u884c\u5b89\u88c5\u6307\u4ee4 ./install.sh /config # Xiaomi Home installation is completed. Please restart Home Assistant. \u5b89\u88c5\u5b8c\u6210,\u63d0\u793a\u9700\u8981\u91cd\u542f.","title":"\u5b89\u88c5"},{"location":"Usages/initConfig/initConfig/#_7","text":"\u5728\u91cd\u65b0\u542f\u52a8\u540e,\u5728\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210\u4e2d,\u641c\u7d22\u201c Xiaomi Home \u201d \u70b9\u51fb,\u4f1a\u63d0\u793a\u98ce\u9669\u63d0\u793a \u52fe\u9009,\u6211\u77e5\u6089,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u4f1a\u8fdb\u5165\u57fa\u7840\u914d\u7f6e\u9875\u9762,\u5982\u4e0b\u56fe \u52fe\u9009\u96c6\u6210\u7f51\u7edc\u914d\u7f6e,\u540c\u86d9,\u6ce8\u610f\u4e00\u4e0b,\u8ba4\u8bc1\u8df3\u8f6c\u5730\u5740,\u6b64\u5904\u663e\u6b3e\u4e3ahttp://homeassistant.lcaol:8123,\u8fd9\u4e2a\u5730\u5740,\u4f30\u8ba1\u4e0d\u53ef\u80fd\u901a\u8fc7,\u53ea\u56e0\u4e3a\u6211\u4eec\u662f\u5728\u5c40\u57df\u7f51\u5176\u5b83\u673a\u5668\u64cd\u4f5c\u8fd9\u4e00\u6b65\u7684,\u5b9e\u9645\u4e0a\u6211\u4eec\u7684\u5730\u5740,\u5e94\u662f\u5730\u5740\u680f\u4e2d\u6298\u5b9e\u9645\u5730\u5740,\u5982\u4e0a\u56fe,\u6211\u4eec\u7684\u8ba4\u8bc1\u5730\u5740\u662f:http://192.168.3.2:8123, \u5728\u4e0b\u4e00\u6b65\u8df3\u8f6c\u8f6c\u5c0f\u7c73\u540e,\u6253\u5f00\u7684\u7f51\u5740\u65f6,\u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u4f30\u8ba1\u662f\u6253\u4e0d\u5f00\u7684,\u9700\u8981\u628a\u90a3\u4e2a\u5730\u5740\u7684\u524d\u534a\u6bb5,\u6362\u6210\u8fd9\u4e2a\u5b9e\u9645\u5730\u5740. \u70b9\u51fb\u4e0b\u4e00\u6b65, \u6b64\u5904\u4e3a\u68c0\u6d4b\u7f51\u7edc,\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u65f6,\u624d\u80fd\u8fdb\u884c\u4e0b\u4e00\u6b65 \u5f53\u5f39\u51fa\u5982\u4e0b\u754c\u9762\u65f6,\u8bf4\u660e\u7f51\u7edc\u68c0\u6d4b\u901a\u8fc7\u4e86, \u70b9\u51fb,\"\u8bf7\u70b9\u6b64\u5904\u8fdb\u884c\u767b\u5f55\", \u6b64\u65f6,\u8df3\u8f6c\u5230\u5c0f\u7c73\u6298\u8ba4\u8bc1\u7f51\u9875,\u6b64\u65f6\u8f93\u5165\u6b63\u786e\u7c73\u5bb6\u5e10\u53f7\u4e0e\u5bc6\u7801,\u70b9\u767b\u5f55 \u5f39\u51fa \u53cb\u60c5\u63d0\u793a,\u70b9\u51fb,\u540c\u610f\u5e76\u7ee7\u7eed \u5c0f\u7c73\u7684\u5b89\u5168\u9a8c\u8bc1,\u70b9\u4e0b\u4e00\u6b65, \u70b9\u51fb \u53d1\u9001\u9a8c\u8bc1\u7801 \u8f93\u5165\u9a8c\u8bc1\u7801\u540e,\u70b9\u786e\u5b9a \u8df3\u8f6c\u5230\u4e86\u8ba4\u8bc1\u7a97\u53e3,\u4f46\u662f\u5374\u662f\u65e0\u65b9\u8bbf\u95ee\u6b64\u9875\u9762,\u8bf4\u660e\u8ba4\u8bc1\u5730\u5740,\u9519\u4e86,\u6211\u4eec\u9700\u8981\u628a\u5b83\u6362\u6210\u6211\u4eec\u6b63\u786e\u7684HA\u5730\u5740\uff1ahttp://192.168.3.2:8123,\u5982\u4e0b\u56fe\u6240\u793a \u624b\u5de5\u5c06\u6b63\u786e\u7684\u5730\u5740\u66ff\u6362\u5730\u5740\u5934\u90e8\u540e,\u56de\u8f66,\u6253\u5f00\u8fd9\u4e2a\u5730\u5740,\u7c7b\u4f3c\u5982\u4e0b\u683c\u5f0f: http://192.168.3.2:8123/api/webhook/3062281226000218850?code=C3_B7440E147BCCA71A76831877D510611F&state=d90a727abad348efee834884dae174b80a15de14 \u5982\u679c,\u7528\u4e0a\u8ff0\u65b9\u5f0f,\u4ecd\u7136\u4e0d\u80fd\u8bbf\u95ee,\u5219\u53ef\u7528\u5982\u4e0b\u65b9\u6cd5,\u66f4\u6539host\u6587\u4ef6,\u5f3a\u884c\u6307\u5b9a\u672c\u5730DNS,\u6307\u5411homeassistant.local,\u65b9\u6cd5\u5982\u4e0b: \u4fee\u6539 Windows hosts \u6587\u4ef6\u7684\u65b9\u6cd5 \u4f7f\u7528\u7ba1\u7406\u5458\u8eab\u4efd\u7528\u8bb0\u4e8b\u672c\u6253\u5f00\u5982\u4e0b\u6587\u4ef6 :C:\\Windows\\System32\\drivers\\etc\\hosts \u5728\u6700\u540e\u4e00\u884c\u589e\u52a0 192.168.3.2 homeassistant.local \u5982\u4e0b\u56fe \u7136\u540e,\u518d\u91cd\u65b0\u8bd5\u8fc7\u4e00\u6b21 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd,\u5c31\u4f1a\u81ea\u52a8\u8ba4\u8bc1\u901a\u8fc7 \u53ef\u4ee5\u6839\u636e\u63d0\u793a\u81ea\u52a8\u9009 \u5219\u623f\u95f4\u540c\u6b65\u6a21\u5f0f,\u8fd9\u4e2a\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u9009\u62e9,\u70b9\u51fb\u4e0b\u4e00\u6b65,\u5c06\u63d0\u793a\u63d2\u4ef6\u96c6\u6210\u6210\u529f.\u5982\u4e0b\u793a\u610f\u56fe \u770b\u5230\u5982\u4e0b\u56fe,\u5c31\u8bf4\u660e\u96c6\u6210\u5b8c\u6210\u4e86 \u4e0d\u51fa\u610f\u5916\u7684\u8bdd\u6982\u89c8\u4e2d,\u5c31\u5df2\u7ecf\u81ea\u52a8\u589e\u52a0\u4e86\u8bb8\u591a\u8bbe\u5907.","title":"\u914d\u7f6e"},{"location":"Usages/initConfig/initConfig/#webrtc-camera","text":"WebRTC camera\u63d2\u4ef6\u4ee5\u5b9e\u73b0\u9891\u6d41\u64ad\u653e.\u5982\u679cha\u8981\u63a5\u5165\u89c6\u9891\u76d1\u63a7,\u5219\u9700\u8981\u5b89\u88c5\u8fd9\u4e2a\u7ec4\u4ef6, \u4ed3\u5e93\u5730\u5740 : https://github.com/AlexxIT/WebRTC \u8fd9\u4e2a\u63d2\u4ef6\u4e5f\u6709\u591a\u79cd\u5b89\u88c5\u65b9\u6cd5,hacs\u5b89\u88c5,\u76f4\u63a5\u590d\u5236\u7b49\u65b9\u6cd5,\u56e0\u4e3a\u4e0a\u6587,\u6211\u4eec\u5df2\u7ecf\u5b89\u88c5\u8fc7\u4e86HACS\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u9009\u62e9\u4f7f\u7528HACS\u65b9\u5f0f\u5b89\u88c5\u3002 \u70b9\u51fb\u540e\uff0c\u5f39\u51fa\u5982\u4e0b\u9875\u9762 \u70b9\u51fbDownLoad\u6309\u94ae \u70b9\u51fbDownLoad \u5f53\u7136,\u6211\u4eec\u4e5f\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u6298\u7248\u672c \u5f53\u5f39\u51fa\u7a97\u53e3\u81ea\u52a8\u6d88\u5931,\u70b9\u51fb\u4e0a\u65b9\u7684\u8fd4\u56de( \u6ce8\u610f:\u4e0d\u4f1a\u81ea\u52a8\u8fd4\u56de,\u987b\u4eba\u5de5\u8fd4\u56de ),\u8fd4\u56de\u5982\u4e0b\u56fe \u770b\u5230\u4e0a\u65b9\u7684\u7b49\u5f85\u91cd\u542f,\u8bf4\u660e\u7ec4\u4ef6\u5df2\u7ecf\u5b89\u88c5\u4e0a,\u9700\u8981\u91cd\u542f,\u6211\u4eec\u6267\u884c\u91cd\u542f. \u91cd\u542f\u5b8c\u6210\u540e,\u4f1a\u770b\u5230,Downloaded\u4e2d\u5df2\u7ecf\u663e\u793a,\u4e86\u5b89\u88c5\u6210\u529f\u6298WebRTC Camera\u7ec4\u4ef6. \u7136\u540e,\u8fdb\u5165\u8bbe\u7f6e-\u8bbe\u5907\u4e0e\u670d\u52a1-\u6dfb\u52a0\u96c6\u6210,\u641c\u7d22WebRTC \u70b9\u51fbWebRtc Camera \u5f39\u51fago2rtc url\u5730\u5740\u7a97\u53e3,\u6b64\u63d2\u4ef6,\u6211\u4eec\u4e4b\u524d\u5df2\u88c5\u8fc7,\u5c31\u5728\u672c\u673a,\u6240\u5730\u5740\u4e0d\u7528\u6539,\u76f4\u63a5\u70b9\u63d0\u4ea4 \u70b9\u5b8c\u6210.WebRTC\u5b89\u88c5\u6210\u529f.\u5982\u4e0b\u56fe\u6240\u793a \u4e3a\u4e86\u6f14\u793a\u5982\u4f55\u663e\u793a\u76d1\u63a7\u89c6\u9891,\u6211\u4eec\u65b0\u589e\u52a0\u4e00\u4e2asample\u7684\u4eea\u8868\u76d8. \u70b9\u51fb,\u6dfb\u52a0\u4eea\u8868\u76d8 \u5728\u5f39\u51fa\u6298\u5bf9\u8bdd\u6846\u4e2d,\u8f93\u5165\u4eea\u8868\u76d8\u6807\u9898 \u8fd9\u6837\u6211\u6837\u5c31\u589e\u52a0\u4e86\u4e00\u4e2a\u4eea\u8868\u76d8dashboard-sampale,\u6211\u4eec\u53ef\u4ee5\u5728\u8fd9\u4e2a\u4eea\u8868\u76d8\u4e2d\u589e\u52a0\u6f14\u793a\u7528\u7684\u7ec4\u4ef6,\u6b64\u5904,\u6211\u4eec\u60f3\u589e\u52a0\u4e00\u4e2a\u6f14\u793a\u7528\u7684\u76d1\u63a7\u6444\u50cf\u5934.\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u7f16\u8f91\u6309\u94ae. \u70b9\u51fb\u521b\u5efa\u4e00\u4e2a\u7ec4\u4ef6 \u7136\u540e,\u65b0\u5efa\u5361\u7247,\u9009\u62e9\u81ea\u5b9a\u4e49WebRTC\u5361\u7247,\u5982\u679c\u6ca1\u6709\u8fd9\u4e2a\u7ec4\u4ef6,\u5219\u9700\u8981\u5237\u65b0\u51e0\u6b21,\u5c31\u80fd\u770b\u5230\u8fd9\u4e2a\u7ec4\u4ef6. \u6211\u6837\u5728\u5361\u7247\u8bbe\u7f6e\u4e2d\u8f93\u5165url\u7684\u89c6\u9891\u6d41\u5730\u5740 type: custom:webrtc-camera url: \"rtsp://admin:Camera_data2018@192.168.50.131:554/stream2\"","title":"\u5b89\u88c5WebRTC Camera"},{"location":"Usages/initConfig/initConfig/#motioneye","text":"motionEye \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6444\u50cf\u5934\u8f6f\u4ef6\uff08\u79f0\u4e3a motion\uff09\u7684\u524d\u7aef\u3002\u672c\u63d2\u4ef6\u540c\u65f6\u63d0\u4f9b\u4e86\u524d\u7aef\u548c\u6444\u50cf\u5934\u8f6f\u4ef6\uff0c\u8ba9\u60a8\u53ef\u4ee5\u5c06\u6444\u50cf\u5934\u6dfb\u52a0\u5230 Hass.io \uff08Home Assistant\uff09\u7cfb\u7edf\u4e2d\u3002 motionEye \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u95ed\u8def\u7535\u89c6\uff08CCTV\uff09\u548c\u7f51\u7edc\u89c6\u9891\u5f55\u50cf\u673a\uff08NVR\uff09\uff0c\u5b83\u8bbe\u8ba1\u4f18\u96c5\u4e14\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002\u5b83\u53ef\u4ee5\u7528\u4f5c\u5a74\u513f\u76d1\u89c6\u5668\u3001\u5efa\u7b51\u5de5\u5730\u76d1\u63a7\u3001\u5546\u5e97\u6444\u50cf\u5934\u5f55\u50cf\u673a\u3001\u82b1\u56ed\u5b89\u9632\u7b49\u3002","title":"\u5b89\u88c5motionEye"},{"location":"Usages/initConfig/initConfig/#motioneye_1","text":"\u652f\u6301\u5927\u91cf\u6444\u50cf\u5934\uff0c\u5305\u62ec IP \u6444\u50cf\u5934\u3002 \u53ef\u4ee5\u901a\u8fc7\u5c06\u591a\u4e2a motionEye \u5b9e\u4f8b\u8fde\u63a5\u5728\u4e00\u8d77\u6dfb\u52a0\u591a\u4e2a\u6444\u50cf\u5934\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5728\u7f51\u7edc\u4e2d\u4f7f\u7528\u8fd0\u884c MotionEyeOS \u7684 Pi Zero \u548c Pi \u6444\u50cf\u5934\u3002 \u652f\u6301\u5c06\u5f55\u50cf\u4e0a\u4f20\u5230 Google Drive \u548c Dropbox\u3002 \u652f\u6301\u8fd0\u52a8\u68c0\u6d4b\uff0c\u5305\u62ec\u90ae\u4ef6\u901a\u77e5\u548c\u8ba1\u5212\u4efb\u52a1\u3002 \u53ef\u4ee5\u8fde\u7eed\u5f55\u50cf\u3001\u8fd0\u52a8\u5f55\u50cf\u6216\u5ef6\u65f6\u5f55\u50cf\uff0c\u5e76\u652f\u6301\u4fdd\u7559\u8bbe\u7f6e\u3002 \u652f\u6301\u914d\u7f6e\u4e2d\u7684\u201c\u64cd\u4f5c\u6309\u94ae\u201d\u3002","title":"motionEye \u7684\u4e00\u4e9b\u7279\u70b9\uff1a"},{"location":"Usages/initConfig/initConfig/#_8","text":"\u5728\u8bbe\u7f6e-\u52a0\u8f7d\u9879\u4e2d,\u641c\u7d22\"motionEye\", \u70b9\u51fb\u67e5\u770b\u8be6\u60c5\u9875,\u5e76\u5b89\u88c5 motioneye\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u4e3aadmin,\u5bc6\u7801\u4e3a\u7a7a.","title":"\u5b89\u88c5\u65b9\u6cd5"},{"location":"Usages/initConfig/installHacs/","text":"","title":"installHacs"},{"location":"Usages/netconfig/netconfig/","text":"\u914d\u7f6e\u7f51\u7edc \u00b6 \u516c\u53f8\u4f7f\u7528\u7684X86\u5c0f\u5de5\u63a7\u673a,\u5927\u591a\u6709\u591a\u4e2a\u7f51\u5361,\u4e00\u822c\u4e00\u4e2a\u65e0\u7ebf\u7f51\u5361,\u4e24\u4e2a\u6709\u7ebf\u7f51\u5361.\u591a\u6570\u60c5\u51b5\u4e0b,\u6211\u4eec\u53ef\u80fd\u662f\u4f7f\u7528\u7684WIFI\u7f51\u7edc\uff0c\u8fd9\u6837\u6bd4\u8f83\u65b9\u4fbf\uff0c\u6709\u65f6\u4e3a\u4e86HA\u63d0\u4f9b\u7684\u670d\u52a1\u6298\u7a33\u5b9a\u6027\uff0c\u6211\u4eec\u5c3d\u91cf\u4f7f\u7528LAN\u7ebf\u7f51\u7edc\uff0c\u907f\u514d\u65e0\u7ebf\u7f51\u4fe1\u53f7\u8d28\u91cf\u7684\u95ee\u9898\u3002\u6240\u4ee5\u5c31\u6d89\u53ca\u5230\u914d\u7f51\u7684\u95ee\u9898\u3002 HomeAssistant\u7684\u7f51\u7edc\u914d\u7f6e,\u5728\u7cfb\u7edf\u6ca1\u6709\u5b89\u88c5\u6210\u529f\u4e4b\u524d,\u4e0d\u80fd\u901a\u8fc7web\u8fdb\u5165\u7f51\u9875\u754c\u9762\u65f6,\u914d\u7f6e\u7f51\u7edc\u53ea\u80fd\u901a\u8fc7\u81ea\u5e26\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4\u6765\u8fdb\u884c. \u719f\u6089\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4 \u00b6 HomeAssistant Cli \u63d0\u4f9b\u4e86\u9ed8\u4fe1\u6298network\u914d\u7f6e\u547d\u4ee4\u5982\u4e0b: ha netWork Useage: ha network [command] Examples: ha network info ha network interface options Available Commands: info Shows information about the host network reload Reload Network information the host scan Scan for Access Points on a wireless interface. update Update settings of a network interface vlan Create a new VLAN on an ethernet interface Flags: -h, --help help for network Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is'supervisor') --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API Use \"ha network [command] --help\" for more information about a command. \u8fd9\u4e2aha network\u547d\u4ee4,\u5927\u7ea6\u5982\u4e0b\u51e0\u4e2a\u529f\u80fd info \u663e\u793a\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f reload \u91cd\u65b0\u52a0\u8f7d\u7f51\u7edc scan \u626b\u63cf\u7f51\u7edc update \u914d\u7f6e\u7f51\u7edc \u6211\u4eec\u5728\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u65f6,\u53ef\u4ee5\u4f7f\u7528\u5176\u7b80\u5199,\u6bd4\u5982\u7701\u53bb\u524d\u9762\u7684ha,\u8fd8\u53ef\u4ee5\u7701\u53bb\u540e\u9762\u7684work \u6bd4\u5982,\u6211\u4eec\u60f3\u67e5\u770b\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f,\u53ef\u4ee5\u7528\u5982\u4e0b\u547d\u4ee4\u6765\u8fdb\u884c net info \u8fd9\u6761\u547d\u4ee4\u5c31\u4f1a\u628a\u6240\u6709\u7684\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f\u5168\u90e8\u663e\u793a\u51fa\u6765,\u53ea\u662f\u5982\u679c\u7f51\u5361\u8f83\u591a,\u6211\u4eec\u6ca1\u6709\u6cd5\u5728\u4e00\u5c4f\u5168\u90e8\u9605\u8bfb\u5b8c,\u6240\u4ee5\u8fd9\u5c31\u5f15\u53d1\u53e6\u4e00\u4e2a\u95ee\u9898.netwrok\u6240\u6709\u7684\u5b50\u547d\u4ee4,\u540e\u9762\u90fd\u662f\u53ef\u4ee5\u6216\u5fc5\u987b\u8ddf\u7740\u64cd\u4f5c\u5bf9\u50cf\u6765\u8fdb\u884c\u7684,\u5177\u4f53\u7684\u5c31\u662f,\u64cd\u4f5c\u6216\u663e\u793a\u54ea\u4e2a\u7f51\u5361\u63a5\u53e3.\u4e00\u822c\u60c5\u51b5\u4e0b\u662f\u5982\u4e0b\u578b\u5f0f net [command] [interface] \u5373 net [\u5b50\u547d\u4ee4] [\u7f51\u5361\u540d\u79f0] \u90a3\u4e48\u5982\u4f55\u67e5\u770b\u7f51\u5361\u540d\u79f0\u5462,\u5728haos \u7684cli\u63a7\u5236\u53f0\u754c\u9762,\u4efb\u610f\u65f6\u95f4,\u540c\u65f6\u6309\u4e0b ctrl+c \u540e,ha\u7684\u754c\u9762\u8fd4\u56de\u5230\u5f85\u673a\u754c\u9762,\u5982\u4e0b\u56fe\u6240\u793a. \u56fe\u4e2d\u5171\u663e\u793a\u4e86\u4e09\u4e2a\u7f51\u5361\u63a5\u53e3: wlp3s0 \u8fd9\u4e2a\u662f\u65e0\u7ebf\u7f51\u5361\u63a5\u53e3\u7684\u540d\u79f0,\u4e00\u822c\u60c5\u51b5\u4e0bw\u5b57\u7b26\u6253\u5934\u7684\u6211\u4e3a\u65e0\u7ebf\u7f51\u5361 enp2s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA1,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 enp4s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA2,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 \u67e5\u770b\u5230\u4e86\u8fd9\u4e09\u4e2a\u7f51\u5361\u540d\u79f0,\u6211\u4eec\u5c31\u53ef\u4ee5\u5bf9\u7f51\u5361\u8fdb\u884c\u67e5\u770b\u4fe1\u606f\u914d\u7f6e\u7b49. \u5bf9\u6709\u521d\u88c5\u7684HAOS\u8fd8\u6709\u51c6\u5907\u8fdb\u884cUdate\u7684\u5c0f\u4e3b\u673a,\u6700\u597d,\u5c31\u662f\u5728\u8def\u7531\u5668\u7aef \u9ed8\u8ba4\u63d0\u4f9b\u79d1\u5b66\u4e0a\u7f51 ,\u5426\u5219\u5728\u65b0\u5b89\u88c5\u6298\u521d\u59cb\u5316\u90a3\u91cc\u5c31\u4f1a\u88ab\u6c38\u8fdc\u5361\u4f4f,\u65e0\u6cd5\u5b89\u88c5\u6210\u529f,\u5982\u679c\u662f\u81ea\u52a8\u66f4\u65b0,\u90a3\u4e48\u5c06\u4f1a\u66f4\u65b0\u5931\u8d25. \u914d\u7f6e\u7f51\u7edc \u00b6 \u4e00\u822c\u60c5\u51b5\u4e0b,\u5bf9\u4e8eenp2s0,enp4s0,\u5982\u679c\u8def\u7531\u5668\u7aef\u63d0\u4f9b\u4e86\u81ea\u52a8\u83b7\u53d6IP\u5730\u5740\u529f\u80fd\uff0c\u5219\u65e0\u9700\u914d\u7f6e\uff0c\u7f51\u7ebf\u63d2\u5165\u5373\u53ef\u4f7f\u7528\u3002 \u4f46\u662f\u5bf9\u4e8e\u6bd4\u8f83\u590d\u6742\u7684\u7f51\u7edc\u5219\u9700\u8981\u914d\u7f6e\uff0c\u540c\u6837\uff0c\u5982\u679c\u60f3\u4f7f\u7528wifi\u7f51\u7edc,\u4e5f\u9700\u8981\u914d\u7f6e . \u914d\u7f6e\u7f51\u7edc\u7684\u547d\u4ee4\u5982\u4e0b: ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled Disable interface -h, --help help for update --ipv4-address stringArray IPv4 address for the interface in the 192.168.1.5/24 --ipv4-gateway string The IPv4 gateway the interface should use --ipv4-method string Method on IPv4: static|auto|disabled --ipv4-nameserver stringArray IPv4 address of upstream DNS servers. Use multiple times for multiple servers. --ipv6-address stringArray IPv6 address for the interface in the 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string The IPv6 gateway the interface should use --ipv6-method string Method on IPv6: static|auto|disabled --ipv6-nameserver stringArray IPv6 address for upstream DNS servers. Use multiple times for multiple servers. --wifi-auth string Used authentication: open, wep, wpa-psk --wifi-mode string Wifi mode: infrastructure, adhoc, mesh or ap --wifi-psk string Shared authentication key for wep or wpa --wifi-ssid string SSID for wifi connection Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is `supervisor`) --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API \u8fd9\u6761\u547d\u4ee4ha network update [interface] [flags],\u63d0\u4f9b\u4e86\u5f88\u591a\u529f\u80fd,\u5b83\u53ef\u4ee5\u914d\u7f6ewif\u7f51\u7edc,\u53ef\u4ee5\u5bf9\u6307\u5b9a\u7684\u7f51\u5361\u914d\u7f6eip4/6\u7684IP\u5730\u5740\uff0c\u7f51\u5173\uff0c\u662f\u5426\u542f\u7528\u7b49.\u56e0\u6b64\u53ef\u4ee5\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u7075\u6d3b\u4f7f\u7528. \u5177\u4f53\u7528\u6cd5\u7b80\u8bd1\u5982\u4e0b ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled \u7981\u7528\u63a5\u53e3 -h, --help \u663e\u793a\u66f4\u65b0\u7684\u5e2e\u52a9\u4fe1\u606f --ipv4-address stringArray \u63a5\u53e3\u7684 IPv4 \u5730\u5740\uff0c\u4f8b\u5982 192.168.1.5/24 --ipv4-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv4 \u7f51\u5173 --ipv4-method string IPv4 \u65b9\u6cd5: static|auto|disabled --ipv4-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv4 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --ipv6-address stringArray \u63a5\u53e3\u7684 IPv6 \u5730\u5740\uff0c\u4f8b\u5982 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv6 \u7f51\u5173 --ipv6-method string IPv6 \u65b9\u6cd5: static|auto|disabled --ipv6-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv6 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --wifi-auth string \u4f7f\u7528\u7684\u8ba4\u8bc1\u65b9\u5f0f: open, wep, wpa-psk --wifi-mode string WiFi \u6a21\u5f0f: infrastructure, adhoc, mesh \u6216 ap --wifi-psk string WEP \u6216 WPA \u7684\u5171\u4eab\u8ba4\u8bc1\u5bc6\u94a5 --wifi-ssid string WiFi \u8fde\u63a5\u7684 SSID Global Flags: --api-token string Home Assistant Supervisor API \u4ee4\u724c --config string \u53ef\u9009\u7684\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff08\u9ed8\u8ba4\u503c\u4e3a $HOME/.homeassistant.yaml\uff09 --endpoint string Home Assistant Supervisor \u7684\u7aef\u70b9\uff08\u9ed8\u8ba4\u503c\u4e3a `supervisor`\uff09 --log-level string \u65e5\u5fd7\u7ea7\u522b\uff08\u9ed8\u8ba4\u503c\u4e3a Warn\uff09 --no-progress \u7981\u7528\u8fdb\u5ea6\u6761 --raw-json \u4ee5\u539f\u59cb JSON \u683c\u5f0f\u8f93\u51fa API \u6570\u636e FATA[0000] Error while executing rootCmd: accepts 1 arg(s), received 0 \u4e0b\u9762,\u6211\u4eec\u5c31\u4ee5\u914d\u7f6ewifi\u8054\u63a5\u5230\u7f51\u7edc\u4e3a\u4f8b\u8bf4\u660e\u4e00\u4e0b: \u6bd4\u5982\u6211\u4eec\u9ed8\u8ba4\u7684WIFI\u70ed\u70b9\u5982\u4e0b: wifi info: ssid:DT_IoT_GateWay passWord:HnczjTyrb0 \u90a3\u6839\u636e\u6211\u4eec\u4e0a\u6587\u67e5\u770b\u5230\u7684\u65e0\u7ebf\u7f51\u5361\u7684\u540d\u79f0: wlp3s0 \u6211\u4eec\u4f7f\u7528\u5982\u4e0b\u914d\u7f6e\u547d\u4ee4,\u6765\u8ba9haos\u5c0f\u5de5\u63a7\u673a\u8054\u4e0awifi\u7f51\u7edc: ha network update wlp3s0 --wifi-auth wpa-psk --wifi-psk \"HmczjTYrb0\" --wifi-mode infrastructure --wifi-ssid \"DT_IoT_GateWay\" --ipv4-method auto --ipv6-method disabled \u8fd9\u6761\u547d\u4ee4\u89e3\u91ca\u5982\u4e0b: \u6307\u5b9awifi\u7684\u5bc6\u7801\u65b9\u5f0f\u4e3a:wpa-psk (--wifi-auth wpa-psk). \u6307\u5b9awif\u7684\u5bc6\u7801\u4e3a:HnczjTyrb0 (--wifi-psk \"HmczjYrb0\"). \u6307\u5b9a\u7f51\u5361\u63a5\u53e3\u6a21\u5f0f\u4e3a:infrastructure \u5373\u5e38\u89c4\u6a21\u5f0f (--wifi-mode infrastructure). \u6307\u5b9a\u8981\u8054\u63a5\u7684\u7f51\u7edcSSID:DT_IoT_GateWay (--wifi-ssid \"DT_IoT_GateWay\"). \u6307\u5b9aIP\u5730\u5740\u83b7\u53d6\u65b9\u5f0f\uff08\u9759\u6001\u3001\u81ea\u52a8\u3001\u7981\u7528\uff09\uff1a\u81ea\u52a8 ( --ipv4-method auto). \u6307\u5b9a\u662f\u5426\u7981\u7528IpV6:\u7981\u7528 (--ipv6-method disabled) \u5982\u4e0b\u56fe\u6240\u793a,\u6211\u4eec\u6210\u529f\u7684\u4f7f\u7528\u8fd9\u6761\u6307\u4ee4,\u914d\u7f6e\u597d\u4e86wifi\u7f51\u7edc: \u5982\u4e0b\u6240\u793a,\u914d\u7f51\u6210\u529f\u540e,\u8def\u7531\u5668\u5df2\u81ea\u52a8\u4e3a\u5176\u5206\u914d\u597d\u4e86ip\u5730\u5740: \u6b64\u65f6,\u6211\u4eec\u5728\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u7f51\u5740 http://192.168.3.2:8123 \u5373\u53ef\u8fdb\u5165haos\u7684web\u9875\u9762. \u4e0b\u56fe\u662f\u65e0\u7ebf\u7f51\u5361\u4e0e\u6709\u7ebf\u7f51\u5361\u540c\u65f6\u542f\u7528\u7684\u60c5\u51b5,\u53ef\u4ee5\u770b\u5230,\u4e24\u4e2a\u7f51\u5361\u90fd\u88ab\u6b63\u786e\u7684\u5206\u914d\u5230\u4e86IP\u5730\u5740\uff1a \u5728\u7cfb\u7edf\u5b89\u88c5\u597d\u521d\u59cb\u5316\u5b8c\u6210\u540e\u914d\u7f6e\u7f51\u7edc \u00b6 \u7cfb\u7edf\u521d\u59cb\u5316\u5b8c\u6210\u540e,\u4ecd\u7136\u53ef\u4ee5\u8c03\u6574\u914d\u7f6e\u7f51\u7edc, \u8bbe\u7f6e-\u7cfb\u7edf-\u7f51\u7edc \u4e2d\u914d\u7f6e\u7f51\u7edc\u63a5\u53e3\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u914d\u7f6e \u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u7684\u4e09\u5757\u7f51\u5361,wlp3s0,enp2s0,enp4s0,\u53ef\u5728\u6b64\u5904\u914d\u7f6e,\u6bcf\u4e2a\u7f51\u5361\u7684IP\uff0c\u5b50\u7f51\uff0c\u7f51\u5173\uff0cDNS\u7b49\uff0c\u4e5f\u53ef\u4ee5\u914d\u7f6ewi-fi\u70ed\u70b9.","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_1","text":"\u516c\u53f8\u4f7f\u7528\u7684X86\u5c0f\u5de5\u63a7\u673a,\u5927\u591a\u6709\u591a\u4e2a\u7f51\u5361,\u4e00\u822c\u4e00\u4e2a\u65e0\u7ebf\u7f51\u5361,\u4e24\u4e2a\u6709\u7ebf\u7f51\u5361.\u591a\u6570\u60c5\u51b5\u4e0b,\u6211\u4eec\u53ef\u80fd\u662f\u4f7f\u7528\u7684WIFI\u7f51\u7edc\uff0c\u8fd9\u6837\u6bd4\u8f83\u65b9\u4fbf\uff0c\u6709\u65f6\u4e3a\u4e86HA\u63d0\u4f9b\u7684\u670d\u52a1\u6298\u7a33\u5b9a\u6027\uff0c\u6211\u4eec\u5c3d\u91cf\u4f7f\u7528LAN\u7ebf\u7f51\u7edc\uff0c\u907f\u514d\u65e0\u7ebf\u7f51\u4fe1\u53f7\u8d28\u91cf\u7684\u95ee\u9898\u3002\u6240\u4ee5\u5c31\u6d89\u53ca\u5230\u914d\u7f51\u7684\u95ee\u9898\u3002 HomeAssistant\u7684\u7f51\u7edc\u914d\u7f6e,\u5728\u7cfb\u7edf\u6ca1\u6709\u5b89\u88c5\u6210\u529f\u4e4b\u524d,\u4e0d\u80fd\u901a\u8fc7web\u8fdb\u5165\u7f51\u9875\u754c\u9762\u65f6,\u914d\u7f6e\u7f51\u7edc\u53ea\u80fd\u901a\u8fc7\u81ea\u5e26\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4\u6765\u8fdb\u884c.","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_2","text":"HomeAssistant Cli \u63d0\u4f9b\u4e86\u9ed8\u4fe1\u6298network\u914d\u7f6e\u547d\u4ee4\u5982\u4e0b: ha netWork Useage: ha network [command] Examples: ha network info ha network interface options Available Commands: info Shows information about the host network reload Reload Network information the host scan Scan for Access Points on a wireless interface. update Update settings of a network interface vlan Create a new VLAN on an ethernet interface Flags: -h, --help help for network Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is'supervisor') --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API Use \"ha network [command] --help\" for more information about a command. \u8fd9\u4e2aha network\u547d\u4ee4,\u5927\u7ea6\u5982\u4e0b\u51e0\u4e2a\u529f\u80fd info \u663e\u793a\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f reload \u91cd\u65b0\u52a0\u8f7d\u7f51\u7edc scan \u626b\u63cf\u7f51\u7edc update \u914d\u7f6e\u7f51\u7edc \u6211\u4eec\u5728\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4\u65f6,\u53ef\u4ee5\u4f7f\u7528\u5176\u7b80\u5199,\u6bd4\u5982\u7701\u53bb\u524d\u9762\u7684ha,\u8fd8\u53ef\u4ee5\u7701\u53bb\u540e\u9762\u7684work \u6bd4\u5982,\u6211\u4eec\u60f3\u67e5\u770b\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f,\u53ef\u4ee5\u7528\u5982\u4e0b\u547d\u4ee4\u6765\u8fdb\u884c net info \u8fd9\u6761\u547d\u4ee4\u5c31\u4f1a\u628a\u6240\u6709\u7684\u7f51\u7edc\u914d\u7f6e\u4fe1\u606f\u5168\u90e8\u663e\u793a\u51fa\u6765,\u53ea\u662f\u5982\u679c\u7f51\u5361\u8f83\u591a,\u6211\u4eec\u6ca1\u6709\u6cd5\u5728\u4e00\u5c4f\u5168\u90e8\u9605\u8bfb\u5b8c,\u6240\u4ee5\u8fd9\u5c31\u5f15\u53d1\u53e6\u4e00\u4e2a\u95ee\u9898.netwrok\u6240\u6709\u7684\u5b50\u547d\u4ee4,\u540e\u9762\u90fd\u662f\u53ef\u4ee5\u6216\u5fc5\u987b\u8ddf\u7740\u64cd\u4f5c\u5bf9\u50cf\u6765\u8fdb\u884c\u7684,\u5177\u4f53\u7684\u5c31\u662f,\u64cd\u4f5c\u6216\u663e\u793a\u54ea\u4e2a\u7f51\u5361\u63a5\u53e3.\u4e00\u822c\u60c5\u51b5\u4e0b\u662f\u5982\u4e0b\u578b\u5f0f net [command] [interface] \u5373 net [\u5b50\u547d\u4ee4] [\u7f51\u5361\u540d\u79f0] \u90a3\u4e48\u5982\u4f55\u67e5\u770b\u7f51\u5361\u540d\u79f0\u5462,\u5728haos \u7684cli\u63a7\u5236\u53f0\u754c\u9762,\u4efb\u610f\u65f6\u95f4,\u540c\u65f6\u6309\u4e0b ctrl+c \u540e,ha\u7684\u754c\u9762\u8fd4\u56de\u5230\u5f85\u673a\u754c\u9762,\u5982\u4e0b\u56fe\u6240\u793a. \u56fe\u4e2d\u5171\u663e\u793a\u4e86\u4e09\u4e2a\u7f51\u5361\u63a5\u53e3: wlp3s0 \u8fd9\u4e2a\u662f\u65e0\u7ebf\u7f51\u5361\u63a5\u53e3\u7684\u540d\u79f0,\u4e00\u822c\u60c5\u51b5\u4e0bw\u5b57\u7b26\u6253\u5934\u7684\u6211\u4e3a\u65e0\u7ebf\u7f51\u5361 enp2s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA1,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 enp4s0 \u8fd9\u4e2a\u5bf9\u5e94\u5c0f\u4e3b\u673a\u4e0a\u5c31\u662fLNA2,\u6709\u7ebf\u7f51\u53611\u7684\u540d\u79f0 \u67e5\u770b\u5230\u4e86\u8fd9\u4e09\u4e2a\u7f51\u5361\u540d\u79f0,\u6211\u4eec\u5c31\u53ef\u4ee5\u5bf9\u7f51\u5361\u8fdb\u884c\u67e5\u770b\u4fe1\u606f\u914d\u7f6e\u7b49. \u5bf9\u6709\u521d\u88c5\u7684HAOS\u8fd8\u6709\u51c6\u5907\u8fdb\u884cUdate\u7684\u5c0f\u4e3b\u673a,\u6700\u597d,\u5c31\u662f\u5728\u8def\u7531\u5668\u7aef \u9ed8\u8ba4\u63d0\u4f9b\u79d1\u5b66\u4e0a\u7f51 ,\u5426\u5219\u5728\u65b0\u5b89\u88c5\u6298\u521d\u59cb\u5316\u90a3\u91cc\u5c31\u4f1a\u88ab\u6c38\u8fdc\u5361\u4f4f,\u65e0\u6cd5\u5b89\u88c5\u6210\u529f,\u5982\u679c\u662f\u81ea\u52a8\u66f4\u65b0,\u90a3\u4e48\u5c06\u4f1a\u66f4\u65b0\u5931\u8d25.","title":"\u719f\u6089\u7f51\u7edc\u914d\u7f6e\u547d\u4ee4"},{"location":"Usages/netconfig/netconfig/#_3","text":"\u4e00\u822c\u60c5\u51b5\u4e0b,\u5bf9\u4e8eenp2s0,enp4s0,\u5982\u679c\u8def\u7531\u5668\u7aef\u63d0\u4f9b\u4e86\u81ea\u52a8\u83b7\u53d6IP\u5730\u5740\u529f\u80fd\uff0c\u5219\u65e0\u9700\u914d\u7f6e\uff0c\u7f51\u7ebf\u63d2\u5165\u5373\u53ef\u4f7f\u7528\u3002 \u4f46\u662f\u5bf9\u4e8e\u6bd4\u8f83\u590d\u6742\u7684\u7f51\u7edc\u5219\u9700\u8981\u914d\u7f6e\uff0c\u540c\u6837\uff0c\u5982\u679c\u60f3\u4f7f\u7528wifi\u7f51\u7edc,\u4e5f\u9700\u8981\u914d\u7f6e . \u914d\u7f6e\u7f51\u7edc\u7684\u547d\u4ee4\u5982\u4e0b: ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled Disable interface -h, --help help for update --ipv4-address stringArray IPv4 address for the interface in the 192.168.1.5/24 --ipv4-gateway string The IPv4 gateway the interface should use --ipv4-method string Method on IPv4: static|auto|disabled --ipv4-nameserver stringArray IPv4 address of upstream DNS servers. Use multiple times for multiple servers. --ipv6-address stringArray IPv6 address for the interface in the 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string The IPv6 gateway the interface should use --ipv6-method string Method on IPv6: static|auto|disabled --ipv6-nameserver stringArray IPv6 address for upstream DNS servers. Use multiple times for multiple servers. --wifi-auth string Used authentication: open, wep, wpa-psk --wifi-mode string Wifi mode: infrastructure, adhoc, mesh or ap --wifi-psk string Shared authentication key for wep or wpa --wifi-ssid string SSID for wifi connection Global Flags: --api-token string Home Assistant Supervisor API token --config string Optional config file (default is $HOME/.homeassistant.yaml) --endpoint string Endpoint for Home Assistant Supervisor (default is `supervisor`) --log-level string Log level (defaults to Warn) --no-progress Disable the progress spinner --raw-json Output raw JSON from the API \u8fd9\u6761\u547d\u4ee4ha network update [interface] [flags],\u63d0\u4f9b\u4e86\u5f88\u591a\u529f\u80fd,\u5b83\u53ef\u4ee5\u914d\u7f6ewif\u7f51\u7edc,\u53ef\u4ee5\u5bf9\u6307\u5b9a\u7684\u7f51\u5361\u914d\u7f6eip4/6\u7684IP\u5730\u5740\uff0c\u7f51\u5173\uff0c\u662f\u5426\u542f\u7528\u7b49.\u56e0\u6b64\u53ef\u4ee5\u5728\u5b9e\u9645\u5de5\u4f5c\u4e2d\u7075\u6d3b\u4f7f\u7528. \u5177\u4f53\u7528\u6cd5\u7b80\u8bd1\u5982\u4e0b ha > net update Usage: ha network update [interface] [flags] Aliases: update, set, up Examples: ha network update eth0 --ipv4-method auto --ipv6-method disabled Flags: -e, --disabled \u7981\u7528\u63a5\u53e3 -h, --help \u663e\u793a\u66f4\u65b0\u7684\u5e2e\u52a9\u4fe1\u606f --ipv4-address stringArray \u63a5\u53e3\u7684 IPv4 \u5730\u5740\uff0c\u4f8b\u5982 192.168.1.5/24 --ipv4-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv4 \u7f51\u5173 --ipv4-method string IPv4 \u65b9\u6cd5: static|auto|disabled --ipv4-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv4 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --ipv6-address stringArray \u63a5\u53e3\u7684 IPv6 \u5730\u5740\uff0c\u4f8b\u5982 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 --ipv6-gateway string \u63a5\u53e3\u4f7f\u7528\u7684 IPv6 \u7f51\u5173 --ipv6-method string IPv6 \u65b9\u6cd5: static|auto|disabled --ipv6-nameserver stringArray \u4e0a\u6e38 DNS \u670d\u52a1\u5668\u7684 IPv6 \u5730\u5740\uff0c\u53ef\u591a\u6b21\u4f7f\u7528\u4ee5\u6307\u5b9a\u591a\u4e2a\u670d\u52a1\u5668 --wifi-auth string \u4f7f\u7528\u7684\u8ba4\u8bc1\u65b9\u5f0f: open, wep, wpa-psk --wifi-mode string WiFi \u6a21\u5f0f: infrastructure, adhoc, mesh \u6216 ap --wifi-psk string WEP \u6216 WPA \u7684\u5171\u4eab\u8ba4\u8bc1\u5bc6\u94a5 --wifi-ssid string WiFi \u8fde\u63a5\u7684 SSID Global Flags: --api-token string Home Assistant Supervisor API \u4ee4\u724c --config string \u53ef\u9009\u7684\u914d\u7f6e\u6587\u4ef6\u8def\u5f84\uff08\u9ed8\u8ba4\u503c\u4e3a $HOME/.homeassistant.yaml\uff09 --endpoint string Home Assistant Supervisor \u7684\u7aef\u70b9\uff08\u9ed8\u8ba4\u503c\u4e3a `supervisor`\uff09 --log-level string \u65e5\u5fd7\u7ea7\u522b\uff08\u9ed8\u8ba4\u503c\u4e3a Warn\uff09 --no-progress \u7981\u7528\u8fdb\u5ea6\u6761 --raw-json \u4ee5\u539f\u59cb JSON \u683c\u5f0f\u8f93\u51fa API \u6570\u636e FATA[0000] Error while executing rootCmd: accepts 1 arg(s), received 0 \u4e0b\u9762,\u6211\u4eec\u5c31\u4ee5\u914d\u7f6ewifi\u8054\u63a5\u5230\u7f51\u7edc\u4e3a\u4f8b\u8bf4\u660e\u4e00\u4e0b: \u6bd4\u5982\u6211\u4eec\u9ed8\u8ba4\u7684WIFI\u70ed\u70b9\u5982\u4e0b: wifi info: ssid:DT_IoT_GateWay passWord:HnczjTyrb0 \u90a3\u6839\u636e\u6211\u4eec\u4e0a\u6587\u67e5\u770b\u5230\u7684\u65e0\u7ebf\u7f51\u5361\u7684\u540d\u79f0: wlp3s0 \u6211\u4eec\u4f7f\u7528\u5982\u4e0b\u914d\u7f6e\u547d\u4ee4,\u6765\u8ba9haos\u5c0f\u5de5\u63a7\u673a\u8054\u4e0awifi\u7f51\u7edc: ha network update wlp3s0 --wifi-auth wpa-psk --wifi-psk \"HmczjTYrb0\" --wifi-mode infrastructure --wifi-ssid \"DT_IoT_GateWay\" --ipv4-method auto --ipv6-method disabled \u8fd9\u6761\u547d\u4ee4\u89e3\u91ca\u5982\u4e0b: \u6307\u5b9awifi\u7684\u5bc6\u7801\u65b9\u5f0f\u4e3a:wpa-psk (--wifi-auth wpa-psk). \u6307\u5b9awif\u7684\u5bc6\u7801\u4e3a:HnczjTyrb0 (--wifi-psk \"HmczjYrb0\"). \u6307\u5b9a\u7f51\u5361\u63a5\u53e3\u6a21\u5f0f\u4e3a:infrastructure \u5373\u5e38\u89c4\u6a21\u5f0f (--wifi-mode infrastructure). \u6307\u5b9a\u8981\u8054\u63a5\u7684\u7f51\u7edcSSID:DT_IoT_GateWay (--wifi-ssid \"DT_IoT_GateWay\"). \u6307\u5b9aIP\u5730\u5740\u83b7\u53d6\u65b9\u5f0f\uff08\u9759\u6001\u3001\u81ea\u52a8\u3001\u7981\u7528\uff09\uff1a\u81ea\u52a8 ( --ipv4-method auto). \u6307\u5b9a\u662f\u5426\u7981\u7528IpV6:\u7981\u7528 (--ipv6-method disabled) \u5982\u4e0b\u56fe\u6240\u793a,\u6211\u4eec\u6210\u529f\u7684\u4f7f\u7528\u8fd9\u6761\u6307\u4ee4,\u914d\u7f6e\u597d\u4e86wifi\u7f51\u7edc: \u5982\u4e0b\u6240\u793a,\u914d\u7f51\u6210\u529f\u540e,\u8def\u7531\u5668\u5df2\u81ea\u52a8\u4e3a\u5176\u5206\u914d\u597d\u4e86ip\u5730\u5740: \u6b64\u65f6,\u6211\u4eec\u5728\u6d4f\u89c8\u5668\u4e2d\u8f93\u5165\u7f51\u5740 http://192.168.3.2:8123 \u5373\u53ef\u8fdb\u5165haos\u7684web\u9875\u9762. \u4e0b\u56fe\u662f\u65e0\u7ebf\u7f51\u5361\u4e0e\u6709\u7ebf\u7f51\u5361\u540c\u65f6\u542f\u7528\u7684\u60c5\u51b5,\u53ef\u4ee5\u770b\u5230,\u4e24\u4e2a\u7f51\u5361\u90fd\u88ab\u6b63\u786e\u7684\u5206\u914d\u5230\u4e86IP\u5730\u5740\uff1a","title":"\u914d\u7f6e\u7f51\u7edc"},{"location":"Usages/netconfig/netconfig/#_4","text":"\u7cfb\u7edf\u521d\u59cb\u5316\u5b8c\u6210\u540e,\u4ecd\u7136\u53ef\u4ee5\u8c03\u6574\u914d\u7f6e\u7f51\u7edc, \u8bbe\u7f6e-\u7cfb\u7edf-\u7f51\u7edc \u4e2d\u914d\u7f6e\u7f51\u7edc\u63a5\u53e3\u53ef\u4ee5\u8fdb\u884c\u7f51\u7edc\u914d\u7f6e \u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u770b\u5230\u6211\u4eec\u7684\u4e09\u5757\u7f51\u5361,wlp3s0,enp2s0,enp4s0,\u53ef\u5728\u6b64\u5904\u914d\u7f6e,\u6bcf\u4e2a\u7f51\u5361\u7684IP\uff0c\u5b50\u7f51\uff0c\u7f51\u5173\uff0cDNS\u7b49\uff0c\u4e5f\u53ef\u4ee5\u914d\u7f6ewi-fi\u70ed\u70b9.","title":"\u5728\u7cfb\u7edf\u5b89\u88c5\u597d\u521d\u59cb\u5316\u5b8c\u6210\u540e\u914d\u7f6e\u7f51\u7edc"},{"location":"install-guide/BackupAndRestore/","text":"\u7cfb\u7edf\u7684\u5907\u4efd\u4e0e\u8fd8\u539f(\u786c\u76d8) \u00b6 HomeAssistant \u7684\u5b89\u88c5\u914d\u7f6e\u8fc7\u7a0b\u8f83\u591a,\u8017\u65f6\u8f83\u957f,\u4e3a\u6b64\u6211\u4eec\u7814\u7a76\u4e86\u4e00\u4e2a,\u5feb\u901f\u7684\u5c06\u63d0\u524d\u88c5\u597d\u7684HomeAssistant\u786c\u76d8,\u6574\u5907\u5907\u4efd\u4e0e\u6062\u590d\u7684\u529e\u6cd5. \u955c\u50cf\u6587\u4ef6\u4e0b\u8f7d \u00b6 \u955c\u50cf\u6587\u4ef6\u662f\u6211\u4eec\u63d0\u524d\u5236\u4f5c\u597d\u5e76\u5907\u4efd\u78c1\u76d8\u653e\u5230\u4e91\u7aef\u7684\uff0c\u6587\u4ef6\u8f83\u5927\uff0c\u9700\u8981\u5728\u5236\u4f5c\u597dWINpe\u7cfb\u7edf\u540e,\u4e0b\u8f7d\u5e76\u653e\u5230U\u76d8\u4e2d\u3002 \u70b9\u51fb\u6b64\u4e0b\u8f7d \u5de5\u5177\u7684\u51c6\u5907 \u00b6 \u5907\u4efd\u8fd8\u539f\u786c\u76d8\uff0c\u6211\u4eec\u5747\u662f\u5730windowsPE\u4e2d\u8fdb\u884c\u7684,\u4e3a\u6b64\u6211\u4eec\u9700\u51c6\u5907\u5982\u4e0b\u5de5\u5177: windowsPE(\u5fc5\u987b) windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u5176\u81ea\u5e26\u7684Diskgenus\u5e94\u5f53\u662f\u5df2\u7ecf\u662f\u4e13\u4e1a\u7834\u89e3\u7248\u4e86,\u53ef\u4ee5\u64cd\u4f5c\u5927\u4e8e4G\u7684\u955c\u50cf\u3002\u6240\u4ee5\u4e00\u822c\u60c5\u51b5\u4e0b\u4e0d\u5fc5\u518d\u53e6\u5916\u627e\u5de5\u5177\u3002\u5f53\u9009\u7b2c\u4e09\u65b9PE\uff0c\u6216\u7b2c\u4e09\u65b9PE\u5e26\u7684Diskgenus\u4e0d\u80fd\u6ee1\u8db3\u9700\u8981,\u4e0d\u80fd\u6b63\u5e38\u7684\u5907\u4efd\u4e0e\u8fd8\u539f\u955c\u50cf\u65f6,\u9700\u8981\u9009\u75282\u63d0\u4f9b\u7684\u4e13\u4e1a\u7248 ,\u5e76\u5c06\u5176\u590d\u5236\u5230U\u76d8\u4e2d\u3002 Diskgenus\u4e13\u4e1a\u7834\u89e3\u7248.(\u53ef\u9009) \u200b \u70b9\u51fb\u6b64\u5904\u4e0b\u8f7d \u7528winPE\u5f15\u5bfcU\u76d8\uff0c\u5f15\u5bfc\u7cfb\u7edf\uff0c\u8fdb\u5165PE,\u542f\u52a8SiskGenius \u5206\u533a\u52a9\u624b\u7a0b\u5e8f,\u9009\u4e2d\u8981\u64cd\u4f5c\u7684\u78c1\u76d8.\u7136\u540e,\u70b9\u51fb \u83dc\u5355 \u78c1\u76d8 \u4ece\u786c\u76d8\u955c\u50cf\u6062\u590d \u00b6 \u9009\u62e9\u201c\u4ece\u6620\u50cf\u6062\u590d\u78c1\u76d8\",\u7136\u540e\u9009\u62e9U\u76d8\u4e2d\uff0c\u63d0\u524d\u51c6\u5907\u597d\u7684*.pmfx\u6587\u4ef6,\u7136\u540e\u9009\u62e9\u76ee\u6807\u78c1\u76d8,\u8fd8\u539f\u65b9\u5f0f\u4e3a:\u8fd8\u539f\u6240\u6709\u6247\u533a,\u7136\u540e\u70b9\u51fb\u5f00\u59cb,\u7cfb\u7edf\u5c31\u4f1a\u5f00\u59cb\u8fd8\u539f. \u8fd8\u539f\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a: \u7136\u540e,\u79fb\u9664U\u76d8\uff0c\u91cd\u65b0\u542f\u52a8\uff0c\u5373\u53ef\u5b8c\u6210\u5b89\u88c5\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u5907\u4efd\u6574\u4e2a\u786c\u76d8 \u00b6 \u9009\u62e9\"\u5907\u4efd\u78c1\u78c1\u76d8\u5230\u6620\\\u50cf\u6587\u4ef6\",\u5907\u4efd\u6a21\u5f0f\u4e3a:\u6240\u6709\u6247\u533a,\u9009\u62e9\u955c\u50cf\u6587\u4ef6,\u4e3a\u4e0b\u8f7d\u597d\u5e76\u63d0\u524d\u653e\u5165U\u76d8\u7684\u6269\u5c55\u540d\u4e3apmfx\u7684\u6620\u50cf\u6587\u4ef6,\u7136\u540e\u70b9\u51fb\"\u5f00\u59cb\" \u5927\u7ea6\u534a\u4e2a\u591a\u5c0f\u65f6,\u80fd\u5199\u5165\u5b8c\u6210.\u5982\u4e0b\u56fe\u6240\u793a,\u6620\u50cf\u6587\u4ef6\u5df2\u751f\u6210\u7ea6\u67095G\uff0c\u4fdd\u5b58\u5230\u5408\u9002\u7684\u5730\u65b9\uff0c\u53ef\u4ee5\u7528\u6765\u88c5\u673a\u6216\u8fd8\u539f\u7528\u3002","title":"BackupAndRestore"},{"location":"install-guide/BackupAndRestore/#_1","text":"HomeAssistant \u7684\u5b89\u88c5\u914d\u7f6e\u8fc7\u7a0b\u8f83\u591a,\u8017\u65f6\u8f83\u957f,\u4e3a\u6b64\u6211\u4eec\u7814\u7a76\u4e86\u4e00\u4e2a,\u5feb\u901f\u7684\u5c06\u63d0\u524d\u88c5\u597d\u7684HomeAssistant\u786c\u76d8,\u6574\u5907\u5907\u4efd\u4e0e\u6062\u590d\u7684\u529e\u6cd5.","title":"\u7cfb\u7edf\u7684\u5907\u4efd\u4e0e\u8fd8\u539f(\u786c\u76d8)"},{"location":"install-guide/BackupAndRestore/#_2","text":"\u955c\u50cf\u6587\u4ef6\u662f\u6211\u4eec\u63d0\u524d\u5236\u4f5c\u597d\u5e76\u5907\u4efd\u78c1\u76d8\u653e\u5230\u4e91\u7aef\u7684\uff0c\u6587\u4ef6\u8f83\u5927\uff0c\u9700\u8981\u5728\u5236\u4f5c\u597dWINpe\u7cfb\u7edf\u540e,\u4e0b\u8f7d\u5e76\u653e\u5230U\u76d8\u4e2d\u3002 \u70b9\u51fb\u6b64\u4e0b\u8f7d","title":"\u955c\u50cf\u6587\u4ef6\u4e0b\u8f7d"},{"location":"install-guide/BackupAndRestore/#_3","text":"\u5907\u4efd\u8fd8\u539f\u786c\u76d8\uff0c\u6211\u4eec\u5747\u662f\u5730windowsPE\u4e2d\u8fdb\u884c\u7684,\u4e3a\u6b64\u6211\u4eec\u9700\u51c6\u5907\u5982\u4e0b\u5de5\u5177: windowsPE(\u5fc5\u987b) windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u5176\u81ea\u5e26\u7684Diskgenus\u5e94\u5f53\u662f\u5df2\u7ecf\u662f\u4e13\u4e1a\u7834\u89e3\u7248\u4e86,\u53ef\u4ee5\u64cd\u4f5c\u5927\u4e8e4G\u7684\u955c\u50cf\u3002\u6240\u4ee5\u4e00\u822c\u60c5\u51b5\u4e0b\u4e0d\u5fc5\u518d\u53e6\u5916\u627e\u5de5\u5177\u3002\u5f53\u9009\u7b2c\u4e09\u65b9PE\uff0c\u6216\u7b2c\u4e09\u65b9PE\u5e26\u7684Diskgenus\u4e0d\u80fd\u6ee1\u8db3\u9700\u8981,\u4e0d\u80fd\u6b63\u5e38\u7684\u5907\u4efd\u4e0e\u8fd8\u539f\u955c\u50cf\u65f6,\u9700\u8981\u9009\u75282\u63d0\u4f9b\u7684\u4e13\u4e1a\u7248 ,\u5e76\u5c06\u5176\u590d\u5236\u5230U\u76d8\u4e2d\u3002 Diskgenus\u4e13\u4e1a\u7834\u89e3\u7248.(\u53ef\u9009) \u200b \u70b9\u51fb\u6b64\u5904\u4e0b\u8f7d \u7528winPE\u5f15\u5bfcU\u76d8\uff0c\u5f15\u5bfc\u7cfb\u7edf\uff0c\u8fdb\u5165PE,\u542f\u52a8SiskGenius \u5206\u533a\u52a9\u624b\u7a0b\u5e8f,\u9009\u4e2d\u8981\u64cd\u4f5c\u7684\u78c1\u76d8.\u7136\u540e,\u70b9\u51fb \u83dc\u5355 \u78c1\u76d8","title":"\u5de5\u5177\u7684\u51c6\u5907"},{"location":"install-guide/BackupAndRestore/#_4","text":"\u9009\u62e9\u201c\u4ece\u6620\u50cf\u6062\u590d\u78c1\u76d8\",\u7136\u540e\u9009\u62e9U\u76d8\u4e2d\uff0c\u63d0\u524d\u51c6\u5907\u597d\u7684*.pmfx\u6587\u4ef6,\u7136\u540e\u9009\u62e9\u76ee\u6807\u78c1\u76d8,\u8fd8\u539f\u65b9\u5f0f\u4e3a:\u8fd8\u539f\u6240\u6709\u6247\u533a,\u7136\u540e\u70b9\u51fb\u5f00\u59cb,\u7cfb\u7edf\u5c31\u4f1a\u5f00\u59cb\u8fd8\u539f. \u8fd8\u539f\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a: \u7136\u540e,\u79fb\u9664U\u76d8\uff0c\u91cd\u65b0\u542f\u52a8\uff0c\u5373\u53ef\u5b8c\u6210\u5b89\u88c5\uff0c\u5982\u4e0b\u56fe\u6240\u793a","title":"\u4ece\u786c\u76d8\u955c\u50cf\u6062\u590d"},{"location":"install-guide/BackupAndRestore/#_5","text":"\u9009\u62e9\"\u5907\u4efd\u78c1\u78c1\u76d8\u5230\u6620\\\u50cf\u6587\u4ef6\",\u5907\u4efd\u6a21\u5f0f\u4e3a:\u6240\u6709\u6247\u533a,\u9009\u62e9\u955c\u50cf\u6587\u4ef6,\u4e3a\u4e0b\u8f7d\u597d\u5e76\u63d0\u524d\u653e\u5165U\u76d8\u7684\u6269\u5c55\u540d\u4e3apmfx\u7684\u6620\u50cf\u6587\u4ef6,\u7136\u540e\u70b9\u51fb\"\u5f00\u59cb\" \u5927\u7ea6\u534a\u4e2a\u591a\u5c0f\u65f6,\u80fd\u5199\u5165\u5b8c\u6210.\u5982\u4e0b\u56fe\u6240\u793a,\u6620\u50cf\u6587\u4ef6\u5df2\u751f\u6210\u7ea6\u67095G\uff0c\u4fdd\u5b58\u5230\u5408\u9002\u7684\u5730\u65b9\uff0c\u53ef\u4ee5\u7528\u6765\u88c5\u673a\u6216\u8fd8\u539f\u7528\u3002","title":"\u5907\u4efd\u6574\u4e2a\u786c\u76d8"},{"location":"install-guide/LinuxInstall/","text":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf \u00b6 \u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf\u684c\u9762\u7248 \uff0c\u4fdd\u5b58\u4e3aubuntu24.04-desktip-amd.iso\u3002 \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528)\u3002 \u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u8bf7\u53c2\u8003\u5176\u5b83\u6559\u7a0b\u3002 \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u628a\u4e0b\u8f7d\u7684ubuntu24.04-desktip-amd.iso\u653e\u5230\u65b0\u5b89\u88c5\u7684Ubuntu\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u6298\u4efb\u610f\u76ee\u5f55,\u5982,\u653e\u5230 \u8fd9\u4e2a\u76ee\u5f55. \u7136\u540e,\u627e\u5230ubuntu\u81ea\u5e26\u7684\u542f\u52a8\u76d8\u5236\u4f5c\u5de5\u5177,\u5982\u56fe\u6240\u793a c\u8fd0\u884c\u542f\u52a8\u76d8\u521b\u5efa\u5668,\u5982\u4e0b \u5148\u62e9\u521a\u521a\u653e\u7f6e\u7684ubuntu24.04-desktip-amd.iso\u4f5c\u4e3a\u6e90\u955c\u50cf,\u7136\u540e\u628a\u8981\u5236\u4f5c\u542f\u52a8\u76d8\u7684U\u76d8\u63d2\u5165USB\u53e3\uff0c\u7136\u540e\uff0c\u9009 \u62e9\u4f5c\u4e3a\u8981\u4f7f\u7528\u7684\u78c1\u76d8\uff0c\u5f53\u7136\u53ef\u4ee5\u63d0\u524d\u63d2\u5165U\u76d8\u3002\u7136\u540e\u70b9\u51fb\u5236\u4f5c\u542f\u52a8\u76d8\u3002 \u5728\u5f39\u51fa\u7684\u786e\u8ba4\u6846\u4e2d\uff0c\u70b9\u51fb\u662f\uff0c \u7136\u540e\u8f93\u51fa\u5f53\u524d\u7684\u7528\u6237\u5bf9\u5e94\u7684\u5bc6\u7801\uff0c\u786e\u8ba4\uff0c \u7cfb\u7edf\u5c06\u4f1a\u81ea\u52a8\u5f00\u542f\u628aubuntu live \u542f\u52a8\u5f15\u5bfc\u76d8\u4fe1\u606f, \u5199\u5165U\u76d8\uff0c \u63d0\u793a\u5b8c\u6210\u65f6\uff0c\u70b9\u9000\u51fa\uff0c\u5f39\u51fa\u5982\u4e0b\u63d0\u793a \uff0c\u8bf4\u660e\u542f\u52a8U\u76d8\u5236\u4f5c\u6210\u529f\u4e86\u3002 \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u628aU\u76d8\u63d2\u5165\u5165X86\u5c0f\u5de5\u63a7\u673a\u5e76\u786e\u4fdd \u6b63\u786e\u914d\u7f6e\u4e86Bios \u542f\u52a8\u540e,\u6309F11\u5176\u5b83\u4e3b\u673a\u53ef\u80fd\u6709\u6240\u4e0d\u540c(\u53ef\u4ee5\u67e5\u4e3b\u677f\u8bf4\u660e\u4e66,\u6216\u54a8\u8be2\u4e3b\u677f\u5382\u5bb6),\u9009\u62e9\u4ee5U\u76d8\u5f15\u5bfc\u3002 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a,\u662f\u542f\u52a8\u65f6,\u6309F11\u4e0d\u653e,\u8fdb\u5165\u7cfb\u7edf\u5f15\u5bfc\u83dc\u5355,\u6839\u636eU\u76d8\u7684\u4e0d\u540c,U\u76d8\u5f15\u5bfc\u76d8\u4e2d\u7684\u7cfb\u7edf\u7c7b\u522b\u4e0d\u540c,\u663e\u793a\u7684\u5185\u5bb9\u7565\u6709\u4e0d\u540c,\u5982\u4e0b\u56fe\u6240\u793a \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5f53\u7cfb\u7edf\u542f\u52a8\u65f6,\u8bf7\u786e\u4fdd\u9009\u62e9\u201cTry or Install Ubuntu\". \u7cfb\u7edf\u542f\u4f1a\u542f\u52a8U\u76d8\u4e2d\u7684Ubuntu live\u7cfb\u7edf, \u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d, \u4f1a\u6709\u51e0\u4e2a\u9009\u9879\u8981\u9009\u62e9\u5982\u4e0b\u56fe\u6240\u793a, \u9009\u62e9\u8bed\u8a00 \u6b64\u5904\u76f4\u63a5\u4e0b\u4e00\u6b65 \u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7f51\u7edc\u8fde\u63a5\u53ef\u4ee5\u9009\u76f4\u63a5\u8fde\u63a5,\u4e5f\u53ef\u4ee5\u9009\u62e9wifi\u5f53\u7136,wifi\u5357\u8981\u914d\u7f6e\u70ed\u70b9. \u540c\u65f6,\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d,\u8981\u4fdd\u6301\u7f51\u7edc\u7545\u901a( *\u4e00\u5b9a\u8981\u80fd\u6b63\u5e38\u8bbf\u95eeGoogle\u53caHomeAssistant\u5b98\u7f51 ),\u80fd\u6b63\u5e38\u7684\u8bbf\u95ee\u5e76\u4e0b\u8f7dHomeAssistantOS\u7684\u955c\u50cf. \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u8fdb\u5165Ubuntu Live\u7cfb\u7edf\u540e,\u6253\u5f00\u6d4f\u89c8\u5668,\u8bbf\u95eeHomeAssistant\u7684 \u5b98\u65b9\u6587\u6863 , \u8fdb\u5165HomeAssistant\u5b98\u7f51,\u70b9\\\u51fb\u83dc\u5355Installstatiion,\u8fdb\u5165\u5b89\u88c5\u8bf4\u660e \u627e\u5230GenericX86-84,\u5e76\u6253\u5f00\u8fd9\u4e2a\u5728\u9875\u9762 \u627e\u5230\u9875\u9762\u4e2d\u7684\u955c\u50cf\u4e0b\u8f7d\u5730\u5740\u5982\u4e0b\u56fe \u4e0b\u8f7d HomeAssistOs-x86-64\u955c\u50cf \u5f00\u59cb\u4e0b\u8f7d\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u5b8c\u6210\u540e \u6587\u4ef6\u4fdd\u5b58\u5728/home/Downloads/hos_Generic-86-64-15.1.img.xz \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u5728Ubuntu Live\u7684\u7cfb\u7edf\u4e2d,\u627e\u5230\u663e\u793a\u5e94\u7528\u7a0b\u5e8f(\u4e00\u822c\u5728\u5de6\u4e0a\u89d2\u6216\u53f3\u4e0b\u89d2), \u641c\u7d22\u5e76\u627e\u5230Disks\u5e94\u7528\u7a0b\u5e8f,\u5e76\u6253\u5f00Disks\u5e94\u7528\u7a0b\u5e8f. \u5728\u5de6\u4fa7\u5217\u8868\u4e2d\u627e\u5230\u5e76\u9009\u62e9\u4f60\u7684\u76ee\u6807\u78c1\u76d8(\u4e00\u822c\u4e3a\u4f60\u8981\u5b89\u88c5HAOS\u7684\u786c\u76d8) \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u83dc\u5355\u56fe\u6807\uff08\u4e09\u4e2a\u70b9\uff09\uff0c\u9009\u62e9\u201c\u6062\u590d\u78c1\u76d8\u955c\u50cf\u201d \u6d4f\u89c8\u5e76\u9009\u62e9\u4f60\u4e0b\u8f7d\u7684HAOS\u955c\u50cf\u6587\u4ef6\u3002 \u70b9\u51fb,\u5e76\u6d4f\u89c8\u5230\u4e0b\u8f7d\u7684\u6587\u4ef6 hos_Generic-86-64-15.1.img.xz \u786e\u8ba4\u76ee\u6807\u78c1\u76d8\uff0c\u5e76\u5f00\u59cb\u955c\u50cf\u6062\u590d\u8fc7\u7a0b\u3002 \u786e\u8ba4\u6807\u786c\u76d8\u6b63\u786e\u540e,\u7ee7\u7eed \u63d0\u793a\u786e\u8ba4\u65f6\u70b9\u51fb Restore \u63d0\u793a\u6388\u6743\u65f6,\u70b9\u51fb Authenticate \u786e\u5b9a\u540e,\u5c31\u4f1a\u5f00\u59cb\u628a\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8 \u8bf7\u6ce8\u610f,\u8fd9\u4e2a\u8fc7\u7a0b\u4e00\u5c06\u4f1a,\u6e05\u9664\u786c\u76d8\u4e0a\u539f\u6709\u7684\u6570\u636e,\u8bf7\u786e\u4fdd\u5df2\u5907\u4efd\u91cd\u8981\u6570\u636e. \u5199\u5165\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u6b64\u65f6,\u5c31\u5df2\u7ecf\u6210\u529f\u7684\u628aHA\u955c\u50cf\u5199\u5165\u5230\u786c\u548c\u808b\u4e2d\u4e86 \u79fb\u9664U\u76d8 \u4e00\u65e6Home Assistant\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u5b8c\u6210\uff0c\u5173\u95ed\u7cfb\u7edf\u3002 \u5f53Ubuntu\u5173\u95ed\u540e\uff0c\u79fb\u9664USB\u95ea\u5b58\u9a71\u52a8\u5668\uff08Ubuntu\u4f1a\u901a\u77e5\u60a8\u53ef\u4ee5\u5b89\u5168\u79fb\u9664\uff09\u3002 \u91cd\u542f\u7cfb\u7edf. \u73b0\u5728\uff0c\u60a8\u7684Home Assistant\u670d\u52a1\u5668\u5df2\u7ecf\u8bbe\u7f6e\u5b8c\u6bd5\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528\u5b83\u3002 \u8fdb\u5165HA cli\u754c\u9762 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/LinuxInstall/#linux","text":"\u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf\u684c\u9762\u7248 \uff0c\u4fdd\u5b58\u4e3aubuntu24.04-desktip-amd.iso\u3002 \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528)\u3002 \u8fd9\u4e2a\u8fc7\u7a0b \uff0c\u8bf7\u53c2\u8003\u5176\u5b83\u6559\u7a0b\u3002 \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live\u3002 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u628a\u4e0b\u8f7d\u7684ubuntu24.04-desktip-amd.iso\u653e\u5230\u65b0\u5b89\u88c5\u7684Ubuntu\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u6298\u4efb\u610f\u76ee\u5f55,\u5982,\u653e\u5230 \u8fd9\u4e2a\u76ee\u5f55. \u7136\u540e,\u627e\u5230ubuntu\u81ea\u5e26\u7684\u542f\u52a8\u76d8\u5236\u4f5c\u5de5\u5177,\u5982\u56fe\u6240\u793a c\u8fd0\u884c\u542f\u52a8\u76d8\u521b\u5efa\u5668,\u5982\u4e0b \u5148\u62e9\u521a\u521a\u653e\u7f6e\u7684ubuntu24.04-desktip-amd.iso\u4f5c\u4e3a\u6e90\u955c\u50cf,\u7136\u540e\u628a\u8981\u5236\u4f5c\u542f\u52a8\u76d8\u7684U\u76d8\u63d2\u5165USB\u53e3\uff0c\u7136\u540e\uff0c\u9009 \u62e9\u4f5c\u4e3a\u8981\u4f7f\u7528\u7684\u78c1\u76d8\uff0c\u5f53\u7136\u53ef\u4ee5\u63d0\u524d\u63d2\u5165U\u76d8\u3002\u7136\u540e\u70b9\u51fb\u5236\u4f5c\u542f\u52a8\u76d8\u3002 \u5728\u5f39\u51fa\u7684\u786e\u8ba4\u6846\u4e2d\uff0c\u70b9\u51fb\u662f\uff0c \u7136\u540e\u8f93\u51fa\u5f53\u524d\u7684\u7528\u6237\u5bf9\u5e94\u7684\u5bc6\u7801\uff0c\u786e\u8ba4\uff0c \u7cfb\u7edf\u5c06\u4f1a\u81ea\u52a8\u5f00\u542f\u628aubuntu live \u542f\u52a8\u5f15\u5bfc\u76d8\u4fe1\u606f, \u5199\u5165U\u76d8\uff0c \u63d0\u793a\u5b8c\u6210\u65f6\uff0c\u70b9\u9000\u51fa\uff0c\u5f39\u51fa\u5982\u4e0b\u63d0\u793a \uff0c\u8bf4\u660e\u542f\u52a8U\u76d8\u5236\u4f5c\u6210\u529f\u4e86\u3002 \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u628aU\u76d8\u63d2\u5165\u5165X86\u5c0f\u5de5\u63a7\u673a\u5e76\u786e\u4fdd \u6b63\u786e\u914d\u7f6e\u4e86Bios \u542f\u52a8\u540e,\u6309F11\u5176\u5b83\u4e3b\u673a\u53ef\u80fd\u6709\u6240\u4e0d\u540c(\u53ef\u4ee5\u67e5\u4e3b\u677f\u8bf4\u660e\u4e66,\u6216\u54a8\u8be2\u4e3b\u677f\u5382\u5bb6),\u9009\u62e9\u4ee5U\u76d8\u5f15\u5bfc\u3002 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a,\u662f\u542f\u52a8\u65f6,\u6309F11\u4e0d\u653e,\u8fdb\u5165\u7cfb\u7edf\u5f15\u5bfc\u83dc\u5355,\u6839\u636eU\u76d8\u7684\u4e0d\u540c,U\u76d8\u5f15\u5bfc\u76d8\u4e2d\u7684\u7cfb\u7edf\u7c7b\u522b\u4e0d\u540c,\u663e\u793a\u7684\u5185\u5bb9\u7565\u6709\u4e0d\u540c,\u5982\u4e0b\u56fe\u6240\u793a \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5f53\u7cfb\u7edf\u542f\u52a8\u65f6,\u8bf7\u786e\u4fdd\u9009\u62e9\u201cTry or Install Ubuntu\". \u7cfb\u7edf\u542f\u4f1a\u542f\u52a8U\u76d8\u4e2d\u7684Ubuntu live\u7cfb\u7edf, \u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d, \u4f1a\u6709\u51e0\u4e2a\u9009\u9879\u8981\u9009\u62e9\u5982\u4e0b\u56fe\u6240\u793a, \u9009\u62e9\u8bed\u8a00 \u6b64\u5904\u76f4\u63a5\u4e0b\u4e00\u6b65 \u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7f51\u7edc\u8fde\u63a5\u53ef\u4ee5\u9009\u76f4\u63a5\u8fde\u63a5,\u4e5f\u53ef\u4ee5\u9009\u62e9wifi\u5f53\u7136,wifi\u5357\u8981\u914d\u7f6e\u70ed\u70b9. \u540c\u65f6,\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d,\u8981\u4fdd\u6301\u7f51\u7edc\u7545\u901a( *\u4e00\u5b9a\u8981\u80fd\u6b63\u5e38\u8bbf\u95eeGoogle\u53caHomeAssistant\u5b98\u7f51 ),\u80fd\u6b63\u5e38\u7684\u8bbf\u95ee\u5e76\u4e0b\u8f7dHomeAssistantOS\u7684\u955c\u50cf. \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u8fdb\u5165Ubuntu Live\u7cfb\u7edf\u540e,\u6253\u5f00\u6d4f\u89c8\u5668,\u8bbf\u95eeHomeAssistant\u7684 \u5b98\u65b9\u6587\u6863 , \u8fdb\u5165HomeAssistant\u5b98\u7f51,\u70b9\\\u51fb\u83dc\u5355Installstatiion,\u8fdb\u5165\u5b89\u88c5\u8bf4\u660e \u627e\u5230GenericX86-84,\u5e76\u6253\u5f00\u8fd9\u4e2a\u5728\u9875\u9762 \u627e\u5230\u9875\u9762\u4e2d\u7684\u955c\u50cf\u4e0b\u8f7d\u5730\u5740\u5982\u4e0b\u56fe \u4e0b\u8f7d HomeAssistOs-x86-64\u955c\u50cf \u5f00\u59cb\u4e0b\u8f7d\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u8fc7\u7a0b\u4e2d\u5982\u4e0b\u56fe\u6240\u793a \u4e0b\u8f7d\u5b8c\u6210\u540e \u6587\u4ef6\u4fdd\u5b58\u5728/home/Downloads/hos_Generic-86-64-15.1.img.xz \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u5728Ubuntu Live\u7684\u7cfb\u7edf\u4e2d,\u627e\u5230\u663e\u793a\u5e94\u7528\u7a0b\u5e8f(\u4e00\u822c\u5728\u5de6\u4e0a\u89d2\u6216\u53f3\u4e0b\u89d2), \u641c\u7d22\u5e76\u627e\u5230Disks\u5e94\u7528\u7a0b\u5e8f,\u5e76\u6253\u5f00Disks\u5e94\u7528\u7a0b\u5e8f. \u5728\u5de6\u4fa7\u5217\u8868\u4e2d\u627e\u5230\u5e76\u9009\u62e9\u4f60\u7684\u76ee\u6807\u78c1\u76d8(\u4e00\u822c\u4e3a\u4f60\u8981\u5b89\u88c5HAOS\u7684\u786c\u76d8) \u70b9\u51fb\u53f3\u4e0a\u89d2\u7684\u83dc\u5355\u56fe\u6807\uff08\u4e09\u4e2a\u70b9\uff09\uff0c\u9009\u62e9\u201c\u6062\u590d\u78c1\u76d8\u955c\u50cf\u201d \u6d4f\u89c8\u5e76\u9009\u62e9\u4f60\u4e0b\u8f7d\u7684HAOS\u955c\u50cf\u6587\u4ef6\u3002 \u70b9\u51fb,\u5e76\u6d4f\u89c8\u5230\u4e0b\u8f7d\u7684\u6587\u4ef6 hos_Generic-86-64-15.1.img.xz \u786e\u8ba4\u76ee\u6807\u78c1\u76d8\uff0c\u5e76\u5f00\u59cb\u955c\u50cf\u6062\u590d\u8fc7\u7a0b\u3002 \u786e\u8ba4\u6807\u786c\u76d8\u6b63\u786e\u540e,\u7ee7\u7eed \u63d0\u793a\u786e\u8ba4\u65f6\u70b9\u51fb Restore \u63d0\u793a\u6388\u6743\u65f6,\u70b9\u51fb Authenticate \u786e\u5b9a\u540e,\u5c31\u4f1a\u5f00\u59cb\u628a\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8 \u8bf7\u6ce8\u610f,\u8fd9\u4e2a\u8fc7\u7a0b\u4e00\u5c06\u4f1a,\u6e05\u9664\u786c\u76d8\u4e0a\u539f\u6709\u7684\u6570\u636e,\u8bf7\u786e\u4fdd\u5df2\u5907\u4efd\u91cd\u8981\u6570\u636e. \u5199\u5165\u5b8c\u6210\u540e,\u5982\u4e0b\u56fe\u6240\u793a \u6b64\u65f6,\u5c31\u5df2\u7ecf\u6210\u529f\u7684\u628aHA\u955c\u50cf\u5199\u5165\u5230\u786c\u548c\u808b\u4e2d\u4e86 \u79fb\u9664U\u76d8 \u4e00\u65e6Home Assistant\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u5b8c\u6210\uff0c\u5173\u95ed\u7cfb\u7edf\u3002 \u5f53Ubuntu\u5173\u95ed\u540e\uff0c\u79fb\u9664USB\u95ea\u5b58\u9a71\u52a8\u5668\uff08Ubuntu\u4f1a\u901a\u77e5\u60a8\u53ef\u4ee5\u5b89\u5168\u79fb\u9664\uff09\u3002 \u91cd\u542f\u7cfb\u7edf. \u73b0\u5728\uff0c\u60a8\u7684Home Assistant\u670d\u52a1\u5668\u5df2\u7ecf\u8bbe\u7f6e\u5b8c\u6bd5\uff0c\u60a8\u53ef\u4ee5\u5f00\u59cb\u4f7f\u7528\u5b83\u3002 \u8fdb\u5165HA cli\u754c\u9762 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/WinPeInstall/","text":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf \u00b6 windows Pe\u4e0b\u5199\u5165\u786c\u76d8\u955c\u50cf\u7684\u4e3b\u8981\u601d\u8def\u662f\u4f7f\u7528Roadkilnet\u5f00\u53d1\u7684Rodakill's Disk Image\u5de5\u5177\u628aHA\u7684\u955c\u50cf\u5199\u5165\u786c\u76d8. \u4e0b\u8f7dDisk Image \u00b6 DiskImage\u7684\u5b98\u65b9\u4e0b\u8f7d\u5730\u5740\u4e3a ) https://roadkil.net/program.php?ProgramID=12&Action=NewOSID&DownloadVersion=12&Installer=NO \u8fdb\u5165\u7f51\u7ad9\u7684\u4e0b\u8f7d\u9875\u9762,\u5982\u4e0b,\u9009\u62e9windows8 10 or 11\u548cStand Alone Version\u7248\u672c,\u7136\u540e\u70b9\u51fb\u4e0b\u8f7d \u4e0b\u8f7d\u5b8c\u6210\u540e,\u5f97\u5230\u5982\u4e0bDiskImage_1_6_WinAll .exe\u6587\u4ef6 ,\u4fdd\u5b58\u597d,\u540e\u9762\u9700\u8981\u4fdd\u5b58\u4e48U\u76d8\u3002 \u5236\u4f5cWindowsPE\u5f15\u5bfcU\u76d8 \u00b6 windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u4e0b\u8f7d\u5b89\u88c5\u7a0b\u5e8f\u5982\u4e0b: \u8fd0\u884cWePev2.3.exe \u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\u5b89\u88c5\u5230U\u76d8\u56fe\u6807 \u9009\u62e9\u6b63\u786e\u7684\u4ea7\uff0c\u5e76\u914d\u597d\u5377\u6807\uff0c\u70b9\u51fb\u7acb\u5373\u5b89\u88c5\u5230U\u76d8\uff0c \u63d0\u793a\u5f00\u59cb\u5236\u4f5cU\u76d8 \u7a0d\u7b49\u7247\u523b \u7cfb\u7edf\u63d0\u793a\u5236\u4f5c\u5b8c\u6210 \u4e0b\u8f7d\u5e76\u89e3\u538bHAOS\u955c\u50cf\u5230U\u76d8 \u00b6 \u70b9\u51fb\u8bbf\u95ee Ha-os-GenerricX86-64\u9875\u9762 ,\u627e\u5230\u4e0b\u955c\u50cf\u7684\u4e0b\u8f7d\u94fe\u63a5 \u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u5982\u4e0b\u94fe\u63a5 \u4e0b\u8f7d,\u4f46\u5c3d\u91cf\u8fd8\u662f\u6309\u4e0a\u8ff0\u65b9\u6cd5\u4e0b\u8f7d,\u4fdd\u8bc1\u6bcf\u6b21\u4e0b\u8f7d\u7684\u90fd\u662f\u5b98\u7f51\u6700\u65b0\u7684\u7248\u672c. \u4e0b\u8f7d\u5b8c\u6210\u540e\u5982\u4e0b \u89e3\u538b\u8fd9\u4e2a\u6587\u4ef6 \u5f97\u5230haos_generic-x86-64-15.1.img,\u628a\u8fd9\u4e2a\u6587\u4ef6\u590d\u5236\u5230U\u76d8\u4e2d\u4efb\u610f\u76ee\u5f55 \u6bd4\u5982\uff0c\u6211\u653e\u5230\u4e86\u5982\u4e0b\u76ee\u5f55 \u628a\u4e4b\u524d\u4e0b\u8f7d\u597d\u7684Disk Image\u653e\u5165U\u76d8 \u00b6 \u81f3\u6b64WINpe\u5f15\u5bfcU\u76d8\u5c31\u5236\u4f5c\u597d\u4e86\u3002 \u7528\u6b64U\u76d8\u5f15\u5bfc\u5c0f\u5de5\u63a7\u673a\uff0c\u6ce8\u610f\u610f\u8981\u6b63\u786e\u7684\u914d\u7f6eBIOS\uff0c\u53ca\u8981\u7528\u6b63\u786e\u7684\u6539\u53d8\u542f\u52a8\u987a\u5e8f\u7684\u65b9\u6cd5\u5982F11\u5e38\u6309, \u5f15\u5bfc\u6210\u529f\u767d\u5e26 ,\u76f4\u5165PE\u542f\u52a8\u754c\u9762\uff0c\u9009 \u7b2c\u4e00\u9879\u9ed8\u8ba4\uff0c\u7ee7\u7eed \u7a0d\u5019\u4f1a\u8fdb\u5165PE\u7cfb\u7edf \u627e\u5230\u5e76\u542f\u52a8diskImage\u5199\u76d8\u5de5\u5177 \u70b9YES\u7ee7\u7eed \u9009 \u62e9\u4e0b\u8f7d\u597d\u7684HAOS\u7684\u5b89\u88c5\u955c\u50cfimg\u6587\u4ef6 \u63d0\u793a\u6570\u636e\u6709\u4e22\u5931\u98ce\u9669\u65f6,\u70b9\u662f \u6ce8\u610f\u5728\u5199\u5165\u4e4b\u524d,\u4e00\u5b9a\u8981\u786e\u8ba4\u662f\u786c\u76d8\u800c\u975eU\u76d8\uff0c\u4e00\u822c\u4e3aphysical disk 0 \u5199\u5165\u5b8c\u6210\u540e\u4f1a\u63d0\u793a\u5199\u5165\u6210\u529f \u91cd\u65b0\u542f\u52a8\u8fdb\u5165HA cli\u754c\u9762 \u00b6 \u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf"},{"location":"install-guide/WinPeInstall/#windows-pe-ha","text":"windows Pe\u4e0b\u5199\u5165\u786c\u76d8\u955c\u50cf\u7684\u4e3b\u8981\u601d\u8def\u662f\u4f7f\u7528Roadkilnet\u5f00\u53d1\u7684Rodakill's Disk Image\u5de5\u5177\u628aHA\u7684\u955c\u50cf\u5199\u5165\u786c\u76d8.","title":"Windows PE \u4e0b\u5199\u5165 HA \u955c\u50cf"},{"location":"install-guide/WinPeInstall/#disk-image","text":"DiskImage\u7684\u5b98\u65b9\u4e0b\u8f7d\u5730\u5740\u4e3a ) https://roadkil.net/program.php?ProgramID=12&Action=NewOSID&DownloadVersion=12&Installer=NO \u8fdb\u5165\u7f51\u7ad9\u7684\u4e0b\u8f7d\u9875\u9762,\u5982\u4e0b,\u9009\u62e9windows8 10 or 11\u548cStand Alone Version\u7248\u672c,\u7136\u540e\u70b9\u51fb\u4e0b\u8f7d \u4e0b\u8f7d\u5b8c\u6210\u540e,\u5f97\u5230\u5982\u4e0bDiskImage_1_6_WinAll .exe\u6587\u4ef6 ,\u4fdd\u5b58\u597d,\u540e\u9762\u9700\u8981\u4fdd\u5b58\u4e48U\u76d8\u3002","title":"\u4e0b\u8f7dDisk Image"},{"location":"install-guide/WinPeInstall/#windowspeu","text":"windows\u7684PE\u5236\u4f5c\u5de5\u5177\u6709\u5f88\u591a\uff0c\u6bd4\u5982\u8001\u6bdb\u6843,\u5927\u767d\u83dc,\u7b49,\u4f46\u8fd9\u4e9b\u5927\u591a\u4f1a\u6709\u503c\u5165\u5e7f\u544a\u7b49,\u7528\u4e8e\u5b89\u88c5windows\u7cfb\u7edf\u4f1a\u6709\u8bb8\u591a\u5783\u573e\u8f6f\u4ef6,\u8fd9\u91cc\u63a8\u8350\u4f7f\u7528\" \u5faePE\u5de5\u5177\u7bb1 \",\u4e0b\u8f7d\u5b89\u88c5\u7a0b\u5e8f\u5982\u4e0b: \u8fd0\u884cWePev2.3.exe \u70b9\u51fb\u53f3\u4e0b\u89d2\u7684\u5b89\u88c5\u5230U\u76d8\u56fe\u6807 \u9009\u62e9\u6b63\u786e\u7684\u4ea7\uff0c\u5e76\u914d\u597d\u5377\u6807\uff0c\u70b9\u51fb\u7acb\u5373\u5b89\u88c5\u5230U\u76d8\uff0c \u63d0\u793a\u5f00\u59cb\u5236\u4f5cU\u76d8 \u7a0d\u7b49\u7247\u523b \u7cfb\u7edf\u63d0\u793a\u5236\u4f5c\u5b8c\u6210","title":"\u5236\u4f5cWindowsPE\u5f15\u5bfcU\u76d8"},{"location":"install-guide/WinPeInstall/#haosu","text":"\u70b9\u51fb\u8bbf\u95ee Ha-os-GenerricX86-64\u9875\u9762 ,\u627e\u5230\u4e0b\u955c\u50cf\u7684\u4e0b\u8f7d\u94fe\u63a5 \u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u5982\u4e0b\u94fe\u63a5 \u4e0b\u8f7d,\u4f46\u5c3d\u91cf\u8fd8\u662f\u6309\u4e0a\u8ff0\u65b9\u6cd5\u4e0b\u8f7d,\u4fdd\u8bc1\u6bcf\u6b21\u4e0b\u8f7d\u7684\u90fd\u662f\u5b98\u7f51\u6700\u65b0\u7684\u7248\u672c. \u4e0b\u8f7d\u5b8c\u6210\u540e\u5982\u4e0b \u89e3\u538b\u8fd9\u4e2a\u6587\u4ef6 \u5f97\u5230haos_generic-x86-64-15.1.img,\u628a\u8fd9\u4e2a\u6587\u4ef6\u590d\u5236\u5230U\u76d8\u4e2d\u4efb\u610f\u76ee\u5f55 \u6bd4\u5982\uff0c\u6211\u653e\u5230\u4e86\u5982\u4e0b\u76ee\u5f55","title":"\u4e0b\u8f7d\u5e76\u89e3\u538bHAOS\u955c\u50cf\u5230U\u76d8"},{"location":"install-guide/WinPeInstall/#disk-imageu","text":"\u81f3\u6b64WINpe\u5f15\u5bfcU\u76d8\u5c31\u5236\u4f5c\u597d\u4e86\u3002 \u7528\u6b64U\u76d8\u5f15\u5bfc\u5c0f\u5de5\u63a7\u673a\uff0c\u6ce8\u610f\u610f\u8981\u6b63\u786e\u7684\u914d\u7f6eBIOS\uff0c\u53ca\u8981\u7528\u6b63\u786e\u7684\u6539\u53d8\u542f\u52a8\u987a\u5e8f\u7684\u65b9\u6cd5\u5982F11\u5e38\u6309, \u5f15\u5bfc\u6210\u529f\u767d\u5e26 ,\u76f4\u5165PE\u542f\u52a8\u754c\u9762\uff0c\u9009 \u7b2c\u4e00\u9879\u9ed8\u8ba4\uff0c\u7ee7\u7eed \u7a0d\u5019\u4f1a\u8fdb\u5165PE\u7cfb\u7edf \u627e\u5230\u5e76\u542f\u52a8diskImage\u5199\u76d8\u5de5\u5177 \u70b9YES\u7ee7\u7eed \u9009 \u62e9\u4e0b\u8f7d\u597d\u7684HAOS\u7684\u5b89\u88c5\u955c\u50cfimg\u6587\u4ef6 \u63d0\u793a\u6570\u636e\u6709\u4e22\u5931\u98ce\u9669\u65f6,\u70b9\u662f \u6ce8\u610f\u5728\u5199\u5165\u4e4b\u524d,\u4e00\u5b9a\u8981\u786e\u8ba4\u662f\u786c\u76d8\u800c\u975eU\u76d8\uff0c\u4e00\u822c\u4e3aphysical disk 0 \u5199\u5165\u5b8c\u6210\u540e\u4f1a\u63d0\u793a\u5199\u5165\u6210\u529f","title":"\u628a\u4e4b\u524d\u4e0b\u8f7d\u597d\u7684Disk Image\u653e\u5165U\u76d8"},{"location":"install-guide/WinPeInstall/#ha-cli","text":"\u7cfb\u7edf\u542f\u52a8\u6210\u529f\u540e\uff0c\u5982\u4e0b\u56fe\u6240\u793a \u901a\u8fc7\u6d4f\u89c8\u5668,\u8f93\u5165\u63a7\u5236\u53f0\u63d0\u793a\u7684IP\u52a0\u7aef\u53e3 http://192.168.3:8123 \u5373\u53ef\u8fdb\u5165\u56fe\u578b\u5316\u754c\u9762,\u5982\u4e0b","title":"\u91cd\u65b0\u542f\u52a8\u8fdb\u5165HA cli\u754c\u9762"},{"location":"install-guide/configX86Bios/","text":"\u901a\u7528\u8bbe\u7f6e \u00b6 \u8981\u542f\u52a8Home Assistant\u64cd\u4f5c\u7cfb\u7edf\uff0cBIOS\u9700\u8981\u542f\u7528UEFI\u542f\u52a8\u6a21\u5f0f\u5e76\u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4ee5\u4e0b\u622a\u56fe\u6765\u81ea\u7b2c\u4e03\u4ee3\u82f1\u7279\u5c14NUC\u7cfb\u7edf\u3002\u60a8\u7684\u7cfb\u7edf\u4e0a\u7684BIOS\u83dc\u5355\u53ef\u80fd\u770b\u8d77\u6765\u4e0d\u540c\uff0c\u4f46\u9009\u9879\u5e94\u8be5\u4ecd\u7136\u5b58\u5728\u5e76\u5177\u6709\u7c7b\u4f3c\u7684\u540d\u79f0\u3002 \u8981\u8fdb\u5165BIOS\uff0c\u8bf7\u542f\u52a8\u60a8\u7684x86-64\u786c\u4ef6\u5e76\u53cd\u590d\u6309\u4e0bF2\u952e\uff08\u5728\u67d0\u4e9b\u7cfb\u7edf\u4e0a\uff0c\u8fd9\u53ef\u80fd\u662fDel\u3001F1\u6216F10\u952e\uff09\u3002 \u786e\u4fdd\u542f\u7528\u4e86UEFI\u542f\u52a8\u6a21\u5f0f\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4fdd\u5b58\u66f4\u6539\u5e76\u9000\u51fa\u3002 BIOS\u914d\u7f6e\u73b0\u5df2\u5b8c\u6210\u3002 \u516c\u53f8\u5c0f\u5de5\u63a7\u673a(1900)\u914d\u7f6e \u00b6 \u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a\u8fdb\u5165Bios\u7684\u65b9\u5f0f,\u662f\u5f00\u673a\u65f6,\u6309DEL\u952e,\u8fdb\u5165\u5982\u4e0b\u754c\u9762 \u8fdb\u5165Bios\u540e,\u8981\u8c03OS Selection,\u9ed8\u8ba4\u4e3awindows7\u9700\u8981\u8c03\u6574\u4e3aLinux\u5982\u4e0b\u56fe \u7136\u540e\u4fdd\u5b58,\u9000\u51fa \u63d0\u793a\u4fdd\u5b58\u65f6,\u9009\u62e9YES","title":"configX86Bios"},{"location":"install-guide/configX86Bios/#_1","text":"\u8981\u542f\u52a8Home Assistant\u64cd\u4f5c\u7cfb\u7edf\uff0cBIOS\u9700\u8981\u542f\u7528UEFI\u542f\u52a8\u6a21\u5f0f\u5e76\u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4ee5\u4e0b\u622a\u56fe\u6765\u81ea\u7b2c\u4e03\u4ee3\u82f1\u7279\u5c14NUC\u7cfb\u7edf\u3002\u60a8\u7684\u7cfb\u7edf\u4e0a\u7684BIOS\u83dc\u5355\u53ef\u80fd\u770b\u8d77\u6765\u4e0d\u540c\uff0c\u4f46\u9009\u9879\u5e94\u8be5\u4ecd\u7136\u5b58\u5728\u5e76\u5177\u6709\u7c7b\u4f3c\u7684\u540d\u79f0\u3002 \u8981\u8fdb\u5165BIOS\uff0c\u8bf7\u542f\u52a8\u60a8\u7684x86-64\u786c\u4ef6\u5e76\u53cd\u590d\u6309\u4e0bF2\u952e\uff08\u5728\u67d0\u4e9b\u7cfb\u7edf\u4e0a\uff0c\u8fd9\u53ef\u80fd\u662fDel\u3001F1\u6216F10\u952e\uff09\u3002 \u786e\u4fdd\u542f\u7528\u4e86UEFI\u542f\u52a8\u6a21\u5f0f\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\u3002 \u4fdd\u5b58\u66f4\u6539\u5e76\u9000\u51fa\u3002 BIOS\u914d\u7f6e\u73b0\u5df2\u5b8c\u6210\u3002","title":"\u901a\u7528\u8bbe\u7f6e"},{"location":"install-guide/configX86Bios/#1900","text":"\u516c\u53f8\u7684\u5c0f\u5de5\u63a7\u673a\u8fdb\u5165Bios\u7684\u65b9\u5f0f,\u662f\u5f00\u673a\u65f6,\u6309DEL\u952e,\u8fdb\u5165\u5982\u4e0b\u754c\u9762 \u8fdb\u5165Bios\u540e,\u8981\u8c03OS Selection,\u9ed8\u8ba4\u4e3awindows7\u9700\u8981\u8c03\u6574\u4e3aLinux\u5982\u4e0b\u56fe \u7136\u540e\u4fdd\u5b58,\u9000\u51fa \u63d0\u793a\u4fdd\u5b58\u65f6,\u9009\u62e9YES","title":"\u516c\u53f8\u5c0f\u5de5\u63a7\u673a(1900)\u914d\u7f6e"},{"location":"install-guide/installHa/","text":"\u5b89\u88c5HomeAssistant \u00b6 HomeAssistant\u7684\u5b89\u88c5\u6709\u591a\u79cd\u65b9\u5f0f\u4e0e\u65b9\u6cd5,\u6700\u5e38\u7528\u6298\u6709\u786c\u5907\u76f4\u63a5\u5b89\u88c5,docker\u5b89\u88c5\u865a\u62df\u673a\u5b89\u88c5\u7b49. \u4e0b\u9762\u6211\u4eec\u5c31\u4ee5\u786c\u76d8\u5b89\u88c5HAOS\u4e3a\u4f8b\u4ecb\u7ecd\u57fa\u4e8ex86\u786c\u4ef6\u7684\u57fa\u7840\u4e0a\u5b89\u88c5HAOS,\u57fa\u5b83\u7684\u5b89\u88c5\u65b9\u5f0f,\u540e\u7eed\u4f1a\u4ecb\u7ecd. BIOS\u914d\u7f6e \u00b6 \u91cd\u8981\u63d0\u9192 \u5728\u5b89\u88c5HAOS\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684BIOS\u8bbe\u7f6e\u6b63\u786e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5efa\u8bae\u7684BIOS\u914d\u7f6e\uff1a \u542f\u7528\u865a\u62df\u5316\u6280\u672f\uff08VT-x\u6216AMD-V\uff09\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\uff08Secure Boot\uff09\u3002 \u8bbe\u7f6e\u542f\u52a8\u987a\u5e8f\uff0c\u4ee5\u4fbf\u4eceUSB\u6216\u5149\u76d8\u542f\u52a8\u3002 \u8bf7\u5728\u5b89\u88c5\u4e4b\u524d\u52a1\u5fc5\u68c0\u67e5\u8fd9\u4e9b BIOS\u8bbe\u7f6e \u3002 \u516c\u53f8\u7684\u5c0f\u4e3b\u673a\u8fd9\u4e00 BIOS\u8bbe\u7f6e\u89c6\u9891\u6f14\u793a HAOS\u5b89\u88c5 \u00b6 \u5b89\u88c5\u5728X86PC\u786c\u76d8\u4e0a \u00b6 haos\u8981\u5b89\u88c5\u5728\u786c\u76d8\u4e0a,\u603b\u4f53\u601d\u8def\u662f,\u5148\u5230HA\u7684\u5b98\u7f51\u4e0b\u8f7dhaos\u7684\u5b98\u65b9\u955c\u50cf\u6587\u4ef6 ,\u4e00\u822c\u4e3a.gz\u6216.gz.xz\u7b49\u683c\u5f0f,\u7136\u540e\u518d\u7528\u5199\u76d8\u5de5\u5177,\u76f4\u63a5\u628a\u8fd9\u4e2a\u955c\u50cf\u5199\u5165\u786c\u76d8. \u5c06\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8\u4e0a\u7ea6\u6709\u4e24\u79cd\u65b9\u6cd5: \u5728linux\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u5199\u5165\u955c\u50cf \u5728windows\u5e73\u53f0\u4e0a\u5199\u5165\u955c\u50cf \u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf \u00b6 \u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d\u5b89\u88c5ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528) \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u79fb\u9664U\u76d8 \u91cd\u542f\u7cfb\u7edf \u8fdb\u5165HA cli\u754c\u9762 \u6b64\u79cd\u65b9\u6cd5\u7684\u597d\u5904\u662f,\u4e0d\u7528\u62c6\u9664\u786c\u76d8,\u76f4\u63a5\u5728\u5c0f\u5de5\u63a7\u673a\u4e0a\u5c31\u80fd\u5b9e\u73b0\u64cd\u4f5c. \u57fa\u4e8e windows\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf. \u00b6 \u5b98\u65b9\u5728\u4ecb\u7ecd\u8fd9\u79cd\u65b9\u6cd5\u662f\u8ba9\u7528\u6237\u628a\u5c0f\u5de5\u63a7\u673a\u7684\u786c\u76d8\u62c6\u4e0b,\u88c5\u5165\u7528\u6237\u81ea\u5df2\u7684\u7535\u8111\u4e2d,\u5e76\u7528balenaEtcher\u5199\u76d8\u5de5\u5177\u5c06\u955c\u50cf\u5199\u5165\u5c0f\u5de5\u63a7\u7684\u673a\u7684\u786c\u76d8\u540e,\u518d\u628a\u5c0f\u5de5\u63a7\u673a\u673a\u7684\u786c\u76d8\u88c5\u5165\u5c0f\u5de5\u63a7\u673a.\u8fd9\u65b9\u6cd5\u65b9\u4fbf\u5feb\u6377,\u4f46\u662f\u9700\u8981\u62c6\u673a,\u6709\u9700\u8981\u7684\u7528\u6237\u53ef\u4ee5\u5230\u5b98\u65b9\u4ecb\u7ecd\u9875\u9762 Geneic x86-64 \u53bb\u770b\u5177\u4f53\u64cd\u4f5c\u65b9\u6cd5. \u6211\u4eec\u5e38\u7528\u7684\u65b9\u6cd5\u5982\u4e0b: \u5236\u4f5c\u4e00\u4e2a\u5176\u4e8ewindows PE\u7cfb\u7edf\u7684\u5f15\u5bfcU\u76d8. \u4e0b\u8f7d\u5b98\u65b9\u955c\u50cf\u5230U\u76d8\u4e2d\u3002 \u89e3\u538b\u955c\u50cf\u4e3a.img\u6587\u4ef6 \u7528PE\u5e26\u7684\u5199\u76d8\u5de5\u5177\uff0c\u5c06HA\u955c\u50cf\u5199\u5165\u786c\u76d8\u3002 \u79fb\u9664U\u76d8\u3002 \u91cd\u542f\u8fdb\u5165HA ClI. \u76f4\u63a5 \u8fd8\u539f\u6574\u4e2a\u78c1\u76d8 \u00b6 \u56e0\u3001\u4e3aHA\u5b89\u88c5\u914d\u7f6e\uff0c\u8f83\u4e3a\u590d\u6742\uff0c\u6240\u4ee5\uff0c\u6211\u4eec\u4f7f\u7528\u78c1\u76d8\u5168\u76d8\u7684\u6620\u50cf\u6765\u8fd8\u539f\u78c1\u76d8\uff0c\u6765\u8fbe\u5230\u5feb\u901f\u5b89\u88c5\u76ee\u7684\uff0c\u6b64\u65b9\u6cd5\uff0c\u80fd\u5728\u534a\u5c0f\u65f6\u5de6\u53f3\u7684\u65f6\u95f4\uff0c\u76f4\u63a5\u5b89\u88c5\u597dHA\uff0c\u540c\u65f6\uff0c\u6240\u4ee5\u7528\u7684\u5230\u8bbe\u7f6e\u4e0e\u63d2\u4ef6\u7a0b\u5e8f\u4e0e\u540c\u6b65\u88c5\u597d\uff0c\u5927\u5927\u8282\u7701\u4e86\u65f6\u95f4\u3002 \u5b89\u88c5\u5728VMware ESXi\u4e0a \u00b6 vmware ESXi\u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u7684\u865a\u62df\u5316\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728\u5176\u4e0a\u5b89\u88c5Home Assistant. \u8be6\u60c5\u89c1: vmwareExsi\u5b89\u88c5Ha.md","title":"\u5b89\u88c5"},{"location":"install-guide/installHa/#homeassistant","text":"HomeAssistant\u7684\u5b89\u88c5\u6709\u591a\u79cd\u65b9\u5f0f\u4e0e\u65b9\u6cd5,\u6700\u5e38\u7528\u6298\u6709\u786c\u5907\u76f4\u63a5\u5b89\u88c5,docker\u5b89\u88c5\u865a\u62df\u673a\u5b89\u88c5\u7b49. \u4e0b\u9762\u6211\u4eec\u5c31\u4ee5\u786c\u76d8\u5b89\u88c5HAOS\u4e3a\u4f8b\u4ecb\u7ecd\u57fa\u4e8ex86\u786c\u4ef6\u7684\u57fa\u7840\u4e0a\u5b89\u88c5HAOS,\u57fa\u5b83\u7684\u5b89\u88c5\u65b9\u5f0f,\u540e\u7eed\u4f1a\u4ecb\u7ecd.","title":"\u5b89\u88c5HomeAssistant"},{"location":"install-guide/installHa/#bios","text":"\u91cd\u8981\u63d0\u9192 \u5728\u5b89\u88c5HAOS\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684BIOS\u8bbe\u7f6e\u6b63\u786e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u5efa\u8bae\u7684BIOS\u914d\u7f6e\uff1a \u542f\u7528\u865a\u62df\u5316\u6280\u672f\uff08VT-x\u6216AMD-V\uff09\u3002 \u7981\u7528\u5b89\u5168\u542f\u52a8\uff08Secure Boot\uff09\u3002 \u8bbe\u7f6e\u542f\u52a8\u987a\u5e8f\uff0c\u4ee5\u4fbf\u4eceUSB\u6216\u5149\u76d8\u542f\u52a8\u3002 \u8bf7\u5728\u5b89\u88c5\u4e4b\u524d\u52a1\u5fc5\u68c0\u67e5\u8fd9\u4e9b BIOS\u8bbe\u7f6e \u3002 \u516c\u53f8\u7684\u5c0f\u4e3b\u673a\u8fd9\u4e00 BIOS\u8bbe\u7f6e\u89c6\u9891\u6f14\u793a","title":"BIOS\u914d\u7f6e"},{"location":"install-guide/installHa/#haos","text":"","title":"HAOS\u5b89\u88c5"},{"location":"install-guide/installHa/#x86pc","text":"haos\u8981\u5b89\u88c5\u5728\u786c\u76d8\u4e0a,\u603b\u4f53\u601d\u8def\u662f,\u5148\u5230HA\u7684\u5b98\u7f51\u4e0b\u8f7dhaos\u7684\u5b98\u65b9\u955c\u50cf\u6587\u4ef6 ,\u4e00\u822c\u4e3a.gz\u6216.gz.xz\u7b49\u683c\u5f0f,\u7136\u540e\u518d\u7528\u5199\u76d8\u5de5\u5177,\u76f4\u63a5\u628a\u8fd9\u4e2a\u955c\u50cf\u5199\u5165\u786c\u76d8. \u5c06\u955c\u50cf\u6587\u4ef6\u5199\u5165\u786c\u76d8\u4e0a\u7ea6\u6709\u4e24\u79cd\u65b9\u6cd5: \u5728linux\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u5199\u5165\u955c\u50cf \u5728windows\u5e73\u53f0\u4e0a\u5199\u5165\u955c\u50cf","title":"\u5b89\u88c5\u5728X86PC\u786c\u76d8\u4e0a"},{"location":"install-guide/installHa/#linux","text":"\u8fd9\u79cd\u65b9\u6cd5\u7684\u64cd\u4f5c\u65b9\u6cd5\u662f: \u5148\u4e0b\u8f7d\u5b89\u88c5ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf \u5728\u865a\u62df\u673a\u6216\u7269\u7406\u673a\u4e2d\u5b89\u88c5\u6b64ubuntu24.04\u64cd\u4f5c\u7cfb\u7edf.(\u4e34\u65f6\u4f7f\u7528) \u4f7f\u7528ubuntu24.04\u5236\u4f5clinux\u542f\u52a8U\u76d8ubuntu live \u4f7f\u7528\u542f\u52a8U\u76d8ubuntu live\u5f15\u5bfcx86\u5c0f\u5de5\u63a7\u673a. \u8fdb\u5165try\u6a21\u5f0f(\u4e0d\u5b89\u88c5). \u5728try\u6a21\u5f0f\u4e2d,\u4e0b\u8f7dha\u5b89\u65b9\u955c\u50cf \u4f7f\u7528ubuntu live\u7684\u81ea\u5e26\u7684\u78c1\u76d8\u6062\u590d\u5de5\u5177\u5199\u5165\u955c\u50cf\u5230\u786c\u76d8. \u79fb\u9664U\u76d8 \u91cd\u542f\u7cfb\u7edf \u8fdb\u5165HA cli\u754c\u9762 \u6b64\u79cd\u65b9\u6cd5\u7684\u597d\u5904\u662f,\u4e0d\u7528\u62c6\u9664\u786c\u76d8,\u76f4\u63a5\u5728\u5c0f\u5de5\u63a7\u673a\u4e0a\u5c31\u80fd\u5b9e\u73b0\u64cd\u4f5c.","title":"\u57fa\u4e8elinux\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf"},{"location":"install-guide/installHa/#windows","text":"\u5b98\u65b9\u5728\u4ecb\u7ecd\u8fd9\u79cd\u65b9\u6cd5\u662f\u8ba9\u7528\u6237\u628a\u5c0f\u5de5\u63a7\u673a\u7684\u786c\u76d8\u62c6\u4e0b,\u88c5\u5165\u7528\u6237\u81ea\u5df2\u7684\u7535\u8111\u4e2d,\u5e76\u7528balenaEtcher\u5199\u76d8\u5de5\u5177\u5c06\u955c\u50cf\u5199\u5165\u5c0f\u5de5\u63a7\u7684\u673a\u7684\u786c\u76d8\u540e,\u518d\u628a\u5c0f\u5de5\u63a7\u673a\u673a\u7684\u786c\u76d8\u88c5\u5165\u5c0f\u5de5\u63a7\u673a.\u8fd9\u65b9\u6cd5\u65b9\u4fbf\u5feb\u6377,\u4f46\u662f\u9700\u8981\u62c6\u673a,\u6709\u9700\u8981\u7684\u7528\u6237\u53ef\u4ee5\u5230\u5b98\u65b9\u4ecb\u7ecd\u9875\u9762 Geneic x86-64 \u53bb\u770b\u5177\u4f53\u64cd\u4f5c\u65b9\u6cd5. \u6211\u4eec\u5e38\u7528\u7684\u65b9\u6cd5\u5982\u4e0b: \u5236\u4f5c\u4e00\u4e2a\u5176\u4e8ewindows PE\u7cfb\u7edf\u7684\u5f15\u5bfcU\u76d8. \u4e0b\u8f7d\u5b98\u65b9\u955c\u50cf\u5230U\u76d8\u4e2d\u3002 \u89e3\u538b\u955c\u50cf\u4e3a.img\u6587\u4ef6 \u7528PE\u5e26\u7684\u5199\u76d8\u5de5\u5177\uff0c\u5c06HA\u955c\u50cf\u5199\u5165\u786c\u76d8\u3002 \u79fb\u9664U\u76d8\u3002 \u91cd\u542f\u8fdb\u5165HA ClI.","title":"\u57fa\u4e8ewindows\u64cd\u4f5c\u7cfb\u7edf\u5199\u5165\u955c\u50cf."},{"location":"install-guide/installHa/#_1","text":"\u56e0\u3001\u4e3aHA\u5b89\u88c5\u914d\u7f6e\uff0c\u8f83\u4e3a\u590d\u6742\uff0c\u6240\u4ee5\uff0c\u6211\u4eec\u4f7f\u7528\u78c1\u76d8\u5168\u76d8\u7684\u6620\u50cf\u6765\u8fd8\u539f\u78c1\u76d8\uff0c\u6765\u8fbe\u5230\u5feb\u901f\u5b89\u88c5\u76ee\u7684\uff0c\u6b64\u65b9\u6cd5\uff0c\u80fd\u5728\u534a\u5c0f\u65f6\u5de6\u53f3\u7684\u65f6\u95f4\uff0c\u76f4\u63a5\u5b89\u88c5\u597dHA\uff0c\u540c\u65f6\uff0c\u6240\u4ee5\u7528\u7684\u5230\u8bbe\u7f6e\u4e0e\u63d2\u4ef6\u7a0b\u5e8f\u4e0e\u540c\u6b65\u88c5\u597d\uff0c\u5927\u5927\u8282\u7701\u4e86\u65f6\u95f4\u3002","title":"\u76f4\u63a5\u8fd8\u539f\u6574\u4e2a\u78c1\u76d8"},{"location":"install-guide/installHa/#vmware-esxi","text":"vmware ESXi\u662f\u4e00\u4e2a\u4f01\u4e1a\u7ea7\u7684\u865a\u62df\u5316\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728\u5176\u4e0a\u5b89\u88c5Home Assistant. \u8be6\u60c5\u89c1: vmwareExsi\u5b89\u88c5Ha.md","title":"\u5b89\u88c5\u5728VMware ESXi\u4e0a"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/","text":"\u57fa\u4e8evmWare Exsi\u5b89\u88c5HA \u00b6 1. \u51c6\u5907\u5de5\u4f5c \u00b6 \u4e0b\u8f7dVMware ESXi\u5b89\u88c5\u955c\u50cf. \u6253\u5f00\u9875\u9762 https://www.home-assistant.io/installation/alternative \u70b9\u51fb\u4e0b\u8f7d\u201c VMware ESXi/vSphere \u7684 .ova \u683c\u5f0f\u955c\u50cf\u6587\u4ef6\u201d \u6ce8\u610f1 \u4f7f\u7528 E1000 \u6216 E1000E \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u3002\u5f53\u4f7f\u7528 VMware \u7684 VMXnet3 \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u65f6\uff0c\u5df2\u786e\u8ba4\u5b58\u5728 mDNS/\u591a\u64ad\u53d1\u73b0\u95ee\u9898\u3002 \u89e3\u6790\uff1a E1000 \u548c E1000E\uff1a\u63a8\u8350\u7684\u865a\u62df\u7f51\u7edc\u9002\u914d\u5668 VMXnet3\uff1a\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7f51\u7edc\u53d1\u73b0\u95ee\u9898 mDNS\uff1a\u591a\u64ad\u57df\u540d\u7cfb\u7edf \u591a\u64ad\u53d1\u73b0\uff1a\u8bbe\u5907\u5728\u7f51\u7edc\u4e0a\u81ea\u52a8\u53d1\u73b0\u548c\u901a\u4fe1\u7684\u673a\u5236 \u5efa\u8bae\uff1a \u5728 VMware ESXi \u521b\u5efa\u865a\u62df\u673a\u65f6 \u7f51\u7edc\u9002\u914d\u5668\u9009\u62e9 E1000 \u6216 E1000E \u907f\u514d\u4f7f\u7528 VMXnet3 \u6ce8\u610f2 \u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\uff0c\u4e3b\u8981\u6b65\u9aa4\u5305\u62ec\uff1a\u767b\u5f55ESXi\u4e3b\u673a\uff0c\u9009\u62e9\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff0c\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u9009\u62e9OVF\u6216OVA\u6587\u4ef6\u5e76\u5b8c\u6210\u540e\u7eed\u8bbe\u7f6e\u3002\ufeff \u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u767b\u5f55ESXi\u4e3b\u673a\uff1a:\u4f7f\u7528Web Client\u6216vSphere Client\u767b\u5f55\u5230\u60a8\u7684ESXi\u4e3b\u673a\u3002\ufeff \u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff1a:\u5728ESXi\u754c\u9762\u4e2d\uff0c\u627e\u5230\u5e76\u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u9009\u9879\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u7c7b\u578b\uff1a:\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9OVF/OVA\u6587\u4ef6\uff1a:\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u7136\u540e\u9009\u62e9\u8981\u90e8\u7f72\u7684OVF\u6216OVA\u6587\u4ef6\uff0c\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff1a:\u9009\u62e9\u865a\u62df\u673a\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u9009\u9879\uff1a:\u6839\u636e\u9700\u8981\u9009\u62e9\u90e8\u7f72\u9009\u9879\uff0c\u4f8b\u5982\u7f51\u7edc\u914d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u5b8c\u6210\u90e8\u7f72\uff1a:\u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002\ufeff \u542f\u52a8\u865a\u62df\u673a\uff1a:\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u542f\u52a8\u65b0\u521b\u5efa\u7684\u865a\u62df\u673a\u5373\u53ef\u3002\ufeff \u6ce8\u610f\u4e8b\u9879\uff1a \u5982\u679c\u4f7f\u7528OVF\u6587\u4ef6\uff0c\u901a\u5e38\u9700\u8981\u914d\u5408VMDK\u7b49\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u4e00\u8d77\u4f7f\u7528\u3002\ufeff \u786e\u4fddOVF\u6587\u4ef6\u548c\u76f8\u5173\u7684\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u90fd\u5728\u540c\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u6216\u8005\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\u3002\ufeff \u5728\u201c\u90e8\u7f72\u9009\u9879\u201d\u9875\u9762\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u865a\u62df\u673a\u7684\u7f51\u7edc\u3001\u8d44\u6e90\u7b49\u8bbe\u7f6e\u3002\ufeff \u5982\u679c\u9047\u5230\u201c\u7f3a\u5c11\u78c1\u76d8\u955c\u50cf\u201d\u7b49\u62a5\u9519\uff0c\u53ef\u80fd\u662f\u7531\u4e8eOVF\u6587\u4ef6\u4e2d\u5f15\u7528\u7684\u78c1\u76d8\u6587\u4ef6\u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u6216\u8005\u78c1\u76d8\u6587\u4ef6\u672a\u6b63\u786e\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\uff0c\u9700\u8981\u68c0\u67e5\u5e76\u4fee\u6b63\u3002\ufeff \u5bf9\u4e8e\u67d0\u4e9bOVF\u6a21\u677f\uff0c\u53ef\u80fd\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u914d\u7f6e\uff0c\u4f8b\u5982\u4fee\u6539\u865a\u62df\u673a\u7684\u786c\u4ef6\u7248\u672c\u4ee5\u517c\u5bb9ESXi\u7248\u672c\u3002\ufeff \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5c31\u53ef\u4ee5\u6210\u529f\u5730\u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\u4e86 2. \u5b89\u88c5\u6b65\u9aa4 \u00b6 \u767b\u5f55\u5230ESXi\u4e3b\u673a\u7684Web\u754c\u9762\u3002 \u5728\u5de6\u4fa7\u5bfc\u822a\u680f\u4e2d\uff0c\u70b9\u51fb\u201c\u865a\u62df\u673a\u201d\u3002 \u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u6309\u94ae\u3002 \u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u5e76\u9009\u62e9\u4e0b\u8f7d\u7684Home Assistant OVA\u6587\u4ef6\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff0c\u901a\u5e38\u9009\u62e9\u9ed8\u8ba4\u7684\u5b58\u50a8\u4f4d\u7f6e\u5373\u53ef\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u7f51\u7edc\u6620\u5c04\u201d\u9875\u9762\uff0c\u9009\u62e9\u9002\u5f53\u7684\u7f51\u7edc\u9002\u914d\u5668\uff08\u786e\u4fdd\u4f7f\u7528E1000\u6216E1000E\uff09\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002 \u9875\u9762\u5e95\u90e8\u4f1a\u663e\u793a\u90e8\u7f72\u8fdb\u5ea6\uff0c\u7b49\u5f85\u90e8\u7f72\u5b8c\u6210\u3002 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u865a\u62df\u673a\u5217\u8868\u4e2d\u770b\u5230\u65b0\u521b\u5efa\u7684Home Assistant\u865a\u62df\u673a\u3002 \u9009\u4e2dHome Assistant\u865a\u62df\u673a\uff0c\u70b9\u51fb\u201c\u542f\u52a8\u201d\u6309\u94ae\u6765\u542f\u52a8\u865a\u673a \u9996\u6b21\u542f\u52a8\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u770b\u5230ha> \u8fdb\u793a\u7b26\u540e\uff0c\u53ef\u4ee5\u8bd5\u7740\u8f93\u5165 ha \u547d\u4ee4\u6765\u68c0\u67e5Home Assistant\u7684\u72b6\u6001\u3002 \u4e0a\u8ff0\u72b6\u6001\uff0c\u5982\u679c\u663e\u793a \"System is not ready with state: setup\"\uff0c\u8bf4\u660e\u7cfb\u7edf\u6b63\u5728\u5b89\u88c5\u4e2d\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u76f4\u5230\u7cfb\u7edf\u5b8c\u5168\u542f\u52a8\u540e\u518d\u8bbf\u95eeWeb\u754c\u9762\u3002\u9996\u6b21\u542f\u52a8 Home Assistant \u9700\u8981\u8f83\u957f\u65f6\u95f4\uff0c\u901a\u5e38\u9700\u8981 10-30 \u5206\u949f\uff0c\u8fd9\u53d6\u51b3\u4e8e\u60a8\u7684\u786c\u4ef6\u914d\u7f6e\u3002 \u7a0d\u7b49\u4e00\u4f1a\uff0c\u6211\u4eec\u518d\u6b21\u7528ha cli info\u6765\u67e5\u770b\u72b6\u6001 \u7136\u540e\u7528 ha network info \u6765\u67e5\u770b\u7f51\u7edc\u72b6\u6001,\u53ef\u89c1\u6211\u4eec\u7684IP\u5730\u5740\u662f:192.168.1.51,\u540e\u7eed\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2aIP\u5730\u5740\u6765\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\u3002 \u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\uff0c\u901a\u5e38\u662f\u901a\u8fc7ESXi\u4e3b\u673a\u7684IP\u5730\u5740\u52a0\u4e0a\u7aef\u53e38123\u6765\u8bbf\u95ee\uff0c\u4f8b\u5982\uff1ahttp:// :8123\u3002 \u672c\u4f8b\u662fHttp://192.168.1.51:8123 \u5982\u4e0b\uff0c\u663e\u793a\uff0c\u8fd8\u5728\u5b89\u88c5\u4e2d \u7b49\u5f85\u5373\u53ef\uff0c\u540e\u7eed\u7684\u5b89\u88c5\u8c03\u8bd5\u7b49\uff0c\u89c1\u5176\u5b83\u6587\u6863\u3002","title":"vmwareExsi\u5b89\u88c5Ha"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#vmware-exsiha","text":"","title":"\u57fa\u4e8evmWare Exsi\u5b89\u88c5HA"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#1","text":"\u4e0b\u8f7dVMware ESXi\u5b89\u88c5\u955c\u50cf. \u6253\u5f00\u9875\u9762 https://www.home-assistant.io/installation/alternative \u70b9\u51fb\u4e0b\u8f7d\u201c VMware ESXi/vSphere \u7684 .ova \u683c\u5f0f\u955c\u50cf\u6587\u4ef6\u201d \u6ce8\u610f1 \u4f7f\u7528 E1000 \u6216 E1000E \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u3002\u5f53\u4f7f\u7528 VMware \u7684 VMXnet3 \u865a\u62df\u7f51\u7edc\u9002\u914d\u5668\u65f6\uff0c\u5df2\u786e\u8ba4\u5b58\u5728 mDNS/\u591a\u64ad\u53d1\u73b0\u95ee\u9898\u3002 \u89e3\u6790\uff1a E1000 \u548c E1000E\uff1a\u63a8\u8350\u7684\u865a\u62df\u7f51\u7edc\u9002\u914d\u5668 VMXnet3\uff1a\u53ef\u80fd\u4f1a\u5bfc\u81f4\u7f51\u7edc\u53d1\u73b0\u95ee\u9898 mDNS\uff1a\u591a\u64ad\u57df\u540d\u7cfb\u7edf \u591a\u64ad\u53d1\u73b0\uff1a\u8bbe\u5907\u5728\u7f51\u7edc\u4e0a\u81ea\u52a8\u53d1\u73b0\u548c\u901a\u4fe1\u7684\u673a\u5236 \u5efa\u8bae\uff1a \u5728 VMware ESXi \u521b\u5efa\u865a\u62df\u673a\u65f6 \u7f51\u7edc\u9002\u914d\u5668\u9009\u62e9 E1000 \u6216 E1000E \u907f\u514d\u4f7f\u7528 VMXnet3 \u6ce8\u610f2 \u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\uff0c\u4e3b\u8981\u6b65\u9aa4\u5305\u62ec\uff1a\u767b\u5f55ESXi\u4e3b\u673a\uff0c\u9009\u62e9\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff0c\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u9009\u62e9OVF\u6216OVA\u6587\u4ef6\u5e76\u5b8c\u6210\u540e\u7eed\u8bbe\u7f6e\u3002\ufeff \u5177\u4f53\u6b65\u9aa4\u5982\u4e0b\uff1a \u767b\u5f55ESXi\u4e3b\u673a\uff1a:\u4f7f\u7528Web Client\u6216vSphere Client\u767b\u5f55\u5230\u60a8\u7684ESXi\u4e3b\u673a\u3002\ufeff \u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\uff1a:\u5728ESXi\u754c\u9762\u4e2d\uff0c\u627e\u5230\u5e76\u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u9009\u9879\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u7c7b\u578b\uff1a:\u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9OVF/OVA\u6587\u4ef6\uff1a:\u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u7136\u540e\u9009\u62e9\u8981\u90e8\u7f72\u7684OVF\u6216OVA\u6587\u4ef6\uff0c\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff1a:\u9009\u62e9\u865a\u62df\u673a\u5b58\u50a8\u7684\u4f4d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u9009\u62e9\u90e8\u7f72\u9009\u9879\uff1a:\u6839\u636e\u9700\u8981\u9009\u62e9\u90e8\u7f72\u9009\u9879\uff0c\u4f8b\u5982\u7f51\u7edc\u914d\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002\ufeff \u5b8c\u6210\u90e8\u7f72\uff1a:\u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002\ufeff \u542f\u52a8\u865a\u62df\u673a\uff1a:\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u542f\u52a8\u65b0\u521b\u5efa\u7684\u865a\u62df\u673a\u5373\u53ef\u3002\ufeff \u6ce8\u610f\u4e8b\u9879\uff1a \u5982\u679c\u4f7f\u7528OVF\u6587\u4ef6\uff0c\u901a\u5e38\u9700\u8981\u914d\u5408VMDK\u7b49\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u4e00\u8d77\u4f7f\u7528\u3002\ufeff \u786e\u4fddOVF\u6587\u4ef6\u548c\u76f8\u5173\u7684\u865a\u62df\u78c1\u76d8\u6587\u4ef6\u90fd\u5728\u540c\u4e00\u4e2a\u76ee\u5f55\u4e0b\uff0c\u6216\u8005\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\u3002\ufeff \u5728\u201c\u90e8\u7f72\u9009\u9879\u201d\u9875\u9762\uff0c\u53ef\u4ee5\u6839\u636e\u9700\u8981\u914d\u7f6e\u865a\u62df\u673a\u7684\u7f51\u7edc\u3001\u8d44\u6e90\u7b49\u8bbe\u7f6e\u3002\ufeff \u5982\u679c\u9047\u5230\u201c\u7f3a\u5c11\u78c1\u76d8\u955c\u50cf\u201d\u7b49\u62a5\u9519\uff0c\u53ef\u80fd\u662f\u7531\u4e8eOVF\u6587\u4ef6\u4e2d\u5f15\u7528\u7684\u78c1\u76d8\u6587\u4ef6\u8def\u5f84\u4e0d\u6b63\u786e\uff0c\u6216\u8005\u78c1\u76d8\u6587\u4ef6\u672a\u6b63\u786e\u4e0a\u4f20\u5230ESXi\u7684\u5b58\u50a8\uff0c\u9700\u8981\u68c0\u67e5\u5e76\u4fee\u6b63\u3002\ufeff \u5bf9\u4e8e\u67d0\u4e9bOVF\u6a21\u677f\uff0c\u53ef\u80fd\u9700\u8981\u8fdb\u884c\u4e00\u4e9b\u989d\u5916\u7684\u914d\u7f6e\uff0c\u4f8b\u5982\u4fee\u6539\u865a\u62df\u673a\u7684\u786c\u4ef6\u7248\u672c\u4ee5\u517c\u5bb9ESXi\u7248\u672c\u3002\ufeff \u901a\u8fc7\u4ee5\u4e0a\u6b65\u9aa4\uff0c\u60a8\u5c31\u53ef\u4ee5\u6210\u529f\u5730\u5728ESXi\u4e0a\u901a\u8fc7OVF/OVA\u955c\u50cf\u5b89\u88c5\u865a\u62df\u673a\u4e86","title":"1. \u51c6\u5907\u5de5\u4f5c"},{"location":"install-guide/vmwareExsi%E5%AE%89%E8%A3%85Ha/#2","text":"\u767b\u5f55\u5230ESXi\u4e3b\u673a\u7684Web\u754c\u9762\u3002 \u5728\u5de6\u4fa7\u5bfc\u822a\u680f\u4e2d\uff0c\u70b9\u51fb\u201c\u865a\u62df\u673a\u201d\u3002 \u70b9\u51fb\u201c\u521b\u5efa/\u6ce8\u518c\u865a\u62df\u673a\u201d\u6309\u94ae\u3002 \u9009\u62e9\u201c\u4eceOVF\u6216OVA\u6587\u4ef6\u90e8\u7f72\u865a\u62df\u673a\u201d\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u8f93\u5165\u865a\u62df\u673a\u540d\u79f0\uff0c\u5e76\u9009\u62e9\u4e0b\u8f7d\u7684Home Assistant OVA\u6587\u4ef6\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u9009\u62e9\u5b58\u50a8\u4f4d\u7f6e\uff0c\u901a\u5e38\u9009\u62e9\u9ed8\u8ba4\u7684\u5b58\u50a8\u4f4d\u7f6e\u5373\u53ef\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u7f51\u7edc\u6620\u5c04\u201d\u9875\u9762\uff0c\u9009\u62e9\u9002\u5f53\u7684\u7f51\u7edc\u9002\u914d\u5668\uff08\u786e\u4fdd\u4f7f\u7528E1000\u6216E1000E\uff09\uff0c\u7136\u540e\u70b9\u51fb\u201c\u4e0b\u4e00\u9875\u201d\u3002 \u5728\u201c\u5373\u5c06\u5b8c\u6210\u201d\u9875\u9762\uff0c\u68c0\u67e5\u8bbe\u7f6e\uff0c\u7136\u540e\u70b9\u51fb\u201c\u5b8c\u6210\u201d\u3002 \u9875\u9762\u5e95\u90e8\u4f1a\u663e\u793a\u90e8\u7f72\u8fdb\u5ea6\uff0c\u7b49\u5f85\u90e8\u7f72\u5b8c\u6210\u3002 \u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u60a8\u53ef\u4ee5\u5728\u865a\u62df\u673a\u5217\u8868\u4e2d\u770b\u5230\u65b0\u521b\u5efa\u7684Home Assistant\u865a\u62df\u673a\u3002 \u9009\u4e2dHome Assistant\u865a\u62df\u673a\uff0c\u70b9\u51fb\u201c\u542f\u52a8\u201d\u6309\u94ae\u6765\u542f\u52a8\u865a\u673a \u9996\u6b21\u542f\u52a8\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\u3002 \u770b\u5230ha> \u8fdb\u793a\u7b26\u540e\uff0c\u53ef\u4ee5\u8bd5\u7740\u8f93\u5165 ha \u547d\u4ee4\u6765\u68c0\u67e5Home Assistant\u7684\u72b6\u6001\u3002 \u4e0a\u8ff0\u72b6\u6001\uff0c\u5982\u679c\u663e\u793a \"System is not ready with state: setup\"\uff0c\u8bf4\u660e\u7cfb\u7edf\u6b63\u5728\u5b89\u88c5\u4e2d\uff0c\u8bf7\u8010\u5fc3\u7b49\u5f85\uff0c\u76f4\u5230\u7cfb\u7edf\u5b8c\u5168\u542f\u52a8\u540e\u518d\u8bbf\u95eeWeb\u754c\u9762\u3002\u9996\u6b21\u542f\u52a8 Home Assistant \u9700\u8981\u8f83\u957f\u65f6\u95f4\uff0c\u901a\u5e38\u9700\u8981 10-30 \u5206\u949f\uff0c\u8fd9\u53d6\u51b3\u4e8e\u60a8\u7684\u786c\u4ef6\u914d\u7f6e\u3002 \u7a0d\u7b49\u4e00\u4f1a\uff0c\u6211\u4eec\u518d\u6b21\u7528ha cli info\u6765\u67e5\u770b\u72b6\u6001 \u7136\u540e\u7528 ha network info \u6765\u67e5\u770b\u7f51\u7edc\u72b6\u6001,\u53ef\u89c1\u6211\u4eec\u7684IP\u5730\u5740\u662f:192.168.1.51,\u540e\u7eed\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u8fd9\u4e2aIP\u5730\u5740\u6765\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\u3002 \u542f\u52a8\u540e\uff0c\u60a8\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95eeHome Assistant\u7684Web\u754c\u9762\uff0c\u901a\u5e38\u662f\u901a\u8fc7ESXi\u4e3b\u673a\u7684IP\u5730\u5740\u52a0\u4e0a\u7aef\u53e38123\u6765\u8bbf\u95ee\uff0c\u4f8b\u5982\uff1ahttp:// :8123\u3002 \u672c\u4f8b\u662fHttp://192.168.1.51:8123 \u5982\u4e0b\uff0c\u663e\u793a\uff0c\u8fd8\u5728\u5b89\u88c5\u4e2d \u7b49\u5f85\u5373\u53ef\uff0c\u540e\u7eed\u7684\u5b89\u88c5\u8c03\u8bd5\u7b49\uff0c\u89c1\u5176\u5b83\u6587\u6863\u3002","title":"2. \u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/","text":"ModbusPoll v7.0.0 \u4f7f\u7528\u6559\u7a0b \u00b6 \u76ee\u5f55 \u00b6 \u8f6f\u4ef6\u4ecb\u7ecd \u5b89\u88c5\u4e0e\u542f\u52a8 \u57fa\u672c\u914d\u7f6e \u8fde\u63a5\u8bbe\u7f6e \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u6545\u969c\u6392\u9664 \u9ad8\u7ea7\u529f\u80fd \u8f6f\u4ef6\u4ecb\u7ecd \u00b6 ModbusPoll\u662f\u4e00\u6b3e\u4e13\u4e1a\u7684Modbus\u4e3b\u673a\u4eff\u771f\u5668\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\uff1a - \u6d4b\u8bd5\u548c\u8c03\u8bd5Modbus\u4ece\u8bbe\u5907 - \u76d1\u63a7Modbus\u8bbe\u5907\u6570\u636e - \u9a8c\u8bc1\u8bbe\u5907\u901a\u4fe1\u534f\u8bae - \u6545\u969c\u8bca\u65ad\u548c\u6392\u9664 \u4e3b\u8981\u7279\u6027 \u00b6 \u652f\u6301Modbus RTU/ASCII/TCP\u534f\u8bae \u5b9e\u65f6\u6570\u636e\u76d1\u63a7 \u591a\u79cd\u6570\u636e\u683c\u5f0f\u663e\u793a \u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd \u6279\u91cf\u8bfb\u53d6\u529f\u80fd \u5b89\u88c5\u4e0e\u542f\u52a8 \u00b6 \u7cfb\u7edf\u8981\u6c42 \u00b6 Windows 7/8/10/11 .NET Framework 4.0 \u6216\u66f4\u9ad8\u7248\u672c \u81f3\u5c1150MB\u53ef\u7528\u78c1\u76d8\u7a7a\u95f4 \u5b89\u88c5\u6b65\u9aa4 \u00b6 \u4e0b\u8f7dModbusPoll-v7.0.0\u5b89\u88c5\u5305 \u53f3\u952e\u70b9\u51fb\u5b89\u88c5\u5305\uff0c\u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" \u6309\u7167\u5b89\u88c5\u5411\u5bfc\u5b8c\u6210\u5b89\u88c5 \u542f\u52a8\u7a0b\u5e8f\uff1a\u5f00\u59cb\u83dc\u5355 \u2192 ModbusPoll \u9996\u6b21\u542f\u52a8 \u00b6 \u542f\u52a8\u540e\u4f1a\u663e\u793a\u4e3b\u754c\u9762\uff0c\u5305\u542b\uff1a - \u83dc\u5355\u680f\uff1a\u6587\u4ef6\u3001\u8fde\u63a5\u3001\u8bbe\u7f6e\u7b49 - \u5de5\u5177\u680f\uff1a\u5e38\u7528\u529f\u80fd\u5feb\u6377\u6309\u94ae - \u6570\u636e\u663e\u793a\u533a\u57df\uff1a\u5bc4\u5b58\u5668\u6570\u636e\u8868\u683c - \u72b6\u6001\u680f\uff1a\u8fde\u63a5\u72b6\u6001\u548c\u7edf\u8ba1\u4fe1\u606f \u57fa\u672c\u914d\u7f6e \u00b6 \u8fde\u63a5\u8bbe\u7f6e \u00b6 \u4e32\u53e3\u8fde\u63a5\uff08RTU/ASCII\uff09 Connection \u2192 Connect \u6216\u70b9\u51fb\u5de5\u5177\u680f\u8fde\u63a5\u56fe\u6807 \u8fde\u63a5\u53c2\u6570\u914d\u7f6e Port : \u9009\u62e9\u4e32\u53e3\uff08COM1, COM2\u7b49\uff09 Baud Rate : \u6ce2\u7279\u7387\uff08\u5e38\u75289600, 19200, 38400\uff09 Data Bits : \u6570\u636e\u4f4d\uff08\u901a\u5e38\u4e3a8\uff09 Parity : \u6821\u9a8c\u4f4d\uff08None, Even, Odd\uff09 Stop Bits : \u505c\u6b62\u4f4d\uff081\u62162\uff09 Mode : \u9009\u62e9RTU\u6216ASCII TCP\u8fde\u63a5\u8bbe\u7f6e IP Address : \u8bbe\u5907IP\u5730\u5740 Port : \u7aef\u53e3\u53f7\uff08\u9ed8\u8ba4502\uff09 Unit ID : \u4ece\u7ad9\u5730\u5740 \u8fde\u63a5\u8bbe\u7f6e \u00b6 \u4e32\u53e3\u8fde\u63a5\u793a\u4f8b \u00b6 \u4ee5\u6c34\u5904\u7406\u673a\u4e3a\u4f8b\uff1a - Port: COM1 - Baud Rate: 9600 - Data Bits: 8 - Parity: None - Stop Bits: 1 - Mode: RTU - Response timeout: 1000ms - Delay between polls: 100ms TCP\u8fde\u63a5\u793a\u4f8b \u00b6 \u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u7f51\u7edc\u8fde\u63a5\uff1a - IP Address: 192.168.1.100 - Port: 502 - Unit ID: 1 - Response timeout: 3000ms - Delay between polls: 500ms \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u00b6 \u8bbe\u7f6e\u8bfb\u53d6\u53c2\u6570 \u00b6 Setup \u2192 Read/Write Definition \u914d\u7f6e\u8bfb\u53d6\u53c2\u6570\uff1a Slave ID : \u4ece\u7ad9\u5730\u5740\uff081-247\uff09 Function : \u529f\u80fd\u7801 01: \u8bfb\u53d6\u7ebf\u5708\u72b6\u6001 02: \u8bfb\u53d6\u8f93\u5165\u72b6\u6001 03: \u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668 04: \u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668 Address : \u8d77\u59cb\u5730\u5740 Quantity : \u8bfb\u53d6\u6570\u91cf Scan Rate : \u626b\u63cf\u9891\u7387\uff08ms\uff09 \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u914d\u7f6e\u793a\u4f8b \u00b6 \u6e29\u5ea6\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 (Read Holding Registers) - Address: 23 (0x0017) - Quantity: 2 - Scan Rate: 1000ms \u4f9b\u6db2\u538b\u529b\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 25 (0x0019) - Quantity: 2 - Scan Rate: 500ms \u6db2\u4f4d\u72b6\u6001\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 01 (Read Coils) - Address: 0x0001 - Quantity: 16 - Scan Rate: 2000ms \u7535\u5bfc\u7387\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Scan Rate: 1000ms PH\u503c\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Scan Rate: 1000ms \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u00b6 \u6c34\u5904\u7406\u673a\u53c2\u6570\u8bfb\u53d6 \u00b6 \u6839\u636e\u6c34\u5904\u7406\u8bbe\u5907\u901a\u4fe1\u534f\u8bae\u914d\u7f6e\uff1a 1. \u6e29\u5ea6\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0017\uff09 - Function: 03 - Address: 23 (0x0017) - Quantity: 2 - Data Format: Float (4\u5b57\u8282) 2. \u7535\u5bfc\u7387\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0018\uff09 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Data Format: Float 3. \u4f9b\u6db2\u538b\u529b\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0019-0x001A\uff09 - Function: 03 - Address: 25 (0x0019) - Quantity: 4 - Data Format: Float (\u4f9b\u6db2\u4e00\u3001\u4f9b\u6db2\u4e8c\u538b\u529b) 4. \u6db2\u4f4d\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001B-0x001C\uff09 - Function: 03 - Address: 27 (0x001B) - Quantity: 4 - Data Format: Float (\u50a8\u6db2\u3001\u914d\u6db2\u6db2\u4f4d) 5. PH\u503c\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001D\uff09 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Data Format: Float \u6279\u91cf\u8bfb\u53d6\u914d\u7f6e \u00b6 Setup \u2192 Read/Write Definition \u2192 Add Multiple \u521b\u5efa\u591a\u4e2a\u8bfb\u53d6\u7ec4\uff1a - \u7ec41\uff1a\u6e29\u5ea6\u76f8\u5173\u53c2\u6570 (0x0017-0x0018) - \u7ec42\uff1a\u538b\u529b\u76f8\u5173\u53c2\u6570 (0x0019-0x001A) - \u7ec43\uff1a\u6db2\u4f4d\u76f8\u5173\u53c2\u6570 (0x001B-0x001C) - \u7ec44\uff1aPH\u503c\u53c2\u6570 (0x001D) - \u7ec45\uff1a\u72b6\u6001\u76f8\u5173\u53c2\u6570 (0x0001-0x0010) \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u00b6 \u6570\u636e\u663e\u793a\u683c\u5f0f \u00b6 Display \u2192 Data Format \u9009\u62e9\u5408\u9002\u7684\u663e\u793a\u683c\u5f0f\uff1a Signed/Unsigned : \u6709\u7b26\u53f7/\u65e0\u7b26\u53f7 16-bit/32-bit : \u6570\u636e\u4f4d\u6570 Hex/Decimal/Binary : \u8fdb\u5236\u663e\u793a Float : \u6d6e\u70b9\u6570\u663e\u793a \u5b57\u8282\u5e8f\u914d\u7f6e\u8be6\u89e3 \u00b6 \u91cd\u8981 \uff1a\u6b63\u786e\u7684\u5b57\u8282\u5e8f\u8bbe\u7f6e\u662f\u6570\u636e\u6b63\u786e\u663e\u793a\u7684\u5173\u952e \u914d\u7f6e\u6b65\u9aa4 \uff1a 1. Display \u2192 Data Format \u2192 Advanced 2. \u5b57\u8282\u5e8f\u9009\u9879 \uff1a ``` \u25a1 Byte Swap - \u5b57\u8282\u4ea4\u6362 \u25a1 Word Swap - \u5b57\u4ea4\u6362 \u56db\u79cd\u7ec4\u5408\u5bf9\u5e94\u4e0d\u540c\u5b57\u8282\u5e8f\uff1a \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u9009\u9879\u7ec4\u5408 \u2502 \u5b57\u8282\u5e8f \u2502 \u793a\u4f8b \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u65e0\u52fe\u9009 \u2502 ABCD \u2502 42 0C CC CD \u2502 \u2502 Byte Swap \u2502 BADC \u2502 0C 42 CD CC \u2502 \u2502 Word Swap \u2502 CDAB \u2502 CC CD 42 0C \u2502 \u2502 Both \u2502 DCBA \u2502 CD CC 0C 42 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 ``` \u5b9e\u9645\u9a8c\u8bc1\u65b9\u6cd5 \uff1a \u57fa\u4e8e\u60a8\u7684\u901a\u4fe1\u6570\u636e CD CC 0C 42\uff1a 1. \u5c1d\u8bd5DCBA\u683c\u5f0f\uff1aCD CC 0C 42 \u2192 35.2\u00b0C \u2713 2. \u5176\u4ed6\u683c\u5f0f\u90fd\u4f1a\u663e\u793a\u5f02\u5e38\u503c 3. \u56e0\u6b64\u60a8\u7684\u8bbe\u5907\u4f7f\u7528DCBA\u5b57\u8282\u5e8f \u914d\u7f6e\u5efa\u8bae \uff1a - \u6c34\u5904\u7406\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5927\u7aef\u5e8f(ABCD) - PC-based\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5c0f\u7aef\u5e8f(DCBA) - \u6839\u636e\u5b9e\u9645\u6570\u636e\u9a8c\u8bc1\u9009\u62e9\u6b63\u786e\u683c\u5f0f \u5b9e\u65f6\u76d1\u63a7 \u00b6 View\u83dc\u5355\u9009\u9879\uff1a - Data View: \u6570\u636e\u8868\u683c\u89c6\u56fe - Register View: \u5bc4\u5b58\u5668\u89c6\u56fe - Traffic View: \u901a\u4fe1\u6d41\u91cf\u89c6\u56fe - Error View: \u9519\u8bef\u65e5\u5fd7\u89c6\u56fe \u6570\u636e\u8bb0\u5f55 \u00b6 Log \u2192 Start Logging \u8bbe\u7f6e\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\u548c\u683c\u5f0f \u9009\u62e9\u8bb0\u5f55\u95f4\u9694\u548c\u6761\u4ef6 \u5f00\u59cb\u8bb0\u5f55\u6570\u636e\u53d8\u5316 \u544a\u8b66\u8bbe\u7f6e \u00b6 Setup \u2192 Alarm Setup \u914d\u7f6e\u544a\u8b66\u6761\u4ef6\uff1a - \u6c34\u6e29\u8d85\u9650\uff1a> 40\u00b0C \u6216 < 35\u00b0C - \u4f9b\u6db2\u538b\u529b\u5f02\u5e38\uff1a< 0.1MPa \u6216 > 0.5MPa - \u7535\u5bfc\u7387\u5f02\u5e38\uff1a< 13.0 \u6216 > 15.0 mS/cm - \u8bbe\u5907\u79bb\u7ebf\uff1a\u901a\u4fe1\u8d85\u65f6 > 5\u79d2 \u6545\u969c\u6392\u9664 \u00b6 \u5e38\u89c1\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848 \u00b6 1. \u8fde\u63a5\u5931\u8d25 \u00b6 \u95ee\u9898\uff1a\u65e0\u6cd5\u8fde\u63a5\u5230\u8bbe\u5907 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u4e32\u53e3/\u7f51\u7edc\u8fde\u63a5 - \u786e\u8ba4\u6ce2\u7279\u7387\u548c\u901a\u4fe1\u53c2\u6570 - \u68c0\u67e5\u8bbe\u5907\u5730\u5740\u662f\u5426\u6b63\u786e - \u9a8c\u8bc1\u7535\u7f06\u8fde\u63a5 2. \u6570\u636e\u8bfb\u53d6\u5f02\u5e38 \u00b6 \u95ee\u9898\uff1a\u8bfb\u53d6\u6570\u636e\u5168\u4e3a0\u6216\u5f02\u5e38\u503c \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u529f\u80fd\u7801\u662f\u5426\u6b63\u786e - \u786e\u8ba4\u5bc4\u5b58\u5668\u5730\u5740 - \u68c0\u67e5\u6570\u636e\u683c\u5f0f\u8bbe\u7f6e - \u9a8c\u8bc1\u8bbe\u5907\u662f\u5426\u652f\u6301\u8be5\u529f\u80fd 3. \u901a\u4fe1\u8d85\u65f6 \u00b6 \u95ee\u9898\uff1a\u9891\u7e41\u51fa\u73b0\u901a\u4fe1\u8d85\u65f6 \u89e3\u51b3\u65b9\u6848\uff1a - \u589e\u52a0Response Timeout\u65f6\u95f4 - \u51cf\u5c11\u626b\u63cf\u9891\u7387 - \u68c0\u67e5\u7f51\u7edc\u7a33\u5b9a\u6027 - \u786e\u8ba4\u8bbe\u5907\u8d1f\u8f7d\u60c5\u51b5 4. \u6570\u636e\u683c\u5f0f\u9519\u8bef \u00b6 \u95ee\u9898\uff1a\u6570\u636e\u663e\u793a\u683c\u5f0f\u4e0d\u6b63\u786e \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u5b57\u8282\u5e8f\u8bbe\u7f6e\uff08\u5927\u7aef/\u5c0f\u7aef\uff09 - \u786e\u8ba4\u6570\u636e\u7c7b\u578b\uff08\u6574\u6570/\u6d6e\u70b9\uff09 - \u8c03\u6574\u6570\u636e\u4f4d\u6570\u8bbe\u7f6e - \u53c2\u8003\u8bbe\u5907\u624b\u518c\u786e\u8ba4\u683c\u5f0f 5. \u5b57\u8282\u5e8f\u95ee\u9898\u8bca\u65ad \u00b6 \u95ee\u9898\uff1a\u6570\u636e\u6570\u503c\u5f02\u5e38\uff08\u8fc7\u5927\u6216\u8fc7\u5c0f\uff09 \u75c7\u72b6\uff1a - \u6e29\u5ea6\u663e\u793a\u51e0\u5343\u5ea6\u6216\u8d1f\u503c - \u538b\u529b\u663e\u793a\u5f02\u5e38\u5927\u7684\u6570\u503c - \u7535\u5bfc\u7387\u663e\u793a\u4e0d\u5408\u7406\u6570\u503c \u89e3\u51b3\u6b65\u9aa4\uff1a 1. \u67e5\u770bTraffic View\u4e2d\u7684\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e 2. \u5c1d\u8bd5\u4e0d\u540c\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a - Display \u2192 Data Format \u2192 Byte Swap - Display \u2192 Data Format \u2192 Word Swap 3. \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u7ec4\u5408 4. \u9a8c\u8bc1\u591a\u4e2a\u53c2\u6570\u786e\u4fdd\u8bbe\u7f6e\u6b63\u786e \u5b9e\u4f8b\uff1a \u539f\u59cb\u6570\u636e\uff1aCD CC 0C 42 - \u9ed8\u8ba4(ABCD)\uff1a\u5f02\u5e38\u503c - Byte swap(BADC)\uff1a\u5f02\u5e38\u503c - Word swap(CDAB)\uff1a\u5f02\u5e38\u503c - Byte+Word(DCBA)\uff1a35.2\u00b0C \u2713\u6b63\u786e \u9ad8\u7ea7\u529f\u80fd \u00b6 1. \u811a\u672c\u81ea\u52a8\u5316 \u00b6 Tools \u2192 Scripting \u652f\u6301VB\u811a\u672c\u81ea\u52a8\u5316\uff1a - \u81ea\u52a8\u8fde\u63a5\u8bbe\u5907 - \u6279\u91cf\u6570\u636e\u5904\u7406 - \u6761\u4ef6\u89e6\u53d1\u64cd\u4f5c - \u62a5\u544a\u751f\u6210 2. \u6570\u636e\u5bfc\u51fa \u00b6 File \u2192 Export Data \u652f\u6301\u591a\u79cd\u683c\u5f0f\uff1a - CSV\u6587\u4ef6 - Excel\u6587\u4ef6 - XML\u683c\u5f0f - \u81ea\u5b9a\u4e49\u683c\u5f0f 3. \u591a\u8bbe\u5907\u76d1\u63a7 \u00b6 \u53ef\u540c\u65f6\u76d1\u63a7\u591a\u4e2a\u8bbe\u5907\uff1a 1. File \u2192 New Document 2. \u914d\u7f6e\u4e0d\u540c\u8bbe\u5907\u53c2\u6570 3. Window \u2192 Tile \u5e73\u94fa\u663e\u793a 4. \u5b9e\u73b0\u591a\u8bbe\u5907\u96c6\u4e2d\u76d1\u63a7 4. \u8d8b\u52bf\u5206\u6790 \u00b6 View \u2192 Trend View \u529f\u80fd\u7279\u6027\uff1a - \u5b9e\u65f6\u8d8b\u52bf\u56fe\u8868 - \u5386\u53f2\u6570\u636e\u56de\u653e - \u6570\u636e\u7edf\u8ba1\u5206\u6790 - \u5f02\u5e38\u70b9\u6807\u8bb0 \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u5b9e\u6218 \u00b6 \u5b8c\u6574\u76d1\u63a7\u914d\u7f6e \u00b6 # \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u914d\u7f6e\u793a\u4f8b \u8bbe\u5907\u4fe1\u606f : \u8bbe\u5907\u578b\u53f7 : \u6c34\u5904\u7406\u673a+\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907 \u901a\u4fe1\u65b9\u5f0f : Modbus RTU/TCP \u6ce2\u7279\u7387 : 9600 \u4ece\u7ad9\u5730\u5740 : 1 \u76d1\u63a7\u53c2\u6570 : \u6e29\u5ea6\u76d1\u63a7 : \u5730\u5740 : 0x0017 \u5355\u4f4d : \u00b0C \u544a\u8b66 : 35-40\u00b0C \u7535\u5bfc\u7387\u76d1\u63a7 : \u5730\u5740 : 0x0018 \u5355\u4f4d : mS/cm \u544a\u8b66 : 13.0-15.0 \u538b\u529b\u76d1\u63a7 : \u4f9b\u6db2\u4e00 : 0x0019 \u4f9b\u6db2\u4e8c : 0x001A \u5355\u4f4d : MPa \u544a\u8b66 : 0.1-0.5 \u6db2\u4f4d\u76d1\u63a7 : \u50a8\u6db2 : 0x001B \u914d\u6db2 : 0x001C \u5355\u4f4d : % \u544a\u8b66 : 10-90% PH\u503c\u76d1\u63a7 : \u5730\u5740 : 0x001D \u5355\u4f4d : pH \u544a\u8b66 : 6.5-7.5 \u626b\u63cf\u8bbe\u7f6e : \u6b63\u5e38\u626b\u63cf : 1000ms \u5feb\u901f\u626b\u63cf : 500ms \u6162\u901f\u626b\u63cf : 2000ms \u901a\u4fe1\u534f\u8bae\u5206\u6790 : \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e : - \u4f7f\u7528Modbus TCP\u534f\u8bae - \u529f\u80fd\u780103 (Read Holding Registers) - \u8d77\u59cb\u5730\u5740 : 0x0017 (\u6e29\u5ea6) - \u6570\u636e\u683c\u5f0f : 32\u4f4d\u6d6e\u70b9\u6570 (IEEE 754) - \u5b57\u8282\u5e8f\u5206\u6790 : * \u539f\u59cb\u6570\u636e : CD CC 0C 42 * \u9700\u8981DCBA\u5b57\u8282\u5e8f (Byte+Word Swap) * \u89e3\u6790\u7ed3\u679c : 35.2\u00b0C - \u6570\u636e\u793a\u4f8b\u9a8c\u8bc1 : * CD CC 0C 42 (\u5341\u516d\u8fdb\u5236) * \u2192 0x420CCCCD (\u91cd\u6392\u540e) * \u2192 35.2000008 (IEEE 754\u6d6e\u70b9\u6570) * \u2192 35.2\u00b0C (\u663e\u793a\u503c) \u914d\u7f6e\u8981\u70b9 : - ModbusPoll\u8bbe\u7f6e : Display \u2192 Data Format - \u52fe\u9009 : Byte Swap + Word Swap - \u6570\u636e\u7c7b\u578b : 32-bit Float - \u9a8c\u8bc1\u65b9\u6cd5 : \u89c2\u5bdf\u6e29\u5ea6\u662f\u5426\u5728\u5408\u7406\u8303\u56f4(30-50\u00b0C) \u81ea\u52a8\u5316\u811a\u672c\u793a\u4f8b \u00b6 ' \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u72b6\u6001\u68c0\u67e5\u811a\u672c Sub CheckWaterTreatmentStatus () Dim temp , pressure1 , pressure2 , conductivity , ph ' \u8bfb\u53d6\u6e29\u5ea6 (\u5730\u574023) temp = mbPoll . ReadFloat ( 1 , 3 , 23 ) ' \u8bfb\u53d6\u538b\u529b (\u5730\u574025,26) pressure1 = mbPoll . ReadFloat ( 1 , 3 , 25 ) pressure2 = mbPoll . ReadFloat ( 1 , 3 , 26 ) ' \u8bfb\u53d6\u7535\u5bfc\u7387 (\u5730\u574024) conductivity = mbPoll . ReadFloat ( 1 , 3 , 24 ) ' \u8bfb\u53d6PH\u503c (\u5730\u574029) ph = mbPoll . ReadFloat ( 1 , 3 , 29 ) ' \u68c0\u67e5\u5f02\u5e38 If temp > 40 Or temp < 35 Then MsgBox \"\u6c34\u6e29\u5f02\u5e38: \" & temp & \"\u00b0C\" End If If pressure1 < 0.1 Or pressure1 > 0.5 Then MsgBox \"\u4f9b\u6db2\u4e00\u538b\u529b\u5f02\u5e38: \" & pressure1 & \"MPa\" End If If conductivity < 13.0 Or conductivity > 15.0 Then MsgBox \"\u7535\u5bfc\u7387\u5f02\u5e38: \" & conductivity & \"mS/cm\" End If If ph < 6.5 Or ph > 7.5 Then MsgBox \"PH\u503c\u5f02\u5e38: \" & ph End If End Sub \u6700\u4f73\u5b9e\u8df5\u5efa\u8bae \u00b6 1. \u6027\u80fd\u4f18\u5316 \u00b6 \u5408\u7406\u8bbe\u7f6e\u626b\u63cf\u9891\u7387\uff0c\u907f\u514d\u8fc7\u5ea6\u8f6e\u8be2 \u4f7f\u7528\u6279\u91cf\u8bfb\u53d6\u51cf\u5c11\u901a\u4fe1\u6b21\u6570 \u5b9a\u671f\u6e05\u7406\u65e5\u5fd7\u6587\u4ef6 \u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5 2. \u6570\u636e\u7ba1\u7406 \u00b6 \u5efa\u7acb\u89c4\u8303\u7684\u53c2\u6570\u547d\u540d\u89c4\u5219 \u5b9a\u671f\u5907\u4efd\u91cd\u8981\u914d\u7f6e \u8bbe\u7f6e\u5408\u7406\u7684\u6570\u636e\u4fdd\u5b58\u5468\u671f \u5b9e\u65bd\u6570\u636e\u5b89\u5168\u63aa\u65bd 3. \u7ef4\u62a4\u5efa\u8bae \u00b6 \u5b9a\u671f\u68c0\u67e5\u901a\u4fe1\u7ebf\u8def \u66f4\u65b0\u8bbe\u5907\u9a71\u52a8\u7a0b\u5e8f \u5907\u4efd\u5de5\u7a0b\u914d\u7f6e\u6587\u4ef6 \u5efa\u7acb\u6545\u969c\u5904\u7406\u6d41\u7a0b \u9644\u5f55 \u00b6 A. Modbus\u529f\u80fd\u7801\u5bf9\u7167\u8868 \u00b6 01 - Read Coils (\u8bfb\u53d6\u7ebf\u5708\u72b6\u6001) 02 - Read Discrete Inputs (\u8bfb\u53d6\u79bb\u6563\u8f93\u5165) 03 - Read Holding Registers (\u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668) 04 - Read Input Registers (\u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668) 05 - Write Single Coil (\u5199\u5355\u4e2a\u7ebf\u5708) 06 - Write Single Register (\u5199\u5355\u4e2a\u5bc4\u5b58\u5668) 15 - Write Multiple Coils (\u5199\u591a\u4e2a\u7ebf\u5708) 16 - Write Multiple Registers (\u5199\u591a\u4e2a\u5bc4\u5b58\u5668) B. \u5e38\u7528\u6ce2\u7279\u7387\u8bbe\u7f6e \u00b6 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 C. \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u5e38\u7528\u5730\u5740\u6620\u5c04 \u00b6 \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e\u7684\u5730\u5740\u6620\u5c04\uff1a \u6e29\u5ea6\uff1a0x0017 (\u5341\u8fdb\u523623) \u7535\u5bfc\u7387\uff1a0x0018 (\u5341\u8fdb\u523624) \u4f9b\u6db2\u4e00\u538b\u529b\uff1a0x0019 (\u5341\u8fdb\u523625) \u4f9b\u6db2\u4e8c\u538b\u529b\uff1a0x001A (\u5341\u8fdb\u523626) \u50a8\u6db2\u6db2\u4f4d\uff1a0x001B (\u5341\u8fdb\u523627) \u914d\u6db2\u6db2\u4f4d\uff1a0x001C (\u5341\u8fdb\u523628) PH\u503c\uff1a0x001D (\u5341\u8fdb\u523629) \u72b6\u6001\u7c7b\uff1a0x0001-0x0010 \u63a7\u5236\u7c7b\uff1a0x0020-0x0030 D. \u5927\u7aef\u5c0f\u7aef\uff08\u5b57\u8282\u5e8f\uff09\u8be6\u89e3 \u00b6 \u4ec0\u4e48\u662f\u5927\u7aef\u5c0f\u7aef\uff1f \u00b6 \u5b57\u8282\u5e8f\uff08Byte Order\uff09\u662f\u6307\u591a\u5b57\u8282\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u4e3b\u8981\u6709\u4e24\u79cd\uff1a \u5927\u7aef\u5e8f\uff08Big Endian\uff09 \uff1a - \u9ad8\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u7b26\u5408\u4eba\u7c7b\u9605\u8bfb\u4e60\u60ef - \u7f51\u7edc\u4f20\u8f93\u6807\u51c6\u5b57\u8282\u5e8f \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09 \uff1a - \u4f4e\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u591a\u6570x86\u5904\u7406\u5668\u91c7\u7528 - Intel\u67b6\u6784\u9ed8\u8ba4\u5b57\u8282\u5e8f \u5b9e\u9645\u4f8b\u5b50\u8bf4\u660e \u00b6 \u4ee532\u4f4d\u6d6e\u70b9\u6570 35.2\u00b0C \u4e3a\u4f8b\uff1a IEEE 754 \u6d6e\u70b9\u6570\u8868\u793a\uff1a0x420C_CCCD \u5927\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) 0x1001 0x0C 0x1002 0xCC 0x1003 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) \u5c0f\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) 0x1001 0xCC 0x1002 0x0C 0x1003 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) \u5982\u4f55\u786e\u5b9a\u8bbe\u5907\u5b57\u8282\u5e8f\uff1f \u00b6 \u65b9\u6cd51\uff1a\u901a\u8fc7\u901a\u4fe1\u6570\u636e\u5206\u6790 \u4ececommdata.txt\u770b\u5230\u7684\u6570\u636e\uff1aCD CC 0C 42 1. \u5c06\u8fd94\u4e2a\u5b57\u8282\u6309\u4e0d\u540c\u5b57\u8282\u5e8f\u89e3\u91ca\uff1a - \u5927\u7aef\u5e8f\uff1a0x42_0C_CCCD = 35.2 (\u5408\u7406\u7684\u6e29\u5ea6\u503c) - \u5c0f\u7aef\u5e8f\uff1a0xCDCC_0C42 = \u975e\u5e38\u5927\u7684\u6570\u503c(\u4e0d\u5408\u7406) 2. \u7ed3\u8bba\uff1a\u8bbe\u5907\u4f7f\u7528\u5927\u7aef\u5e8f \u65b9\u6cd52\uff1a\u67e5\u770b\u8bbe\u5907\u624b\u518c \u8bbe\u5907\u6280\u672f\u6587\u6863\u901a\u5e38\u4f1a\u8bf4\u660e\uff1a - \"\u7f51\u7edc\u5b57\u8282\u5e8f\" = \u5927\u7aef\u5e8f - \"\u4e3b\u673a\u5b57\u8282\u5e8f\" = \u901a\u5e38\u662f\u5c0f\u7aef\u5e8f - \"Intel\u683c\u5f0f\" = \u5c0f\u7aef\u5e8f - \"Motorola\u683c\u5f0f\" = \u5927\u7aef\u5e8f \u65b9\u6cd53\uff1aModbusPoll\u4e2d\u7684\u9a8c\u8bc1 \u5728ModbusPoll\u4e2d\u6d4b\u8bd5\uff1a 1. Setup \u2192 Data Format \u2192 Byte Swap 2. \u89c2\u5bdf\u6570\u636e\u662f\u5426\u5408\u7406\uff1a - \u6e29\u5ea6\u5e94\u8be5\u57280-100\u00b0C\u8303\u56f4 - \u538b\u529b\u5e94\u8be5\u57280-10MPa\u8303\u56f4 - \u7535\u5bfc\u7387\u5e94\u8be5\u572810-20mS/cm\u8303\u56f4 3. \u9009\u62e9\u663e\u793a\u6b63\u786e\u6570\u503c\u7684\u5b57\u8282\u5e8f ModbusPoll\u5b57\u8282\u5e8f\u8bbe\u7f6e \u00b6 \u914d\u7f6e\u8def\u5f84 \uff1aDisplay \u2192 Data Format \u9009\u9879\u8bf4\u660e \uff1a \u25a1 Byte swap - \u4ea4\u6362\u5b57\u8282\u5e8f \u25a1 Word swap - \u4ea4\u6362\u5b57\u987a\u5e8f \u25a1 Dword swap - \u4ea4\u6362\u53cc\u5b57\u987a\u5e8f \u7ec4\u5408\u8bbe\u7f6e\u5bf9\u5e94\u4e0d\u540c\u683c\u5f0f\uff1a - \u65e0\u52fe\u9009\uff1aABCD (\u5927\u7aef\u5e8f) - Byte swap\uff1aBADC - Word swap\uff1aCDAB - Byte+Word swap\uff1aDCBA (\u5c0f\u7aef\u5e8f) \u5b9e\u9645\u5e94\u7528\u793a\u4f8b \u00b6 \u6848\u4f8b1\uff1a\u6e29\u5ea6\u8bfb\u53d6\u5f02\u5e38 \u95ee\u9898\uff1a\u8bfb\u53d6\u6e29\u5ea6\u663e\u793a\u4e3a\u51e0\u5343\u5ea6 \u539f\u56e0\uff1a\u5b57\u8282\u5e8f\u8bbe\u7f6e\u9519\u8bef \u89e3\u51b3\uff1a\u52fe\u9009\"Byte swap\"\u8c03\u6574\u5b57\u8282\u5e8f \u6848\u4f8b2\uff1a\u538b\u529b\u503c\u663e\u793a\u5f02\u5e38 \u8bfb\u53d6\u6570\u636e\uff1a12 34 56 78 \u5927\u7aef\u5e8f\u89e3\u91ca\uff1a0x12345678 = 305,419,896 (\u5f02\u5e38) \u5c0f\u7aef\u5e8f\u89e3\u91ca\uff1a0x78563412 = 2,018,915,346 (\u5f02\u5e38) \u9700\u8981Word swap\uff1a0x34127856 = 873,756,758 (\u4ecd\u5f02\u5e38) \u6b63\u786e\u8bbe\u7f6e\uff1aByte+Word swap = 0x78563412\u8f6c\u6362\u4e3a\u6d6e\u70b9\u6570 \u8c03\u8bd5\u6280\u5de7 \u00b6 \u6b65\u9aa41\uff1a\u8bb0\u5f55\u539f\u59cb\u6570\u636e \u4f7f\u7528Traffic View\u67e5\u770b\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e \u4f8b\u5982\uff1a42 0C CC CD \u6b65\u9aa42\uff1a\u624b\u52a8\u8ba1\u7b97\u9a8c\u8bc1 \u4f7f\u7528\u5728\u7ebfIEEE 754\u8f6c\u6362\u5668\uff1a - \u8f93\u5165\uff1a420CCCCD - \u8f93\u51fa\uff1a35.2000008... - \u9a8c\u8bc1\u662f\u5426\u4e3a\u5408\u7406\u6570\u503c \u6b65\u9aa43\uff1aModbusPoll\u4e2d\u6d4b\u8bd5 \u4f9d\u6b21\u5c1d\u8bd5\u56db\u79cd\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a 1. ABCD - \u539f\u59cb\u987a\u5e8f 2. BADC - Byte swap 3. CDAB - Word swap 4. DCBA - Byte+Word swap \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u8bbe\u7f6e \u5e38\u89c1\u8bbe\u5907\u5b57\u8282\u5e8f \u00b6 \u5927\u7aef\u5e8f\u8bbe\u5907\uff1a - \u65bd\u8010\u5fb7PLC - \u897f\u95e8\u5b50S7\u7cfb\u5217 - ABB\u8bbe\u5907 - \u5927\u591a\u6570\u7f51\u7edc\u8bbe\u5907 \u5c0f\u7aef\u5e8f\u8bbe\u5907\uff1a - \u4e09\u83f1PLC - \u6b27\u59c6\u9f99PLC - PC-based\u63a7\u5236\u5668 - Intel\u67b6\u6784\u8bbe\u5907 \u672c\u6559\u7a0b\u57fa\u4e8eModbusPoll v7.0.0\u7248\u672c\u7f16\u5199\uff0c\u9002\u7528\u4e8e\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u76d1\u63a7\u7cfb\u7edf\u3002\u5982\u6709\u95ee\u9898\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u8054\u7cfb\u6280\u672f\u652f\u6301\u3002","title":"ModbusPoll-v7.0.0\u4f7f\u7528\u6559\u7a0b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#modbuspoll-v700","text":"","title":"ModbusPoll v7.0.0 \u4f7f\u7528\u6559\u7a0b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_1","text":"\u8f6f\u4ef6\u4ecb\u7ecd \u5b89\u88c5\u4e0e\u542f\u52a8 \u57fa\u672c\u914d\u7f6e \u8fde\u63a5\u8bbe\u7f6e \u6570\u636e\u8bfb\u53d6\u914d\u7f6e \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b \u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790 \u6545\u969c\u6392\u9664 \u9ad8\u7ea7\u529f\u80fd","title":"\u76ee\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_2","text":"ModbusPoll\u662f\u4e00\u6b3e\u4e13\u4e1a\u7684Modbus\u4e3b\u673a\u4eff\u771f\u5668\u5de5\u5177\uff0c\u4e3b\u8981\u7528\u4e8e\uff1a - \u6d4b\u8bd5\u548c\u8c03\u8bd5Modbus\u4ece\u8bbe\u5907 - \u76d1\u63a7Modbus\u8bbe\u5907\u6570\u636e - \u9a8c\u8bc1\u8bbe\u5907\u901a\u4fe1\u534f\u8bae - \u6545\u969c\u8bca\u65ad\u548c\u6392\u9664","title":"\u8f6f\u4ef6\u4ecb\u7ecd"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_3","text":"\u652f\u6301Modbus RTU/ASCII/TCP\u534f\u8bae \u5b9e\u65f6\u6570\u636e\u76d1\u63a7 \u591a\u79cd\u6570\u636e\u683c\u5f0f\u663e\u793a \u65e5\u5fd7\u8bb0\u5f55\u529f\u80fd \u6279\u91cf\u8bfb\u53d6\u529f\u80fd","title":"\u4e3b\u8981\u7279\u6027"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_4","text":"","title":"\u5b89\u88c5\u4e0e\u542f\u52a8"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_5","text":"Windows 7/8/10/11 .NET Framework 4.0 \u6216\u66f4\u9ad8\u7248\u672c \u81f3\u5c1150MB\u53ef\u7528\u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf\u8981\u6c42"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_6","text":"\u4e0b\u8f7dModbusPoll-v7.0.0\u5b89\u88c5\u5305 \u53f3\u952e\u70b9\u51fb\u5b89\u88c5\u5305\uff0c\u9009\u62e9\"\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fd0\u884c\" \u6309\u7167\u5b89\u88c5\u5411\u5bfc\u5b8c\u6210\u5b89\u88c5 \u542f\u52a8\u7a0b\u5e8f\uff1a\u5f00\u59cb\u83dc\u5355 \u2192 ModbusPoll","title":"\u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_7","text":"\u542f\u52a8\u540e\u4f1a\u663e\u793a\u4e3b\u754c\u9762\uff0c\u5305\u542b\uff1a - \u83dc\u5355\u680f\uff1a\u6587\u4ef6\u3001\u8fde\u63a5\u3001\u8bbe\u7f6e\u7b49 - \u5de5\u5177\u680f\uff1a\u5e38\u7528\u529f\u80fd\u5feb\u6377\u6309\u94ae - \u6570\u636e\u663e\u793a\u533a\u57df\uff1a\u5bc4\u5b58\u5668\u6570\u636e\u8868\u683c - \u72b6\u6001\u680f\uff1a\u8fde\u63a5\u72b6\u6001\u548c\u7edf\u8ba1\u4fe1\u606f","title":"\u9996\u6b21\u542f\u52a8"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_8","text":"","title":"\u57fa\u672c\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_9","text":"\u4e32\u53e3\u8fde\u63a5\uff08RTU/ASCII\uff09 Connection \u2192 Connect \u6216\u70b9\u51fb\u5de5\u5177\u680f\u8fde\u63a5\u56fe\u6807 \u8fde\u63a5\u53c2\u6570\u914d\u7f6e Port : \u9009\u62e9\u4e32\u53e3\uff08COM1, COM2\u7b49\uff09 Baud Rate : \u6ce2\u7279\u7387\uff08\u5e38\u75289600, 19200, 38400\uff09 Data Bits : \u6570\u636e\u4f4d\uff08\u901a\u5e38\u4e3a8\uff09 Parity : \u6821\u9a8c\u4f4d\uff08None, Even, Odd\uff09 Stop Bits : \u505c\u6b62\u4f4d\uff081\u62162\uff09 Mode : \u9009\u62e9RTU\u6216ASCII TCP\u8fde\u63a5\u8bbe\u7f6e IP Address : \u8bbe\u5907IP\u5730\u5740 Port : \u7aef\u53e3\u53f7\uff08\u9ed8\u8ba4502\uff09 Unit ID : \u4ece\u7ad9\u5730\u5740","title":"\u8fde\u63a5\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_10","text":"","title":"\u8fde\u63a5\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_11","text":"\u4ee5\u6c34\u5904\u7406\u673a\u4e3a\u4f8b\uff1a - Port: COM1 - Baud Rate: 9600 - Data Bits: 8 - Parity: None - Stop Bits: 1 - Mode: RTU - Response timeout: 1000ms - Delay between polls: 100ms","title":"\u4e32\u53e3\u8fde\u63a5\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#tcp","text":"\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u7f51\u7edc\u8fde\u63a5\uff1a - IP Address: 192.168.1.100 - Port: 502 - Unit ID: 1 - Response timeout: 3000ms - Delay between polls: 500ms","title":"TCP\u8fde\u63a5\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_12","text":"","title":"\u6570\u636e\u8bfb\u53d6\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_13","text":"Setup \u2192 Read/Write Definition \u914d\u7f6e\u8bfb\u53d6\u53c2\u6570\uff1a Slave ID : \u4ece\u7ad9\u5730\u5740\uff081-247\uff09 Function : \u529f\u80fd\u7801 01: \u8bfb\u53d6\u7ebf\u5708\u72b6\u6001 02: \u8bfb\u53d6\u8f93\u5165\u72b6\u6001 03: \u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668 04: \u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668 Address : \u8d77\u59cb\u5730\u5740 Quantity : \u8bfb\u53d6\u6570\u91cf Scan Rate : \u626b\u63cf\u9891\u7387\uff08ms\uff09","title":"\u8bbe\u7f6e\u8bfb\u53d6\u53c2\u6570"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_14","text":"\u6e29\u5ea6\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 (Read Holding Registers) - Address: 23 (0x0017) - Quantity: 2 - Scan Rate: 1000ms \u4f9b\u6db2\u538b\u529b\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 25 (0x0019) - Quantity: 2 - Scan Rate: 500ms \u6db2\u4f4d\u72b6\u6001\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 01 (Read Coils) - Address: 0x0001 - Quantity: 16 - Scan Rate: 2000ms \u7535\u5bfc\u7387\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Scan Rate: 1000ms PH\u503c\u76d1\u63a7\uff1a - Slave ID: 1 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Scan Rate: 1000ms","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u914d\u7f6e\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_15","text":"","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u901a\u4fe1\u5b9e\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_16","text":"\u6839\u636e\u6c34\u5904\u7406\u8bbe\u5907\u901a\u4fe1\u534f\u8bae\u914d\u7f6e\uff1a 1. \u6e29\u5ea6\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0017\uff09 - Function: 03 - Address: 23 (0x0017) - Quantity: 2 - Data Format: Float (4\u5b57\u8282) 2. \u7535\u5bfc\u7387\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0018\uff09 - Function: 03 - Address: 24 (0x0018) - Quantity: 2 - Data Format: Float 3. \u4f9b\u6db2\u538b\u529b\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x0019-0x001A\uff09 - Function: 03 - Address: 25 (0x0019) - Quantity: 4 - Data Format: Float (\u4f9b\u6db2\u4e00\u3001\u4f9b\u6db2\u4e8c\u538b\u529b) 4. \u6db2\u4f4d\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001B-0x001C\uff09 - Function: 03 - Address: 27 (0x001B) - Quantity: 4 - Data Format: Float (\u50a8\u6db2\u3001\u914d\u6db2\u6db2\u4f4d) 5. PH\u503c\u53c2\u6570\uff08\u5bc4\u5b58\u5668\u5730\u5740\uff1a0x001D\uff09 - Function: 03 - Address: 29 (0x001D) - Quantity: 2 - Data Format: Float","title":"\u6c34\u5904\u7406\u673a\u53c2\u6570\u8bfb\u53d6"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_17","text":"Setup \u2192 Read/Write Definition \u2192 Add Multiple \u521b\u5efa\u591a\u4e2a\u8bfb\u53d6\u7ec4\uff1a - \u7ec41\uff1a\u6e29\u5ea6\u76f8\u5173\u53c2\u6570 (0x0017-0x0018) - \u7ec42\uff1a\u538b\u529b\u76f8\u5173\u53c2\u6570 (0x0019-0x001A) - \u7ec43\uff1a\u6db2\u4f4d\u76f8\u5173\u53c2\u6570 (0x001B-0x001C) - \u7ec44\uff1aPH\u503c\u53c2\u6570 (0x001D) - \u7ec45\uff1a\u72b6\u6001\u76f8\u5173\u53c2\u6570 (0x0001-0x0010)","title":"\u6279\u91cf\u8bfb\u53d6\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_18","text":"","title":"\u6570\u636e\u76d1\u63a7\u4e0e\u5206\u6790"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_19","text":"Display \u2192 Data Format \u9009\u62e9\u5408\u9002\u7684\u663e\u793a\u683c\u5f0f\uff1a Signed/Unsigned : \u6709\u7b26\u53f7/\u65e0\u7b26\u53f7 16-bit/32-bit : \u6570\u636e\u4f4d\u6570 Hex/Decimal/Binary : \u8fdb\u5236\u663e\u793a Float : \u6d6e\u70b9\u6570\u663e\u793a","title":"\u6570\u636e\u663e\u793a\u683c\u5f0f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_20","text":"\u91cd\u8981 \uff1a\u6b63\u786e\u7684\u5b57\u8282\u5e8f\u8bbe\u7f6e\u662f\u6570\u636e\u6b63\u786e\u663e\u793a\u7684\u5173\u952e \u914d\u7f6e\u6b65\u9aa4 \uff1a 1. Display \u2192 Data Format \u2192 Advanced 2. \u5b57\u8282\u5e8f\u9009\u9879 \uff1a ``` \u25a1 Byte Swap - \u5b57\u8282\u4ea4\u6362 \u25a1 Word Swap - \u5b57\u4ea4\u6362 \u56db\u79cd\u7ec4\u5408\u5bf9\u5e94\u4e0d\u540c\u5b57\u8282\u5e8f\uff1a \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502 \u9009\u9879\u7ec4\u5408 \u2502 \u5b57\u8282\u5e8f \u2502 \u793a\u4f8b \u2502 \u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524 \u2502 \u65e0\u52fe\u9009 \u2502 ABCD \u2502 42 0C CC CD \u2502 \u2502 Byte Swap \u2502 BADC \u2502 0C 42 CD CC \u2502 \u2502 Word Swap \u2502 CDAB \u2502 CC CD 42 0C \u2502 \u2502 Both \u2502 DCBA \u2502 CD CC 0C 42 \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 ``` \u5b9e\u9645\u9a8c\u8bc1\u65b9\u6cd5 \uff1a \u57fa\u4e8e\u60a8\u7684\u901a\u4fe1\u6570\u636e CD CC 0C 42\uff1a 1. \u5c1d\u8bd5DCBA\u683c\u5f0f\uff1aCD CC 0C 42 \u2192 35.2\u00b0C \u2713 2. \u5176\u4ed6\u683c\u5f0f\u90fd\u4f1a\u663e\u793a\u5f02\u5e38\u503c 3. \u56e0\u6b64\u60a8\u7684\u8bbe\u5907\u4f7f\u7528DCBA\u5b57\u8282\u5e8f \u914d\u7f6e\u5efa\u8bae \uff1a - \u6c34\u5904\u7406\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5927\u7aef\u5e8f(ABCD) - PC-based\u8bbe\u5907\u901a\u5e38\u4f7f\u7528\u5c0f\u7aef\u5e8f(DCBA) - \u6839\u636e\u5b9e\u9645\u6570\u636e\u9a8c\u8bc1\u9009\u62e9\u6b63\u786e\u683c\u5f0f","title":"\u5b57\u8282\u5e8f\u914d\u7f6e\u8be6\u89e3"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_21","text":"View\u83dc\u5355\u9009\u9879\uff1a - Data View: \u6570\u636e\u8868\u683c\u89c6\u56fe - Register View: \u5bc4\u5b58\u5668\u89c6\u56fe - Traffic View: \u901a\u4fe1\u6d41\u91cf\u89c6\u56fe - Error View: \u9519\u8bef\u65e5\u5fd7\u89c6\u56fe","title":"\u5b9e\u65f6\u76d1\u63a7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_22","text":"Log \u2192 Start Logging \u8bbe\u7f6e\u65e5\u5fd7\u6587\u4ef6\u8def\u5f84\u548c\u683c\u5f0f \u9009\u62e9\u8bb0\u5f55\u95f4\u9694\u548c\u6761\u4ef6 \u5f00\u59cb\u8bb0\u5f55\u6570\u636e\u53d8\u5316","title":"\u6570\u636e\u8bb0\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_23","text":"Setup \u2192 Alarm Setup \u914d\u7f6e\u544a\u8b66\u6761\u4ef6\uff1a - \u6c34\u6e29\u8d85\u9650\uff1a> 40\u00b0C \u6216 < 35\u00b0C - \u4f9b\u6db2\u538b\u529b\u5f02\u5e38\uff1a< 0.1MPa \u6216 > 0.5MPa - \u7535\u5bfc\u7387\u5f02\u5e38\uff1a< 13.0 \u6216 > 15.0 mS/cm - \u8bbe\u5907\u79bb\u7ebf\uff1a\u901a\u4fe1\u8d85\u65f6 > 5\u79d2","title":"\u544a\u8b66\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_24","text":"","title":"\u6545\u969c\u6392\u9664"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_25","text":"","title":"\u5e38\u89c1\u95ee\u9898\u53ca\u89e3\u51b3\u65b9\u6848"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1","text":"\u95ee\u9898\uff1a\u65e0\u6cd5\u8fde\u63a5\u5230\u8bbe\u5907 \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u4e32\u53e3/\u7f51\u7edc\u8fde\u63a5 - \u786e\u8ba4\u6ce2\u7279\u7387\u548c\u901a\u4fe1\u53c2\u6570 - \u68c0\u67e5\u8bbe\u5907\u5730\u5740\u662f\u5426\u6b63\u786e - \u9a8c\u8bc1\u7535\u7f06\u8fde\u63a5","title":"1. \u8fde\u63a5\u5931\u8d25"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2","text":"\u95ee\u9898\uff1a\u8bfb\u53d6\u6570\u636e\u5168\u4e3a0\u6216\u5f02\u5e38\u503c \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u529f\u80fd\u7801\u662f\u5426\u6b63\u786e - \u786e\u8ba4\u5bc4\u5b58\u5668\u5730\u5740 - \u68c0\u67e5\u6570\u636e\u683c\u5f0f\u8bbe\u7f6e - \u9a8c\u8bc1\u8bbe\u5907\u662f\u5426\u652f\u6301\u8be5\u529f\u80fd","title":"2. \u6570\u636e\u8bfb\u53d6\u5f02\u5e38"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3","text":"\u95ee\u9898\uff1a\u9891\u7e41\u51fa\u73b0\u901a\u4fe1\u8d85\u65f6 \u89e3\u51b3\u65b9\u6848\uff1a - \u589e\u52a0Response Timeout\u65f6\u95f4 - \u51cf\u5c11\u626b\u63cf\u9891\u7387 - \u68c0\u67e5\u7f51\u7edc\u7a33\u5b9a\u6027 - \u786e\u8ba4\u8bbe\u5907\u8d1f\u8f7d\u60c5\u51b5","title":"3. \u901a\u4fe1\u8d85\u65f6"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#4","text":"\u95ee\u9898\uff1a\u6570\u636e\u663e\u793a\u683c\u5f0f\u4e0d\u6b63\u786e \u89e3\u51b3\u65b9\u6848\uff1a - \u68c0\u67e5\u5b57\u8282\u5e8f\u8bbe\u7f6e\uff08\u5927\u7aef/\u5c0f\u7aef\uff09 - \u786e\u8ba4\u6570\u636e\u7c7b\u578b\uff08\u6574\u6570/\u6d6e\u70b9\uff09 - \u8c03\u6574\u6570\u636e\u4f4d\u6570\u8bbe\u7f6e - \u53c2\u8003\u8bbe\u5907\u624b\u518c\u786e\u8ba4\u683c\u5f0f","title":"4. \u6570\u636e\u683c\u5f0f\u9519\u8bef"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#5","text":"\u95ee\u9898\uff1a\u6570\u636e\u6570\u503c\u5f02\u5e38\uff08\u8fc7\u5927\u6216\u8fc7\u5c0f\uff09 \u75c7\u72b6\uff1a - \u6e29\u5ea6\u663e\u793a\u51e0\u5343\u5ea6\u6216\u8d1f\u503c - \u538b\u529b\u663e\u793a\u5f02\u5e38\u5927\u7684\u6570\u503c - \u7535\u5bfc\u7387\u663e\u793a\u4e0d\u5408\u7406\u6570\u503c \u89e3\u51b3\u6b65\u9aa4\uff1a 1. \u67e5\u770bTraffic View\u4e2d\u7684\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e 2. \u5c1d\u8bd5\u4e0d\u540c\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a - Display \u2192 Data Format \u2192 Byte Swap - Display \u2192 Data Format \u2192 Word Swap 3. \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u7ec4\u5408 4. \u9a8c\u8bc1\u591a\u4e2a\u53c2\u6570\u786e\u4fdd\u8bbe\u7f6e\u6b63\u786e \u5b9e\u4f8b\uff1a \u539f\u59cb\u6570\u636e\uff1aCD CC 0C 42 - \u9ed8\u8ba4(ABCD)\uff1a\u5f02\u5e38\u503c - Byte swap(BADC)\uff1a\u5f02\u5e38\u503c - Word swap(CDAB)\uff1a\u5f02\u5e38\u503c - Byte+Word(DCBA)\uff1a35.2\u00b0C \u2713\u6b63\u786e","title":"5. \u5b57\u8282\u5e8f\u95ee\u9898\u8bca\u65ad"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_26","text":"","title":"\u9ad8\u7ea7\u529f\u80fd"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1_1","text":"Tools \u2192 Scripting \u652f\u6301VB\u811a\u672c\u81ea\u52a8\u5316\uff1a - \u81ea\u52a8\u8fde\u63a5\u8bbe\u5907 - \u6279\u91cf\u6570\u636e\u5904\u7406 - \u6761\u4ef6\u89e6\u53d1\u64cd\u4f5c - \u62a5\u544a\u751f\u6210","title":"1. \u811a\u672c\u81ea\u52a8\u5316"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2_1","text":"File \u2192 Export Data \u652f\u6301\u591a\u79cd\u683c\u5f0f\uff1a - CSV\u6587\u4ef6 - Excel\u6587\u4ef6 - XML\u683c\u5f0f - \u81ea\u5b9a\u4e49\u683c\u5f0f","title":"2. \u6570\u636e\u5bfc\u51fa"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3_1","text":"\u53ef\u540c\u65f6\u76d1\u63a7\u591a\u4e2a\u8bbe\u5907\uff1a 1. File \u2192 New Document 2. \u914d\u7f6e\u4e0d\u540c\u8bbe\u5907\u53c2\u6570 3. Window \u2192 Tile \u5e73\u94fa\u663e\u793a 4. \u5b9e\u73b0\u591a\u8bbe\u5907\u96c6\u4e2d\u76d1\u63a7","title":"3. \u591a\u8bbe\u5907\u76d1\u63a7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#4_1","text":"View \u2192 Trend View \u529f\u80fd\u7279\u6027\uff1a - \u5b9e\u65f6\u8d8b\u52bf\u56fe\u8868 - \u5386\u53f2\u6570\u636e\u56de\u653e - \u6570\u636e\u7edf\u8ba1\u5206\u6790 - \u5f02\u5e38\u70b9\u6807\u8bb0","title":"4. \u8d8b\u52bf\u5206\u6790"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_27","text":"","title":"\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u5b9e\u6218"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_28","text":"# \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u76d1\u63a7\u914d\u7f6e\u793a\u4f8b \u8bbe\u5907\u4fe1\u606f : \u8bbe\u5907\u578b\u53f7 : \u6c34\u5904\u7406\u673a+\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907 \u901a\u4fe1\u65b9\u5f0f : Modbus RTU/TCP \u6ce2\u7279\u7387 : 9600 \u4ece\u7ad9\u5730\u5740 : 1 \u76d1\u63a7\u53c2\u6570 : \u6e29\u5ea6\u76d1\u63a7 : \u5730\u5740 : 0x0017 \u5355\u4f4d : \u00b0C \u544a\u8b66 : 35-40\u00b0C \u7535\u5bfc\u7387\u76d1\u63a7 : \u5730\u5740 : 0x0018 \u5355\u4f4d : mS/cm \u544a\u8b66 : 13.0-15.0 \u538b\u529b\u76d1\u63a7 : \u4f9b\u6db2\u4e00 : 0x0019 \u4f9b\u6db2\u4e8c : 0x001A \u5355\u4f4d : MPa \u544a\u8b66 : 0.1-0.5 \u6db2\u4f4d\u76d1\u63a7 : \u50a8\u6db2 : 0x001B \u914d\u6db2 : 0x001C \u5355\u4f4d : % \u544a\u8b66 : 10-90% PH\u503c\u76d1\u63a7 : \u5730\u5740 : 0x001D \u5355\u4f4d : pH \u544a\u8b66 : 6.5-7.5 \u626b\u63cf\u8bbe\u7f6e : \u6b63\u5e38\u626b\u63cf : 1000ms \u5feb\u901f\u626b\u63cf : 500ms \u6162\u901f\u626b\u63cf : 2000ms \u901a\u4fe1\u534f\u8bae\u5206\u6790 : \u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e : - \u4f7f\u7528Modbus TCP\u534f\u8bae - \u529f\u80fd\u780103 (Read Holding Registers) - \u8d77\u59cb\u5730\u5740 : 0x0017 (\u6e29\u5ea6) - \u6570\u636e\u683c\u5f0f : 32\u4f4d\u6d6e\u70b9\u6570 (IEEE 754) - \u5b57\u8282\u5e8f\u5206\u6790 : * \u539f\u59cb\u6570\u636e : CD CC 0C 42 * \u9700\u8981DCBA\u5b57\u8282\u5e8f (Byte+Word Swap) * \u89e3\u6790\u7ed3\u679c : 35.2\u00b0C - \u6570\u636e\u793a\u4f8b\u9a8c\u8bc1 : * CD CC 0C 42 (\u5341\u516d\u8fdb\u5236) * \u2192 0x420CCCCD (\u91cd\u6392\u540e) * \u2192 35.2000008 (IEEE 754\u6d6e\u70b9\u6570) * \u2192 35.2\u00b0C (\u663e\u793a\u503c) \u914d\u7f6e\u8981\u70b9 : - ModbusPoll\u8bbe\u7f6e : Display \u2192 Data Format - \u52fe\u9009 : Byte Swap + Word Swap - \u6570\u636e\u7c7b\u578b : 32-bit Float - \u9a8c\u8bc1\u65b9\u6cd5 : \u89c2\u5bdf\u6e29\u5ea6\u662f\u5426\u5728\u5408\u7406\u8303\u56f4(30-50\u00b0C)","title":"\u5b8c\u6574\u76d1\u63a7\u914d\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_29","text":"' \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u72b6\u6001\u68c0\u67e5\u811a\u672c Sub CheckWaterTreatmentStatus () Dim temp , pressure1 , pressure2 , conductivity , ph ' \u8bfb\u53d6\u6e29\u5ea6 (\u5730\u574023) temp = mbPoll . ReadFloat ( 1 , 3 , 23 ) ' \u8bfb\u53d6\u538b\u529b (\u5730\u574025,26) pressure1 = mbPoll . ReadFloat ( 1 , 3 , 25 ) pressure2 = mbPoll . ReadFloat ( 1 , 3 , 26 ) ' \u8bfb\u53d6\u7535\u5bfc\u7387 (\u5730\u574024) conductivity = mbPoll . ReadFloat ( 1 , 3 , 24 ) ' \u8bfb\u53d6PH\u503c (\u5730\u574029) ph = mbPoll . ReadFloat ( 1 , 3 , 29 ) ' \u68c0\u67e5\u5f02\u5e38 If temp > 40 Or temp < 35 Then MsgBox \"\u6c34\u6e29\u5f02\u5e38: \" & temp & \"\u00b0C\" End If If pressure1 < 0.1 Or pressure1 > 0.5 Then MsgBox \"\u4f9b\u6db2\u4e00\u538b\u529b\u5f02\u5e38: \" & pressure1 & \"MPa\" End If If conductivity < 13.0 Or conductivity > 15.0 Then MsgBox \"\u7535\u5bfc\u7387\u5f02\u5e38: \" & conductivity & \"mS/cm\" End If If ph < 6.5 Or ph > 7.5 Then MsgBox \"PH\u503c\u5f02\u5e38: \" & ph End If End Sub","title":"\u81ea\u52a8\u5316\u811a\u672c\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_30","text":"","title":"\u6700\u4f73\u5b9e\u8df5\u5efa\u8bae"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#1_2","text":"\u5408\u7406\u8bbe\u7f6e\u626b\u63cf\u9891\u7387\uff0c\u907f\u514d\u8fc7\u5ea6\u8f6e\u8be2 \u4f7f\u7528\u6279\u91cf\u8bfb\u53d6\u51cf\u5c11\u901a\u4fe1\u6b21\u6570 \u5b9a\u671f\u6e05\u7406\u65e5\u5fd7\u6587\u4ef6 \u76d1\u63a7\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5","title":"1. \u6027\u80fd\u4f18\u5316"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#2_2","text":"\u5efa\u7acb\u89c4\u8303\u7684\u53c2\u6570\u547d\u540d\u89c4\u5219 \u5b9a\u671f\u5907\u4efd\u91cd\u8981\u914d\u7f6e \u8bbe\u7f6e\u5408\u7406\u7684\u6570\u636e\u4fdd\u5b58\u5468\u671f \u5b9e\u65bd\u6570\u636e\u5b89\u5168\u63aa\u65bd","title":"2. \u6570\u636e\u7ba1\u7406"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#3_2","text":"\u5b9a\u671f\u68c0\u67e5\u901a\u4fe1\u7ebf\u8def \u66f4\u65b0\u8bbe\u5907\u9a71\u52a8\u7a0b\u5e8f \u5907\u4efd\u5de5\u7a0b\u914d\u7f6e\u6587\u4ef6 \u5efa\u7acb\u6545\u969c\u5904\u7406\u6d41\u7a0b","title":"3. \u7ef4\u62a4\u5efa\u8bae"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_31","text":"","title":"\u9644\u5f55"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#a-modbus","text":"01 - Read Coils (\u8bfb\u53d6\u7ebf\u5708\u72b6\u6001) 02 - Read Discrete Inputs (\u8bfb\u53d6\u79bb\u6563\u8f93\u5165) 03 - Read Holding Registers (\u8bfb\u53d6\u4fdd\u6301\u5bc4\u5b58\u5668) 04 - Read Input Registers (\u8bfb\u53d6\u8f93\u5165\u5bc4\u5b58\u5668) 05 - Write Single Coil (\u5199\u5355\u4e2a\u7ebf\u5708) 06 - Write Single Register (\u5199\u5355\u4e2a\u5bc4\u5b58\u5668) 15 - Write Multiple Coils (\u5199\u591a\u4e2a\u7ebf\u5708) 16 - Write Multiple Registers (\u5199\u591a\u4e2a\u5bc4\u5b58\u5668)","title":"A. Modbus\u529f\u80fd\u7801\u5bf9\u7167\u8868"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#b","text":"1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200","title":"B. \u5e38\u7528\u6ce2\u7279\u7387\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#c","text":"\u57fa\u4e8e\u5b9e\u9645\u901a\u4fe1\u6570\u636e\u7684\u5730\u5740\u6620\u5c04\uff1a \u6e29\u5ea6\uff1a0x0017 (\u5341\u8fdb\u523623) \u7535\u5bfc\u7387\uff1a0x0018 (\u5341\u8fdb\u523624) \u4f9b\u6db2\u4e00\u538b\u529b\uff1a0x0019 (\u5341\u8fdb\u523625) \u4f9b\u6db2\u4e8c\u538b\u529b\uff1a0x001A (\u5341\u8fdb\u523626) \u50a8\u6db2\u6db2\u4f4d\uff1a0x001B (\u5341\u8fdb\u523627) \u914d\u6db2\u6db2\u4f4d\uff1a0x001C (\u5341\u8fdb\u523628) PH\u503c\uff1a0x001D (\u5341\u8fdb\u523629) \u72b6\u6001\u7c7b\uff1a0x0001-0x0010 \u63a7\u5236\u7c7b\uff1a0x0020-0x0030","title":"C. \u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u5e38\u7528\u5730\u5740\u6620\u5c04"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#d","text":"","title":"D. \u5927\u7aef\u5c0f\u7aef\uff08\u5b57\u8282\u5e8f\uff09\u8be6\u89e3"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_32","text":"\u5b57\u8282\u5e8f\uff08Byte Order\uff09\u662f\u6307\u591a\u5b57\u8282\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u4e3b\u8981\u6709\u4e24\u79cd\uff1a \u5927\u7aef\u5e8f\uff08Big Endian\uff09 \uff1a - \u9ad8\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u7b26\u5408\u4eba\u7c7b\u9605\u8bfb\u4e60\u60ef - \u7f51\u7edc\u4f20\u8f93\u6807\u51c6\u5b57\u8282\u5e8f \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09 \uff1a - \u4f4e\u4f4d\u5b57\u8282\u5b58\u50a8\u5728\u4f4e\u5730\u5740 - \u591a\u6570x86\u5904\u7406\u5668\u91c7\u7528 - Intel\u67b6\u6784\u9ed8\u8ba4\u5b57\u8282\u5e8f","title":"\u4ec0\u4e48\u662f\u5927\u7aef\u5c0f\u7aef\uff1f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_33","text":"\u4ee532\u4f4d\u6d6e\u70b9\u6570 35.2\u00b0C \u4e3a\u4f8b\uff1a IEEE 754 \u6d6e\u70b9\u6570\u8868\u793a\uff1a0x420C_CCCD \u5927\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282) 0x1001 0x0C 0x1002 0xCC 0x1003 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) \u5c0f\u7aef\u5e8f\u5b58\u50a8\uff1a \u5730\u5740 \u5185\u5bb9 0x1000 0xCD (\u6700\u4f4e\u4f4d\u5b57\u8282) 0x1001 0xCC 0x1002 0x0C 0x1003 0x42 (\u6700\u9ad8\u4f4d\u5b57\u8282)","title":"\u5b9e\u9645\u4f8b\u5b50\u8bf4\u660e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_34","text":"\u65b9\u6cd51\uff1a\u901a\u8fc7\u901a\u4fe1\u6570\u636e\u5206\u6790 \u4ececommdata.txt\u770b\u5230\u7684\u6570\u636e\uff1aCD CC 0C 42 1. \u5c06\u8fd94\u4e2a\u5b57\u8282\u6309\u4e0d\u540c\u5b57\u8282\u5e8f\u89e3\u91ca\uff1a - \u5927\u7aef\u5e8f\uff1a0x42_0C_CCCD = 35.2 (\u5408\u7406\u7684\u6e29\u5ea6\u503c) - \u5c0f\u7aef\u5e8f\uff1a0xCDCC_0C42 = \u975e\u5e38\u5927\u7684\u6570\u503c(\u4e0d\u5408\u7406) 2. \u7ed3\u8bba\uff1a\u8bbe\u5907\u4f7f\u7528\u5927\u7aef\u5e8f \u65b9\u6cd52\uff1a\u67e5\u770b\u8bbe\u5907\u624b\u518c \u8bbe\u5907\u6280\u672f\u6587\u6863\u901a\u5e38\u4f1a\u8bf4\u660e\uff1a - \"\u7f51\u7edc\u5b57\u8282\u5e8f\" = \u5927\u7aef\u5e8f - \"\u4e3b\u673a\u5b57\u8282\u5e8f\" = \u901a\u5e38\u662f\u5c0f\u7aef\u5e8f - \"Intel\u683c\u5f0f\" = \u5c0f\u7aef\u5e8f - \"Motorola\u683c\u5f0f\" = \u5927\u7aef\u5e8f \u65b9\u6cd53\uff1aModbusPoll\u4e2d\u7684\u9a8c\u8bc1 \u5728ModbusPoll\u4e2d\u6d4b\u8bd5\uff1a 1. Setup \u2192 Data Format \u2192 Byte Swap 2. \u89c2\u5bdf\u6570\u636e\u662f\u5426\u5408\u7406\uff1a - \u6e29\u5ea6\u5e94\u8be5\u57280-100\u00b0C\u8303\u56f4 - \u538b\u529b\u5e94\u8be5\u57280-10MPa\u8303\u56f4 - \u7535\u5bfc\u7387\u5e94\u8be5\u572810-20mS/cm\u8303\u56f4 3. \u9009\u62e9\u663e\u793a\u6b63\u786e\u6570\u503c\u7684\u5b57\u8282\u5e8f","title":"\u5982\u4f55\u786e\u5b9a\u8bbe\u5907\u5b57\u8282\u5e8f\uff1f"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#modbuspoll","text":"\u914d\u7f6e\u8def\u5f84 \uff1aDisplay \u2192 Data Format \u9009\u9879\u8bf4\u660e \uff1a \u25a1 Byte swap - \u4ea4\u6362\u5b57\u8282\u5e8f \u25a1 Word swap - \u4ea4\u6362\u5b57\u987a\u5e8f \u25a1 Dword swap - \u4ea4\u6362\u53cc\u5b57\u987a\u5e8f \u7ec4\u5408\u8bbe\u7f6e\u5bf9\u5e94\u4e0d\u540c\u683c\u5f0f\uff1a - \u65e0\u52fe\u9009\uff1aABCD (\u5927\u7aef\u5e8f) - Byte swap\uff1aBADC - Word swap\uff1aCDAB - Byte+Word swap\uff1aDCBA (\u5c0f\u7aef\u5e8f)","title":"ModbusPoll\u5b57\u8282\u5e8f\u8bbe\u7f6e"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_35","text":"\u6848\u4f8b1\uff1a\u6e29\u5ea6\u8bfb\u53d6\u5f02\u5e38 \u95ee\u9898\uff1a\u8bfb\u53d6\u6e29\u5ea6\u663e\u793a\u4e3a\u51e0\u5343\u5ea6 \u539f\u56e0\uff1a\u5b57\u8282\u5e8f\u8bbe\u7f6e\u9519\u8bef \u89e3\u51b3\uff1a\u52fe\u9009\"Byte swap\"\u8c03\u6574\u5b57\u8282\u5e8f \u6848\u4f8b2\uff1a\u538b\u529b\u503c\u663e\u793a\u5f02\u5e38 \u8bfb\u53d6\u6570\u636e\uff1a12 34 56 78 \u5927\u7aef\u5e8f\u89e3\u91ca\uff1a0x12345678 = 305,419,896 (\u5f02\u5e38) \u5c0f\u7aef\u5e8f\u89e3\u91ca\uff1a0x78563412 = 2,018,915,346 (\u5f02\u5e38) \u9700\u8981Word swap\uff1a0x34127856 = 873,756,758 (\u4ecd\u5f02\u5e38) \u6b63\u786e\u8bbe\u7f6e\uff1aByte+Word swap = 0x78563412\u8f6c\u6362\u4e3a\u6d6e\u70b9\u6570","title":"\u5b9e\u9645\u5e94\u7528\u793a\u4f8b"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_36","text":"\u6b65\u9aa41\uff1a\u8bb0\u5f55\u539f\u59cb\u6570\u636e \u4f7f\u7528Traffic View\u67e5\u770b\u539f\u59cb\u5341\u516d\u8fdb\u5236\u6570\u636e \u4f8b\u5982\uff1a42 0C CC CD \u6b65\u9aa42\uff1a\u624b\u52a8\u8ba1\u7b97\u9a8c\u8bc1 \u4f7f\u7528\u5728\u7ebfIEEE 754\u8f6c\u6362\u5668\uff1a - \u8f93\u5165\uff1a420CCCCD - \u8f93\u51fa\uff1a35.2000008... - \u9a8c\u8bc1\u662f\u5426\u4e3a\u5408\u7406\u6570\u503c \u6b65\u9aa43\uff1aModbusPoll\u4e2d\u6d4b\u8bd5 \u4f9d\u6b21\u5c1d\u8bd5\u56db\u79cd\u5b57\u8282\u5e8f\u7ec4\u5408\uff1a 1. ABCD - \u539f\u59cb\u987a\u5e8f 2. BADC - Byte swap 3. CDAB - Word swap 4. DCBA - Byte+Word swap \u9009\u62e9\u663e\u793a\u5408\u7406\u6570\u503c\u7684\u8bbe\u7f6e","title":"\u8c03\u8bd5\u6280\u5de7"},{"location":"node-reds/ModbusPoll-v7.0.0%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/#_37","text":"\u5927\u7aef\u5e8f\u8bbe\u5907\uff1a - \u65bd\u8010\u5fb7PLC - \u897f\u95e8\u5b50S7\u7cfb\u5217 - ABB\u8bbe\u5907 - \u5927\u591a\u6570\u7f51\u7edc\u8bbe\u5907 \u5c0f\u7aef\u5e8f\u8bbe\u5907\uff1a - \u4e09\u83f1PLC - \u6b27\u59c6\u9f99PLC - PC-based\u63a7\u5236\u5668 - Intel\u67b6\u6784\u8bbe\u5907 \u672c\u6559\u7a0b\u57fa\u4e8eModbusPoll v7.0.0\u7248\u672c\u7f16\u5199\uff0c\u9002\u7528\u4e8e\u6c34\u5904\u7406\u673a\u4e0e\u96c6\u4e2d\u4f9b\u6db2\u8bbe\u5907\u53c2\u6570\u76d1\u63a7\u7cfb\u7edf\u3002\u5982\u6709\u95ee\u9898\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u8054\u7cfb\u6280\u672f\u652f\u6301\u3002","title":"\u5e38\u89c1\u8bbe\u5907\u5b57\u8282\u5e8f"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/","text":"node-red\u5982\u4f55\u8fde\u63a5modbus slave\u8bbe\u5907 \u00b6 \u8bf4\u660e \u00b6 \u6211\u60f3\u5728node-red\u4e2d\u7528\u6d41\u7a0b\u56fe\u4e2d\u914d\u7f6emodbus master\u4e3b\u8bbe\u5907\u901a\u8fc7mocbus tcp rtu\u53bb\u8054\u63a5modbus slave\u8bbe\u5907\uff0c\u5982\u4f55\u914d\u7f6e\u5462\uff1f \u6b65\u9aa4\u4e00\uff1a\u5b89\u88c5Modbus\u76f8\u5173\u8282\u70b9 \u00b6 \u6253\u5f00Node-RED\u7f16\u8f91\u5668\uff08\u6d4f\u89c8\u5668\u8bbf\u95ee http://<\u4f60\u7684\u8bbe\u5907IP>:1880\uff09\u3002 \u70b9\u51fb\u53f3\u4e0a\u89d2\u83dc\u5355\uff0c\u9009\u62e9\u201cManage palette\uff08\u7ba1\u7406\u8c03\u8272\u677f\uff09\u201d\u3002 \u5728\u201cInstall\u201d\u6807\u7b7e\u9875\u4e2d\u641c\u7d22 node-red-contrib-modbus \uff0c\u70b9\u51fb\u201cInstall\u201d\u5b89\u88c5\u3002 \u6b65\u9aa4\u4e8c\uff1a\u6dfb\u52a0Modbus TCP/RTU\u8282\u70b9 \u00b6 \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5de6\u4fa7\u4f1a\u51fa\u73b0\u201cmodbus\u201d\u7c7b\u522b\u3002 \u62d6\u62fd modbus-read \u6216 modbus-write \u8282\u70b9\u5230\u6d41\u7a0b\u56fe\u4e2d\u3002 \u53cc\u51fb\u8282\u70b9\uff0c\u70b9\u51fb\u201cServer\u201d\u53f3\u4fa7\u7684\u94c5\u7b14\u56fe\u6807\uff0c\u65b0\u589eModbus\u670d\u52a1\u5668\u914d\u7f6e\u3002 \u6b65\u9aa4\u4e09\uff1a\u914d\u7f6eModbus\u4e3b\u8bbe\u5907\uff08Master\uff09 \u00b6 \u8fde\u63a5\u7c7b\u578b \uff1a \u5982\u679c\u662fTCP\uff0c\u9009\u62e9\u201cTCP\u201d\uff0c\u586b\u5199Slave\u8bbe\u5907\u7684IP\u548c\u7aef\u53e3\uff08\u901a\u5e38\u4e3a502\uff09\u3002 \u5982\u679c\u662fRTU\uff08\u4e32\u53e3\uff09\uff0c\u9009\u62e9\u201cSerial\u201d\uff0c\u586b\u5199\u4e32\u53e3\u8bbe\u5907\uff08\u5982 /dev/ttyUSB0 \uff09\u3001\u6ce2\u7279\u7387\u3001\u6570\u636e\u4f4d\u3001\u6821\u9a8c\u7b49\u53c2\u6570\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807Slave\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff09\u3002 \u5176\u4ed6\u53c2\u6570\u6309\u5b9e\u9645\u9700\u6c42\u8bbe\u7f6e\u3002 \u6b65\u9aa4\u56db\uff1a\u914d\u7f6e\u8bfb\u5199\u64cd\u4f5c \u00b6 modbus-read \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\uff08\u598203\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff09\u3001\u8d77\u59cb\u5730\u5740\u3001\u957f\u5ea6\u3001\u8f6e\u8be2\u95f4\u9694\u7b49\u3002 modbus-write \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\u3001\u76ee\u6807\u5730\u5740\u3001\u5199\u5165\u6570\u636e\u7b49\u3002 Modbus-Read\u8282\u70b9\u53c2\u6570\u586b\u5199\u8bf4\u660e \u00b6 \u540d\u79f0 \uff1a\u81ea\u5b9a\u4e49\uff0c\u4fbf\u4e8e\u8bc6\u522b\u3002 \u4e3b\u9898\uff08Topic\uff09 \uff1a\u53ef\u7559\u7a7a\u6216\u81ea\u5b9a\u4e49\uff08\u5982\u7528\u4e8e\u6d88\u606f\u5206\u6d41\u65f6\u586b\u5199\uff09\uff0c\u4e00\u822c\u9ed8\u8ba4\u5373\u53ef\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807 Modbus slave \u8bbe\u5907\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff0c\u5177\u4f53\u770b\u4f60\u7684\u8bbe\u5907\u8bbe\u7f6e\uff09\u3002 FC\uff08\u529f\u80fd\u7801\uff09 \uff1a\u9009\u62e9\u4f60\u8981\u6267\u884c\u7684Modbus\u529f\u80fd\u7801\uff0c\u5e38\u7528\u5982\u4e0b\uff1a 1\uff1a\u8bfb\u7ebf\u5708\uff08Coil Status\uff09 2\uff1a\u8bfb\u79bb\u6563\u8f93\u5165\uff08Input Status\uff09 3\uff1a\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff08Holding Registers\uff0c\u6700\u5e38\u7528\uff09 4\uff1a\u8bfb\u8f93\u5165\u5bc4\u5b58\u5668\uff08Input Registers\uff09 Address \uff1a\u8981\u8bfb\u53d6\u7684\u5bc4\u5b58\u5668\u6216\u7ebf\u5708\u7684\u8d77\u59cb\u5730\u5740\uff08\u901a\u5e38\u4ece0\u62161\u5f00\u59cb\uff0c\u5177\u4f53\u770b\u8bbe\u5907\u624b\u518c\uff09\u3002 Quantity \uff1a\u8bfb\u53d6\u7684\u6570\u91cf\uff08\u5982\u8981\u8bfb2\u4e2a\u5bc4\u5b58\u5668\u5c31\u586b2\uff09\u3002 Poll Rate \uff1a\u8f6e\u8be2\u5468\u671f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\uff08\u59821000\u8868\u793a\u6bcf\u79d2\u8bfb\u53d6\u4e00\u6b21\uff09\u3002 \u4e3e\u4f8b\uff08\u8bfb\u53d6slave\u5730\u5740\u4e3a1\uff0c\u4fdd\u6301\u5bc4\u5b58\u5668\uff0c\u8d77\u59cb\u5730\u57400\uff0c\u6570\u91cf2\uff0c\u6bcf\u79d2\u8f6e\u8be2\uff09\uff1a - Unit-Id\uff1a1 - FC\uff1a3 - Address\uff1a0 - Quantity\uff1a2 - Poll Rate\uff1a1000 \u6b65\u9aa4\u4e94\uff1a\u90e8\u7f72\u4e0e\u8c03\u8bd5 \u00b6 \u8fde\u63a5\u8282\u70b9\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u201c\u90e8\u7f72\u201d\u3002 \u67e5\u770bdebug\u9762\u677f\uff0c\u786e\u8ba4\u6570\u636e\u662f\u5426\u6b63\u5e38\u6536\u53d1\u3002 \u53c2\u8003\u793a\u4f8b \u00b6 [modbus-read] \u2192 [debug] \u5e38\u89c1\u95ee\u9898 \u00b6 \u786e\u8ba4\u7269\u7406\u8fde\u63a5\u548c\u4e32\u53e3\u6743\u9650\u3002 TCP\u6a21\u5f0f\u4e0b\u9632\u706b\u5899\u9700\u653e\u884c502\u7aef\u53e3\u3002 RTU\u6a21\u5f0f\u4e0b\u9700\u6b63\u786e\u914d\u7f6e\u4e32\u53e3\u53c2\u6570\u3002 \u5982\u9700\u66f4\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf4\u660e\uff0c\u53ef\u53c2\u8003 node-red-contrib-modbus\u5b98\u65b9\u6587\u6863","title":"node-red\u5982\u4f55\u8fde\u63a5modbus _slave\u8bbe\u5907"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#node-redmodbus-slave","text":"","title":"node-red\u5982\u4f55\u8fde\u63a5modbus slave\u8bbe\u5907"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_1","text":"\u6211\u60f3\u5728node-red\u4e2d\u7528\u6d41\u7a0b\u56fe\u4e2d\u914d\u7f6emodbus master\u4e3b\u8bbe\u5907\u901a\u8fc7mocbus tcp rtu\u53bb\u8054\u63a5modbus slave\u8bbe\u5907\uff0c\u5982\u4f55\u914d\u7f6e\u5462\uff1f","title":"\u8bf4\u660e"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus","text":"\u6253\u5f00Node-RED\u7f16\u8f91\u5668\uff08\u6d4f\u89c8\u5668\u8bbf\u95ee http://<\u4f60\u7684\u8bbe\u5907IP>:1880\uff09\u3002 \u70b9\u51fb\u53f3\u4e0a\u89d2\u83dc\u5355\uff0c\u9009\u62e9\u201cManage palette\uff08\u7ba1\u7406\u8c03\u8272\u677f\uff09\u201d\u3002 \u5728\u201cInstall\u201d\u6807\u7b7e\u9875\u4e2d\u641c\u7d22 node-red-contrib-modbus \uff0c\u70b9\u51fb\u201cInstall\u201d\u5b89\u88c5\u3002","title":"\u6b65\u9aa4\u4e00\uff1a\u5b89\u88c5Modbus\u76f8\u5173\u8282\u70b9"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus-tcprtu","text":"\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u5de6\u4fa7\u4f1a\u51fa\u73b0\u201cmodbus\u201d\u7c7b\u522b\u3002 \u62d6\u62fd modbus-read \u6216 modbus-write \u8282\u70b9\u5230\u6d41\u7a0b\u56fe\u4e2d\u3002 \u53cc\u51fb\u8282\u70b9\uff0c\u70b9\u51fb\u201cServer\u201d\u53f3\u4fa7\u7684\u94c5\u7b14\u56fe\u6807\uff0c\u65b0\u589eModbus\u670d\u52a1\u5668\u914d\u7f6e\u3002","title":"\u6b65\u9aa4\u4e8c\uff1a\u6dfb\u52a0Modbus TCP/RTU\u8282\u70b9"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbusmaster","text":"\u8fde\u63a5\u7c7b\u578b \uff1a \u5982\u679c\u662fTCP\uff0c\u9009\u62e9\u201cTCP\u201d\uff0c\u586b\u5199Slave\u8bbe\u5907\u7684IP\u548c\u7aef\u53e3\uff08\u901a\u5e38\u4e3a502\uff09\u3002 \u5982\u679c\u662fRTU\uff08\u4e32\u53e3\uff09\uff0c\u9009\u62e9\u201cSerial\u201d\uff0c\u586b\u5199\u4e32\u53e3\u8bbe\u5907\uff08\u5982 /dev/ttyUSB0 \uff09\u3001\u6ce2\u7279\u7387\u3001\u6570\u636e\u4f4d\u3001\u6821\u9a8c\u7b49\u53c2\u6570\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807Slave\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff09\u3002 \u5176\u4ed6\u53c2\u6570\u6309\u5b9e\u9645\u9700\u6c42\u8bbe\u7f6e\u3002","title":"\u6b65\u9aa4\u4e09\uff1a\u914d\u7f6eModbus\u4e3b\u8bbe\u5907\uff08Master\uff09"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_2","text":"modbus-read \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\uff08\u598203\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff09\u3001\u8d77\u59cb\u5730\u5740\u3001\u957f\u5ea6\u3001\u8f6e\u8be2\u95f4\u9694\u7b49\u3002 modbus-write \u8282\u70b9\uff1a\u8bbe\u7f6e\u529f\u80fd\u7801\u3001\u76ee\u6807\u5730\u5740\u3001\u5199\u5165\u6570\u636e\u7b49\u3002","title":"\u6b65\u9aa4\u56db\uff1a\u914d\u7f6e\u8bfb\u5199\u64cd\u4f5c"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#modbus-read","text":"\u540d\u79f0 \uff1a\u81ea\u5b9a\u4e49\uff0c\u4fbf\u4e8e\u8bc6\u522b\u3002 \u4e3b\u9898\uff08Topic\uff09 \uff1a\u53ef\u7559\u7a7a\u6216\u81ea\u5b9a\u4e49\uff08\u5982\u7528\u4e8e\u6d88\u606f\u5206\u6d41\u65f6\u586b\u5199\uff09\uff0c\u4e00\u822c\u9ed8\u8ba4\u5373\u53ef\u3002 Unit-Id \uff1a\u586b\u5199\u76ee\u6807 Modbus slave \u8bbe\u5907\u7684\u5730\u5740\uff08\u901a\u5e38\u4e3a1\uff0c\u5177\u4f53\u770b\u4f60\u7684\u8bbe\u5907\u8bbe\u7f6e\uff09\u3002 FC\uff08\u529f\u80fd\u7801\uff09 \uff1a\u9009\u62e9\u4f60\u8981\u6267\u884c\u7684Modbus\u529f\u80fd\u7801\uff0c\u5e38\u7528\u5982\u4e0b\uff1a 1\uff1a\u8bfb\u7ebf\u5708\uff08Coil Status\uff09 2\uff1a\u8bfb\u79bb\u6563\u8f93\u5165\uff08Input Status\uff09 3\uff1a\u8bfb\u4fdd\u6301\u5bc4\u5b58\u5668\uff08Holding Registers\uff0c\u6700\u5e38\u7528\uff09 4\uff1a\u8bfb\u8f93\u5165\u5bc4\u5b58\u5668\uff08Input Registers\uff09 Address \uff1a\u8981\u8bfb\u53d6\u7684\u5bc4\u5b58\u5668\u6216\u7ebf\u5708\u7684\u8d77\u59cb\u5730\u5740\uff08\u901a\u5e38\u4ece0\u62161\u5f00\u59cb\uff0c\u5177\u4f53\u770b\u8bbe\u5907\u624b\u518c\uff09\u3002 Quantity \uff1a\u8bfb\u53d6\u7684\u6570\u91cf\uff08\u5982\u8981\u8bfb2\u4e2a\u5bc4\u5b58\u5668\u5c31\u586b2\uff09\u3002 Poll Rate \uff1a\u8f6e\u8be2\u5468\u671f\uff0c\u5355\u4f4d\u4e3a\u6beb\u79d2\uff08\u59821000\u8868\u793a\u6bcf\u79d2\u8bfb\u53d6\u4e00\u6b21\uff09\u3002 \u4e3e\u4f8b\uff08\u8bfb\u53d6slave\u5730\u5740\u4e3a1\uff0c\u4fdd\u6301\u5bc4\u5b58\u5668\uff0c\u8d77\u59cb\u5730\u57400\uff0c\u6570\u91cf2\uff0c\u6bcf\u79d2\u8f6e\u8be2\uff09\uff1a - Unit-Id\uff1a1 - FC\uff1a3 - Address\uff1a0 - Quantity\uff1a2 - Poll Rate\uff1a1000","title":"Modbus-Read\u8282\u70b9\u53c2\u6570\u586b\u5199\u8bf4\u660e"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_3","text":"\u8fde\u63a5\u8282\u70b9\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u201c\u90e8\u7f72\u201d\u3002 \u67e5\u770bdebug\u9762\u677f\uff0c\u786e\u8ba4\u6570\u636e\u662f\u5426\u6b63\u5e38\u6536\u53d1\u3002","title":"\u6b65\u9aa4\u4e94\uff1a\u90e8\u7f72\u4e0e\u8c03\u8bd5"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_4","text":"[modbus-read] \u2192 [debug]","title":"\u53c2\u8003\u793a\u4f8b"},{"location":"node-reds/node-red%E5%A6%82%E4%BD%95%E8%BF%9E%E6%8E%A5modbus%20_slave%E8%AE%BE%E5%A4%87/#_5","text":"\u786e\u8ba4\u7269\u7406\u8fde\u63a5\u548c\u4e32\u53e3\u6743\u9650\u3002 TCP\u6a21\u5f0f\u4e0b\u9632\u706b\u5899\u9700\u653e\u884c502\u7aef\u53e3\u3002 RTU\u6a21\u5f0f\u4e0b\u9700\u6b63\u786e\u914d\u7f6e\u4e32\u53e3\u53c2\u6570\u3002 \u5982\u9700\u66f4\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf4\u660e\uff0c\u53ef\u53c2\u8003 node-red-contrib-modbus\u5b98\u65b9\u6587\u6863","title":"\u5e38\u89c1\u95ee\u9898"},{"location":"node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/","text":"Node-RED \u5e38\u7528\u7ec4\u4ef6\u5217\u8868 \u00b6 \u4ee5\u4e0b\u662f\u5e38\u7528\u7684 Node-RED \u7ec4\u4ef6\u53ca\u5176\u7248\u672c\uff0c\u5efa\u8bae\u6839\u636e\u5b9e\u9645\u9700\u6c42\u9009\u62e9\u5b89\u88c5\u3002 \u7ec4\u4ef6\u540d\u79f0 \u7248\u672c \u8bf4\u660e @node-red-contrib-themes/theme-collection 4.0.11 \u4e3b\u9898\u96c6\u5408 node-red 4.0.9 Node-RED \u4e3b\u7a0b\u5e8f node-red-contrib-aedes 0.6.0 MQTT Broker \u8282\u70b9 node-red-contrib-bigtimer 2.8.6 \u5f3a\u5927\u7684\u5b9a\u65f6\u5668\u8282\u70b9 node-red-contrib-cast 0.2.17 Google Cast \u652f\u6301 node-red-contrib-counter 0.1.6 \u8ba1\u6570\u5668\u8282\u70b9 node-red-contrib-cron-plus 2.1.0 \u9ad8\u7ea7\u5b9a\u65f6\u4efb\u52a1\u8282\u70b9 node-red-contrib-home-assistant-websocket 0.77.1 Home Assistant \u96c6\u6210 node-red-contrib-influxdb 0.7.0 InfluxDB \u6570\u636e\u5e93\u652f\u6301 node-red-contrib-interval-length 0.0.6 \u95f4\u9694\u957f\u5ea6\u8ba1\u7b97 node-red-contrib-lvin-crc16 1.0.2 CRC16 \u6821\u9a8c node-red-contrib-md5 1.0.4 MD5 \u52a0\u5bc6 node-red-contrib-modbus 5.43.0 Modbus \u534f\u8bae\u652f\u6301 node-red-contrib-moment 5.0.0 \u65f6\u95f4\u5904\u7406 node-red-contrib-mqtt-broker 0.2.9 MQTT Broker \u8282\u70b9 node-red-contrib-persistent-fsm 1.2.1 \u6709\u72b6\u6001\u673a\u8282\u70b9 node-red-contrib-sunevents 3.1.1 \u65e5\u51fa\u65e5\u843d\u4e8b\u4ef6 node-red-contrib-time-range-switch 1.2.0 \u65f6\u95f4\u8303\u56f4\u5f00\u5173 node-red-dashboard 3.6.5 \u4eea\u8868\u76d8\u7ec4\u4ef6 node-red-node-base64 1.0.0 Base64 \u7f16\u7801\u89e3\u7801 node-red-node-email 3.0.3 \u90ae\u4ef6\u53d1\u9001\u8282\u70b9 node-red-node-feedparser 0.3.0 RSS Feed \u89e3\u6790 node-red-node-ping 0.3.3 Ping \u8282\u70b9 node-red-node-random 0.4.1 \u968f\u673a\u6570\u8282\u70b9 node-red-node-serialport 2.0.3 \u4e32\u53e3\u8282\u70b9 node-red-node-smooth 0.1.2 \u5e73\u6ed1\u6570\u636e\u8282\u70b9 node-red-node-suncalc 1.2.0 \u592a\u9633\u8ba1\u7b97\u8282\u70b9 node-red-node-twitter 1.2.0 Twitter \u96c6\u6210 \u5982\u9700\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\uff0c\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u793e\u533a\u6559\u7a0b\u3002","title":"node-red\u5e38\u7528\u7ec4\u4ef6\u5217\u8868"},{"location":"node-reds/node-red%E5%B8%B8%E7%94%A8%E7%BB%84%E4%BB%B6%E5%88%97%E8%A1%A8/#node-red","text":"\u4ee5\u4e0b\u662f\u5e38\u7528\u7684 Node-RED \u7ec4\u4ef6\u53ca\u5176\u7248\u672c\uff0c\u5efa\u8bae\u6839\u636e\u5b9e\u9645\u9700\u6c42\u9009\u62e9\u5b89\u88c5\u3002 \u7ec4\u4ef6\u540d\u79f0 \u7248\u672c \u8bf4\u660e @node-red-contrib-themes/theme-collection 4.0.11 \u4e3b\u9898\u96c6\u5408 node-red 4.0.9 Node-RED \u4e3b\u7a0b\u5e8f node-red-contrib-aedes 0.6.0 MQTT Broker \u8282\u70b9 node-red-contrib-bigtimer 2.8.6 \u5f3a\u5927\u7684\u5b9a\u65f6\u5668\u8282\u70b9 node-red-contrib-cast 0.2.17 Google Cast \u652f\u6301 node-red-contrib-counter 0.1.6 \u8ba1\u6570\u5668\u8282\u70b9 node-red-contrib-cron-plus 2.1.0 \u9ad8\u7ea7\u5b9a\u65f6\u4efb\u52a1\u8282\u70b9 node-red-contrib-home-assistant-websocket 0.77.1 Home Assistant \u96c6\u6210 node-red-contrib-influxdb 0.7.0 InfluxDB \u6570\u636e\u5e93\u652f\u6301 node-red-contrib-interval-length 0.0.6 \u95f4\u9694\u957f\u5ea6\u8ba1\u7b97 node-red-contrib-lvin-crc16 1.0.2 CRC16 \u6821\u9a8c node-red-contrib-md5 1.0.4 MD5 \u52a0\u5bc6 node-red-contrib-modbus 5.43.0 Modbus \u534f\u8bae\u652f\u6301 node-red-contrib-moment 5.0.0 \u65f6\u95f4\u5904\u7406 node-red-contrib-mqtt-broker 0.2.9 MQTT Broker \u8282\u70b9 node-red-contrib-persistent-fsm 1.2.1 \u6709\u72b6\u6001\u673a\u8282\u70b9 node-red-contrib-sunevents 3.1.1 \u65e5\u51fa\u65e5\u843d\u4e8b\u4ef6 node-red-contrib-time-range-switch 1.2.0 \u65f6\u95f4\u8303\u56f4\u5f00\u5173 node-red-dashboard 3.6.5 \u4eea\u8868\u76d8\u7ec4\u4ef6 node-red-node-base64 1.0.0 Base64 \u7f16\u7801\u89e3\u7801 node-red-node-email 3.0.3 \u90ae\u4ef6\u53d1\u9001\u8282\u70b9 node-red-node-feedparser 0.3.0 RSS Feed \u89e3\u6790 node-red-node-ping 0.3.3 Ping \u8282\u70b9 node-red-node-random 0.4.1 \u968f\u673a\u6570\u8282\u70b9 node-red-node-serialport 2.0.3 \u4e32\u53e3\u8282\u70b9 node-red-node-smooth 0.1.2 \u5e73\u6ed1\u6570\u636e\u8282\u70b9 node-red-node-suncalc 1.2.0 \u592a\u9633\u8ba1\u7b97\u8282\u70b9 node-red-node-twitter 1.2.0 Twitter \u96c6\u6210 \u5982\u9700\u8be6\u7ec6\u4f7f\u7528\u65b9\u6cd5\uff0c\u8bf7\u53c2\u8003\u5b98\u65b9\u6587\u6863\u6216\u793e\u533a\u6559\u7a0b\u3002","title":"Node-RED \u5e38\u7528\u7ec4\u4ef6\u5217\u8868"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/","text":"\u5982\u4f55\u5b89\u88c5node-red\u5b89\u88c5\u5230orangepi Zero3 \u00b6 \u64cd\u4f5c\u7cfb\u7edf \u00b6 \u57fa\u4e8eubuntu\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684orangepizero3\u5b9a\u5236\u7248 \u5b89\u88c5\u6b65\u9aa4 \u00b6 1. \u66f4\u65b0\u7cfb\u7edf \u00b6 \u5728\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u786e\u4fdd\u7cfb\u7edf\u4e3a\u6700\u65b0\uff1a sudo apt-get update && sudo apt-get upgrade -y 2. \u5b89\u88c5Node-RED \u00b6 Node-RED\u5b98\u65b9\u63d0\u4f9b\u4e86\u4e00\u952e\u5b89\u88c5\u811a\u672c\uff0c\u9002\u7528\u4e8eDebian/Ubuntu\u7cfb\u7edf\uff1a bash < ( curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered ) \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u53ef\u6839\u636e\u63d0\u793a\u9009\u62e9\u201cy\u201d\u7ee7\u7eed\u3002 3. \u542f\u52a8\u4e0e\u505c\u6b62Node-RED \u00b6 \u542f\u52a8\uff1a bash node-red-start \u505c\u6b62\uff1a bash node-red-stop \u67e5\u770b\u65e5\u5fd7\uff1a bash node-red-log 4. \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f \u00b6 \u901a\u5e38\u5b89\u88c5\u811a\u672c\u4f1a\u81ea\u52a8\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\uff0c\u5982\u9700\u624b\u52a8\u8bbe\u7f6e\uff1a sudo systemctl enable nodered.service 5. \u8bbf\u95eeNode-RED \u00b6 \u5728\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a http://<\u4f60\u7684OrangePi\u7684IP\u5730\u5740>:1880 \u53ef\u7528 hostname -I \u6216 ip a \u547d\u4ee4\u67e5\u8be2IP\u5730\u5740 sudo systemctl status nodered.service sudo systemctl start nodered.service sudo systemctl stop nodered.service sudo systemctl restart nodered.service \u5982\u4f55\u5b89\u88c5\u63d2\u4ef6 \u00b6 \u5982\u4f55\u8fdb\u5165\u63d2\u4ef6\u7ba1\u7406 \u00b6 \u5982\u4f55\u5b89\u88c5MQTT\u63d2\u4ef6 \u00b6","title":"\u5982\u4f55\u628anode-red\u5b89\u88c5\u5230orangepiZero"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#node-redorangepi-zero3","text":"","title":"\u5982\u4f55\u5b89\u88c5node-red\u5b89\u88c5\u5230orangepi Zero3"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_1","text":"\u57fa\u4e8eubuntu\u7684\u64cd\u4f5c\u7cfb\u7edf\u7684orangepizero3\u5b9a\u5236\u7248","title":"\u64cd\u4f5c\u7cfb\u7edf"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_2","text":"","title":"\u5b89\u88c5\u6b65\u9aa4"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#1","text":"\u5728\u7ec8\u7aef\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u786e\u4fdd\u7cfb\u7edf\u4e3a\u6700\u65b0\uff1a sudo apt-get update && sudo apt-get upgrade -y","title":"1. \u66f4\u65b0\u7cfb\u7edf"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#2-node-red","text":"Node-RED\u5b98\u65b9\u63d0\u4f9b\u4e86\u4e00\u952e\u5b89\u88c5\u811a\u672c\uff0c\u9002\u7528\u4e8eDebian/Ubuntu\u7cfb\u7edf\uff1a bash < ( curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered ) \u5b89\u88c5\u8fc7\u7a0b\u4e2d\u53ef\u6839\u636e\u63d0\u793a\u9009\u62e9\u201cy\u201d\u7ee7\u7eed\u3002","title":"2. \u5b89\u88c5Node-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#3-node-red","text":"\u542f\u52a8\uff1a bash node-red-start \u505c\u6b62\uff1a bash node-red-stop \u67e5\u770b\u65e5\u5fd7\uff1a bash node-red-log","title":"3. \u542f\u52a8\u4e0e\u505c\u6b62Node-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#4","text":"\u901a\u5e38\u5b89\u88c5\u811a\u672c\u4f1a\u81ea\u52a8\u8bbe\u7f6e\u5f00\u673a\u81ea\u542f\uff0c\u5982\u9700\u624b\u52a8\u8bbe\u7f6e\uff1a sudo systemctl enable nodered.service","title":"4. \u8bbe\u7f6e\u5f00\u673a\u81ea\u542f"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#5-node-red","text":"\u5728\u6d4f\u89c8\u5668\u8bbf\u95ee\uff1a http://<\u4f60\u7684OrangePi\u7684IP\u5730\u5740>:1880 \u53ef\u7528 hostname -I \u6216 ip a \u547d\u4ee4\u67e5\u8be2IP\u5730\u5740 sudo systemctl status nodered.service sudo systemctl start nodered.service sudo systemctl stop nodered.service sudo systemctl restart nodered.service","title":"5. \u8bbf\u95eeNode-RED"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_3","text":"","title":"\u5982\u4f55\u5b89\u88c5\u63d2\u4ef6"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#_4","text":"","title":"\u5982\u4f55\u8fdb\u5165\u63d2\u4ef6\u7ba1\u7406"},{"location":"node-reds/%E5%A6%82%E4%BD%95%E6%8A%8Anode-red%E5%AE%89%E8%A3%85%E5%88%B0orangepiZero3/#mqtt","text":"","title":"\u5982\u4f55\u5b89\u88c5MQTT\u63d2\u4ef6"},{"location":"node-reds/%E5%AE%89%E8%A3%85node-red%E8%AE%B0%E5%BD%95/","text":"unning Node-RED install for user orangepi at /home/orangepi on ubuntu [sudo] password for orangepi: This can take 20-30 minutes on the slower Pi versions - please wait. Stop Node-RED \u2714 Remove old version of Node-RED \u2714 Remove old version of Node.js \u2714 Install Node 20.19.3-1nodesource1 \u2714 v20.19.3 Npm 10.8.2 Clean npm cache \u2714 Install Node-RED core \u2714 4.0.9 Move global nodes to local - Npm rebuild existing nodes \u2714 Install extra Pi nodes \u2714 Add shortcut commands \u2718 Update systemd script \u2714 Any errors will be logged to /var/log/nodered-install.log All done. You can now start Node-RED with the command node-red-start or using the icon under Menu / Programming / Node-RED Then point your browser to localhost:1880 or http://{your_pi_ip-address}:1880 Started : Wed Jul 9 12:28:33 PM CST 2025 Finished: Wed Jul 9 12:37:17 PM CST 2025 ### WARNING DO NOT EXPOSE NODE-RED TO THE OPEN INTERNET WITHOUT SECURING IT FIRST Even if your Node-RED doesn't have anything valuable, (automated) attacks will happen and could provide a foothold in your local network Follow the guide at https://nodered.org/docs/user-guide/runtime/securing-node-red to setup security. ### ADDITIONAL RECOMMENDATIONS You can customise the initial settings by running: node-red admin init Node-RED Settings File initialisation ===================================== This tool will help you create a Node-RED settings file. \u2716 Settings file \u00b7 /home/orangepi/.node-red/settings.js orangepi@orangepizero3:~$ ^C orangepi@orangepizero3:~$","title":"\u5b89\u88c5node-red\u8bb0\u5f55"}]} |