# esp-rainmaker-android
**Repository Path**: clg-123/esp-rainmaker-android
## Basic Information
- **Project Name**: esp-rainmaker-android
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2024-04-28
- **Last Updated**: 2025-10-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## ESP RainMaker安卓应用程序
这是[ESP RainMaker](https://github.com/espressif/esp-rainmaker)的官方安卓应用程序,这是Espressif提供的端到端解决方案,可实现对ESP32-S2和基于ESP32的产品的远程控制和监控,而无需在云中进行任何配置。
更多详细信息 :
- 请查看ESP RainMaker文档[此处](http://rainmaker.espressif.com/docs/get-started.html)开始。
- 在[应用商店]中试用此应用程序(https://play.google.com/store/apps/details?id=com.espressif.rainmaker).
## 安装
要构建此应用程序,您需要一台安装了Android Studio的设备。
要获取此应用程序,请使用以下命令克隆此存储库,并在Android Studio中打开此项目:
```
git clone https://github.com/espressif/esp-rainmaker-android.git
```
现在可以运行此演示了。
## 特点
### 用户管理
- 使用电子邮件id注册/登录。
- 第三方登录包括GitHub和Google。
- 忘记/重置密码支持。
- 账号注销。
- 删除用户。
### 预配置
- 使用[资源调配库](https://github.com/espressif/esp-idf-provisioning-android/)进行资源调配。
- 使用二维码自动连接到设备。
- 如果没有二维码,可以选择手动流程。
- 显示可用Wi-Fi网络的列表。
- 支持基于SoftAP的Wi-Fi配置。
- 执行用户节点关联工作流。
### 管理
- 列出与用户关联的所有设备。
- 显示节点和设备的详细信息。
- 能够删除用户的节点。
- 显示节点的联机/脱机状态。
### 控制
- 显示设备的所有静态和可配置参数。
- 根据参数类型调整UI,如切换电源,滑块亮度。
- 允许用户更改和监视设备的参数。
### 本地控制
- 应用程序使用ESP-IDF中的ESP本地控制(ESP_Local_ctrl)组件和网络服务发现API来搜索和管理本地网络上的用户设备。
- 此功能允许用户通过Wi-Fi+HTTP进行通信,通过本地网络控制ESP设备。
- 本地控制确保您的设备即使在互联网连接不良或没有通过Wi-Fi连接的互联网时也可以访问。
可以通过设置`local.properties`中`isLocalControlSupported`字段的true/false值来启用/禁用此功能。
此功能是可选的,在默认情况下已启用。
在`local.properties`文件中添加`isLocalControlSupported=false`以禁用此功能。
### 调度
时间表允许您通过将设备设置为在一周中指定的一天或几天的给定时间触发操作来实现设备的自动化。
计划支持的操作列表 :
- 添加。
- 编辑。
- 移除。
- 启用/禁用。
可以通过设置`local.properties`中`isScheduleSupported`字段的true/false值来启用/禁用计划。
时间表功能是可选的,在默认情况下已启用。
在`local.properties`文件中添加`isScheduleSupported=false`以禁用此功能。
### 场景
场景是一组具有特定值的参数,用于跨多个节点的一个或多个设备(可选)。例如,“晚间”场景可能会打开所有灯光并将其设置为暖色。“夜间”场景可能会关闭所有的灯,打开设置为最小亮度的床头灯,然后打开风扇/ac。
场景支持的操作列表 :
- 添加。
- 编辑。
- 移除。
- 激活。
可以通过在`local.properties`中设置`isSceneSupported`字段的true/false值来启用/禁用场景。
场景功能是可选的,在默认情况下已启用。
在`local.properties`文件中添加`isSceneSupported=false`以禁用此功能。
### 节点分组
节点分组允许您创建抽象或逻辑的设备组,如灯、开关、风扇等。
节点分组中支持的操作列表 :
- 创建组。
- 编辑组(重命名或添加/删除设备)。
- 移除组。
- 列出组。
可以通过在`local.properties`中设置`isNodeGroupingSupported`字段的true/false值来启用/禁用分组。
分组功能是可选的,在默认情况下已启用。
在`local.properties`文件中添加`isNodeGroupingSupported=false`以禁用此功能。
### 节点分享
节点共享允许用户与其他注册用户共享节点,并允许他们监视和控制这些节点。
节点共享中支持的操作列表 :
对于主用户:
- 注册共享节点的请求。
- 查看挂起的请求。
- 如果需要,取消挂起的请求。
- 删除节点共享。
对于二级用户:
- 查看挂起的请求。
- 接受/拒绝挂起的请求。
可以通过在`local.properties`中设置`isNodeSharingSupported`字段的true/false值来启用/禁用共享。
共享功能是可选的,默认情况下已启用。
在`local.properties`文件中添加`isNodeSharingSupported=false`以禁用此功能。
### 设备自动化
设备自动化是一组将根据某些事件的完成情况触发的操作。例如,用户可以将事件设置为温度传感器等于35摄氏度。然后,根据此事件,用户可以触发不同的操作,如打开AC或将AC温度设置为20摄氏度,或两者的组合。
用户将被允许在应用程序中执行不同的自动化操作,如下所述:
1.增加新的自动化。
2.更新现有自动化。
3.启用/禁用自动化触发器。
4.删除自动化。
5.接收与触发的自动化相关的通知。
可以通过设置`local.properties`中`isAutomationSupported`字段的true/false值来启用/禁用设备自动化。
设备自动化是可选的,在默认情况下已启用。
在`local.properties`文件中添加`isAutomationSupported=false`以禁用此功能。
### 时间序列
- 时间序列允许用户查看绘制为条形图或折线图的参数的历史值。
- 用户可以选择不同的持续时间来查看报告的参数值,如1天、7天、4周和1年。
- 用户可以看到原始数据的图表,也可以从不同的聚合类型中进行选择,如平均值、最小值、最大值、计数和最新值。
注意 : 时间序列功能需要固件支持。它将仅适用于具有“time_series”属性的参数。
### 系统服务
系统服务允许节点的主要用户执行节点操作,如:
- 重新启动
- Wi-Fi重置
- 出厂设置
注意 : 系统服务功能需要固件支持。它将可用于已配置“esp.service.system”的节点。
### OTA升级
- 检查固件更新是否可用于需要用户同意的节点。
- 当用户使用应用程序提供批准时,远程将固件更新推送到节点。
OTA更新是可选的,默认情况下是禁用的。可以通过在`local.properties`中设置`isOtaSupported`字段的true/false值来启用/禁用它。
在`local.properties`文件中添加`isOtaSupported=false`以启用此功能。
### Alexa应用程序到应用程序链接
此帐户链接流允许用户从RainMaker应用程序开始,将其Alexa用户身份与RainMaker身份链接起来。当他们从应用程序启动帐户链接流时,用户可以:
- 通过应用程序了解他们的Alexa技能。
- 从应用程序中启动技能启用和帐户链接。
- 如果已经登录Alexa应用程序,则无需输入Alexa帐户凭据即可链接他们的帐户。当他们试图链接帐户时,必须登录Rainmaker一次。
- 当他们的设备上没有安装Alexa应用程序时,使用[登录亚马逊(LWA)](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html)将他们的帐户从您的RainMaker链接起来。
## 其他设置:
可以在`local.properties`文件中修改与设置设备相关的设置。
在`local.properties`中添加以下行,并根据您的要求进行自定义。
```
transport=Both
security=2
POP=abcd1234
deviceNamePrefix=PROV_
isFilterPrefixEditable=true
isQRCodeSupported=true
isScheduleSupported=true
isSceneSupported=true
isLocalControlSupported=true
isNodeGroupingSupported=true
isNodeSharingSupported=true
```
每个KEY的说明如下。
| Key | Type | 描述 |
|------------------------ |--------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| String | String | 可能值:
**两者** (默认) : 同时支持BLE和SoftAP设备配置。
**SoftAP** : 仅支持SoftAP设备配置。
**BLE**: 仅支持BLE设备配置。 |
| security | int | 它可以是0、1或2 int值。(默认值为2)。
**0**: 用于设备和应用程序之间的未加密通信。
**1/2** : 用于设备和应用程序之间的安全/加密通信。 |
| POP | String | 占有证明。它的默认值是**空字符串**。 |
| deviceNamePrefix | String | 在扫描中搜索带有此前缀的BLE设备。默认值为"**PROV_**"。 |
| isFilterPrefixEditable | boolean | 允许用户编辑用于筛选BLE设备的前缀。它的默认值是**true**。 |
| isQRCodeSupported | boolean | 允许用户连接设备并使用包含设备信息的二维码开始配置。它的默认值是**true**。 |
## 支持平台
- 支持Android 6.0(API 23级)及以上版本。
## 许可证
版权所有2020 Espressif Systems(上海)PTE有限公司
根据Apache许可证2.0版许可("许可证");
除非符合许可证的规定,否则您不得使用此文件。
您可以在 http://www.apache.org/licenses/LICENSE-2.0 获取许可证副本
除非适用法律要求或书面同意,否则根据许可证分发的软件是在“原样”的基础上分发的,不存在任何明示或暗示的担保或条件。
请参阅许可证,了解管理许可证下的权限和限制的特定语言。