跳到主要内容

Getting Started

The sample app code is open source and can be cloned, modified, and used within the Licensing terms.

Download the source code

The source code for the sample app is available on GitHub.

Navigate on your system to where you want to save the project, then clone it:

git clone https://github.com/espressif/esp-rainmaker-home.git

Build & Run

This is a React Native application for managing your ESP RainMaker IoT ecosystem. The app provides seamless tools for device provisioning, management, and control, with support for BLE, SoftAP, and Matter commissioning.

Prerequisites:

  • Node.js 22+
  • Android Studio (for Android development)
  • Xcode (for iOS development on macOS)

Quick Start:

cd esp-rainmaker-home
nvm use 22
npm install

# For Android
npm run android

# For iOS (macOS only)
npm run ios -- --device

Configuration changes

The mobile app connects with the ESP RainMaker cloud, which might be privately deployed in your AWS account. The mobile app configurations need to be updated to point to the privately deployed endpoints.

Updating the Configuration

The app uses the Central Data Framework (CDF) which is initialized on app startup using configurations from rainmaker.config.ts (see context/CDF.tsx line 60).

To configure the app for your cloud instance:

  1. Open the rainmaker.config.ts file in the project root
  2. Change the baseUrl parameter to point to your cloud backend endpoint
  3. Update other endpoint URLs if needed (authUrl, etc.)
export const SDKConfig = {
baseUrl: "https://api.rainmaker.espressif.com", // Change this to your endpoint
version: "v1",
authUrl: "https://3pauth.rainmaker.espressif.com",
clientId: "1h7ujqjs8140n17v0ahb4n51m2",
redirectUrl: "rainmaker://com.espressif.novahome/success",
customStorageAdapter: asyncStorageAdapter,
localDiscoveryAdapter: EspLocalDiscoveryAdapter,
localControlAdapter: ESPLocalControlAdapter,
provisionAdapter: provisionAdapter,
notificationAdapter: ESPNotificationAdapter,
oauthAdapter: espOauthAdapter,
appUtilityAdapter: ESPAppUtilityAdapter,
};

export const CDFConfig = { autoSync: true };

Note: These configurations are imported and used by the CDF initialization in context/CDF.tsx:

const store = await initCDF(SDKConfig, CDFConfig);

With the above steps, your out-of-the-box app should be configured to work with your privately deployed ESP RainMaker cloud instance.

For advanced customizations, including support for new device types and control screens, please refer to the project documentation and source code structure in the components/, config/, and app/ directories.


⚠️ IMPORTANT NOTICE: The public deployment details and configurations provided in this documentation are intended for development and educational purposes only and should NOT be used for commercial purposes.

On this page