Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5737016

Browse files
sanketwadekarP-R-O-C-H-Y
andauthored
Add enableScenes API in Rainmaker (#7436)
* Added enableScenes API * Added enableScenes API documentation * Added enableScenes API to example Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
1 parent 9762b23 commit 5737016

File tree

7 files changed

+50
-21
lines changed

7 files changed

+50
-21
lines changed

‎docs/source/api/rainmaker.rst

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ The key features of ESP RainMaker are:
2222

2323
Additional information about ESP RainMaker can be found `here <https://rainmaker.espressif.com/>`__.
2424

25-
#########################
26-
Arduino ESP Rainmaker API
27-
#########################
2825

2926
ESP RainMaker Agent API
3027
-----------------------
@@ -127,6 +124,21 @@ This function will return
127124
1. `ESP_OK` : On success
128125
2. Error in case of failure
129126

127+
RMaker.enableScenes
128+
*******************
129+
130+
This API enables the Scenes service for the node. It should be called after `RMaker.initNode()` and before `RMaker.start()`.
131+
For more information, check `here <https://rainmaker.espressif.com/docs/scenes.html>`__.
132+
133+
.. code-block:: arduino
134+
135+
esp_err_t enableScenes()
136+
137+
This function will return
138+
139+
1. `ESP_OK` : On success
140+
2. Error in case of failure
141+
130142
RMaker.setTimeZone
131143
******************
132144

‎libraries/RainMaker/examples/RMakerCustom/RMakerCustom.ino

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@ static Device my_device("Dimmer", "custom.device.dimmer", &gpio_dimmer);
2626

2727
void sysProvEvent(arduino_event_t *sys_event)
2828
{
29-
switch (sys_event->event_id) {
29+
switch (sys_event->event_id) {
3030
case ARDUINO_EVENT_PROV_START:
3131
#if CONFIG_IDF_TARGET_ESP32S2
3232
Serial.printf("\nProvisioning Started with name \"%s\" and PoP \"%s\" on SoftAP\n", service_name, pop);
3333
printQR(service_name, pop, "softap");
3434
#else
3535
Serial.printf("\nProvisioning Started with name \"%s\" and PoP \"%s\" on BLE\n", service_name, pop);
3636
printQR(service_name, pop, "ble");
37-
#endif
37+
#endif
3838
break;
3939
default:;
4040
}
@@ -63,7 +63,7 @@ void setup()
6363
pinMode(gpio_dimmer, OUTPUT);
6464
digitalWrite(gpio_dimmer, DEFAULT_POWER_MODE);
6565

66-
Node my_node;
66+
Node my_node;
6767
my_node = RMaker.initNode("ESP RainMaker Node");
6868

6969
//Create custom dimmer device
@@ -78,20 +78,22 @@ void setup()
7878
my_device.addParam(level_param);
7979

8080
my_device.addCb(write_callback);
81-
82-
//Add custom dimmer device to the node
81+
82+
//Add custom dimmer device to the node
8383
my_node.addDevice(my_device);
8484

85-
//This is optional
85+
//This is optional
8686
RMaker.enableOTA(OTA_USING_PARAMS);
87-
//If you want to enable scheduling, set time zone for your region using setTimeZone().
87+
//If you want to enable scheduling, set time zone for your region using setTimeZone().
8888
//The list of available values are provided here https://rainmaker.espressif.com/docs/time-service.html
8989
// RMaker.setTimeZone("Asia/Shanghai");
9090
// Alternatively, enable the Timezone service and let the phone apps set the appropriate timezone
9191
RMaker.enableTZService();
9292

9393
RMaker.enableSchedule();
9494

95+
RMaker.enableScenes();
96+
9597
RMaker.start();
9698

9799
WiFi.onEvent(sysProvEvent);

‎libraries/RainMaker/examples/RMakerCustomAirCooler/RMakerCustomAirCooler.ino

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,15 @@ static Device my_device("Air Cooler", "my.device.air-cooler", NULL);
4343

4444
void sysProvEvent(arduino_event_t *sys_event)
4545
{
46-
switch (sys_event->event_id) {
46+
switch (sys_event->event_id) {
4747
case ARDUINO_EVENT_PROV_START:
4848
#if CONFIG_IDF_TARGET_ESP32S2
4949
Serial.printf("\nProvisioning Started with name \"%s\" and PoP \"%s\" on SoftAP\n", service_name, pop);
5050
printQR(service_name, pop, "softap");
5151
#else
5252
Serial.printf("\nProvisioning Started with name \"%s\" and PoP \"%s\" on BLE\n", service_name, pop);
5353
printQR(service_name, pop, "ble");
54-
#endif
54+
#endif
5555
break;
5656
default:;
5757
}
@@ -114,7 +114,7 @@ void setup()
114114
pinMode(gpio_speed, OUTPUT);
115115
analogWrite(gpio_speed, DEFAULT_SPEED);
116116

117-
Node my_node;
117+
Node my_node;
118118
my_node = RMaker.initNode("ESP RainMaker Node");
119119

120120
//Create custom air cooler device
@@ -138,20 +138,22 @@ void setup()
138138
my_device.addParam(mode_param);
139139

140140
my_device.addCb(write_callback);
141-
142-
//Add custom Air Cooler device to the node
141+
142+
//Add custom Air Cooler device to the node
143143
my_node.addDevice(my_device);
144144

145-
//This is optional
145+
//This is optional
146146
// RMaker.enableOTA(OTA_USING_PARAMS);
147-
//If you want to enable scheduling, set time zone for your region using setTimeZone().
147+
//If you want to enable scheduling, set time zone for your region using setTimeZone().
148148
//The list of available values are provided here https://rainmaker.espressif.com/docs/time-service.html
149149
// RMaker.setTimeZone("Asia/Shanghai");
150150
//Alternatively, enable the Timezone service and let the phone apps set the appropriate timezone
151151
// RMaker.enableTZService();
152152

153153
RMaker.enableSchedule();
154154

155+
RMaker.enableScenes();
156+
155157
RMaker.start();
156158

157159
WiFi.onEvent(sysProvEvent);

‎libraries/RainMaker/examples/RMakerSonoffDualR3/RMakerSonoffDualR3.ino

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ void setup()
136136
// Alternatively, enable the Timezone service and let the phone apps set the appropriate timezone
137137
RMaker.enableTZService();
138138
RMaker.enableSchedule();
139+
RMaker.enableScenes();
139140

140141
//Service Name
141142
for(int i=0; i<17; i=i+8) {

‎libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ void setup()
8181

8282
RMaker.enableSchedule();
8383

84+
RMaker.enableScenes();
85+
8486
RMaker.start();
8587

8688
WiFi.onEvent(sysProvEvent);

‎libraries/RainMaker/src/RMaker.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "RMaker.h"
44
#include <esp_rmaker_schedule.h>
55
#include <esp_rmaker_utils.h>
6+
#include <esp_rmaker_scenes.h>
67
bool wifiLowLevelInit(bool persistent);
78
static esp_err_t err;
89

@@ -28,12 +29,12 @@ static void event_handler(void *arg, esp_event_base_t event_base, int32_t event_
2829
log_i("Unhandled RainMaker Event:");
2930
}
3031
} else if (event_base == RMAKER_OTA_EVENT) {
31-
if(event_data == NULL){
32+
if(event_data == NULL){
3233
event_data = (void*)"";
3334
}
3435
switch(event_id) {
3536
case RMAKER_OTA_EVENT_STARTING:
36-
log_i("Starting OTA : %s", (char*)event_data);
37+
log_i("Starting OTA");
3738
break;
3839
case RMAKER_OTA_EVENT_IN_PROGRESS:
3940
log_i("OTA in progress : %s", (char*)event_data);
@@ -146,5 +147,13 @@ esp_err_t RMakerClass::enableOTA(ota_type_t type, const char *cert)
146147
return err;
147148
}
148149

150+
esp_err_t RMakerClass::enableScenes()
151+
{
152+
err = esp_rmaker_scenes_enable();
153+
if (err != ESP_OK) {
154+
log_e("Scenes enable failed");
155+
}
156+
return err;
157+
}
149158
RMakerClass RMaker;
150159
#endif

‎libraries/RainMaker/src/RMaker.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,17 @@ class RMakerClass
2525
{
2626
private:
2727
esp_rmaker_config_t rainmaker_cfg = {false};
28-
28+
2929
public:
30-
30+
3131
void setTimeSync(bool val);
3232
Node initNode(const char *name, const char *type = "ESP RainMaker with Arduino");
3333
esp_err_t deinitNode(Node node);
3434
esp_err_t setTimeZone(const char *tz = "Asia/Shanghai");
3535
esp_err_t enableSchedule();
3636
esp_err_t enableTZService();
3737
esp_err_t enableOTA(ota_type_t type, const char *cert = ESP_RMAKER_OTA_DEFAULT_SERVER_CERT);
38+
esp_err_t enableScenes();
3839
esp_err_t start();
3940
esp_err_t stop();
4041
};

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /