Skip to content

Commit 153773f

Browse files
authored
Merge pull request #26 from sinricpro/dev-2.3.0
Dev 2.3.0 New: - Devices - Blinds - GarageDoor - Examples - Thermostat - Blinds - GarageDoor
2 parents 74c818c + 8c8d87d commit 153773f

File tree

86 files changed

+4127
-1015
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+4127
-1015
lines changed

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

2-
# SinricPro (ESP8266 / ESP32 SDK)
3-
## Version 2.2.7
2+
# SinricPro (ESP8266 / ESP32 SDK) {#mainpage}
3+
44
## Installation
55

66
### VS Code & PlatformIO:
@@ -27,6 +27,11 @@
2727

2828
---
2929

30+
## Full user documentation
31+
Please see here for [full user documentation](https://sinricpro.github.io/esp8266-esp32-sdk)
32+
33+
---
34+
3035
## Examples
3136
See [examples](https://github.com/sinricpro/esp8266-esp32-sdk/tree/master/examples) on GitHub
3237

@@ -117,9 +122,8 @@ Example 1
117122
* Motionsensor
118123
* Contactsensor
119124
* Windows Air Conditioner
125+
* Interior Blinds
126+
* Garage Door
120127

121128
---
122129

123-
# Full user documentation
124-
Please see here for [full user documentation](https://sinricpro.github.io/esp8266-esp32-sdk)
125-

changelog.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## Version 2.3.0
4+
New:
5+
- Devices
6+
- Blinds
7+
- GarageDoor
8+
9+
- Examples
10+
- Thermostat
11+
- Blinds
12+
- GarageDoor
13+
314
## Version 2.2.7
415

516
New:

doc-examples/callbacks.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,3 +376,29 @@ bool onSelectInput(const String &deviceId, String &input) {
376376
//! [onDisconnected]
377377
SinricPro.onDisconnected([](){ Serial.printf("Disconnected from SinricPro\r\n"); });
378378
//! [onDisconnected]
379+
380+
//! [onSetPosition]
381+
bool onSetPosition(const String &deviceId, int &position) {
382+
Serial.printf("Device %s set position to %d\r\n", deviceId.c_str(), position);
383+
return true;
384+
}
385+
//! [onSetPosition]
386+
387+
//! [onAdjustPosition]
388+
int blindsPosition;
389+
390+
bool onAdjustPosition(const String &deviceId, int &positionDelta) {
391+
blindsPosition += positionDelta;
392+
Serial.printf("Device %s position changed about %i to %d\r\n", deviceId.c_str(), positionDelta, blindsPosition);
393+
positionDelta = blindsPosition;
394+
return true;
395+
}
396+
//! [onAdjustPosition]
397+
398+
//! [onDoorState]
399+
bool onDoorState(const String &deviceId, bool &doorState) {
400+
Serial.printf("Device %s garage door is now %s\r\n", deviceId.c_str(), doorState?"closed":"open");
401+
return true;
402+
}
403+
//! [onDoorState]
404+

docs/_sinric_pro_8h_source.html

Lines changed: 400 additions & 399 deletions
Large diffs are not rendered by default.

docs/_sinric_pro_blinds_8h_source.html

Lines changed: 206 additions & 0 deletions
Large diffs are not rendered by default.

docs/_sinric_pro_config_8h_source.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@
132132
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
133133
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// Version Configuration</span></div>
134134
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION_MAJOR 2</span></div>
135-
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION_MINOR 2</span></div>
136-
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION_REVISION 7</span></div>
135+
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION_MINOR 3</span></div>
136+
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION_REVISION 0</span></div>
137137
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define SINRICPRO_VERSION STR(SINRICPRO_VERSION_MAJOR) &quot;.&quot; STR(SINRICPRO_VERSION_MINOR) &quot;.&quot; STR(SINRICPRO_VERSION_REVISION)</span></div>
138138
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
139139
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Server Configuration</span></div>

docs/_sinric_pro_garage_door_8h_source.html

Lines changed: 195 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml">
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5+
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6+
<meta name="generator" content="Doxygen 1.8.16"/>
7+
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8+
<title>SinricPro Library: src/SinricProPowerMeter.h Source File</title>
9+
<link href="tabs.css" rel="stylesheet" type="text/css"/>
10+
<script type="text/javascript" src="jquery.js"></script>
11+
<script type="text/javascript" src="dynsections.js"></script>
12+
<link href="navtree.css" rel="stylesheet" type="text/css"/>
13+
<script type="text/javascript" src="resize.js"></script>
14+
<script type="text/javascript" src="navtreedata.js"></script>
15+
<script type="text/javascript" src="navtree.js"></script>
16+
<script type="text/javascript">
17+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
18+
$(document).ready(initResizable);
19+
/* @license-end */</script>
20+
<link href="search/search.css" rel="stylesheet" type="text/css"/>
21+
<script type="text/javascript" src="search/searchdata.js"></script>
22+
<script type="text/javascript" src="search/search.js"></script>
23+
<script type="text/javascript">
24+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
25+
$(document).ready(function() { init_search(); });
26+
/* @license-end */
27+
</script>
28+
<link href="doxygen.css" rel="stylesheet" type="text/css" />
29+
</head>
30+
<body>
31+
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
32+
<div id="titlearea">
33+
<table cellspacing="0" cellpadding="0">
34+
<tbody>
35+
<tr style="height: 56px;">
36+
<td id="projectalign" style="padding-left: 0.5em;">
37+
<div id="projectname">SinricPro Library
38+
</div>
39+
</td>
40+
</tr>
41+
</tbody>
42+
</table>
43+
</div>
44+
<!-- end header part -->
45+
<!-- Generated by Doxygen 1.8.16 -->
46+
<script type="text/javascript">
47+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
48+
var searchBox = new SearchBox("searchBox", "search",false,'Search');
49+
/* @license-end */
50+
</script>
51+
<div id="navrow1" class="tabs">
52+
<ul class="tablist">
53+
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
54+
<li><a href="annotated.html"><span>Classes</span></a></li>
55+
<li>
56+
<div id="MSearchBox" class="MSearchBoxInactive">
57+
<span class="left">
58+
<img id="MSearchSelect" src="search/mag_sel.png"
59+
onmouseover="return searchBox.OnSearchSelectShow()"
60+
onmouseout="return searchBox.OnSearchSelectHide()"
61+
alt=""/>
62+
<input type="text" id="MSearchField" value="Search" accesskey="S"
63+
onfocus="searchBox.OnSearchFieldFocus(true)"
64+
onblur="searchBox.OnSearchFieldFocus(false)"
65+
onkeyup="searchBox.OnSearchFieldChange(event)"/>
66+
</span><span class="right">
67+
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
68+
</span>
69+
</div>
70+
</li>
71+
</ul>
72+
</div>
73+
</div><!-- top -->
74+
<div id="side-nav" class="ui-resizable side-nav-resizable">
75+
<div id="nav-tree">
76+
<div id="nav-tree-contents">
77+
<div id="nav-sync" class="sync"></div>
78+
</div>
79+
</div>
80+
<div id="splitbar" style="-moz-user-select:none;"
81+
class="ui-resizable-handle">
82+
</div>
83+
</div>
84+
<script type="text/javascript">
85+
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
86+
$(document).ready(function(){initNavTree('_sinric_pro_power_meter_8h_source.html','');});
87+
/* @license-end */
88+
</script>
89+
<div id="doc-content">
90+
<!-- window showing the filter options -->
91+
<div id="MSearchSelectWindow"
92+
onmouseover="return searchBox.OnSearchSelectShow()"
93+
onmouseout="return searchBox.OnSearchSelectHide()"
94+
onkeydown="return searchBox.OnSearchSelectKey(event)">
95+
</div>
96+
97+
<!-- iframe showing the search results (closed by default) -->
98+
<div id="MSearchResultsWindow">
99+
<iframe src="javascript:void(0)" frameborder="0"
100+
name="MSearchResults" id="MSearchResults">
101+
</iframe>
102+
</div>
103+
104+
<div class="header">
105+
<div class="headertitle">
106+
<div class="title">SinricProPowerMeter.h</div> </div>
107+
</div><!--header-->
108+
<div class="contents">
109+
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef _SINRICPOWERMETER_H_</span></div>
110+
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define _SINRICPOWERMETER_H_</span></div>
111+
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160; </div>
112+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;SinricProDevice.h&quot;</span></div>
113+
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
114+
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_sinric_pro_power_sensor.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sinric_pro_power_sensor.html">SinricProPowerSensor</a> : <span class="keyword">public</span> <a class="code" href="class_sinric_pro_device.html">SinricProDevice</a> {</div>
115+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">public</span>:</div>
116+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_sinric_pro_power_sensor.html">SinricProPowerSensor</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* deviceId, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> eventWaitTime=100);</div>
117+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// event</span></div>
118+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_sinric_pro_power_sensor.html#a6924b8cdd708ead3674671c2f5325de2">sendPowerSensorEvent</a>(<span class="keywordtype">float</span> voltage, <span class="keywordtype">float</span> current, <span class="keywordtype">float</span> power=-1f, <span class="keywordtype">float</span> apparentPower=-1f, <span class="keywordtype">float</span> reactivePower=-1f, <span class="keywordtype">float</span> factor=-1f, String cause = <span class="stringliteral">&quot;PERIODIC_POLL&quot;</span>);</div>
119+
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">private</span>:</div>
120+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div>
121+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
122+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;SinricProPowerSensor::SinricProPowerSensor(<span class="keyword">const</span> <span class="keywordtype">char</span>* deviceId, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> eventWaitTime) : <a class="code" href="class_sinric_pro_device.html">SinricProDevice</a>(deviceId, eventWaitTime) {}</div>
123+
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
124+
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_sinric_pro_power_sensor.html#a6924b8cdd708ead3674671c2f5325de2"> 75</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sinric_pro_power_sensor.html#a6924b8cdd708ead3674671c2f5325de2">SinricProPowerSensor::sendPowerSensorEvent</a>(<span class="keywordtype">float</span> voltage, <span class="keywordtype">float</span> current, <span class="keywordtype">float</span> power, <span class="keywordtype">float</span> apparentPower, <span class="keywordtype">float</span> reactivePower, <span class="keywordtype">float</span> factor, String cause) {</div>
125+
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; DynamicJsonDocument eventMessage = prepareEvent(deviceId, <span class="stringliteral">&quot;devicePowerUsage&quot;</span>, cause.c_str());</div>
126+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; JsonObject event_value = eventMessage[<span class="stringliteral">&quot;payload&quot;</span>][<span class="stringliteral">&quot;value&quot;</span>];</div>
127+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span> (power == -1) power = voltage * current;</div>
128+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (apparentPower != -1) factor = power / apparentPower;</div>
129+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; event_value[<span class="stringliteral">&quot;voltage&quot;</span>] = voltage;</div>
130+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; event_value[<span class="stringliteral">&quot;current&quot;</span>] = current;</div>
131+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; event_value[<span class="stringliteral">&quot;power&quot;</span>] = power;</div>
132+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; event_value[<span class="stringliteral">&quot;apparentPower&quot;</span>] = apparentPower;</div>
133+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; event_value[<span class="stringliteral">&quot;reactivePower&quot;</span>] = reactivePower;</div>
134+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; event_value[<span class="stringliteral">&quot;factor&quot;</span>] = factor;</div>
135+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> sendEvent(eventMessage);</div>
136+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div>
137+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
138+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
139+
</div><!-- fragment --></div><!-- contents -->
140+
</div><!-- doc-content -->
141+
<div class="ttc" id="aclass_sinric_pro_power_sensor_html"><div class="ttname"><a href="class_sinric_pro_power_sensor.html">SinricProPowerSensor</a></div><div class="ttdoc">Device to report power usage.</div><div class="ttdef"><b>Definition:</b> SinricProPowerMeter.h:52</div></div>
142+
<div class="ttc" id="aclass_sinric_pro_power_sensor_html_a6924b8cdd708ead3674671c2f5325de2"><div class="ttname"><a href="class_sinric_pro_power_sensor.html#a6924b8cdd708ead3674671c2f5325de2">SinricProPowerSensor::sendPowerSensorEvent</a></div><div class="ttdeci">bool sendPowerSensorEvent(float voltage, float current, float power=-1f, float apparentPower=-1f, float reactivePower=-1f, float factor=-1f, String cause=&quot;PERIODIC_POLL&quot;)</div><div class="ttdoc">Send PowerSensor event to SinricPro Server.</div><div class="ttdef"><b>Definition:</b> SinricProPowerMeter.h:75</div></div>
143+
<div class="ttc" id="aclass_sinric_pro_device_html"><div class="ttname"><a href="class_sinric_pro_device.html">SinricProDevice</a></div><div class="ttdoc">Base class for all device types.</div><div class="ttdef"><b>Definition:</b> SinricProDevice.h:23</div></div>
144+
<!-- start footer part -->
145+
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
146+
<ul>
147+
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>SinricProPowerMeter.h</b></li>
148+
<li class="footer">Generated by
149+
<a href="http://www.doxygen.org/index.html">
150+
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
151+
</ul>
152+
</div>
153+
</body>
154+
</html>

0 commit comments

Comments
 (0)