Kbsa 如何设置和使用 Shelly Aws Iot Core

如何设置和使用 Shelly AWS IoT Core 配置脚本

How to Set Up and Use the Shelly AWS IoT Core Provisioning Script.png

概述

本指南将引导您完成下载、配置和运行Shelly AWS 配置脚本的过程。该脚本自动化设置AWS CLIAWS IoT Core 资源,并配置您的Shelly 设备以安全连接到AWS IoT Core.

先决条件

  • A 免费启用了 IoT Core 服务的AWS 账户,目前也免费。

  • A Shelly Gen2+ 设备(例如,Shelly 1 G3)已连接到可访问互联网的网络。

  • 具备基本的AWS IoT Core 和MQTT。

  • 确保您的 Shelly 设备已拥有 最新固件已安装。

  • A 运行的计算机Ubuntu基于 Debian 的 Linux.

  • 对系统具有管理权限(root)。

  • 连接到您本地网络的Shelly设备。

逐步操作指南

下载和设置脚本

下载脚本

  1. 打开终端并导航到您希望下载脚本的目录。

  2. 从此链接.

  3. 下载脚本

确认脚本已下载。

设置权限

  1. 要执行脚本,您需要将其设为可执行:

更改脚本权限:
BASH

sudo chmod +x shelly-aws-provision.sh

运行脚本

  1. 脚本必须以 root 权限运行:

以 root 身份运行脚本:
BASH
  1. sudo ./shelly-aws-provision.sh

脚本初始输出:

运行脚本后,您将看到类似如下的输出:
BASH

[INFO] 日志文件设置为:/path/to/your/directory/shelly-aws-provision.log ----------- ############################| 阶段 1 |############################ -----------

阶段 1:AWS CLI 设置

检查并安装先决条件

  • 脚本行为:脚本检查每个软件包是否已安装:curlunzippython3.

  • jq如果缺少任何软件包,会提示使用.

apt
1.jpg

安装

示例输出:AWS CLI 安装脚本会检测系统中是否已安装

AWS CLI
如果已安装 AWS CLI:
提示:
  • BASH

    • AWS CLI 已安装。是否继续进行全新安装或更新?(y/n):选项:):是(

    • y)继续全新安装或更新。):否(n)跳过安装,继续进行

AWS CLI
  • 配置。

  • 如果选择安装或更新:安装目录提示:

  • Enter接受默认目录或指定其他目录。脚本将设置

AWS CLI
2.jpg
  1. 安装文件和证书存储的基础目录。

  • 示例输出:下载 AWS CLI:.

  • 脚本将下载

  1. AWS CLI 安装程序

  • 终端中会显示进度。

  • 解压并安装 AWS CLI:安装程序将被解压。

  1. AWS CLI

  • 将被安装或更新。测试 AWS CLI 安装:脚本验证

  • AWS CLI

  1. 安装情况。

  • 显示已安装的版本。清理安装文件:脚本清理下载和解压的

  • AWS CLI

文件。

image-20241106-133700.png

  1. 基础目录中仅保留证书目录。

  • 示例输出:

    • 选择认证方式:选项 1:SSO如果选择SSO.

    • ,请按照提示配置AWS SSO.

  • 您可能需要打开浏览器并登录您的

    • AWS 账户选项 2:短期凭证如果选择短期凭证,请在提示时输入您的AWS Access Key ID

    • Secret Access Key

4.jpg

指定默认区域和输出格式。示例输出:请注意,由于我们之前已使用过CLI,已登录,因此只需按

Enter

接受建议值。如果是首次使用,需手动输入这些值。

阶段 2:AWS IoT Core 设置
  • 创建 IoT 设备列出现有设备类型脚本列出从AWS IoT Core.

  • 检索的现有

设备类型
  • 如果没有,需要创建新的。如果创建新设备类型输入n.

  • 以创建新的设备类型脚本创建新的设备类型使用它为当前脚本运行创建新的

IoT 设备
  • 输入设备名称脚本使用您提供的名称和您选择/创建的设备类型创建

IoT 设备
5.jpg

示例输出:
  • 策略管理列出现有策略.

  • 脚本列出现有的

IoT 策略如果没有,需要创建新的。
  • 如果创建新策略输入

  • n

  • 以创建新策略。输入策略名称脚本创建具有默认权限的新策略(允许所有

IoT 操作
6.jpg

对所有资源)。

示例输出:
  • 证书生成与绑定生成证书.

  • 脚本为IoT 设备生成新的证书和私钥证书存储在以设备命名的目录中,路径为.

/aws/<

  • thing_name>-cert创建的文件:

  • 设备证书:deviceCert_.pem

  • 私钥:privateKey_

.pem

  • 根 CA:

rootCA.pem

  • 将策略绑定到证书:脚本将选定或创建的策略绑定到证书。.

将证书绑定到设备:
7.jpg

检索MQTT客户端信息

  • 该脚本检索 Shelly 设备的关键 MQTT 连接信息。

脚本将证书绑定到
  • AWS IoT Core/MQTT端点

  • IoT 设备

示例输出:
8.jpg

第 3 阶段:Shelly 设备设置

提供 Shelly 设备 IP

  • 提供的详细信息:客户端 ID(设备名称)私钥、证书和根 CA 的路径Shelly 设备.

  • 示例输出:

    • 它会尝试使用所提供的 IP 连接到 Shelly 设备。

    • 输入您的

Firmware 检查与更新

  • 设备

    • IP 的 Shelly 设备。

    • 地址脚本验证 IP 地址格式。.

  • 如果验证失败,会提示重新输入 IP 地址。

    • 版本检查:脚本检查.

    • 当前固件版本

最低要求版本为
9.jpg

上传证书到 Shelly 设备

  • 1.4.2更新过程:如果固件过时,脚本将启动Shelly 设备.

在 Shelly 设备上配置 MQTT

  • 该脚本将配置 Shelly 设备连接到 固件更新设备可能会在此过程中重启。MQTT 通过TLS。

示例输出:
  • 脚本将第一阶段(证书生成与绑定)下载的证书上传到 AWS IoT Core MQTT AWS IoT Core

  • 通过 配置设置:.

  • SSL/TLS设置:服务器端点:

重启 Shelly 设备

  • 该脚本会重启 Shelly 设备以应用新配置。

  • endpoint。

客户端 ID:
10.jpg

IoT 设备名称

使用上传的证书。Shelly等待设备重新上线,定期检查。示例输出:总结您已成功使用配置脚本设置您的设备以安全连接到.

AWS IoT Core

。您的设备现已配置为与

  • AWS IoT Core通信,您可以通过AWS 服务

  • 开始监控和控制它。

注意事项

  • 日志:

  • 脚本在运行目录生成日志文件

  • shelly-aws-provision.log请查看该文件以获取脚本执行的详细日志。.

证书目录

请妥善保管您的证书。

  • 切勿泄露私钥。证书位于目录:.

  • /path/to/aws/

-cert

  • 故障排除Shelly 设备权限错误:确保以.

  • sudo权限运行脚本确认脚本使用的目录可写。Shelly连接问题:

  • 确保您的电脑和

设备

  • 处于同一网络确认

  • 设备IP

Firmware 更新失败:

  • 地址正确。Shelly检查您的网络连接。

  • AWS 权限:

确保您的

  • AWS 用户拥有必要权限。如果使用

  • AWS SSO

或角色,确认权限分配正确。

如果固件更新失败,尝试通过设备的网页界面手动更新。

确保设备已开机并连接互联网。

脚本错误:

查看

shelly-aws-provision.log