#include <WiFi.h>
#include "SinricPro.h"
#include "SinricProSwitch.h"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
#define APP_KEY "eb45b666-f2b1-4f01-b3b1-edd014466557"
#define APP_SECRET "cc549735-858e-41a7-8a03-c0df5875288d-2b83d850-1e49-46fb-8967-2c8fa6f082c1"
#define SWITCH_ID_1 "671935841fbebdc87b459e93"
#define LED1 16
#define BAUD_RATE 115200
#define EVENT_WAIT_TIME 60000
// Callback function for LED state
bool onPowerState1(const String &deviceID, bool &state){
Serial.printf("Device 1 %s\n", state ? "connected" : "off");
digitalWrite(LED1, state ? HIGH : LOW);
return true;
}
void setupWiFi(){
Serial.printf("\r\n[WiFi]: Connecting...");
WiFi.setSleep(false);
WiFi.setAutoReconnect(true);
WiFi.begin(WIFI_SSID, WIFI_PASS);
while(WiFi.status() != WL_CONNECTED){
Serial.printf(".");
delay(250);
}
Serial.printf(" Connecting!\r\n[WiFi]: IP %s\r\n", WiFi.localIP().toString().c_str());
}
void setupSinricPro() {
pinMode(LED1, OUTPUT);
SinricProSwitch &mySwitch1 = SinricPro[SWITCH_ID_1];
mySwitch1.onPowerState(onPowerState1);
SinricPro.onConnected([]() {Serial.printf("Connected Sinric Pro\r\n");});
SinricPro.onDisconnected([]() {Serial.printf("Disconnected Sinric Pro\r\n");});
SinricPro.begin(APP_KEY, APP_SECRET);
}
void setup() {
Serial.begin(BAUD_RATE);
Serial.printf("\r\n\r\n");
setupWiFi();
setupSinricPro();
}
void loop() {
SinricPro.handle();
}