-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.xml
316 lines (316 loc) · 19.8 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Smart Swimming Pool</title><link>https://smart-swimmingpool.github.io/</link><atom:link href="https://smart-swimmingpool.github.io/index.xml" rel="self" type="application/rss+xml"/><description>Smart Swimming Pool</description><generator>Source Themes Academic (https://sourcethemes.com/academic/)</generator><language>en-us</language><copyright>© 2022 - 🏊 Smart Swimming Pool</copyright><lastBuildDate>Sat, 11 Jun 2022 00:00:00 +0000</lastBuildDate><image><url>https://smart-swimmingpool.github.io/images/icon_huc1aac635c547f103b14921ae0ab7550f_20089_512x512_fill_lanczos_center_3.png</url><title>Smart Swimming Pool</title><link>https://smart-swimmingpool.github.io/</link></image><item><title>Publications</title><link>https://smart-swimmingpool.github.io/docs/publications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/publications/</guid><description><ul>
<li>
<p>
<a href="https://medium.com/diy-my-smart-home/project-smart-swimmingpool-4c40eb6741f6" target="_blank" rel="noopener">Project Smart Swimming Pool</a>
, <em>December, 2018</em></p>
<p>Blogpost of version 1 of Smart Swimming Pool</p>
</li>
</ul></description></item><item><title>Software Guide of Pool Monitor</title><link>https://smart-swimmingpool.github.io/docs/pool-monitor/software-guide/</link><pubDate>Sat, 11 Jun 2022 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/pool-monitor/software-guide/</guid><description><h2 id="development-environment">Development Environment</h2>
<h2 id="required-libraries">Required Libraries</h2>
<ul>
<li>adafruit/Adafruit BusIO</li>
<li>adafruit/Adafruit GFX Library</li>
<li>zinggjm/GxEPD</li>
<li>juerd/ESP-WiFiSettings</li>
<li>olikraus/U8g2</li>
<li>olikraus/U8g2_for_Adafruit_GFX</li>
<li>knolleary/PubSubClient</li>
<li>arduino-libraries/NTPClient</li>
<li>madpilot/mDNSResolver</li>
<li>jchristensen/Timezone</li>
</ul>
<p>Many thanks to maintainers of these libraries!</p>
<h2 id="defines">Defines</h2>
<h2 id="configuration">Configuration</h2></description></item><item><title>Users Guide of Pool Controller</title><link>https://smart-swimmingpool.github.io/docs/pool-monitor/users-guide/</link><pubDate>Sat, 11 Jun 2022 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/pool-monitor/users-guide/</guid><description><h2 id="setup">Setup</h2>
<p>Connecting the device to power it createsinitial a hotspot called &ldquo;pool-monitor&rdquo;.
Please connect this hotsppot by smartphone. Thenthe device will show captivate website to add
WiFi credentials and connection parameters of MQTT broker.</p>
<p>Following data is required to connect the device:</p>
<ul>
<li>SSID of the WiFi network</li>
<li>Password of WiFi network</li>
<li>MQTT broker hostname or IP address</li>
<li>MQTT broker port number (default: 1883)</li>
</ul>
<p>After pressing &ldquo;Save&rdquo; the device will reboot automatically and tries to connect to the MQTT broker.</p>
<p>After some seconds the device will show data if connection was successful.</p></description></item><item><title>Hardware Guide of Pool Controller</title><link>https://smart-swimmingpool.github.io/docs/pool-controller/hardware-guide/</link><pubDate>Thu, 28 May 2020 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/pool-controller/hardware-guide/</guid><description><p>This Hardware Guide will describe how to setup the hardware of the controller.</p>
<h2 id="parts-list-bom">Parts List (BOM)</h2>
<ul>
<li>1 * ESP8266 NodeMCU Controller (
<a href="https://amzn.to/2Ze9DSh" target="_blank" rel="noopener">Amazon</a>)</li>
<li>2 * DS18B20 Temperature Sensors (
<a href="https://amzn.to/2ZlfZ2c" target="_blank" rel="noopener">Amazon</a>)</li>
<li>1 * Relais-Module 5V (
<a href="https://amzn.to/31RBd5s" target="_blank" rel="noopener">Amazon</a>)</li>
<li>1 * Breadboard and wires to connect (alternativly soldering of the circuit)</li>
</ul>
<h2 id="circuit">Circuit</h2>
<p>The circuit of the controller could be found on following image based on a breadboard wireing:</p>
<figure id="figure-breadboard-circuit-of-pool-controller">
<a data-fancybox="" href="https://smart-swimmingpool.github.io/pool-controller_breadboard.png" data-caption="Breadboard Circuit of Pool Controller">
<img src="https://smart-swimmingpool.github.io/pool-controller_breadboard.png" alt="" >
</a>
<figcaption>
Breadboard Circuit of Pool Controller
</figcaption>
</figure>
<p>The source
<a href="https://fritzing.org/" target="_blank" rel="noopener">Fritzing</a> file could be found in GitHub project:
<a href="https://github.com/smart-swimmingpool/pool-controller/raw/master/docs/pool-controller.fzz" target="_blank" rel="noopener">pool-controller.fzz</a></p>
<h3 id="esp8266-pin-usage">ESP8266 PIN Usage</h3>
<p>The ESP8266 is connected using following PINs. You can find the constant values within the sources
of <code>main.cpp</code> (first column of table) which are associated to the pins.</p>
<table>
<thead>
<tr>
<th>Constant in Source</th>
<th style="text-align:center">PIN of ESP8266</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>PIN_DS_SOLAR</td>
<td style="text-align:center">D5</td>
<td>Pin of temperature sensor (DS18B20) for solar storage</td>
</tr>
<tr>
<td>PIN_DS_POOL</td>
<td style="text-align:center">D6</td>
<td>Pin of temperature sensor (DS18B20) for pool water</td>
</tr>
<tr>
<td>PIN_RELAY_POOL</td>
<td style="text-align:center">D1</td>
<td>Pin to connect relais for pool pump</td>
</tr>
<tr>
<td>PIN_RELAY_SOLAR</td>
<td style="text-align:center">D2</td>
<td>Pin to connect relais for solar pump</td>
</tr>
</tbody>
</table>
<div class="alert alert-note">
<div>
TODO: improve PIN usage (see <a href="https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/">https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/</a>)
</div>
</div>
<h2 id="power-supply">Power Supply</h2>
<p>In my environment I use the USB to power the ESP8266 via small USB-Power-Adapter andan additional
230V power plug to be used as source for the power of the pumps which are switched via the relais.</p></description></item><item><title>Software Guide of Pool Controller</title><link>https://smart-swimmingpool.github.io/docs/pool-controller/software-guide/</link><pubDate>Thu, 28 May 2020 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/pool-controller/software-guide/</guid><description><h2 id="development-environment">Development Environment</h2>
<h2 id="required-libraries">Required Libraries</h2>
<ul>
<li>
<a href="https://github.com/homieiot/homie-esp8266" target="_blank" rel="noopener">Homie-ESP8266</a></li>
<li>
<a href="https://github.com/YuriiSalimov/RelayModule" target="_blank" rel="noopener">RelayModule</a></li>
<li>
<a href="https://github.com/tomstewart89/Vector" target="_blank" rel="noopener">Vector</a></li>
<li>DallasTemperature</li>
<li>Adafruit Unified Sensor</li>
<li>DHT sensor library</li>
<li>NTPClient</li>
<li>TimeZone</li>
<li>
<a href="https://github.com/xoseperez/Time" target="_blank" rel="noopener">Time</a></li>
</ul>
<p>Many thanks to maintainers of these libraries!</p>
<h2 id="defines">Defines</h2>
<p>Within the sources at <code>main.cpp</code> there are someconstant defined settings. For the PIN assignment
see also at
<a href="../hardware-guide/#esp8266-pin-usage">hardware guide</a>.</p>
<pre><code class="language-cpp">const uint8_t PIN_DS_SOLAR = D5; // Pin of Temp-Sensor Solar
const uint8_t PIN_DS_POOL = D6; // Pin of Temp-Sensor Pool
const uint8_t PIN_RELAY_POOL = D1;
const uint8_t PIN_RELAY_SOLAR = D2;
const uint8_t TEMP_READ_INTERVALL = 30;
</code></pre>
<h2 id="configuration">Configuration</h2>
<p>Homie-ESP8266 supports configuration (e.g. WiFi credentials) using JSON-files.
How to upload JSON config files see
<a href="https://homieiot.github.io/homie-esp8266/docs/develop/configuration/json-configuration-file/" target="_blank" rel="noopener">Homie-esp8266 docu</a>.</p>
<h3 id="example-configjson">Example <code>config.json</code></h3>
<pre><code class="language-json">{
&quot;name&quot;: &quot;Pool Controller&quot;,
&quot;device_id&quot;: &quot;pool-controller&quot;,
&quot;wifi&quot;: {
&quot;ssid&quot;: &quot;&lt;SSID&gt;&quot;,
&quot;password&quot;: &quot;&lt;XXX&gt;&quot;
},
&quot;mqtt&quot;: {
&quot;host&quot;: &quot;&lt;MQTT_HOST&gt;&quot;,
&quot;port&quot;: 1883
},
&quot;ota&quot;: {
&quot;enabled&quot;: true
},
&quot;settings&quot;: {
&quot;loop-interval&quot;: 60,
&quot;temperature-max-pool&quot;: 28,
&quot;temperature-min-solar&quot;: 50,
&quot;temperature-hysteresis&quot;: 0.5
}
}
</code></pre>
<h2 id="mqtt-communication">MQTT Communication</h2>
<h3 id="clearing-retained-messages">Clearing retained messages</h3>
<p>In some cases some retained messages can be wanted and we don’t want to clear all the retained messages.</p>
<p>The messages will have to be cleared one by one using the topic</p>
<p>To clear a specific message:</p>
<pre><code class="language-bash">mosquitto_pub -h hostname -t homie -n -r -d
</code></pre></description></item><item><title>Users Guide of Pool Controller</title><link>https://smart-swimmingpool.github.io/docs/pool-controller/users-guide/</link><pubDate>Thu, 28 May 2020 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/docs/pool-controller/users-guide/</guid><description><h2 id="setup">Setup</h2>
<h2 id="booting-controller">Booting Controller</h2>
<p>Booting the controller, it will give feedback on establishing WiFi connection andconnection to MQTT broker:</p>
<ul>
<li>&ldquo;LED&rdquo; <img src="led_wifi.gif" alt="Slowly blinking LED">
Slowly when connecting to the Wi-Fi</li>
<li>&ldquo;LED&rdquo; <img src="led_mqtt.gif" alt="Fast blinking LED">
Faster when connecting to the MQTT broker</li>
</ul>
<h2 id="settings">Settings</h2>
<p>There are some specific settings for the controller:</p>
<ul>
<li>
<p><strong>Pool max. temperature:</strong> The maximum temperature of the water in the pool which should not be exceeded.</p>
<ul>
<li>Unit: <code>°C</code></li>
<li>Default value: <code>29</code></li>
</ul>
</li>
<li>
<p><strong>Solar min temperature:</strong> The minimum temerature of the heat storage tank which should not be fall below.</p>
<ul>
<li>Unit: <code>°C</code></li>
<li>Default value: <code>50</code></li>
</ul>
</li>
<li>
<p><strong>Hysteresis:</strong> Hysteresis in Kelvin which is used to verify if heating should be enabled or disabled to prevent fast toggeling.</p>
<ul>
<li>Unit: <code>K</code></li>
<li>Default value: <code>1</code></li>
</ul>
</li>
<li>
<p><strong>Pump Timer:</strong> time range when pool pump has to run.</p>
<ul>
<li>start h/min</li>
<li>end h/min</li>
</ul>
</li>
<li>
<p><strong>Loop Interval:</strong></p>
<ul>
<li>Unit: <code>sec</code></li>
<li>Default value: <code>30</code></li>
</ul>
</li>
</ul>
<h2 id="rules">Rules</h2>
<p>The <strong>Smart Swimmingpool Controller</strong> implements <code>Rules</code> to handle different situations:</p>
<h3 id="rule-manual">Rule: Manual</h3>
<p>The pump for cleaning and solar heating are enabled/disabled completely manual and independent.</p>
<h3 id="rule-timer">Rule: Timer</h3>
<p>This rule enables the cleaning pump based on timer settings.
Solar heating is disabled.</p>
<h3 id="rule-auto">Rule: Auto</h3>
<p>This rule enables the cleaning pump based on timer settings.
Solar heating is enabled <strong>smart</strong> if cleaning pump is enabled by timer and the heat storage tank has enough temperature.</p>
<p>If the maximum temperature of the pool water is reached, the solar heating is disabled.</p>
<h3 id="rule-boost">Rule: Boost</h3>
<p>Heating of pool water with all power.</p>
<h2 id="mqtt-interface">MQTT Interface</h2>
<p>The <strong>Smart Swimmingpool Controller</strong> uses
<a href="http://mqtt.org/" target="_blank" rel="noopener">MQTT</a> to communicate with your smart home. For the transmission of data the IoT standard
<a href="https://homieiot.github.io" target="_blank" rel="noopener">Homie 3.0</a> is used.</p>
<p>Using Homie 3.0 it is possible to integrate <strong>Smart Pool Controller</strong> directly in open source smarthome server
<a href="https://www.openhab.org/" target="_blank" rel="noopener">openHAB</a> or
<a href="https://www.home-assistant.io/" target="_blank" rel="noopener">Home Assistant</a>.</p>
<h2 id="openhab-integration">OpenHAB Integration</h2>
<p>The <strong>Smart Swimmingpool Controller</strong> could be integrated in
<a href="https://www.openhab.org" target="_blank" rel="noopener">openHAB</a> since version 2.4.</p>
<p>It is possible to interact with the controller to enable/disable the pump or to swith the current rule.</p>
<p>Also it is possible to monitor the current values of temperatures or states.</p>
<p>At least the
<a href="#settings">settings</a> could be updated, too.</p>
<ul>
<li>TODO: add example of openhab config.</li>
</ul>
<h3 id="device">Device</h3>
<h3 id="properties">Properties</h3></description></item><item><title>MIT License</title><link>https://smart-swimmingpool.github.io/license/</link><pubDate>Sun, 19 Aug 2018 00:00:00 +0100</pubDate><guid>https://smart-swimmingpool.github.io/license/</guid><description><p>Copyright (c) 2018-2020 Smart Swimming Pool, Stephan Strittmatter</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the &ldquo;Software&rdquo;), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.</p></description></item><item><title>Contributor Covenant Code of Conduct</title><link>https://smart-swimmingpool.github.io/code-of-conduct/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://smart-swimmingpool.github.io/code-of-conduct/</guid><description><h2 id="our-pledge">Our Pledge</h2>
<p>In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.</p>
<h2 id="our-standards">Our Standards</h2>
<p>Examples of behavior that contributes to creating a positive environment
include:</p>
<ul>
<li>Using welcoming and inclusive language</li>
<li>Being respectful of differing viewpoints and experiences</li>
<li>Gracefully accepting constructive criticism</li>
<li>Focusing on what is best for the community</li>
<li>Showing empathy towards other community members</li>
</ul>
<p>Examples of unacceptable behavior by participants include:</p>
<ul>
<li>The use of sexualized language or imagery and unwelcome sexual attention or
advances</li>
<li>Trolling, insulting/derogatory comments, and personal or political attacks</li>
<li>Public or private harassment</li>
<li>Publishing others' private information, such as a physical or electronic
address, without explicit permission</li>
<li>Other conduct which could reasonably be considered inappropriate in a
professional setting</li>
</ul>
<h2 id="our-responsibilities">Our Responsibilities</h2>
<p>Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.</p>
<p>Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.</p>
<h2 id="scope">Scope</h2>
<p>This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.</p>
<h2 id="enforcement">Enforcement</h2>
<p>Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.</p>
<p>Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project&rsquo;s leadership.</p>
<h2 id="attribution">Attribution</h2>
<p>This Code of Conduct is adapted from the
<a href="https://www.contributor-covenant.org" target="_blank" rel="noopener">Contributor Covenant</a>, version 1.4,
available at
<a href="https://www.contributor-covenant.org/version/1/4/code-of-conduct.html" target="_blank" rel="noopener">https://www.contributor-covenant.org/version/1/4/code-of-conduct.html</a></p>
<p>For answers to common questions about this code of conduct, see
<a href="https://www.contributor-covenant.org/faq" target="_blank" rel="noopener">https://www.contributor-covenant.org/faq</a></p></description></item></channel></rss>