SinricPro Library
Loading...
Searching...
No Matches
SinricPro (ESP8266 / ESP32 / RP2040)

arduino-library-badge PlatformIO Registry

"" "![Platform ESP8266](https://img.shields.io/badge/Platform-Espressif8266-orange)" "" "![Platform ESP32](https://img.shields.io/badge/Platform-Espressif32-orange)"

Framework

GitHub release (latest by date)

Build

Note

  1. Use the latest ESP8226/ESP32/RP2040 Arduino Core!
  2. Use the latest WebSocktes library!
  3. Use the latest ArduinoJson library!

Installation

VS Code & PlatformIO:

  1. Install VS Code
  2. Install PlatformIO
  3. Install SinricPro library by using Library Manager
  4. Use included platformio.ini file from examples to ensure that all dependent libraries will installed automaticly.

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 6.12.0)
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);
void begin(String appKey, String appSecret, String serverURL="ws.sinric.pro")
Initializing SinricProClass to be able to connect to SinricPro Server.
Definition SinricPro.h:176

In loop()

++
SinricPro.handle();
void handle()
Handles communication between device and SinricPro Server.
Definition SinricPro.h:234

How to add a device?

Syntax is

++
DeviceType& myDevice = SinricPro[DEVICE_ID];

Example

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

Example 2 (alternatively)

++
SinricProSwitch& mySwitch = SinricPro.add<SinricProSwitch>("YOUR-SWITCH-ID-HERE");

How to retrieve a device for sending an event?

Syntax is

++
DeviceType& myDevice = SinricPro[DEVICE_ID];

Example 1

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

Example 2 (alternatively)

++
SinricPro["YOUR-DOORBELL-ID-HERE"].as<SinricProDoorbell>().sendDoorbellEvent();

How to send a push notification?

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

Devices

  • Switch
  • Dimmable Switch
  • Light
  • TV
  • Speaker
  • Thermostat
  • Fan (US and non US version)
  • Lock
  • Doorbell
  • Temperaturesensor
  • Motionsensor
  • Contactsensor
  • Windows Air Conditioner
  • Interior Blinds
  • Garage Door

* Custom devices