Skip to content

Library for https://sinric.pro - simple way to connect your device to Alexa, Google Home, SmartThings and cloud

License

Notifications You must be signed in to change notification settings

sinricpro/esp8266-esp32-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SinricPro (ESP8266 / ESP32 / RP2040)

arduino-library-badge PlatformIO Registry

Platform ESP8266 Platform ESP32 Raspberry Pi RP2040

Framework

GitHub release (latest by date)

Build

Build

Discord

Installation

VS Code & PlatformIO:

  1. Install VS Code
  2. Install PlatformIO
  3. Create a new Project
  4. Use the Library Manager to add the library to your project or add sinricpro/SinricPro manually to your lib_deps in platformio.ini.

sinricpro library manager

ArduinoIDE

  1. Open Library Manager (Tools / Manage Libraries)
  2. Search for SinricPro and click Install
  3. Repeat step 2 for all dependent libraries!
  4. Open example in ArduinoIDE (File / Examples / SinricPro / ...)

ArduinoIDE Library Manager


Dependencies

  • ArduinoJson by Benoit Blanchon (minimum Version 7.0.3)
  • WebSockets by Markus Sattler (minimum Version 2.4.0)

Full user documentation

Please see here for full user documentation


Examples

See examples on GitHub


Usage

Include SinricPro-Library (SinricPro.h) and SinricPro-Device-Libraries (eg. SinricProSwitch.h)

#include <SinricPro.h>
#include <SinricProSwitch.h>

Define your credentials from SinricPro-Portal (portal.sinric.pro)

#define APP_KEY    "YOUR-APP-KEY"    // Should look like "de0bxxxx-1x3x-4x3x-ax2x-5dabxxxxxxxx"
#define APP_SECRET "YOUR-APP-SECRET" // Should look like "5f36xxxx-x3x7-4x3x-xexe-e86724a9xxxx-4c4axxxx-3x3x-x5xe-x9x3-333d65xxxxxx"
#define SWITCH_ID  "YOUR-DEVICE-ID"  // Should look like "5dc1564130xxxxxxxxxxxxxx"

Define callback routine(s)

bool onPowerState(const String &deviceId, bool &state) {
  Serial.printf("device %s turned %s\r\n", deviceId.c_str(), state?"on":"off");
  return true; // indicate that callback handled correctly
}

In setup()

  // create and add a switch to SinricPro
  SinricProSwitch& mySwitch = SinricPro[SWITCH_ID];
  // set callback function
  mySwitch.onPowerState(onPowerState);
  // startup SinricPro
  SinricPro.begin(APP_KEY, APP_SECRET);

In loop()

  SinricPro.handle();

How to add a device?

Syntax is

  DeviceType& myDevice = SinricPro[DEVICE_ID];

Example

  SinricProSwitch& mySwitch = SinricPro["YOUR-SWITCH-ID-HERE"];

How to retrieve a device for sending an event?

Syntax is

  DeviceType& myDevice = SinricPro[DEVICE_ID];

Example

  SinricProDoorbell& myDoorbell = SinricPro["YOUR-DOORBELL-ID-HERE"];
  myDoorbell.sendDoorbellEvent();

How to send a push notification?

SinricProSwitch& mySwitch = SinricPro[SWITCH_ID];
mySwitch.sendPushNotification("Hello SinricPro!");

Device Types

Other


Licensing and Credits

  • The Arduino IDE is developed and maintained by the Arduino team. The IDE is licensed under GPL.
  • ArduinoJson is licensed under the MIT.
  • WebSockets is licensed under the GNU LGPL.
  • The PlatformIO is developed and maintained by the PlatformIO team. The Core is licensed under Apache License 2.0.

Support for other boards

https://github.com/sinricpro/arduino-variants-sdk

Join the community!

Join us on our Official Discord Server!