- Support SmartButton.
- Fixed Arduino Lint errors
- LICENSE.txt added
- Support OTA Updates
- Module level command support for WiFi settings, ESP Health
Upgrade:
- Upgrade to ArduinoJson 7
Fixed:
- SinricPro.isConnected() still returns true if the connection was lost
- onDisconnectCallback does not fire if the connection is lost.
- BREAKING CHANGE: Remove PowerStateController from Air Quality, Contact, Motion and Temperature sensor.
- Fix examples
- Default Arduino Serial baudrate changed to 115200
- Support Raspberry Pi Pico W
- Fixed version number for PlatformIO library registry
- Fixed Timestamp calculation
- New Timestamp calculation
- Feature: Push Notification.
- Fixed: Issue in RangeController For relative changes, onRangeValue was called instead of onAdjustRangeValue.
- Fixed: Namespace issues with custom devices
- Fixed: Cannot connect to the server.
- "firmwareVersion" WebSocket header added.
- "version" WebSocket header renamed to "SDKVersion"
- Fixed: Namespace implementation
- Fixed: WiFi connection status check
- Add missing CAMERA_MODEL_AI_THINKER in Camera example
- Fixed event limitation in PowerLevelController
- Example "RGB_LED_Stripe_5050.ino" extended to support color temperature
- Example "ACUnit.ino" extended to support onRangeValue / adjustRangeValue
- Fixed include instruction in EventLimiter.h (uppercase / lowercase issue)
- Fixed SinricProBlinds
- Fixed SinricProDimSwitch (include order)
- Namespace implemented Each version gets its own namespace in the form of SINRICPRO_X_Y_Z (SINRICPRO_2_9_6)
- SinricProDevice: implemented registerRequestHandler (used by capabilities to register their requestHandler functions)
- Implemented SinricProStrings to avoid unnecessary string duplication and move the strings into PROGMEM.
- New temperature sensors example added HTU21D & AHT10 (thanks to jpa-welten)
-
Removed types:
DeviceId
,AppKey
andAppSecret
. These are now again of typeString
. -
Include guard is now based on
#pragma once
instead of#ifndef
,#define
and#endif
-
Event-Limiting system changed
Attempting to send events shorter than these minimum waiting times will add the minimum waiting time as a delay to each attempt. If excessive events are tried to be sent (e.g. in a loop) a warning is displayed.Events overview (click for more details)
Events allowed every 1 second Events allowed every 60 seconds sendBrightnessEvent sendAirQualityEvent sendChangeChannelEvent sendPowerSensorEvent sendColorEvent sendTemperatureEvent sendColoColorTemperatureEvent sendContactEvent sendDoorbellEvent sendDoorStateEvent sendBandsEvent sendSelectInputEvent sendLockStateEvent sendModeEvent sendMediaControlEvent sendMotionEvent sendMuteEvent sendSetPercentageEvent sendPowerLevelEvent sendPowerStateEvent sendRangeValueEvent sendTargetTemperatureEvent sendThermostatModeEvent sendToggleStateEvent sendVolumeEvent
- Moved callback definitions outside from class definitions
(possible by the use of a dedicated namespace) - Static-Cast (CRTP) unified to Pointer.
- Fixed: SinricProPowerSensor was missing PowerStateController
- Improved: Improved error message when a callback is not implemented
- Fixed: Compiler error on libb64/cencode.h when ESP8266WebServer is included before SinricPro.h.
- RangeController accepts callbacks for integer and floating point values
- Event limitation takes into account different instances for generic controllers
- SettingController implemented for future use
- Removed external crypto libraries
- Changed & fixed signature calculation
- use std::bind instead lambda functions for member callbacks (SinricProWesockets.h)
Bugfix
- SinricProTemperatureSensor (fixed wrong include)
- SinricProWindowAC (fixed copy & paste error)
- SinricProDevice (getDeviceId was accedently proteced)
New:
- support custom devices
- check for minimum websockets version
Fixed:
- MultiRelays example
- New Example: MultiRelays_advance (see examples/Relay)
- Moved existing relay example to new folder (examples/Relay)
- SSL is now enabled by default
- Internal changes removed QueueList.h and use std::queue instead
- New Examples
- Examples / Light / RGB_LED_Stripe_5050
- Examples / Switch / Relay
- New
- Speaker & TV
onAdjustVolume
callback changed: The new format isbool onAdjustVolume(const String &deviceId, int &volumeDelta, bool volumeDefault);
volumeDefault
:false
if the user specified the amount by which to change the volume; otherwisetrue
- Speaker & TV
Fixed
.c_str()
for AppKey, AppSecret and DeviceId return now a validconst char*
Fixed:
- The examples are now located in subfolders if more than one example is provided
Fixed:
- Switch example
SinricProDevice.getDeviceId()
returnsSinricProId
instead ofchar*
since version 2.7.0
New:
-
Added new classes for AppKey, AppSecret and DeviceId This allows to store credentials efficiently in EEPROM and reduces the internal RAM usage
-
Added function to measure the RTT between device and SinricPro Server (SinricPro.onPong())
Fixed:
- Type mismatches in Crypto.h / Crypto.cpp (to reduce compiler warnings)
Fixed: Air Quality Sensor example for sensor type GP2Y1014AU0F
New:
-
Devices
- AirQualitySensor
-
Examples
- AirQualitySensor
Changed:
- SinricProCamera device type added to support Camera. Camera example updated
New:
-
Devices
- Camera
-
Examples
- Camera
New:
-
Devices
- PowerSensor
-
Examples
- PowerSensor
New:
-
Devices
- Blinds
- GarageDoor
-
Examples
- Thermostat
- Blinds
- GarageDoor
New:
- Examples
- Dimmable Switch
- Light
- Speaker
Updated:
- User documentation
- added SinricPro.onConnected() / SinricPro.onDisconnected()
Fixed:
- Examples
- Some examples didn't use BAUD_RATE
New:
- User Documentation using Doxygen available at https://sinricpro.github.io/esp8266-esp32-sdk
Fixed:
- Some sendEvent functions didn't return
true
/false
- Arduino TV example
New:
- Added new
callback
for TVonChangeChannelNumber
This is to support changing channels using a channel number instead of channel name. - New TV Example
- Added this
changelog.md
Fixed:
- Some sendEvent functions didn't return
true
/false
- Fixed json in
skipChannels
response - Fixed json in
sendChangeChannels
event
Updated Readme
- about return values of sendEvent functions
New:
- Added example for
SinricProTemperaturesensor
Bugfix:
- Fixed typo in
onTargetTemperature
event
New :
- Added GarageDoorExample (ArudinoIDE) including wiring diagram
This is based on
SinricProLock
device
Code optimizations:
- Changed callbacks to use
const String&
in callback functions to avoid unnecessary string copying - Changed event limitiation to prevent server flooding
New Feature:
-
SinricPro.setResponseMessage(String &&message)
allows to return a meaningful error message if callback returned false. This message will shown in a red box on SinricPro portal website. -
SinricProLock return state "JAMMED" now if callback failed (returned false)
Code optimization
-
SinricProDevice is now default handler for powerState event/request
-
SinricProSwitch is now a typedef to SinricProDevice since SinricProDevice handles onPowerState
-
removed unneccessary includes
Bug fixes
- Fixed json protocol on events
- Fixed URL in library.properties
- Fixed UDP
New features:
-
New Callback functions for onConnected / onDisconnected
- SinricPro.onConnected(std::function<void(void)>);
- SinricPro.onDisconnected(std::function<void(void)>);
-
Automatic device addition
- You can use
SinricProSwitch& mySwitch = SinricPro[DEVICEID];
to add a new device.
- You can use
Changed:
- Stronger id validation (app-key, app-secret and deviceIds)
- Added more details to debug log about wrong id's
Fixed:
- Typos
New features:
- Removed NTPClient dependency
- Extract timeStamp from messages Keep timestamp in sync without NTP
- RestoreDeviceStates Request last known device states from server
Changed:
- Processessing of incomming messages Prepared for client-sided requests and server-sided responses
- Processing of outgoing messages Messages stored without signature / timestamp in sendQueue Timestamp and signature will applied while sendQueue is processed
Limited temperature and humidity to one decimal point
New interfaces introduced:
- SinricProInterface
- SinricProDeviceInterface
Marked deprecated functions:
- add(SinricProDeviceInterface& newDevice);
- add(SinricProDeviceInterface* newDevice);
fixed UDP problems on ESP32
SinricPro.add() added deviceId validation check to avoid wrong deviceId's
Devices: Thermostat & WindowAC fixed "adjustTargetTemperature" request
SinricProWebsocket.h added server-address on websocket debug output