Skip to main content

Components of ESP RainMaker

High Level Architecture
note

Currently, ESP RainMaker supports all ESP32-based SoC series, excluding ESP32-P4.


Cloud Backend

The ESP RainMaker cloud backend is provided in the form of AWS "Serverless Application Model" (SAM) with policies, service orchestration, and functional implementation. Devices communicate with the backend using the MQTT over TLS protocol, adhering to publicly defined payload formats. Phone applications, voice assistant skills, device management dashboards, and third-party integrations utilize REST APIs and push notifications for interaction. These APIs are publicly documented.

The ESP RainMaker backend is designed to be data model agnostic and offers a custom plugin interface for processing all incoming events and data. While the ESP RainMaker backend is implemented in the Go programming language, customizations can be made using any AWS-supported language. The backend can be customized in the following ways:

  • Extensible AWS Services
    • Customers have the freedom to extend AWS services within the same account to develop their own applications. ESP RainMaker will not interfere with or appropriate any of these services for its own use.
  • OAuth2 Interface
    • ESP RainMaker provides an OAuth2 interface for external services, enabling custom authenticators to be utilized via the OAuth2 interface offered by those services.
  • Data and Event Accessibility
    • ESP RainMaker facilitates easy access to its data and events for further processing:
      • The ESP RainMaker web API is openly accessible for third-party integrations, fostering a collaborative ecosystem.
      • The webhook interface empowers users to extract events and data, offering the flexibility to implement additional processing either within the same AWS account or in a different one.

Open API Application Layer

ESP RainMaker also provides an open API application layer, enabling customization and catering to the diverse requirements of different environments.


Open-source Firmware SDK

ESP RainMaker goes beyond providing the cloud services. It offers an open-source firmware SDK, which can be accessed on GitHub. It can be used to build standard products like lights, switches, fans, etc. as well as custom IoT products using the flexible data model and APIs.

  • If you are a firmware developer and would like to try out ESP RainMaker, get started with an introductory example in Evaluation Hub.
  • If you are already developing with ESP RainMaker and would like to understand/learn the firmware development aspects and tips, click here

Reference Phone App

ESP RainMaker provides a reference app called the ESP RainMaker app.

The ESP RainMaker app is an open source App built for Android and iOS. This App offers a self-adapting UI, which means that any functionality added in the RainMaker firmware can be used via these apps without any changes. This makes product development much easier and faster. Since these are open source, they can be configured and customized based on your product requirements. Developers can find the following links pertaining to Android and iOS below:

Region notice

Note that for the reference ESP RainMaker phone app, there are two versions. Mainly the 'Global' version and 'China' version. However, the respective SDK for both Android and iOS are the same regardless of region.

reminder

If you would like to switch regions (between Global and China) to evaluate ESP RainMaker. Please take note of the following:

  • To switch regions in Android, please uninstall the app and then visit the app store of your selected region to download it again, according to the table below.

  • To switch regions in iOS, go to your phone's settings: Settings > General > Language & Region, and select either
    China mainland or a specific global region (e.g., Singapore) following this set your iOS region guide.

Global Region App Download Links


Device Management Dashboard

ESP RainMaker offers a ready-made dashboard that allows customers to manage their device fleets efficiently. The device management dashboard offers essential functionalities, including business insights, device diagnostics, device management, and Over-The-Air (OTA) updates. It is crafted using a combination of HTML, CSS, and JavaScript (JS), providing a solid foundation. Moreover, it is highly adaptable, allowing for further customization to address specific business needs—all without the need to build a custom dashboard from scratch.

There are two instances of Dashboard:

  • The one used in the public RainMaker instance: Intended for testing and evaluation purposes.

  • The one used in the private RainMaker instance: Provided to clients after private deployment, and reserved for commercial use.

  • To learn more about the usage of dashboard, click here.

  • To get started with dashboard with public RainMaker, click here.


CLI Tool

There are two types of CLI tools in ESP RainMaker.

  1. ESP RainMaker CLI (for public RainMaker)

    • It is a command-line tool that enables developers to interact with and manage devices that are connected to RainMaker platform. This is relevant for clients who are using RainMaker publicly.
  2. Admin CLI (for private RainMaker)

    • It is a tool offered by ESP RaiMaker for admin users to be able to perform mass manufacturing of nodes of ESP32 based products. This tool will enable you to perform node id generation and certificate registration operations required for the manufacturing process. This is relevant for clients who have deployed RainMaker privately.

Click here to learn about the difference between these two CLI tools.


Voice Assistant Skills

ESP RainMaker also offers integrations with Amazon Alexa and Google Voice Services, with support for certain standard devices.

To learn more on how voice assistant can be integrated with ESP RainMaker, please click here.

On this page