esp8266-esp32-sdk
esp8266-esp32-sdk copied to clipboard
Library for https://sinric.pro - simple way to connect your device to Alexa, Google Home, SmartThings and cloud
SinricPro (ESP8266 / ESP32 SDK)
Note
- Use the latest ESP Arduino Core!
- Use the latest WebSocktes library!
Installation
VS Code & PlatformIO:
- Install VS Code
- Install PlatformIO
- Install SinricPro library by using Library Manager
- Use included platformio.ini file from examples to ensure that all dependent libraries will installed automaticly.
ArduinoIDE
- Open Library Manager (Tools / Manage Libraries)
- Search for SinricPro and click Install
- Repeat step 2 for all dependent libraries!
- Open example in ArduinoIDE (File / Examples / SinricPro / ...)
Dependencies
ArduinoJson by Benoit Blanchon (minimum Version 6.12.0)
WebSockets by Markus Sattler (minimum Version 2.3.5)
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"];
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