Giter Club home page Giter Club logo

esp-rainmaker's Introduction

ESP RainMaker

Note: For major changes, please refer this file.

Introduction

ESP RainMaker is an end-to-end solution offered by Espressif to enable remote control and monitoring for products based on ESP32 series of SoCs (e.g., ESP32, ESP32-S2, ESP32-C3, ESP32-C6, ESP32-C2, etc.) without any configuration required in the Cloud.

The primary components of this solution are:

  • Claiming Service (to get the Cloud connectivity credentials)
  • RainMaker Agent (i.e. this repo, to develop the firmware)
  • RainMaker Cloud (backend, offering remote connectivity)
  • RainMaker Phone App/CLI (Client utilities for remote access)

The key features of ESP RainMaker are:

  1. Ability to define own devices and parameters, of any type, in the firmware.
  2. Zero configuration required on the Cloud.
  3. Phone apps that dynamically render the UI as per the device information.

Get ESP RainMaker

Please clone this repository using the below command:

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

Note the --recursive option. This is required to pull in the various dependencies into esp-rainmaker. In case you have already cloned the repository without this option, execute this to pull in the submodules: git submodule update --init --recursive

Please check the ESP RainMaker documentation here to get started.

Each example has its own README with additional information about using the example.

Supported ESP-IDF versions

ESP RainMaker can work with ESP IDF 4.1 and above.

Phone Apps

Android

iOS

Discussions

ESP32 Forum

Gitter Chat

esp-rainmaker's People

Contributors

0xjakob avatar aadwaitkale avatar avsheth avatar bbinet avatar chiragatal avatar dejinchen avatar dhavalgujar avatar dhrishi avatar esp-yjm avatar ganeshlandge avatar kedars avatar kelin6 avatar kumekay avatar mahavirj avatar mdvorak avatar pritam-shelke avatar sanketwadekar avatar sayondeep avatar shahpiyushv avatar shivani-tipnis avatar shixinke-orion avatar shubhamdp avatar sivar2311 avatar skywxfang avatar sweetymhaiske avatar v4g4x avatar vikramdattu avatar wqx6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp-rainmaker's Issues

Sharing nodes using API or CLI is not working any more (MEGH-1892)

Dear Team;

I am using rainmaker APIs for a development, but until some time ago I could share my nodes just using "PUT​/{version}​/user​/nodes​/sharing" and putting the email of the user to share to, nevertheless I cannot do that any more, even when I see "success" it returns the following message, but the other user is not able to see the nodes, seems like it only creates a request, but a new step is required, can you please advice me what else should I do?

{
"status": "success",
"description": "Node sharing request added for the user successfully",
"request_id": "8VA7XKjf645v6uyomZExAD"
}

Enhancement proposal (Switch - Socket, Door, Humidity, etc) Icons in phone Apps (MEGH-1847)

Beside this:
#7
there should be a permanent switch UI element whilst current switch element should be renamed to a socket or wall socket.
Door UI element should have Open-Closed and Battery state.
Humidity UI element should have Relative Humidity in percentage.
In addition, just to name a few more useful UI elements:
CO, CO2, water leak, shock, sensors (true - false)
Wind direction and strength
Rain sensor (true-false)
Day / Night sensor (On-Off)
Light intensity (lm, lx, cd)
Human Body sensor

ESP32 (MEGH-1256)

How can i get to connect through a ESP32 with RainMaker . i didn't get it clearly using the documentations , can i get some totorials for the steps that i could use to setup the CLI and how i get the QR code when i flash the example of a switch .
i get this two error in the monitor every time i flash the example
----E (870) esp_rmaker_core: Failed to initialise Node Id. Please perform "claiming" using RainMaker CLI.
----E (870) app_main: Could not initialise node. Aborting!!!
how can i solve them !!!!!!!!

Local Notifications on client phones? (MEGH-1039)

Is this something that is being looked into for the future? I haven't noticed anybody mention it and it seems like it would be a very very useful feature. A lot of my devices need to be able to notify the user if a certain condition is met. This would obviously be most useful through the app. Unless I missed something big I don't see this feature mentioned anywhere or on the roadmap. And since not all IoT devices are just for the user to control, a lot are for monitoring as well I think it could be useful.

Build Issue (MEGH-1098)

Not able to build example - Switch and Fan, did not try others. I get the following error in both:

Error-Part1
Error-Part2

Seems something wrong in led_strip under components.

local control with multiple wifi access point network !! (MEGH-1573)

hello I'm working with esp rainmaker and i tested the new feature " local control " and i find something weird.
when the phone and the esp device are connected to the same WiFi access point the app can discover the esp device.
but when i connect the phone app to different access point but in the same local network the phone app can't reach anymore the esp device.

i don't now if can call this an issue but it still something wrong because a local network is not always with single WiFi access it can be one or more

How to combine ESP32-Rainmaker and ESP32-ADF? (MEGH-1759)

ESP32-ADF use idf version v3.3.2, but ESP32-Rainmaker usb idf version v4.xx.
I checkout higher version of idf for ESP32-ADF, it compile fail.
Then I also checkout lower version(v3.3.2) for ESP32-Rainmaker, it compile fail too.
My project may need to play mp3 or tone except interaction through amazon alexa using ESP32-Rainmaker.

Cannot complete Provisioning (MEGH-1837)

ESP-IDF is 4.4-dev, Andriod App, all downloaded on Feb 12, 2021 developing for esp32s2.

Provisioning:

  1. Sending WIFI credentials (OK)
  2. Configuring WIFI connection (!)
  3. Configuring User-Node association (OK)
  4. Confirming User-Node association (X)

Log debug info:

