65.9K
CodeProject 正在变化。 阅读更多。
Home

如何设置CodeProject.AI服务器与Home Assistant容器

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2023年3月17日

CPOL

8分钟阅读

viewsIcon

27013

在本文中,我将设置Home Assistant容器以与CodeProject.AI服务器和Wyze Cam v3配合使用。然后,作为概念验证,我将使用CodeProject.AI服务器从Home Assistant检测到人。

在我上一篇文章中,我设置了Home Assistant容器,并通过集成Agent DVR(我已经用CodeProject.AI设置好了)与Home Assistant集成,从而快捷地设置了CodeProject.AI服务器。在本文中,我将正确地进行设置,将Home Assistant容器与CodeProject.AI服务器和Wyze Cam v3配合使用。然后,作为概念验证,我将使用CodeProject.AI服务器从Home Assistant检测到人。

要求

本文假定您正在使用Windows(10),已安装Docker Desktop,已安装CodeProject.AI服务器,已设置带RTSP固件的Wyze Cam v3,并且docker-wyze-bridge容器正在运行并与Home Assistant协同工作。因此,本文假定您拥有以下内容:

设置 Home Assistant 容器

我们需要做的第一件事是为Home Assistant创建一个配置文件。我们将在Docker中设置Home Assistant,但仍然需要访问Home Assistant的configuration.yaml文件。

配置文件将在您运行Docker pull的任何驱动器上,在我这里是C:\驱动器。所以,请打开Windows资源管理器,转到C:\驱动器,在文件夹区域右键单击,然后选择新建 -> 文件夹。输入您想要的文件夹名称,我称我的为“haconfig”。

现在转到 Windows 的 **开始** 按钮,输入“CMD”并打开命令提示符。然后键入

docker run -d --name homeassistant --privileged --restart=unless-stopped 
-e TZ=America/Edmonton -v c:\haconfig:/config -p 8123:8123 homeassistant/home-assistant:latest

其中--name homeassistant是您的容器名称,TZ=America/Edmonton是Home Assistant的时区(只需输入您自己的时区即可),而-v c:\haconfig:/config是配置文件夹的路径(如果您在C:\Users\Joseph\haconfig中创建了一个文件夹,则为-v C:\Users\Joseph\haconfig:/config)

好了,让我们登录Home Assistant。在浏览器中输入https://:8123。输入您的名称(它会自动开始以此作为您的用户名,小写),然后选择一个密码。确保您将此密码记下来,您将需要它很多次。点击创建账户

接下来,输入Home Assistant的更多详细信息。您可以给Home Assistant命名(我非常有创意,称我的为“Home”),然后选择国家、语言、时区和货币。点击下一步

然后是一个关于数据共享的屏幕。我没兴趣共享,所以点击下一步

这个下一页是如果您有物联网设备,它们会显示出来的地方。我这里什么都没显示。点击 **Finish**(完成)。

设置Home Assistant社区商店

为了安装CodeProject.AI服务器的Home Assistant集成,我们首先需要Home Assistant社区商店(HACS)。为此,我们需要在homeassistant容器中运行HACS安装程序。转到Windows开始按钮并开始键入“CMD”,然后选择命令提示符。然后,键入docker exec -it homeassistant bash

docker exec -it homeassistant bash

这将打开homeassistant容器的命令行。在此键入wget -O - https://install.hacs.xyz | bash -。是的,这是“O”,就像“Octopus”一样。不是零。

wget -O - https://install.hacs.xyz | bash -

脚本然后会好心地提醒我们重启Home Assistant。回到Home Assistant的浏览器标签页。点击左侧导航菜单上的开发工具,然后在检查与重启下,点击重启,然后再次点击重启

现在我们可以转到左侧导航菜单上的设置,然后是设备与服务。然后点击+ 添加集成

键入“HACS”,现在**HACS**出现了。选择它。

出现此窗口,要求您确认一系列项目。勾选所有框,然后点击提交

将弹出等待设备激活屏幕。确保您已登录GitHub,然后点击链接https://github.com/login/device并复制激活密钥。

在下一个窗口中,粘贴激活密钥。

然后点击授权hacs

就这样!我们应该为HACS做好准备了。

回到Home Assistant标签页,您应该会看到一个成功屏幕。选择您要用于HACS的区域。我的唯一摄像头在我的办公室,所以我添加了一个名为“Office”的区域,然后点击完成

现在我们可以重启Home Assistant。点击左侧导航菜单上的开发工具,然后在检查与重启下,点击重启,然后再次点击重启

设置CodeProject.AI-HomeAssist-ObjectDetect

现在我们可以最终添加CodeProject.AI-HomeAssist-ObjectDetect了。点击左侧导航中的新HACS标签页,然后点击集成

在右上角,点击三个点调出集成下拉菜单,然后选择自定义存储库