D (156403) wifi_prov_handlers: Wi-Fi Credentials Applied�[0m
D (156413) httpd_txrx: httpd_send_all: sent = 61�[0m
D (156413) httpd_txrx: httpd_send_all: sent = 2�[0m
D (156423) httpd_txrx: httpd_send_all: sent = 4�[0m
D (156423) httpd_sess: httpd_sess_process: httpd_req_delete�[0m
D (156433) httpd_sess: httpd_sess_process: success�[0m
D (156433) httpd: httpd_server: doing select maxfd+1 = 58�[0m
I (157393) wifi:new:<1,1>, old:<1,1>, ap:<1,1>, sta:<1,0>, prof:1
D (159083) nvs: nvs_set_blob sta.apinfo 700�[0m
I (159093) wifi:state: init -> auth (b0)
D (159093) httpd: httpd_server: processing socket 57�[0m
D (159093) httpd_sess: httpd_sess_process: httpd_req_new�[0m
D (159093) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
I (159103) wifi:state: auth -> assoc (0)
D (159113) httpd_txrx: httpd_recv_with_opt: received length = 128�[0m
D (159113) httpd_parse: read_block: received HTTP request block size = 128�[0m
I (159113) wifi:state: assoc -> run (10)
D (159123) httpd_parse: cb_url: message begin�[0m
D (159123) httpd_parse: cb_url: processing url = /prov-config�[0m
D (159133) httpd_parse: verify_url: received URI = /prov-config�[0m
D (159143) httpd_parse: cb_header_field: headers begin�[0m
D (159143) httpd_txrx: httpd_unrecv: length = 100�[0m
D (159153) httpd_parse: pause_parsing: paused�[0m
D (159153) httpd_parse: cb_header_field: processing field = Accept�[0m
I (159163) wifi:connected with XXX, aid = 5, channel 1, BW20, bssid = xxx
I (159173) wifi:security: WPA2-PSK, phy: bgn, rssi: -95
D (159173) nvs: nvs_set sta.chan 1 1�[0m
D (159183) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (159183) httpd_txrx: httpd_recv_with_opt: pending length = 100�[0m
D (159193) nvs: nvs_set_blob sta.apinfo 700�[0m
I (159193) wifi:pm start, type: 1

D (159203) event: running post WIFI_EVENT:4 with handler 0x40089f88 and context 0x3ffd63cc on loop 0x3ffd5424�[0m
D (159203) event: running post WIFI_EVENT:4 with handler 0x400a8a9c and context 0x3ffd66e4 on loop 0x3ffd5424�[0m
D (159213) esp_netif_handlers: esp_netif action connected with netif0x3ffd6430 from event_id=4�[0m
I (159223) wifi:AP's beacon interval = 102400 us, DTIM period = 1D (159223) esp_netif_lwip: check: remote, if=0x3ffd6430 fn=0x400a5194
�[0m

D (159243) esp_netif_lwip: esp_netif_up_api esp_netif:0x3ffd6430�[0m
D (159243) esp_netif_lwip: check: local, if=0x3ffd6430 fn=0x400a59d4
�[0m
D (159253) esp_netif_lwip: esp_netif_update_default_netif_lwip 0x3ffd6430�[0m
D (159263) esp_netif_lwip: call api in lwip: ret=0x0, give sem�[0m
D (159263) esp_netif_lwip: check: remote, if=0x3ffd6430 fn=0x400a4d90
�[0m
D (159273) esp_netif_lwip: esp_netif_dhcpc_start_api esp_netif:0x3ffd6430�[0m
D (159273) esp_netif_lwip: esp_netif_start_ip_lost_timer esp_netif:0x3ffd6430�[0m
D (159283) esp_netif_lwip: if0x3ffd6430 start ip lost tmr: no need start because netif=0x3ffd64b0 interval=120 ip=0�[0m
D (159293) esp_netif_lwip: starting dhcp client�[0m
D (159303) esp_netif_lwip: call api in lwip: ret=0x0, give sem�[0m
D (159303) event: running post WIFI_EVENT:4 with handler 0x4008f044 and context 0x3ffe43b0 on loop 0x3ffd5424�[0m
D (159313) httpd_parse: read_block: received HTTP request block size = 100�[0m
D (159323) httpd_parse: continue_parsing: skip pre-parsed data of size = 7�[0m
D (159333) httpd_parse: continue_parsing: un-paused�[0m
D (159333) httpd_parse: cb_header_value: processing value = text/plain�[0m
D (159343) httpd_parse: cb_header_field: processing field = Content-type�[0m
D (159353) httpd_parse: cb_header_value: processing value = application/x-www-form-urlencoded�[0m
D (159353) httpd_parse: cb_header_field: processing field = Cookie�[0m
D (159363) httpd_parse: cb_header_value: processing value = session=4184743555�[0m
D (159373) httpd_parse: cb_header_field: processing field = Use�[0m
D (159373) httpd_parse: parse_block: parsed block size = 100�[0m
D (159383) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (159393) httpd_txrx: httpd_recv_with_opt: received length = 128�[0m
D (159393) httpd_parse: read_block: received HTTP request block size = 128�[0m
D (159403) httpd_parse: cb_header_field: processing field = r-Agent�[0m
D (159403) httpd_parse: cb_header_value: processing value = Dalvik/2.1.0 (Linux; U; Android 6.0; Redmi Note 4 MIUI/V10.2.1.0.MBFMIXM)�[0m
D (159423) httpd_parse: cb_header_field: processing field = Host�[0m
D (159423) httpd_parse: cb_header_value: processing value = 192.168.4.1�[0m
D (159433) httpd_parse: cb_header_field: processing field = Connection�[0m
D (159443) httpd_parse: cb_header_value: processing value = Keep-Alive�[0m
D (159443) httpd_parse: cb_header_field: processing field = A�[0m
D (159453) httpd_parse: parse_block: parsed block size = 228�[0m
D (159453) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (159463) httpd_txrx: httpd_recv_with_opt: received length = 45�[0m
D (159473) httpd_parse: read_block: received HTTP request block size = 45�[0m
D (159473) httpd_parse: cb_header_field: processing field = ccept-Encoding�[0m
D (159483) httpd_parse: cb_header_value: processing value = gzip�[0m
D (159493) httpd_parse: cb_header_field: processing field = Content-Length�[0m
D (159493) httpd_parse: cb_header_value: processing value = 2�[0m
D (159503) httpd_parse: cb_headers_complete: bytes read = 300�[0m
D (159513) httpd_parse: cb_headers_complete: content length = 2�[0m
D (159513) httpd_txrx: httpd_unrecv: length = 2�[0m
D (159523) httpd_parse: pause_parsing: paused�[0m
D (159523) httpd_parse: cb_on_body: body begins�[0m
D (159523) httpd_parse: httpd_parse_req: parsing complete�[0m
D (159533) httpd_uri: httpd_uri: request for /prov-config with type 3�[0m
D (159543) httpd_uri: httpd_find_uri_handler: [0] = /proto-ver�[0m
D (159543) httpd_uri: httpd_find_uri_handler: [1] = /prov-session�[0m
D (159553) httpd_uri: httpd_find_uri_handler: [2] = /prov-config�[0m
D (159563) protocomm_httpd: Received cookie session=4184743555�[0m
D (159563) protocomm_httpd: Continuing Session 4184743555�[0m
D (159573) httpd_txrx: httpd_req_recv: remaining length = 2�[0m
D (159573) httpd_txrx: httpd_recv_with_opt: requested length = 2�[0m
D (159583) httpd_txrx: httpd_recv_with_opt: pending length = 2�[0m
D (159583) httpd_txrx: httpd_req_recv: received length = 2�[0m
D (159593) WiFiProvConfig: In wifi_prov_config_command_dispatcher Cmd=0�[0m
D (159603) WiFiProvConfig: Enter cmd_get_status_handler�[0m
D (159603) wifi_prov_handlers: Got state : connecting�[0m
D (159613) httpd_txrx: httpd_send_all: sent = 61�[0m
D (159613) httpd_txrx: httpd_send_all: sent = 2�[0m
D (159623) httpd_txrx: httpd_send_all: sent = 6�[0m
D (159623) httpd_sess: httpd_sess_process: httpd_req_delete�[0m
D (159633) httpd_sess: httpd_sess_process: success�[0m
D (159633) httpd: httpd_server: doing select maxfd+1 = 58�[0m
D (167333) event: running post WIFI_EVENT:15 with handler 0x40089f88 and context 0x3ffd63cc on loop 0x3ffd5424�[0m
D (167333) event: running post WIFI_EVENT:15 with handler 0x4008f044 and context 0x3ffe43b0 on loop 0x3ffd5424�[0m
W (167333) wifi:idx
I (167343) wifi:new:<1,1>, old:<1,1>, ap:<1,1>, sta:<1,0>, prof:1
I (167353) wifi:station: 38:a4:ed:7a:2e:2b join, AID=1, bgn, 40U
D (167353) event: running post WIFI_EVENT:14 with handler 0x40089f88 and context 0x3ffd63cc on loop 0x3ffd5424�[0m
D (167363) event: running post WIFI_EVENT:14 with handler 0x4008f044 and context 0x3ffe43b0 on loop 0x3ffd5424�[0m
D (167483) esp_netif_lwip: esp_netif_get_ip_info esp_netif:0x3ffe159c�[0m
D (167503) esp_netif_lwip: esp_netif_get_ip_info esp_netif:0x3ffe159c�[0m
�[0;32mI (167503) esp_netif_lwip: DHCP server assigned IP to a station, IP is: 192.168.4.2�[0m
D (167513) event: no handlers have been registered for event IP_EVENT:2 posted to loop 0x3ffd5424�[0m
D (168043) httpd: httpd_server: processing listen socket 54�[0m
D (168043) httpd_sess: httpd_sess_close_lru: fd = 57�[0m
D (168053) httpd: httpd_server: doing select maxfd+1 = 58�[0m
D (168053) httpd: httpd_server: processing ctrl message�[0m
D (168063) httpd: httpd_process_ctrl_msg: work�[0m
D (168063) httpd_sess: httpd_sess_delete: fd = 57�[0m
D (168073) httpd: httpd_server: processing listen socket 54�[0m
D (168073) httpd: httpd_accept_conn: newfd = 57�[0m
D (168073) httpd_sess: httpd_sess_new: fd = 57�[0m
D (168083) httpd: httpd_accept_conn: complete�[0m
D (168083) httpd: httpd_server: doing select maxfd+1 = 58�[0m
D (168093) httpd: httpd_server: processing socket 57�[0m
D (168093) httpd_sess: httpd_sess_process: httpd_req_new�[0m
D (168103) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (168113) httpd_txrx: httpd_recv_with_opt: received length = 128�[0m
D (168113) httpd_parse: read_block: received HTTP request block size = 128�[0m
D (168123) httpd_parse: cb_url: message begin�[0m
D (168123) httpd_parse: cb_url: processing url = /�[0m
D (168133) httpd_parse: verify_url: received URI = /�[0m
D (168133) httpd_parse: cb_header_field: headers begin�[0m
D (168143) httpd_txrx: httpd_unrecv: length = 112�[0m
D (168143) httpd_parse: pause_parsing: paused�[0m
D (168153) httpd_parse: cb_header_field: processing field = User-Agent�[0m
D (168153) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (168163) httpd_txrx: httpd_recv_with_opt: pending length = 112�[0m
D (168173) httpd_parse: read_block: received HTTP request block size = 112�[0m
D (168173) httpd_parse: continue_parsing: skip pre-parsed data of size = 11�[0m
D (168183) httpd_parse: continue_parsing: un-paused�[0m
D (168193) httpd_parse: cb_header_value: processing value = Dalvik/2.1.0 (Linux; U; Android 6.0; Redmi Note 4 MIUI/V10.2.1.0.MBFMIXM)�[0m
D (168203) httpd_parse: cb_header_field: processing field = Host�[0m
D (168203) httpd_parse: cb_header_value: processing value = 192.168.4.1�[0m
D (168213) httpd_parse: cb_header_field: processing field = Connec�[0m
D (168223) httpd_parse: parse_block: parsed block size = 112�[0m
D (168223) httpd_txrx: httpd_recv_with_opt: requested length = 128�[0m
D (168233) httpd_txrx: httpd_recv_with_opt: received length = 43�[0m
D (168233) httpd_parse: read_block: received HTTP request block size = 43�[0m
D (168243) httpd_parse: cb_header_field: processing field = tion�[0m
D (168253) httpd_parse: cb_header_value: processing value = Keep-Alive�[0m
D (168253) httpd_parse: cb_header_field: processing field = Accept-Encoding�[0m
D (168263) httpd_parse: cb_header_value: processing value = gzip�[0m
D (168273) httpd_parse: cb_headers_complete: bytes read = 172�[0m
D (168273) httpd_parse: cb_headers_complete: content length = 0�[0m
D (168283) httpd_parse: pause_parsing: paused�[0m
D (168283) httpd_parse: cb_no_body: message complete�[0m
W (168283) wifi:idx:4 (ifx:1, xxx), tid:0, ssn:16, winSize:64
D (168303) httpd_parse: httpd_parse_req: parsing complete�[0m
D (168303) httpd_uri: httpd_uri: request for / with type 1�[0m
D (168313) httpd_uri: httpd_find_uri_handler: [0] = /proto-ver�[0m
D (168313) httpd_uri: httpd_find_uri_handler: [1] = /prov-session�[0m
D (168323) httpd_uri: httpd_find_uri_handler: [2] = /prov-config�[0m
D (168333) httpd_uri: httpd_find_uri_handler: [3] = /prov-scan�[0m
D (168333) httpd_uri: httpd_find_uri_handler: [4] = /cloud_user_assoc�[0m
�[0;33mW (168343) httpd_uri: httpd_uri: URI '/' not found�[0m
�[0;33mW (168343) httpd_txrx: httpd_resp_send_err: 404 Not Found - This URI does not exist�[0m
D (168353) httpd_txrx: httpd_send_all: sent = 69�[0m
D (168363) httpd_txrx: httpd_send_all: sent = 2�[0m
D (168363) httpd_txrx: httpd_send_all: sent = 23�[0m
D (168373) httpd: httpd_server: closing socket 57�[0m
D (168373) httpd_sess: httpd_sess_delete: fd = 57�[0m
D (168383) httpd: httpd_server: doing select maxfd+1 = 56�[0m

Self Claiming for ESP32 (MEGH-1306)

After reading claiming docs, I understand that ESP32-S2 use a secret key programmed in efuse during chip manufacturing to allow self-claiming, but I don't really understand why this secret key is important in the self claiming process.
Actually, Assisted Claiming seems very similar to Self Claiming but does not seem to use any secret key.
So can you explain what prevents ESP32 from having support for Self Claiming and how the ESP32-S2 secret key is used in the cloud claiming service ?

Relationship about Espressif Cloud Service and Azure Cloud (MEGH-1745)

Device report data to azure mqtt cloud, but app device control use cloud service of Espressif? How about their relationship? My team plan to do a wifi dongle to get some products connected to alexa audio. Now, i wonder the bearing and concurrency capability of cloud service of Espressif...

CONFIG_WS2812_LED_ENABLE (MEGH-1891)

When I compiled the example for an ESP32-C3 the led did not work, and the log shows: W (345) ws2812_led: WS2812 LED is disabled. Reviewing the driver code ws2812_led.c requires the CONFIG_WS2812_LED_ENABLE macro to be defined. How is this module activated in the configuration?

esp_claim: Claim Verify Failed (MEGH-913)

  • I have read the documentation esp-rainmaker Programming Guide and the issue is not addressed there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

Environment

  • Core : ESP32-S2-Saola_v1.0
  • app version : iOS & Android Version 1.0.3
  • esp-idf version : v4.2-dev-1303-gcd4fa46f5 & v4.2-dev-1660-g7d7521367
  • esp-rainmaker version :
  • Operating System: linux
  • Power Supply: USB

Problem Description

I can successfully configure the router information using Android and Apple phones, but the calibration is not completed,
The error message is as follows: Claim_Verify_Failed.log

I (102282) wifi:connected with it_zzc, aid = 132, channel 1, BW20, bssid = 38:94:ed:f1:10:70
I (102282) wifi:security type: 3, phy: bgn, rssi: -25
I (102292) wifi:pm start, type: 1

I (102312) wifi:AP's beacon interval = 102400 us, DTIM period = 3
I (103172) app_wifi: Connected with IP Address:10.0.0.8
I (103172) esp_netif_handlers: sta ip: 10.0.0.8, mask: 255.255.255.0, gw: 10.0.0.1
I (103172) wifi_prov_mgr: STA Got IP
I (103172) app_wifi: Provisioning successful
I (103182) esp_claim: Starting the Self Claim Process. This may take time.
W (106422) protocomm_httpd: Closing session as socket 57 was closed
I (106432) wifi:station: f4:06:16:d6:1d:13 leave, AID = 1, bss_flags is 134259, bss:0x3ffe09f8
I (106432) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<1,0>, prof:1
I (106432) wifi:mode : sta (7c:df:a1:00:3f:86)
I (106452) wifi_prov_mgr: Provisioning stopped
E (110122) esp_claim: Invalid response for https://esp-claiming.rainmaker.espressif.com/claim/verify
E (110122) esp_claim: Status = 400, Data = {"status":"failure","description":"Invalid challenge response"}
E (110132) esp_claim: Claim Verify Failed.
E (110142) esp_rmaker_core: esp_rmaker_self_claim_perform() returned -1. Aborting

Receive gpio value from nowhere (MEGH-1035)

Hi,
I have an issue with gpio state.
Esp32 receive two value from nowhere, it is very strange that it happens before wifi connection and after gpio state appears false in rainmaker app.
IMG_20200702_173141

Thanks

Could not build the project with error (MEGH-887)

Hi
error:

esp-rainmaker/components/led_strip/src/led_strip_rmt_ws2812.c:155:14: error: implicit declaration of function 'rmt_get_counter_clock'; did you mean 'rmt_get_source_clk'? [-Werror=implicit-function-declaration]
STRIP_CHECK(rmt_get_counter_clock((rmt_channel_t)config->dev, &counter_clk_hz) == ESP_OK,
^~~~~~~~~~~~~~~~~~~~~

Multi-Device Example crash on posting temperature data (MEGH-1907)

ESP32-S2

To reproduce:
Compile example and upload.

Wait for Temperature to be updated

Log:

I (32458) esp_rmaker_time: The current time is: Thu Mar 4 01:40:12 2021 +0800[CST], DST: No.
I (60508) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":25.50000}}
E (65498) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (65498) task_wdt: - IDLE (CPU 0)
E (65498) task_wdt: Tasks currently running:
E (65498) task_wdt: CPU 0: esp_timer
E (65498) task_wdt: Print CPU 0 (current core) backtrace

Backtrace:0x400C15A3:0x3FFC81B0 0x400245B2:0x3FFC81D0 0x4010CBB4:0x3FF9F7F0 |<-CORRUPTED
0x400c15a3: task_wdt_isr at C:/esp/esp-idf/components/esp_common/src/task_wdt.c:189

0x400245b2: _xt_lowint1 at C:/esp/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1105

0x4010cbb4: aes_ll_get_state at C:\esp\esp-idf\esp-rainmaker\examples\multi_device\build/../../../../components/hal/esp32s2/include/hal/aes_ll.h:140 (discriminator 1)
(inlined by) aes_hal_wait_done at C:/esp/esp-idf/components/hal/aes_hal.c:92 (discriminator 1)

Thank you.

Shows [device connection failed] after QR code scan. (MEGH-1687)

Hi,
I am using ESP32, tried FAN and SWITCH example but not able to complete claiming and provisioning step, please check below snapshots, please help me with possible issue here.

Below snapshot shows successful flashing of ESP32 on assisted claiming mode.
image

Below shows error on QR code scan,
Screenshot_20210107-175141

Below shows Bluetooth device on manual configuration on app,
Screenshot_20210107-175210

Below show error while trying to connect to BLE device,

Screenshot_20210107-175159

how to combine ESP-IDF with ESP Rainmaker components (MEGH-1856)

Hello,

does anyone knows how can i combine ESP-idf and ESP Rainmaker components?

i had open GPIO example from Rainmaker directory and add in c_cpp_properties.json the following:

{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/",
"${env:IDF_PATH}/components/
",
"C:/Users/Alexis/esp/esp-rainmaker/components/",
"C:/Users/Alexis/esp/esp-rainmaker/components/esp_rainmaker/include/
",
"C:/Users/Alexis/esp/esp-rainmaker/examples/common/",
"C:/Users/Alexis/esp/esp-idf/components/
",
"C:/Users/Alexis/esp/esp-idf/components/freertos/",
"C:/Users/Alexis/esp/esp-idf/components/freertos/include/freertos/
"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}

and gives me erros that it can not find stddef.h, limit.h, stdint.h in almost all included files

I am using Visual Studio Code ESP-IDF extension

Thank you
Alexis

RainMaker on ESP32 (MEGH-816)

Hi, I build and flash firmware to an ESP32WROOM, and get this error:

E (824) esp_rmaker_core: Failed to initialise Node Id
E (824) app_main: Could not initialise ESP RainMaker. Aborting!!!

This is Switch example, it build OK and then flash OK too. BOOT and Led output are ok too, it turn ON and OFF the output led. But WiFi dont start .

Thanks!!!
Ale Conti

Question: BLE services/characteristics support (MEGH-1004)

After reading the rainmaker examples, its model of defining devices and attributes in rainmaker projects seemed very similar to how we can define services and characteristics in BLE.

So I was wondering if you were planning to develop some interoperability with BLE so that we can also control our esp device locally with bluetooth when internet connection is not available. This feature would be great!

We sometimes need to operate ESP devices without internet connection (even if the manufacturing/commissioning phase may require a temporary internet connection to configure the device).

Unable to WiFi provision - WiFi not showing (MEGH-1691)

Hi Team,
I'm new to the AWS EduKit. I've been following this tutorial:

https://edukit.workshop.aws/en/getting-started/run-rainmaker.html

Everything goes smooth, until I download the ESP Rainmaker phone app, register an account and try to scan the QR code. The QR code is proper.
The QR scanner picks up the code but displays an error : "PROV_xxxxxx device not found"

The device does not broadcast any WiFi signal, however does broadcast a bluetooth signal "PROV_xxxxxx" which my phones bluetooth scan picks up but the ESP Rainmaker apps, BLE provisioning scan does not pick up at all.
No WiFi connection named(PROV_xxxxxx) is picked up from the device by my phones WiFi scan.

I feel like there may be something wrong with the hardware or the ESP app. I simply can't register the device with the ESP RM app this way.

I think my issue may be different from other issues which report WiFi provisioning. I don't get any errors during build, and the QR code is picked up fine, just the provisioning via ESP app is failing, otherwise the tutorial works fine.

Here's the output returned when uploading the code, you'll notice the alternate URL for getting QR code below too:

[0;32mI (777) boot: Loaded app from partition at offset 0x20000␛[0m
␛[0;32mI (843) boot: Set actual ota_seq=1 in otadata[0]␛[0m
␛[0;32mI (843) boot: Disabling RNG early entropy source...␛[0m
␛[0;32mI (844) psram: This chip is ESP32-D0WD␛[0m
␛[0;32mI (848) spiram: Found 64MBit SPI RAM device␛[0m
␛[0;32mI (852) spiram: SPI RAM mode: flash 80m sram 80m␛[0m
␛[0;32mI (857) spiram: PSRAM initialized, cache is in low/high (2-core) mode.␛[0m
␛[0;32mI (864) cpu_start: Pro cpu up.␛[0m
␛[0;32mI (868) cpu_start: Application information:␛[0m
␛[0;32mI (873) cpu_start: Project name: AWS_IoT_EduKit-Getting_Started␛[0m
␛[0;32mI (880) cpu_start: App version: d5b92ef␛[0m
␛[0;32mI (885) cpu_start: Compile time: Jan 8 2021 14:32:23␛[0m
␛[0;32mI (891) cpu_start: ELF file SHA256: e4cb324775ef3c5f...␛[0m
␛[0;32mI (897) cpu_start: ESP-IDF: 3.40100.200827␛[0m
␛[0;32mI (903) cpu_start: Starting app cpu, entry point is 0x400830b0␛[0m
␛[0;32mI (0) cpu_start: App cpu up.␛[0m
␛[0;32mI (1406) spiram: SPI SRAM memory test OK␛[0m
␛[0;32mI (1406) heap_init: Initializing. RAM available for dynamic allocation:␛[0m
␛[0;32mI (1407) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM␛[0m
␛[0;32mI (1413) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM␛[0m
␛[0;32mI (1419) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM␛[0m
␛[0;32mI (1425) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM␛[0m
␛[0;32mI (1431) heap_init: At 3FFD32A0 len 0000CD60 (51 KiB): DRAM␛[0m
␛[0;32mI (1438) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM␛[0m
␛[0;32mI (1444) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM␛[0m
␛[0;32mI (1450) heap_init: At 4009E608 len 000019F8 (6 KiB): IRAM␛[0m
␛[0;32mI (1457) cpu_start: Pro cpu start user code␛[0m
␛[0;32mI (1462) spiram: Adding pool of 4096K of external SPI memory to heap allocator␛[0m
␛[0;32mI (1482) spi_flash: detected chip: generic␛[0m
␛[0;32mI (1482) spi_flash: flash io: qio␛[0m
␛[0;32mI (1482) cpu_start: Starting scheduler on PRO CPU.␛[0m
␛[0;32mI (0) cpu_start: Starting scheduler on APP CPU.␛[0m
␛[0;32mI (1491) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations␛[0m
␛[0;32mI (1521) gpio: GPIO[39]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 1| Intr:3 ␛[0m
␛[0;32mI (1721) ILI9341: Initialization.␛[0m
␛[0;32mI (1921) ILI9341: Display orientation: LANDSCAPE␛[0m
␛[0;32mI (1921) ILI9341: 0x36 command value: 0x08␛[0m
I (1981) wifi:wifi driver task: 3ffd61b4, prio:23, stack:6656, core=0
␛[0;32mI (1981) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
␛[0;32mI (1981) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
I (2001) wifi:wifi firmware version: 3ea4c76
I (2001) wifi:config NVS flash: enabled
I (2001) wifi:config nano formating: disabled
I (2001) wifi:Init dynamic tx buffer num: 32
I (2011) wifi:Init data frame dynamic rx buffer num: 16
I (2011) wifi:Init management frame dynamic rx buffer num: 16
I (2021) wifi:Init management short buffer num: 32
I (2021) wifi:Init static tx buffer num: 8
I (2031) wifi:Init static rx buffer size: 1600
I (2031) wifi:Init static rx buffer num: 4
I (2041) wifi:Init dynamic rx buffer num: 16
␛[0;32mI (2051) esp_claim: Initialising Assisted Claiming. This may take time.␛[0m
␛[0;32mI (2331) esp_claim: Private key already exists. No need to re-initialise it.␛[0m
␛[0;32mI (2411) esp_rmaker_node: Node ID ----- B8F009C5B61C␛[0m
␛[0;32mI (2411) display: configuring the house␛[0m
␛[0;32mI (2411) display: house configured␛[0m
␛[0;32mI (2421) display: lights off␛[0m
␛[0;32mI (3821) display: configuring the temperature␛[0m
␛[0;32mI (3821) display: temperature configured␛[0m
␛[0;32mI (3901) display: configuring the fan␛[0m
␛[0;32mI (3901) display: configured fan_object␛[0m
␛[0;32mI (3901) display: configured fan_strength_slider␛[0m
␛[0;32mI (3901) display: configured fan_sw1␛[0m
␛[0;32mI (3911) display: fan configured␛[0m
␛[0;32mI (3911) esp_rmaker_time_sync: Initializing SNTP. Using the SNTP server: pool.ntp.org␛[0m
␛[0;32mI (3921) esp_rmaker_core: Starting RainMaker Core Task␛[0m
␛[0;32mI (3931) esp_claim: Waiting for assisted claim to finish.␛[0m
␛[0;32mI (3931) wifi_prov_scheme_ble: BT memory released␛[0m
␛[0;32mI (3941) app_wifi: Starting provisioning␛[0m
␛[0;32mI (4071) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0␛[0m
I (4071) wifi:mode : sta (b8:f0:09:c5:b6:1c)
␛[0;32mI (4071) BTDM_INIT: BT controller compile version [219866f]␛[0m
␛[0;32mI (4071) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE␛[0m
␛[0;32mI (4251) protocomm_nimble: BLE Host Task Started␛[0m
␛[0;32mI (4251) wifi_prov_mgr: Provisioning started with service name : PROV_160c3c ␛[0m
␛[0;32mI (4251) app_wifi: Provisioning started␛[0m
␛[0;32mI (4261) app_wifi: Scan this QR code from the phone app for Provisioning.␛[0m
GAP procedure initiated: advertise; disc_mode=2 adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=256 adv_itvl_max=256

█▀▀▀▀▀█ ▀▀▀█▄█ ▀▄▄▀▀ █ █▀▀▀▀▀█
█ ███ █ ▀▄█ █▄ ▀▄█ ▀█▀▀ █ ███ █
█ ▀▀▀ █ ▄▀█▀▄▀ ▀█▄▀██▄▄▀ █ ▀▀▀ █
▀▀▀▀▀▀▀ █▄▀ █▄█▄█ █ █ █ █ ▀▀▀▀▀▀▀
▀█ ▀█ ▀ ▀▄ ▀▄ ▄▀▀▀█ ▀▄▄ ▀▄▄ ▄▄▀
█ ▀ ▀ ▀▀█▀ ▀▀▀▀▄▄ ▄ ▀ █ ▄█▄█▀
▄▄▀▄ ▀▀███ ▄▄██▄ ▄▀▄ ▄▀█ ▀▄▄▀
▀███▀▀▀▄█▄█ ▄ ▄█▄▀▀█▄ ▀▄▀▄▄█ ▄
█▄ █▄ ▀█▄▀ █▀▀ █▀▄▀▄▀ ▄█ ███▄ ██
▀█ ▄▄▀▀▄ █▄▀▄███▀▄▀█ ▀█ █▀▀ ▀▄▄▀
▄ ▀ ▄▀▀▄█ ▀▀▄▄█▄▀▀█▄█▄█▀▀█ ▀▄ ▄▀
█ ██ ▀▀▀███▄ ▀█▄█▄▀▀█▀█ ▄█ ▀▄▄█
▀▀▀▀ ▀▀▀█▄▄▀▀▄▄██▄█▀█ ▀██▀▀▀█▄▄▀
█▀▀▀▀▀█ ▀██▀▀▀██ ▄▀▄ █▄█ ▀ █ ▄ ▄
█ ███ █ █▄ ▄█▀▀█▀▄█▄▄ ▀██▀▀▀▀▄▄▀▀
█ ▀▀▀ █ ▄▄▀▀ ▄█▀█ █▀ ▀▀███▄▀█ █▄█
▀▀▀▀▀▀▀ ▀ ▀▀ ▀▀ ▀ ▀▀▀▀▀▀

␛[0;32mI (4461) app_wifi: If QR code is not visible, copy paste the below URL in a browser.

https://rainmaker.espressif.com/qrcode.html?data={"ver":"v1","name":"PROV_160c3c","pop":"5c7007c4","transport":"ble"}

␛[0m
␛[0;32mI (4481) app_wifi: Provisioning Started. Name : PROV_160c3c, POP : 5c7007c4␛[0m
␛[0;32mI (63821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":37.25987}}␛[0m
␛[0;32mI (123821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.68064}}␛[0m
␛[0;32mI (183821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.37782}}␛[0m
␛[0;32mI (243821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":35.71349}}␛[0m
␛[0;32mI (303821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.31116}}␛[0m
␛[0;32mI (363821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":36.10451}}␛[0m
␛[0;32mI (423821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":37.63218}}␛[0m
␛[0;32mI (483821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":39.31074}}␛[0m
␛[0;32mI (543821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":40.48790}}␛[0m
␛[0;32mI (603821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":41.08063}}␛[0m
␛[0;32mI (663821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":42.05543}}␛[0m
␛[0;32mI (723821) esp_rmaker_param: Reporting params: {"Temperature Sensor":{"Temperature":42.60798}}␛[0m

ESP32S2 Saola 1 refuses to get esp claim when running the switch example (MEGH-1896)

Board

ESP32S2 Saola 1

ESP-IDF

Head of the repository

ESP-RainMaker

Head of the repository with all the submodules updated to the latest

Description

I was simply following the startup instructions for the rainmaker:
https://rainmaker.espressif.com/docs/get-started.html

Here is the log information:
I (87170) wifi:AP's beacon interval = 102400 us, DTIM period = 2
I (88620) app_wifi: Connected with IP Address:192.168.5.131
I (88620) esp_netif_handlers: sta ip: 192.168.5.131, mask: 255.255.255.0, gw: 192.168.5.1
I (88620) wifi_prov_mgr: STA Got IP
I (88630) app_wifi: Provisioning successful
I (88630) app_main: RainMaker Claim Started.
I (88640) esp_claim: Starting the Self Claim Process. This may take time.
I (90010) wifi:station: ee:90:33:72:13:39 leave, AID = 1, bss_flags is 134259, bss:0x3ffe5288
I (90010) wifi:new:<6,0>, old:<6,2>, ap:<6,2>, sta:<6,0>, prof:1
W (90010) wifi:idx
I (90010) wifi:mode : sta (7c:df:a1:08:e2:a0)
I (90020) wifi_prov_mgr: Provisioning stopped
W (98430) esp-tls: Failed to open new connection in specified timeout
E (98430) TRANS_SSL: Failed to open a new connection
E (98430) HTTP_CLIENT: Connection failed, sock < 0
E (98430) esp_claim: Failed to open connection to https://esp-claiming.rainmaker.espressif.com/claim/initiate
E (98440) esp_claim: Claim Init Request Failed.
E (98450) esp_claim: Claim Init Sequence Failed.
I (98450) app_main: RainMaker Claim Failed.
E (98460) esp_rmaker_core: esp_rmaker_self_claim_perform() returned -1. Aborting
W (98470) esp_rmaker_mqtt: esp_rmaker_mqtt_publish not registered

I (153230) esp_rmaker_time: SNTP Synchronised.
I (153230) esp_rmaker_time: The current time is: Tue Mar 2 16:21:59 2021 +0800[CST], DST: No.

Here is the log from Wireshark when provisioning and trying to connect to the rainmakers server:
esp-dumbs.pcapng.gz
screenshot-20210302-162434

How to configure GPIO for individual device in multiple_device example? (MEGH-1517)

Where to set the GPIO for multiple_device example. Only OUTPUT 19 is available to be configured in the app_driver.c file.
And is there any way to change the icons that is displayed in the mobile application for the specific device type. For example, switch is a common one where i need to display a pump for example. Is it possible? or it will be updated in the future?

[Check node error] API Defintions for Rainmaker Backend Service (MEGH-1598)

Hi,

I'm developing my own web service based on ESP Rainmaker API. I'm with Swagger API, Version 1 (v1)
The next link shows info. about API: https://swaggerapis.rainmaker.espressif.com/#/

I can login and keep active the login without problems. Next lines show url and succesful logs.

URL:
https://api.rainmaker.espressif.com/v1/login

LOGS:
{
"status": "success",
"description": "Login successful",
"idtoken": "idtoken",
"accesstoken": "accesstoken",
"refreshtoken": "refreshtoken"
}

However, when I try to access the params from a node, it returns errors. Next lines show url and logs.

URL:
https://api.rainmaker.espressif.com/v1/user/nodes/params?nodeid=[NodeIdValue]

LOGS:
{
"status": "failure",
"description": "Unauthorized"
}

I don't know what it's happening. Does anyone work with Rainmaker API? Thanks!

Victor

WIFI does not appear (esp32WROOM-32D/WROVER/WROOM-32)

I do everything according to the example. (a month ago this process was successful, there was QR pairing with RAINMAKER and Homekit).

Flashing devices is a success
Also WIFI does not appear when I flash from esp-homekit-sdk

Data from the device monitor:

00:19:54.617 -> x⸮�⸮x�⸮{R⸮⸮�⸮⸮0,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
00:19:54.617 -> mode:DIO, clock div:2
00:19:54.617 -> load:0x3fff0030,len:4
00:19:54.617 -> load:0x3fff0034,len:6964
00:19:54.617 -> load:0x40078000,len:13072
00:19:54.617 -> load:0x40080400,len:3896
00:19:54.617 -> entry 0x40080688
00:19:54.617 -> �[0;32mI (28) boot: ESP-IDF v4.1-dirty 2nd stage bootloader�[0m
00:19:54.733 -> �[0;32mI (28) boot: compile time 00:16:56�[0m
00:19:54.733 -> �[0;32mI (28) boot: chip revision: 1�[0m
00:19:54.733 -> �[0;32mI (31) boot_comm: chip revision: 1, min. bootloader chip revision: 0�[0m
00:19:54.733 -> �[0;32mI (40) boot.esp32: SPI Speed : 40MHz�[0m
00:19:54.733 -> �[0;32mI (43) boot.esp32: SPI Mode : DIO�[0m
00:19:54.733 -> �[0;32mI (47) boot.esp32: SPI Flash Size : 4MB�[0m
00:19:54.733 -> �[0;32mI (52) boot: Enabling RNG early entropy source...�[0m
00:19:54.733 -> �[0;32mI (57) boot: Partition Table:�[0m
00:19:54.733 -> �[0;32mI (61) boot: ## Label Usage Type ST Offset Length�[0m
00:19:54.733 -> �[0;32mI (68) boot: 0 sec_cert unknown 3f 00 0000d000 00003000�[0m
00:19:54.733 -> �[0;32mI (76) boot: 1 nvs WiFi data 01 02 00010000 00006000�[0m
00:19:54.733 -> �[0;32mI (83) boot: 2 otadata OTA data 01 00 00016000 00002000�[0m
00:19:54.733 -> �[0;32mI (91) boot: 3 phy_init RF data 01 01 00018000 00001000�[0m
00:19:54.733 -> �[0;32mI (98) boot: 4 ota_0 OTA app 00 10 00020000 00190000�[0m
00:19:54.733 -> �[0;32mI (106) boot: 5 ota_1 OTA app 00 11 001b0000 00190000�[0m
00:19:54.733 -> �[0;32mI (113) boot: 6 fctry WiFi data 01 02 00340000 00006000�[0m
00:19:54.733 -> �[0;32mI (121) boot: End of partition table�[0m
00:19:54.733 -> �[0;32mI (125) boot_comm: chip revision: 1, min. application chip revision: 0�[0m
00:19:54.733 -> �[0;32mI (132) esp_image: segment 0: paddr=0x00020020 vaddr=0x3f400020 size=0x47108 (291080) map�[0m
00:19:54.745 -> �[0;32mI (252) esp_image: segment 1: paddr=0x00067130 vaddr=0x3ffbdb60 size=0x04008 ( 16392) load�[0m
00:19:54.745 -> �[0;32mI (259) esp_image: segment 2: paddr=0x0006b140 vaddr=0x40080000 size=0x00404 ( 1028) load�[0m
00:19:54.745 -> �[0;32mI (260) esp_image: segment 3: paddr=0x0006b54c vaddr=0x40080404 size=0x04acc ( 19148) load�[0m
00:19:54.757 -> �[0;32mI (276) esp_image: segment 4: paddr=0x00070020 vaddr=0x400d0020 size=0x101e1c (1056284) map�[0m
00:19:55.165 -> �[0;32mI (679) esp_image: segment 5: paddr=0x00171e44 vaddr=0x40084ed0 size=0x18808 (100360) load�[0m
00:19:55.232 -> �[0;32mI (738) boot: Loaded app from partition at offset 0x20000�[0m
00:19:55.232 -> �[0;32mI (738) boot: Disabling RNG early entropy source...�[0m
00:19:55.232 -> �[0;32mI (739) cpu_start: Pro cpu up.�[0m
00:19:55.232 -> �[0;32mI (742) cpu_start: Application information:�[0m
00:19:55.232 -> �[0;32mI (747) cpu_start: Project name: switch�[0m
00:19:55.232 -> �[0;32mI (752) cpu_start: App version: 1.0�[0m
00:19:55.232 -> �[0;32mI (757) cpu_start: Compile time: Oct 13 2020 00:16:39�[0m
00:19:55.279 -> �[0;32mI (763) cpu_start: ELF file SHA256: 5a9de1beab98ca2a...�[0m
00:19:55.279 -> �[0;32mI (769) cpu_start: ESP-IDF: v4.1-dirty�[0m
00:19:55.279 -> �[0;32mI (774) cpu_start: Starting app cpu, entry point is 0x40081368�[0m
00:19:55.279 -> �[0;32mI (0) cpu_start: App cpu up.�[0m
00:19:55.279 -> �[0;32mI (784) heap_init: Initializing. RAM available for dynamic allocation:�[0m
00:19:55.279 -> �[0;32mI (791) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM�[0m
00:19:55.279 -> �[0;32mI (797) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM�[0m
00:19:55.302 -> �[0;32mI (803) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM�[0m
00:19:55.302 -> �[0;32mI (810) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM�[0m
00:19:55.302 -> �[0;32mI (816) heap_init: At 3FFCEA78 len 00011588 (69 KiB): DRAM�[0m
00:19:55.302 -> �[0;32mI (822) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM�[0m
00:19:55.338 -> �[0;32mI (828) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM�[0m
00:19:55.338 -> �[0;32mI (835) heap_init: At 4009D6D8 len 00002928 (10 KiB): IRAM�[0m
00:19:55.338 -> �[0;32mI (841) cpu_start: Pro cpu start user code�[0m
00:19:55.338 -> �[0;32mI (859) spi_flash: detected chip: gd�[0m
00:19:55.338 -> �[0;32mI (860) spi_flash: flash io: dio�[0m
00:19:55.338 -> �[0;32mI (860) cpu_start: Starting scheduler on PRO CPU.�[0m
00:19:55.338 -> �[0;32mI (0) cpu_start: Starting scheduler on APP CPU.�[0m
00:19:55.371 -> �[0;32mI (868) esp_rmaker_commands: Registering command: up-time�[0m
00:19:55.371 -> �[0;32mI (0) esp_rmaker_console: Initialising UART on port 0�[0m
00:19:55.371 -> �[0;32mI (878) uart: queue free spaces: 8�[0m
00:19:55.371 -> �[0;32mI (888) esp_rmaker_commands: Registering command: mem-dump�[0m
00:19:55.371 -> �[0;32mI (888) esp_rmaker_commands: Registering command: task-dump�[0m
00:19:55.371 -> �[0;32mI (898) esp_rmaker_commands: Registering command: cpu-dump�[0m
00:19:55.404 -> �[0;32mI (898) esp_rmaker_commands: Registering command: sock-dump�[0m
00:19:55.404 -> �[0;32mI (908) esp_rmaker_commands: Registering command: heap-trace�[0m
00:19:55.404 -> �[0;32mI (918) esp_rmaker_commands: Registering command: reset-to-factory�[0m
00:19:55.404 -> �[0;32mI (918) esp_rmaker_commands: Registering command: add-user�[0m
00:19:55.404 -> �[0;32mI (928) esp_rmaker_commands: Registering command: get-node-id�[0m
00:19:55.438 -> �[0;32mI (938) esp_rmaker_commands: Registering command: wifi-prov�[0m
00:19:55.438 -> �[0;32mI (938) esp_rmaker_commands: Registering command: local-time�[0m
00:19:55.438 -> �[0;32mI (948) esp_rmaker_commands: Registering command: tz-set�[0m
00:19:55.438 -> �[0;32mI (958) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:3 �[0m
00:19:55.438 -> �[0;32mI (958) gpio: GPIO[19]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 �[0m
00:19:55.472 -> �[0;33mW (968) ws2812_led: WS2812 LED is disabled�[0m
00:19:55.507 -> I (1038) wifi:wifi driver task: 3ffd4ec4, prio:23, stack:6656, core=0
00:19:55.507 -> �[0;32mI (1038) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE�[0m
00:19:55.540 -> �[0;32mI (1038) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE�[0m
00:19:55.540 -> I (1068) wifi:wifi firmware version: 3ea4c76
00:19:55.540 -> I (1068) wifi:config NVS flash: enabled
00:19:55.540 -> I (1068) wifi:config nano formating: disabled
00:19:55.574 -> I (1068) wifi:Init dynamic tx buffer num: 32
00:19:55.574 -> I (1068) wifi:Init data frame dynamic rx buffer num: 32
00:19:55.574 -> I (1078) wifi:Init management frame dynamic rx buffer num: 32
00:19:55.574 -> I (1088) wifi:Init management short buffer num: 32
00:19:55.574 -> I (1088) wifi:Init static rx buffer size: 1600
00:19:55.574 -> I (1088) wifi:Init static rx buffer num: 10
00:19:55.574 -> I (1098) wifi:Init dynamic rx buffer num: 32
00:19:55.608 -> �[0;32mI (1118) esp_claim: Initialising Assisted Claiming. This may take time.�[0m
00:19:55.608 -> �[0;32mI (1148) esp_claim: Private key already exists. No need to re-initialise it.�[0m
00:19:55.640 -> �[0;32mI (1168) app_main: RainMaker Initialised.�[0m
00:19:55.640 -> �[0;32mI (1168) esp_rmaker_node: Node ID ----- 3C71BF5EEA1C�[0m
00:19:55.674 -> �[0;32mI (1178) esp_rmaker_ota: OTA state = 2�[0m
00:19:55.674 -> �[0;32mI (1178) esp_rmaker_ota_using_params: OTA enabled with Params�[0m
00:19:55.674 -> �[0;32mI (1178) esp_rmaker_time_sync: Initializing SNTP. Using the SNTP server: pool.ntp.org�[0m
00:19:55.674 -> �[0;32mI (1188) esp_rmaker_core: Starting RainMaker Core Task�[0m
00:19:55.674 -> �[0;32mI (1198) app_main: RainMaker Claim Started.�[0m
00:19:55.674 -> �[0;32mI (1198) esp_claim: Waiting for assisted claim to finish.�[0m
00:19:55.708 -> �[0;32mI (1198) wifi_prov_scheme_ble: BT memory released�[0m
00:19:55.708 -> �[0;32mI (1208) app_wifi: Starting provisioning�[0m
00:19:55.813 -> �[0;32mI (1318) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0�[0m
00:19:55.813 -> I (1318) wifi:mode : sta (3c:71:bf:5e:ea:1c)
00:19:55.813 -> �[0;32mI (1328) BTDM_INIT: BT controller compile version [219866f]�[0m
00:19:55.813 -> �[0;32mI (1328) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE�[0m
00:19:56.157 -> �[0;32mI (1688) wifi_prov_mgr: Provisioning started with service name : PROV_5EEA1C �[0m
00:19:56.190 -> �[0;32mI (1688) app_wifi: Provisioning started�[0m
00:19:56.190 -> �[0;32mI (1688) app_wifi: Scan this QR code from the phone app for Provisioning.�[0m
00:19:56.258 ->
00:19:56.258 -> █▀▀▀▀▀█ ▀▀▀█▄█ █▀▄ ▀█▀ █▀▀▀▀▀█
00:19:56.258 -> █ ███ █ ▀▄█ █▄ ▀▄█▀ ▀ ▄ █ ███ █
00:19:56.258 -> █ ▀▀▀ █ ▄▀█▀▄▀ ▀█ ▀▀▀▄█ █ ▀▀▀ █
00:19:56.258 -> ▀▀▀▀▀▀▀ █▄▀ █▄█▄█ ▀▄▀ █ ▀ ▀▀▀▀▀▀▀
00:19:56.293 -> ▀▀▄▀▀▄▀▄ ▀▄ ▀▄ ▄▀▀▄█ ▀▄▄ ▀▄▄ ▄▄▀
00:19:56.293 -> ▀▄ ███▀ ▄▀ ▀▀▀▀▄█ ▄▀ ▀ █ ▄█▄█▀
00:19:56.293 -> ▀▀ ▀ ▄▀▀███ ▄▄██▄ ▄▀▄▀ ▄▀█ ▀▄▄▀
00:19:56.293 -> ██▀ ▄█▀█▄ ▄ ▄█▄ ▀█▄ ▀▄▀▄▄█ ▄
00:19:56.330 -> █ ▀▀██▀ █▀██▀▀ █▀▄▀▄▀ ▄█ ███▄ ██
00:19:56.330 -> █ █▀▀ ▀▄▄▀▄███ ▀█ ▀█ █▀▀ ▀▄▄▀
00:19:56.330 -> █▀▄▀██▀▀▀ █▀▄▄█▄▀▀█▄█▄█▀▀█ ▀▄ ▄▀
00:19:56.330 -> █ ▄▀ ▄▀█▄█▀█▄ ▀█▄█▄▀▀█▀█ ▄█ ▀▄▄█
00:19:56.330 -> ▀▀ ▀ ▀ █▀▀▀▀▄▄██▄█▀█ ▀██▀▀▀█▄▄▀
00:19:56.363 -> █▀▀▀▀▀█ ▄ █▀▀▀██ ▄▀▄ █▄█ ▀ █ ▄ ▄
00:19:56.363 -> █ ███ █ █▄▀▄█▀▀█▀▄█▄▄ ▀██▀▀▀▀▄▄▀▀
00:19:56.363 -> █ ▀▀▀ █ ▄█▀▀ ▄█▀█ █▀ ▀▀███▄▀█ █▄█
00:19:56.363 -> ▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀ ▀ ▀▀▀▀▀▀
00:19:56.401 ->
00:19:56.401 ->
00:19:56.401 -> �[0;32mI (1898) app_wifi: If QR code is not visible, copy paste the below URL in a browser.
00:19:56.401 -> https://rainmaker.espressif.com/qrcode.html?data={"ver":"v1","name":"PROV_5EEA1C","pop":"5d1f5ea7","transport":"ble"}�[0m
00:19:56.401 -> �[0;32mI (1918) app_wifi: Provisioning Started. Name : PROV_5EEA1C, POP : 5d1f5ea7�[0m
00:20:45.334 -> �[0;31mE (50848) security1: Security version mismatch. Closing connection�[0m
00:20:45.334 -> �[0;31mE (50848) protocomm_ble: Invalid content received, killing connection�[0m

Push Button UI element (MEGH-916)

This is a feature request to add a push button UI element. Basically like a doorbell. A button that does not remember state. It can possible send true when you push it, and when you push it again, it will send true as the value again.
It can be used for example to trigger an open or close of a gate or garage door.

Proposal: virtual devices (MEGH-1590)

I am fortunate to have an extremely extensive home automation system, probably one of the most complete in my country (Italy), and for this reason I realize the extreme importance of RainMaker.
Implementing a pervasive home automation using standard components is not possible; you can reach a good approximation of what you want but without the possibility of writing custom code INSIDE the single components the approximations will always be ... approximations.
RainMaker is the answer, that's exactly what was needed!
Starting from this consideration, I would like to suggest the support of three categories of entirely software devices, i.e. not dedicated to the management / reading of the status of physical machines but to the provision of services to the various components that manage home automation.
I'll give you a trivial example: the support for algorithms that have to choose different paths based on whether a certain event has or has not occurred IN THE PAST (let's say it has rained or not) in the decision to activate or not activate the watering some flower pots.
Well, using standard components (Sonoff, Meross ... whatever you want) is a disaster because there are no components designed for this purpose. The only solution is to buy relay cards, which have at most four channels, and use them as flags.
And if the information to be memorized is not digital but analogue ... well it's over because managing it becomes very complicated.
Starting from this reality, with which I have encountered many times, I suggest to introduce the support of three categories of "virtual" devices: digital flags (bool), analog flags (integer) and timers.
These devices could be understood as global variables that can be managed in reading and writing by all the components that make up the home automation system, just as the global variables in an application are visible to all the routines that implement them.
In fact, a trigger category would also be needed, but once the support for what I suggested is implemented it could be created using what is already present.

In summary, my idea is to have support for virtual devices that implement ... let's say 256 (or 1024, they are virtual and cost nothing) variables that can be read by all the other ESP32s on the network.
In the initial phase, free and common access would be fine, later on we can think about the introduction of protection mechanisms and scope.

Thanks for your attention, Federico

claim <port> (MEGH-1257)

i got an error every time i do this step :
$ python rainmaker.py claim 'COM7'

[ERROR]:Failed to connect to Espressif device: Timed out waiting for packet header
Failed to connect to Espressif device: Timed out waiting for packet header

what should i do !!

Time Zone setting in the device (MEGH-1516)

I am trying to set the time zone for my device as IST by editing the code as per the documentation - https://rainmaker.espressif.com/docs/time-service.html#time-service.

First i tried to add the following timezone region:

const char *tz = "Asia/Kolkata";
esp_err_t esp_rmaker_time_set_timezone(*tz);

and the second one using the posix timezone:

const char *tz_posix = "IST-5:30";
esp_err_t esp_rmaker_time_set_timezone_posix(*tz_posix);

both throw the error

"../main/app_main.c: In function 'app_main':
../main/app_main.c:161:44: error: expected declaration specifiers or '...' before '*' token
esp_err_t esp_rmaker_time_set_timezone(*tz);
^
[1212/1219] Linking CXX static library esp-idf\esp_rainmaker\libesp_rainmaker.a
ninja: build stopped: subcommand failed.
ninja failed with exit code 1"

Tried with the code,

const char *tz = "Asia/Kolkata";
esp_err_t esp_rmaker_timezone_service_enable(void);
esp_err_t esp_rmaker_time_set_timezone(tz);

throwing the warning

[1212/1219] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/app_main.c.obj
../main/app_main.c: In function 'app_main':
../main/app_main.c:162:5: warning: parameter names (without types) in function declaration
esp_err_t esp_rmaker_time_set_timezone(tz);
^~~~~~~~~

What is the issue here? If not Am i doing this in a wrong manner?

WiFi Provisioning for custom phone app (MEGH-1001)

How would I go about implementing the WiFi Provisioning in my own phone app?
I would wanna build this phone app with React Native.

The REST API only seems to expose interaction for after the device has been provisioned and mapped to a user. So how would I go about implementing this provisioning/mapping step?

Rainmaker when WiFi is not available (MEGH-1719)

Hi Team;

I'm new with esp32 but really exited about all possibilities it offers fot IoT Devs, I am using rainmaker for some developments and works great, nevertheless I have an application for a device that need to work in the field where not WiFi is available, so I wonder if there a way to use cellular connection instead (i.e. using # PPP over Serial (PPPoS) client example thought SIM800L or similar), can you give your thoughts about this or any ideas?

Alexa Temperature (MEGH-1437)

Rainmaker temperature devices do not show up in Alexa. I have other devices that show temperature in Alexa, so it should be able to support it.

Need Support for ESP8266 with RTOS SDK (MEGH-980)

Hi team,

I check out esp-rainmaker for esp32, I wanted to know if it can also be used with esp8266 along with the ESP8266_RTOS_SDK?

If you have any suggestions to make the port please let me know.

Error While building (MEGH-1524)

Hello guys,

I have install ESP-IDF and i can build its examples projects then i download the ESP Rainmaker and extract in on me C:/.

To build switch ESP Rainmaker Example, i am opening the ESP-IDF Command prompt, i change directory to switch directory and executing idf.py build and its start building but it gives me the following error

Using Python in C:\Python38
Python 3.8.6
Using Git in C:\Program Files\Git\cmd
git version 2.28.0.windows.1
Setting IDF_PATH: C:\esp-idf

Adding ESP-IDF tools to PATH...
C:\Users\Alexis.espressif\tools\xtensa-esp32s2-elf\esp-2020r2-8.2.0\xtensa-esp32s2-elf\bin
C:\Users\Alexis.espressif\tools\esp32ulp-elf\2.28.51-esp-20191205\esp32ulp-elf-binutils\bin
C:\Users\Alexis.espressif\tools\esp32s2ulp-elf\2.28.51-esp-20191205\esp32s2ulp-elf-binutils\bin
C:\Users\Alexis.espressif\tools\idf-exe\1.0.1
C:\Users\Alexis.espressif\tools\ccache\3.7
C:\Users\Alexis.espressif\python_env\idf4.1_py3.8_env\Scripts

Checking if Python packages are up to date...
Python requirements from C:\esp-idf\requirements.txt are satisfied.

Done! You can now compile ESP-IDF projects.
Go to the project directory and run:

idf.py build

C:\esp-idf>cd C:\esp-rainmaker\examples\switch

C:\esp-rainmaker\examples\switch>idf.py build
Executing action: all (aliases: build)
Running cmake in directory c:\esp-rainmaker\examples\switch\build
Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 --warn-uninitialized -DCCACHE_ENABLE=1 c:\esp-rainmaker\examples\switch"...
Warn about uninitialized values.
-- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.28.0.windows.1")
-- IDF_TARGET not set, using default target: esp32
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 8.2.0
-- The CXX compiler identification is GNU 8.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/Users/Alexis/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
-- Check for working C compiler: C:/Users/Alexis/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
-- Check for working C compiler: C:/Users/Alexis/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Users/Alexis/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++.exe
-- Check for working CXX compiler: C:/Users/Alexis/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Project version: 1.0
-- Building ESP-IDF components for target esp32
Loading defaults file C:/esp-rainmaker/examples/switch/sdkconfig.defaults...
C:\Users\Alexis\AppData\Local\Temp\confgen_tmp8z3uhi6e:2 line was updated to CONFIG_PARTITION_TABLE_SINGLE_APP=n
C:\Users\Alexis\AppData\Local\Temp\confgen_tmp8z3uhi6e:3 line was updated to CONFIG_PARTITION_TABLE_TWO_OTA=n
-- Found PythonInterp: C:/Users/Alexis/.espressif/python_env/idf4.1_py3.8_env/Scripts/python.exe (found version "3.8.6")
-- Could NOT find Perl (missing: PERL_EXECUTABLE)
-- Adding linker script C:/esp-rainmaker/examples/switch/build/esp-idf/esp32/esp32_out.ld
-- Adding linker script C:/esp-idf/components/esp32/ld/esp32.project.ld.in
-- Adding linker script C:/esp-idf/components/esp32/ld/esp32.peripherals.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-time.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script C:/esp-idf/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
CMake Error at C:/esp-idf/tools/cmake/component.cmake:302 (message):
Include directory
'C:/esp-rainmaker/components/json_parser/upstream/include' is not a
directory.
Call Stack (most recent call first):
C:/esp-idf/tools/cmake/component.cmake:470 (__component_add_include_dirs)
C:/esp-rainmaker/components/json_parser/CMakeLists.txt:1 (idf_component_register)

-- Configuring incomplete, errors occurred!
See also "C:/esp-rainmaker/examples/switch/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1

C:\esp-rainmaker\examples\switch>

Can anyone help with this?

Thanks,
Alexis

Select icon to display in mobile app (MEGH-1438)

It would be a great enhancement if it is possible to specify what icon to use in the mobile app. Basically a list of default images we can select to display when we create the device in rainmaker firmware. For example, I want to switch a pump, so I use a switch device, but would like the icon to be of a pump or similar.

Questions : About time zone and temperature value (MEGH-1953)

Hello guys,

According to the title i would like to ask how can i set the time and time zone with the mobile phone to get the local time automatically?

And how can i make the value of temperature to be only an integer value, just 22, not a float like in the picture below?

Screenshot_20210312_163743

Alexa skill in Italy (MEGH-1585)

Hi guys,
first of all congratulations for the fantastic job you are doing.
Please note that the Alexa skill is not available in Italy, which makes it a bit problematic to use this system outside of simple tests.
Would it be possible to solve the problem?

Thanks, Federico

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.