存储库字段中,输入CodeProject.AI-HomeAssist-ObjectDetect存储库的URL,即https://github.com/codeproject/CodeProject.AI-HomeAssist-ObjectDetect。然后从类别下拉菜单中,选择集成。然后点击添加

现在,在HACS的集成标签页下,出现了一个新存储库。那就是我们要找的!点击CodeProject.AI服务器对象自定义集成。

然后,在右下角,点击下载进行安装。

出现一个对话框,好心地提醒:“请记住,您需要重启Home Assistant才能应用对集成(custom_components)的更改。” 感谢Home Assistant HACS集成!但还不是现在。点击下载以完成存储库的下载和安装。

现在让我们编辑Home Assistant的configuration.yaml文件。为此,我们将使用Visual Studio Code。我已经安装了Visual Studio Code,但要安装,您需要访问https://vscode.js.cn/并点击Download for Windows。这将下载一个类似于VSCodeUserSetup-x64-1.74.3.exe的文件。运行安装文件以设置Visual Studio Code。

安装完Visual Studio Code后,第一步是下载YAML扩展。在扩展视图中,键入“YAML”,然后当YAML扩展出现时,点击蓝色的安装按钮。

现在转到文件打开文件,然后导航到我们之前创建的文件夹。对我来说,这是C:\haconfig。选择configuration.yaml,然后点击打开

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

这是Home Assistant的默认configuration.yaml。为了在Home Assistant中设置CodeProject.AI服务器,我们需要向此文件添加内容(这就是为什么我们费尽周折获取访问权限的原因)。以下是我们想要添加到configuration.yaml的添加项。

image_processing:
  - platform: codeproject_ai_object
    ip_address: localhost
    port: 32168
    # custom_model: mask
    # confidence: 80
    save_file_folder: /config/snapshots/
    save_file_format: png
    save_timestamped_file: True
    always_save_latest_file: True
    scale: 0.75
    # roi_x_min: 0.35
    roi_x_max: 0.8
    #roi_y_min: 0.4
    roi_y_max: 0.8
    crop_to_roi: True
    targets:
      - target: person
      - target: vehicle
        confidence: 60
      - target: car
        confidence: 40
    source:
      - entity_id: camera.local_file

关于此的几点说明。首先,请确保您转到您的配置目录C:/haconfig(对我而言),并添加一个snapshots文件夹。如果不这样做,我不确定下一步是否会起作用。第二,您会注意到ip_address设置为localhost。这对您可能有效。就我个人而言,我不得不将其更改为我的IP地址。如果您不知道您的IP地址,请转到Windows的开始按钮并开始键入“CMD”,然后选择命令提示符。然后,键入ipconfig。您想要的地址是IPv4地址。第三,您需要将entity_id更改为您的摄像头的实体。我将向您展示如何操作。

返回您的浏览器中的Home Assistant标签页。然后转到设置设备与服务,并查找您的通用摄像头。点击实体链接。对我来说,这显示1个实体

您的摄像头实体ID列在实体ID下。对我来说,这是camera.然后是我IP地址的某个变体。复制此值,返回Visual Studio Code并将其粘贴到configuration.yaml中,替换camera.local_file

然后,在Visual Studio Code中转到文件,然后保存

现在我们可以重启Home Assistant。点击左侧导航菜单上的开发工具,然后在检查与重启下,点击重启,然后再次点击重启

使用CodeProject.AI服务器从Home Assistant检测到人

现在我们可以准备使用CodeProject.AI服务器检测人了。所以,在浏览器中输入https://:32168/来打开CodeProject.AI服务器。我之前安装了许多模块,如面部处理和车牌阅读器,但对于这个,我们真正需要的是对象检测(YOLOv5 6.2),所以我点击其他所有服务旁边的...,然后选择停止

现在回到Home Assistant标签页,转到开发工具,然后点击服务标签页。在服务字段中,键入“image”,然后选择图像处理:扫描。然后点击选择实体按钮,并从列表中选择**codeproject_ai_object**。最后,点击调用服务。出现一个小绿色勾号,表示服务已调用。

现在点击状态标签页。如果成功,在属性列中,您将看到targets_found: summary: {}all_objects: - person: 68.036。头几次调用此服务时,摘要是空白的,但次数越多,它会显示类似targets_found: - person: 83.589summary: person: 1的内容。它奏效了!

转到您的配置文件夹,查找您创建的快照文件夹。对我来说,这是C:/haconfig/snapshots。在该文件夹中,应该有一个您刚刚拍摄的快照,类似codeproject_ai_object_cameraentityname_date.pngcodeproject_ai_object_cameraentityname_latest.png。看?那是我!我是一个人!

这仅仅是开始。从这里开始,我们可以根据在摄像头中检测到的内容开始自动化。这就是Home Assistant的全部意义所在,也将是我下一篇文章的主题。但是,我们已经迈出了第一步,让CodeProject.AI服务器在Home Assistant容器中运行,并用它检测到了一个人。如果您有任何问题,请在下面的文章论坛中提问。

© . All rights reserved.