iobroker.sprinklecontrol 0.2.10 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +47 -51
  2. package/admin/index_m.html +115 -37
  3. package/admin/index_m.js +108 -12
  4. package/admin/words.js +131 -118
  5. package/docs/de/img/E-Mail.jpg +0 -0
  6. package/docs/de/img/Extraeinstellungen.jpg +0 -0
  7. package/docs/de/img/Pumpeneinstellung.jpg +0 -0
  8. package/docs/de/img/Pushover.jpg +0 -0
  9. package/docs/de/img/Select_ID.jpg +0 -0
  10. package/docs/de/img/Telegram.jpg +0 -0
  11. package/docs/de/img/Ventil-Haupteinstellung.jpg +0 -0
  12. package/docs/de/img/Ventil-Pumpeneinstellung.jpg +0 -0
  13. package/docs/de/img/WhatsApp.jpg +0 -0
  14. package/docs/de/img/Zeiteinstellung.jpg +0 -0
  15. package/docs/de/img/addTime.jpg +0 -0
  16. package/docs/de/img/analog.jpg +0 -0
  17. package/docs/de/img/ber-verdunstung.jpg +0 -0
  18. package/docs/de/img/bew-einstellung.jpg +0 -0
  19. package/docs/de/img/bew-feste-tage.jpg +0 -0
  20. package/docs/de/img/bistabil.jpg +0 -0
  21. package/docs/de/img/bodenf-analog.jpg +0 -0
  22. package/docs/de/img/bodenf-bistabil.jpg +0 -0
  23. package/docs/de/img/calculation.jpg +0 -0
  24. package/docs/de/img/einschaltpunkt-giessen.jpg +0 -0
  25. package/docs/de/img/festeTage.jpg +0 -0
  26. package/docs/de/img/main.jpg +0 -0
  27. package/docs/de/img/main_tab.jpg +0 -0
  28. package/docs/de/img/max-bodenfeuchtigkeit.jpg +0 -0
  29. package/docs/de/img/verdunstDiagra.jpg +0 -0
  30. package/docs/de/img/zus-bew-einstellung.jpg +0 -0
  31. package/docs/de/sprinklecontrol.md +123 -55
  32. package/io-package.json +63 -69
  33. package/lib/evaporation.js +9 -2
  34. package/lib/myConfig.js +79 -31
  35. package/lib/tools.js +9 -2
  36. package/lib/valveControl.js +17 -10
  37. package/main.js +432 -147
  38. package/package.json +20 -17
  39. package/.commitmessage +0 -4
package/README.md CHANGED
@@ -8,8 +8,6 @@
8
8
  [![NPM version](http://img.shields.io/npm/v/iobroker.sprinklecontrol.svg)](https://www.npmjs.com/package/iobroker.sprinklecontrol)
9
9
  [![Downloads](https://img.shields.io/npm/dm/iobroker.sprinklecontrol.svg)](https://www.npmjs.com/package/iobroker.sprinklecontrol)
10
10
  [![Known Vulnerabilities](https://snyk.io/test/github/Dirk-Peter-md/ioBroker.sprinklecontrol/badge.svg)](https://snyk.io/test/github/Dirk-Peter-md/ioBroker.sprinklecontrol)
11
- [![Build Status](https://travis-ci.com/Dirk-Peter-md/ioBroker.sprinklecontrol.svg?branch=master)](https://travis-ci.com/Dirk-Peter-md/ioBroker.sprinklecontrol)
12
-
13
11
  [![NPM](https://nodei.co/npm/iobroker.sprinklecontrol.png?downloads=true)](https://nodei.co/npm/iobroker.sprinklecontrol/)
14
12
 
15
13
 
@@ -33,83 +31,81 @@ Wetterabhängige automatische Steuerung der Gartenbewässerung
33
31
  <!--
34
32
  Placeholder for the next version (at the beginning of the line):
35
33
  ### **WORK IN PROGRESS**
36
- -->
34
+ -->
35
+ ### 0.2.13 (2022-09-06)
36
+ * (Dirk-Peter-md) various bugs fixed
37
+ * (Dirk-Peter-md) Preparing the stable release
38
+
39
+ ### 0.2.12 (2022-07-17)
40
+ * (Dirk-Peter-md) fixDay(twoNd,threeRd) => postpone by one day
41
+ * (Dirk-Peter-md) Bug fixed => autoOn
42
+ * (Dirk-Peter-md) Additional post-watering => in case of high evaporation / switchable externally
43
+
44
+ ### 0.2.11 (2022-05-22)
45
+ * (Dirk-Peter-md) Bug fixed => analog soil moisture sensor with negative characteristic
46
+ * (Dirk-Peter-md) Attention => maximum soil moisture in rain now in %
47
+
37
48
  ### 0.2.10 (2022-05-15)
38
49
  * (Dirk-Peter-md) manual watering limited to a maximum of 100%
39
- * (Dirk-Peter-md) Error whatsapp message fixed
40
-
50
+ * (Dirk-Peter-md) Error whatsapp message fixed
51
+
41
52
  ### 0.2.9 (2022-04-10)
42
- * (Dirk-Peter-md) Bug-Initialisierungsroutine
43
-
53
+ * (Dirk-Peter-md) Bug-Initialisierungsroutine
54
+
44
55
  ### 0.2.8 (2022-03-20)
45
56
  * (Dirk-Peter-md) Adaptation for js controller 4
46
- * (Dirk-Peter-md) switched main.js to async
47
-
57
+ * (Dirk-Peter-md) switched main.js to async
58
+
48
59
  ### 0.2.7 (16.10.2021)
49
- * (Dirk-Peter-md) zusätzliche Testnachrichten gelöscht, Readme aktualisiert
50
-
60
+ * (Dirk-Peter-md) zusätzliche Testnachrichten gelöscht, Readme aktualisiert
61
+
51
62
  ### 0.2.6 (03.10.2021)
52
- * (Dirk-Peter-md) inGreenhouse in Bewässerungsverfahren "Calculation" hinzugefügt
53
-
63
+ * (Dirk-Peter-md) inGreenhouse in Bewässerungsverfahren "Calculation" hinzugefügt
64
+
54
65
  ### 0.2.5 (18.08.2021)
55
66
  * (Dirk-Peter-md) Mehrfachverwendung von Bodenfeuchte-Sensoren
56
- * (Dirk-Peter-md) Objekte mit \"def\": ... überarbeitet
57
-
67
+ * (Dirk-Peter-md) Objekte mit \"def\": ... überarbeitet
68
+
58
69
  ### 0.2.4 (16.08.2021)
59
70
  * (Dirk-Peter-md) Triggerpunktanzeige hinzufügen
60
- * (Dirk-Peter-md) Fehler in der Bodenfeuchteanalyse behoben
61
-
71
+ * (Dirk-Peter-md) Fehler in der Bodenfeuchteanalyse behoben
72
+
62
73
  ### 0.2.3 (15.08.2021)
63
74
  * (Dirk-Peter-md) index_m-Fehler behoben
64
- * (Dirk-Peter-md) timeExtension (FixDay, bistabil) Fehler behoben
65
-
75
+ * (Dirk-Peter-md) timeExtension (FixDay, bistabil) Fehler behoben
76
+
66
77
  ### 0.2.2 (27.07.2021)
67
78
  * (Dirk-Peter-md) Fehler FixDay behoben
68
79
  * (Dirk-Peter-md) Anzeige actualSoilMoisture überarbeitet
69
- * (Dirk-Peter-md) Infomeldungen überarbeitet
70
-
80
+ * (Dirk-Peter-md) Infomeldungen überarbeitet
81
+
71
82
  ### 0.2.1 (13.07.2021)
72
83
  * (Dirk-Peter-md) Start an festen Wochentagen (ohne Sensoren) hinzugefügt
73
- * (Dirk-Peter-md) Fehler behoben
74
-
84
+ * (Dirk-Peter-md) Fehler behoben
85
+
75
86
  ### 0.2.0 (03.07.2021)
76
87
  * (Dirk-Peter-md) Bodenfeuchte-Sensor hinzugefügt
77
- * (Dirk-Peter-md) Schwellwert für Wettervorhersage hinzugefügt
78
-
88
+ * (Dirk-Peter-md) Schwellwert für Wettervorhersage hinzugefügt
89
+
79
90
  ### 0.1.7 (22.05.2021)
80
91
  * (Dirk-Peter-md) Beschreibung in englischer Sprache hinzugefügt
81
- * (Dirk-Peter-md) bereit für stable
82
-
83
- ### 0.1.6 (18.05.2021)
84
- * (Dirk-Peter-md) AutoOn-Schalter pro Bewässerungskreis hinzugefügt
85
- * (Dirk-Peter-md) weitere Fehler beseitigt (js-Controller)
86
- * (Dirk-Peter-md) Niederschlagszähler von der Verdunstung gelöst
87
-
92
+ * (Dirk-Peter-md) bereit für stable
93
+
88
94
  ### 0.1.5 (05.05.2021)
89
- * (Dirk-Peter-md) Zurücksetzen der Regenmenge im 24-Stunden-Modus hinzugefügt
90
-
95
+ * (Dirk-Peter-md) Zurücksetzen der Regenmenge im 24-Stunden-Modus hinzugefügt
96
+
91
97
  ### 0.1.4 (21.04.2021)
92
- * (Dirk-Peter-md) Fehler bei deaktivierter Wettervorhersage behoben
93
-
94
- ### 0.1.3 (18.04.2021)
95
- * (Dirk-Peter-md) Schaltabstand zwischen den Ventilen eingebaut, main.js aufgeteilt
96
-
98
+ * (Dirk-Peter-md) Fehler bei deaktivierter Wettervorhersage behoben
99
+
97
100
  ### 0.1.2 (30.12.2020)
98
- * (Dirk-Peter-md) Beschreibung von SprinkleControl überarbeitet
99
-
100
- ### 0.1.1 (08.11.2020)
101
- * (Dirk-Peter-md) Integration von Nachrichten per Telegramm, E-Mail, Pushover und WhatsApp
102
-
101
+ * (Dirk-Peter-md) Beschreibung von SprinkleControl überarbeitet
102
+
103
103
  ### 0.0.12 (10.10.2020)
104
104
  * (Dirk-Peter-md) Bewässerung über eine 2. Pumpe (Zisterne mit Vorrangschaltung) in abhängigkeit vom Füllstand hinzugefügt.
105
105
 
106
- ### 0.0.11 (30.08.2020)
107
- * (Dirk-Peter-md) Bug in der Verarbeitung der Regenvorhersage vom Adapter "Das Wetter"
108
- * (Dirk-Peter-md) Bug auf Travis CI
109
-
110
-
111
- *************************************************************************************************************************************
112
106
 
107
+ *************************************************************************************************************************************
108
+
113
109
  ## License
114
110
  MIT License
115
111
 
@@ -131,4 +127,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE
131
127
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
132
128
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
133
129
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
134
- SOFTWARE.
130
+ SOFTWARE.
@@ -80,25 +80,27 @@
80
80
  <th data-name="wateringTime" id="events_col_6" data-type="number" style="width: 0" class="translate"></th>
81
81
  <th data-name="wateringAdd" id="events_col_7" data-type="number" style="width: 0" class="translate"></th>
82
82
  <th data-name="wateringInterval" id="events_col_8" data-type="number" style="width: 0" class="translate"></th>
83
- <th data-name="maxSoilMoistureIrrigation" id="events_col_9" data-type="number" style="width: 0" class="translate"></th>
84
- <th data-name="maxSoilMoistureRain" id="events_col_10" data-type="number" style="width: 0" class="translate"></th>
85
- <th data-name="triggersIrrigation" id="events_col_11" data-type="number" style="width: 0" class="translate"></th>
86
- <th data-name="pipeFlow" id="events_col_12" data-type="number" style="width: 0" class="translate"></th>
87
- <th data-name="booster" id="events_col_13" data-type="checkbox" style="width: 0" class="translate"></th>
88
- <th data-name="endIrrigation" id="events_col_14" data-type="checkbox" style="width: 0" class="translate"></th>
89
- <th data-name="methodControlSM" id="events_col_15" data-type="text" style="width: 0" class="translate"></th>
90
- <th data-name="inGreenhouse" id="events_col_16" data-type="checkbox" style="width: 0" class="translate"></th>
91
- <th data-name="triggerSM" id="events_col_17" data-type="text" style="width: 0" class="translate"></th>
92
- <th data-name="analogZPct" id="events_col_18" data-type="number" style="width: 0" class="translate"></th>
93
- <th data-name="analogOHPct" id="events_col_19" data-type="number" style="width: 0" class="translate"></th>
94
- <th data-name="startDay" id="events_col_20" data-type="text" style="width: 0" class="translate"></th>
95
- <th data-name="sun" id="events_col_21" data-type="checkbox" style="width: 0" class="translate"></th>
96
- <th data-name="mon" id="events_col_22" data-type="checkbox" style="width: 0" class="translate"></th>
97
- <th data-name="tue" id="events_col_23" data-type="checkbox" style="width: 0" class="translate"></th>
98
- <th data-name="wed" id="events_col_24" data-type="checkbox" style="width: 0" class="translate"></th>
99
- <th data-name="thur" id="events_col_25" data-type="checkbox" style="width: 0" class="translate"></th>
100
- <th data-name="fri" id="events_col_26" data-type="checkbox" style="width: 0" class="translate"></th>
101
- <th data-name="sat" id="events_col_27" data-type="checkbox" style="width: 0" class="translate"></th>
83
+ <th data-name="addWateringTime" id="events_col_9" data-type="number" style="width: 0" class="translate"></th>
84
+ <th data-name="addTriggersIrrigation" id="events_col_10" data-type="number" style="width: 0" class="translate"></th>
85
+ <th data-name="maxSoilMoistureIrrigation" id="events_col_11" data-type="number" style="width: 0" class="translate"></th>
86
+ <th data-name="maxSoilMoistureRainPct" id="events_col_12" data-type="number" style="width: 0" class="translate"></th>
87
+ <th data-name="triggersIrrigation" id="events_col_13" data-type="number" style="width: 0" class="translate"></th>
88
+ <th data-name="pipeFlow" id="events_col_14" data-type="number" style="width: 0" class="translate"></th>
89
+ <th data-name="booster" id="events_col_15" data-type="checkbox" style="width: 0" class="translate"></th>
90
+ <th data-name="endIrrigation" id="events_col_16" data-type="checkbox" style="width: 0" class="translate"></th>
91
+ <th data-name="methodControlSM" id="events_col_17" data-type="text" style="width: 0" class="translate"></th>
92
+ <th data-name="inGreenhouse" id="events_col_18" data-type="checkbox" style="width: 0" class="translate"></th>
93
+ <th data-name="triggerSM" id="events_col_19" data-type="text" style="width: 0" class="translate"></th>
94
+ <th data-name="analogZPct" id="events_col_20" data-type="number" style="width: 0" class="translate"></th>
95
+ <th data-name="analogOHPct" id="events_col_21" data-type="number" style="width: 0" class="translate"></th>
96
+ <th data-name="startDay" id="events_col_22" data-type="text" style="width: 0" class="translate"></th>
97
+ <th data-name="sun" id="events_col_23" data-type="checkbox" style="width: 0" class="translate"></th>
98
+ <th data-name="mon" id="events_col_24" data-type="checkbox" style="width: 0" class="translate"></th>
99
+ <th data-name="tue" id="events_col_25" data-type="checkbox" style="width: 0" class="translate"></th>
100
+ <th data-name="wed" id="events_col_26" data-type="checkbox" style="width: 0" class="translate"></th>
101
+ <th data-name="thur" id="events_col_27" data-type="checkbox" style="width: 0" class="translate"></th>
102
+ <th data-name="fri" id="events_col_28" data-type="checkbox" style="width: 0" class="translate"></th>
103
+ <th data-name="sat" id="events_col_29" data-type="checkbox" style="width: 0" class="translate"></th>
102
104
  <!-- **************************************** *** ******************** *** **************************************** -->
103
105
  </tr>
104
106
  </thead>
@@ -195,9 +197,10 @@
195
197
  </div>
196
198
  <!-- time settings -->
197
199
  <div id="tab-time" class="col s12 page">
200
+ <!-- Start Time -->
198
201
  <div class="row">
199
202
  <div class="col s12">
200
- <h6 class="translate sub-title">Settings for start time</h6>
203
+ <h6 class="translate sub-title">Start time</h6>
201
204
  </div>
202
205
  </div>
203
206
  <div class="row">
@@ -206,6 +209,7 @@
206
209
  <option value="livingTime" class="translate">start with a fixed start time</option>
207
210
  <option value="livingSunrise" class="translate">Start time at sunrise</option>
208
211
  <option value="livingGoldenHourEnd" class="translate">Start time at the end of the golden hour</option>
212
+ <option value="livingSunset" class="translate">Start time at sunset</option>
209
213
  </select>
210
214
  <label for="wateringStartTime" class="translate"></label>
211
215
  <span class="translate">Start time for irrigation</span>
@@ -223,9 +227,46 @@
223
227
  <span class="translate">Start time in the week</span>
224
228
  </div>
225
229
  </div>
230
+ <!-- Additional start time -->
226
231
  <div class="row">
227
232
  <div class="col s12">
228
- <h6 class="translate sub-title">Settings for start time on weekends</h6>
233
+ <h6 class="translate sub-title">Additional start time</h6>
234
+ </div>
235
+ </div>
236
+ <div class="input-field col s12 m4 l3">
237
+ <select class="value" id="selectAddStartTime">
238
+ <option value="noAddStartTime" class="translate">No additional start time</option>
239
+ <option value="greaterETpCurrent" class="translate">Start at ETpCurrent greater than</option>
240
+ <option value="withExternalSignal" class="translate">Start, with external signal</option>
241
+ </select>
242
+ <label for="selectAddStartTime" class="translate"></label>
243
+ <span class="translate">Starting conditions</span>
244
+ </div>
245
+ <div class="col s12 m4 l2 showGreaterETpCur input-field">
246
+ <input type="number" class="value" id="triggerAddStartTimeETpCur" min=0 max=10 placeholder="0-10.0" step="0.1" />
247
+ <label for="triggerAddStartTimeETpCur" class="translate"></label>
248
+ <span class="translate">Start at ETpCurrent greater than</span>
249
+ </div>
250
+ <div class="row">
251
+ <div class="col s12 m4 l3 showExtSig">
252
+ <div class="card-panel" style="background-color:#46a0e9; border-radius:15px;border-bottom: medium solid #174475;">
253
+ <span class="white-text translate">Activation of additional watering under objects:</span>
254
+ <br>
255
+ <span class="white-text translate">sprinklecontrol. ... .control.addStartTimeSwitch</span>
256
+ </div>
257
+ </div>
258
+ </div>
259
+ <div class="row">
260
+ <div class="input-field col s12 m4 l2 showAddStartTime">
261
+ <input type="time" class="timepicker value" id="addWateringStartTime" />
262
+ <label for="addWateringStartTime" class="translate"></label>
263
+ <span class="translate">Additional start time</span>
264
+ </div>
265
+ </div>
266
+ <!-- Weekend start time -->
267
+ <div class="row">
268
+ <div class="col s12">
269
+ <h6 class="translate sub-title">Weekend start time</h6>
229
270
  </div>
230
271
  </div>
231
272
  <div class="row">
@@ -358,21 +399,42 @@
358
399
  <div class="col s12">
359
400
  <h6 class="translate sub-title">Weather forecast</h6>
360
401
  </div>
361
- </div>
362
- <div class="row">
363
- <div class="input-field col s12 m6 l2 weatherForecast">
402
+ <div class="row col s12 m6 l2">
364
403
  <input type="checkbox" class="value" id="weatherForecast" />
365
404
  <span for="weatherForecast" class="translate">Use weather forecast</span>
366
405
  </div>
367
- <div class="input-field col s12 m6 l2 weatherFor">
368
- <select id="weatherForInstance" class="value"></select>
369
- <label for="weatherForInstance" class="translate"></label>
370
- <span class="translate">Select the weather forecast instance</span>
371
- </div>
372
- <div class="input-field col s12 m6 l2 weatherFor">
373
- <input type="number" class="value" id="thresholdRain" min=0 max=5.0 placeholder="0-5.0" step="0.1" value="2" />
374
- <label for="thresholdRain" class="translate"></label>
375
- <span class="translate">Precipitation threshold in mm</span>
406
+ <div class="row weatherFor s12 m12 l10">
407
+ <div class="input-field col s12 m12 l2 ">
408
+ <select class="value" id="weatherForecastService">
409
+ <option value="ownDataPoint" class="translate">own data point</option>
410
+ <option value="dasWetter" class="translate">daswetter</option>
411
+ </select>
412
+ <label for="weatherForecastService" class="translate"></label>
413
+ <span class="translate">weather forecast service</span>
414
+ </div>
415
+ <!-- own data point -->
416
+ <div class="showOwnDataPoint">
417
+ <div class="input-field col s10 m4 l3 ">
418
+ <input type="text" class="value" id="pathRainForecast" />
419
+ <label for="pathRainForecast" class="translate"></label>
420
+ <span class="translate">Rain forecast - path</span>
421
+ </div>
422
+ <div class="col s2 m2 l1">
423
+ <a id="pathRainForecastDialogPopUp" class="btn-floating waves-effect waves-light blue table-button-add"><i class="material-icons">add</i></a>
424
+ </div>
425
+ </div>
426
+ <!-- daswetter -->
427
+ <div class="input-field col s12 m6 l2 showDasWetter">
428
+ <select id="weatherForInstance" class="value"></select>
429
+ <label for="weatherForInstance" class="translate"></label>
430
+ <span class="translate">Select the weather forecast instance</span>
431
+ </div>
432
+ <!-- thresholdRain -->
433
+ <div class="input-field col s12 m6 l2">
434
+ <input type="number" class="value" id="thresholdRain" min=0 max=5.0 placeholder="0-5.0" step="0.1" value="2" />
435
+ <label for="thresholdRain" class="translate"></label>
436
+ <span class="translate">Precipitation threshold in mm</span>
437
+ </div>
376
438
  </div>
377
439
  </div>
378
440
  </div>
@@ -650,12 +712,12 @@
650
712
  </div>
651
713
  <!-- Sprinkler - Main settings -->
652
714
  <div id="tab-settingsPopUp" class="col s12 page">
715
+ <!-- Irrigation settings → Bewässerungseinstellungen -->
653
716
  <div class="row">
654
717
  <div class="col s12">
655
718
  <h6 class="translate sub-title">Irrigation settings</h6>
656
719
  </div>
657
720
  </div>
658
- <!-- Irrigation settings → Bewässerungseinstellungen -->
659
721
  <div class="row">
660
722
  <div class="col s12 l4 input-field">
661
723
  <input type="number" class="form-control" id="wateringTime" min=5 max=90 />
@@ -673,6 +735,22 @@
673
735
  <span class="translate">Watering interval in min</span>
674
736
  </div>
675
737
  </div>
738
+ <!-- Additional Irrigation settings -->
739
+ <div class="row">
740
+ <div class="col s12">
741
+ <h6 class="translate sub-title">Additional irrigation in case of high evaporation</h6>
742
+ </div>
743
+ </div>
744
+ <div class="col s12 l4 showAddWateringTime input-field">
745
+ <input type="number" class="form-control" id="addWateringTime" min=0 max=90 />
746
+ <label for="addWateringTime" class="translate"></label>
747
+ <span class="translate">Additional watering time in min</span>
748
+ </div>
749
+ <div class="col s12 l4 showAddTriggersIrrigation input-field">
750
+ <input type="number" class="form-control" id="addTriggersIrrigation" min=5 max="triggersIrrigation" />
751
+ <label for="addTriggersIrrigation" class="translate"></label>
752
+ <span class="translate">Switch-on point (soil moisture) of the additional irrigation valves in %</span>
753
+ </div>
676
754
  <!-- Method of controlling soil moisture → Methode zur Kontrolle der Bodenfeuchtigkeit -->
677
755
  <div class="row">
678
756
  <div class="col s12">
@@ -733,9 +811,9 @@
733
811
  <span class="translate">maximum soil moisture after the irrigation in (mm)</span>
734
812
  </div>
735
813
  <div class="col s12 l4 input-field">
736
- <input type="number" class="form-control" id="maxSoilMoistureRain" min="5.0" max="25.0" placeholder="5.0-25.0" step="0.1" />
737
- <label for="maxSoilMoistureRain" class="translate"></label>
738
- <span class="translate">maximum soil moisture after the rain in (mm)</span>
814
+ <input type="number" class="form-control" id="maxSoilMoistureRainPct" min="100" max="200" placeholder="100-200" step="1" />
815
+ <label for="maxSoilMoistureRainPct" class="translate"></label>
816
+ <span class="translate">maximum soil moisture after the rain in (%)</span>
739
817
  </div>
740
818
  </div>
741
819
  </div>
package/admin/index_m.js CHANGED
@@ -24,12 +24,11 @@ function load(settings, onChange) {
24
24
  // do not call onChange direct, because onChange could expect some arguments
25
25
  // Rufen Sie onChange nicht direkt auf, da onChange einige Argumente erwarten kann
26
26
  if ($key.attr('type') === 'checkbox') {
27
- $key.prop('checked', settings[id]) // read setting value from adapter config object and set checkbox in config page => Lesen Sie den Einstellungswert aus dem Adapterkonfigurationsobjekt und setzen Sie das Kontrollkästchen auf der Konfigurationsseite
27
+ $key.prop('checked', settings[id]) // read setting value from adapter config object and set checkbox in config page Lesen Sie den Einstellungswert aus dem Adapterkonfigurationsobjekt und setzen Sie das Kontrollkästchen auf der Konfigurationsseite
28
28
  .on('change', () => {
29
29
  showHideSettings();
30
30
  onChange(); // set listener to checkbox and call onChange if the value has changed => setze listener auf checkbox und rufe onChange auf, wenn sich der Wert geändert hat
31
- })
32
- ;
31
+ });
33
32
  } else {
34
33
  $key.val(settings[id])
35
34
  .on('change', () => onChange())
@@ -58,8 +57,10 @@ function load(settings, onChange) {
58
57
  $('#events .values-input[data-name="wateringTime"][data-index="' + id + '"]').val('20').trigger('change');
59
58
  $('#events .values-input[data-name="wateringAdd"][data-index="' + id + '"]').val('200').trigger('change');
60
59
  $('#events .values-input[data-name="wateringInterval"][data-index="' + id + '"]').val('0').trigger('change');
60
+ $('#events .values-input[data-name="addWateringTime"][data-index="' + id + '"]').val('0').trigger('change');
61
+ $('#events .values-input[data-name="addTriggersIrrigation"][data-index="' + id + '"]').val('50').trigger('change');
61
62
  $('#events .values-input[data-name="maxSoilMoistureIrrigation"][data-index="' + id + '"]').val('8').trigger('change');
62
- $('#events .values-input[data-name="maxSoilMoistureRain"][data-index="' + id + '"]').val('10').trigger('change');
63
+ $('#events .values-input[data-name="maxSoilMoistureRainPct"][data-index="' + id + '"]').val('120').trigger('change');
63
64
  $('#events .values-input[data-name="triggersIrrigation"][data-index="' + id + '"]').val('50').trigger('change');
64
65
  $('#events .values-input[data-name="pipeFlow"][data-index="' + id + '"]').val('700').trigger('change');
65
66
  $('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').val('calculation').trigger('change');
@@ -203,6 +204,16 @@ function load(settings, onChange) {
203
204
  });
204
205
  });
205
206
 
207
+ $('#pathRainForecastDialogPopUp').on('click', function () {
208
+ initSelectId(function (sid) {
209
+ sid.selectId('show', $('#pathRainForecast').val(), function (newId) {
210
+ if (newId) {
211
+ $('#pathRainForecast').val(newId).trigger('change');
212
+ }
213
+ });
214
+ });
215
+ });
216
+
206
217
  onChange(false);
207
218
  // reinitialize all the Materialize labels on the page if you are dynamically adding inputs:
208
219
  // Initialisieren Sie alle Materialise-Beschriftungen auf der Seite neu, wenn Sie dynamisch Eingaben hinzufügen:
@@ -259,9 +270,7 @@ function fillPosition() {
259
270
  }
260
271
  });
261
272
  }
262
- /*
263
- {"1312509684":{"firstName":"Dirk","userName":"Dirk_Peter"}}
264
- */
273
+
265
274
  /**
266
275
  *
267
276
  * @param id
@@ -269,7 +278,7 @@ function fillPosition() {
269
278
  */
270
279
  function fillTelegramUser(id, obj) {
271
280
  /*let user = str.replace(/[{}"\\]/g,"").split(',');*/
272
- /*obj = {"1312509684":{"firstName":"Dirk","userName":"Dirk_Peter"}};*/
281
+ /*obj = {"0123456789":{"firstName":"Dirk","userName":"Dirk_Peter"}};*/
273
282
  let $sel = $('#telegramUser');
274
283
  $sel.html('<option value="allTelegramUsers">' + _('All Receiver') + '</option>');
275
284
  for(let key in obj){
@@ -330,8 +339,10 @@ function tableOnReady() {
330
339
  $('#wateringTime').val($('#events .values-input[data-name="wateringTime"][data-index="' + id + '"]').val());
331
340
  $('#wateringAdd').val($('#events .values-input[data-name="wateringAdd"][data-index="' + id + '"]').val());
332
341
  $('#wateringInterval').val($('#events .values-input[data-name="wateringInterval"][data-index="' + id + '"]').val());
342
+ $('#addWateringTime').val($('#events .values-input[data-name="addWateringTime"][data-index="' + id + '"]').val());
343
+ $('#addTriggersIrrigation').val($('#events .values-input[data-name="addTriggersIrrigation"][data-index="' + id + '"]').val());
333
344
  $('#maxSoilMoistureIrrigation').val($('#events .values-input[data-name="maxSoilMoistureIrrigation"][data-index="' + id + '"]').val());
334
- $('#maxSoilMoistureRain').val($('#events .values-input[data-name="maxSoilMoistureRain"][data-index="' + id + '"]').val());
345
+ $('#maxSoilMoistureRainPct').val($('#events .values-input[data-name="maxSoilMoistureRainPct"][data-index="' + id + '"]').val());
335
346
  $('#triggersIrrigation').val($('#events .values-input[data-name="triggersIrrigation"][data-index="' + id + '"]').val());
336
347
  $('#pipeFlow').val($('#events .values-input[data-name="pipeFlow"][data-index="' + id + '"]').val());
337
348
  $('#methodControlSM').val($('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').val());
@@ -361,8 +372,10 @@ function tableOnReady() {
361
372
  let newWateringTime = $('#wateringTime').val();
362
373
  let newWateringAdd = $('#wateringAdd').val();
363
374
  let newWateringInterval = $('#wateringInterval').val();
375
+ let newAddWateringTime = $('#addWateringTime').val();
376
+ let newAddTriggersIrrigation = $('#addTriggersIrrigation').val();
364
377
  let newMaxSoilMoistureIrrigation = $('#maxSoilMoistureIrrigation').val();
365
- let newMaxSoilMoistureRain = $('#maxSoilMoistureRain').val();
378
+ let newMaxSoilMoistureRainPct = $('#maxSoilMoistureRainPct').val();
366
379
  let newTriggersIrrigation = $('#triggersIrrigation').val();
367
380
  let newPipeFlow = $('#pipeFlow').val();
368
381
  let newMethodControlSM = $('#methodControlSM').val();
@@ -386,8 +399,10 @@ function tableOnReady() {
386
399
  $('#events .values-input[data-name="wateringTime"][data-index="' + id + '"]').val(newWateringTime).trigger('change');
387
400
  $('#events .values-input[data-name="wateringAdd"][data-index="' + id + '"]').val(newWateringAdd).trigger('change');
388
401
  $('#events .values-input[data-name="wateringInterval"][data-index="' + id + '"]').val(newWateringInterval).trigger('change');
402
+ $('#events .values-input[data-name="addWateringTime"][data-index="' + id + '"]').val(newAddWateringTime).trigger('change');
403
+ $('#events .values-input[data-name="addTriggersIrrigation"][data-index="' + id + '"]').val(newAddTriggersIrrigation).trigger('change');
389
404
  $('#events .values-input[data-name="maxSoilMoistureIrrigation"][data-index="' + id + '"]').val(newMaxSoilMoistureIrrigation).trigger('change');
390
- $('#events .values-input[data-name="maxSoilMoistureRain"][data-index="' + id + '"]').val(newMaxSoilMoistureRain).trigger('change');
405
+ $('#events .values-input[data-name="maxSoilMoistureRainPct"][data-index="' + id + '"]').val(newMaxSoilMoistureRainPct).trigger('change');
391
406
  $('#events .values-input[data-name="triggersIrrigation"][data-index="' + id + '"]').val(newTriggersIrrigation).trigger('change');
392
407
  $('#events .values-input[data-name="pipeFlow"][data-index="' + id + '"]').val(newPipeFlow).trigger('change');
393
408
  $('#events .values-input[data-name="methodControlSM"][data-index="' + id + '"]').val(newMethodControlSM).trigger('change');
@@ -447,6 +462,11 @@ function save(callback) {
447
462
  * @param callback
448
463
  */
449
464
  function showHideSettings(callback) {
465
+ /** additional irrigation activated =>
466
+ * zusätzliche Bewässerung aktiviert
467
+ * @type {boolean}
468
+ */
469
+ let selAddStartTime = false;
450
470
 
451
471
  // Zeiteinstellungen => Feiertagseinstellung sichtbar bei combobox
452
472
  $('#wateringStartTime').on('change', function () {
@@ -459,16 +479,45 @@ function showHideSettings(callback) {
459
479
  } else if ($(this).val() === 'livingGoldenHourEnd') { /*Start mit dem Ende der Golden hour*/
460
480
  $('.visTimeShift').hide();
461
481
  $('.visWeekLiving').hide();
482
+ } else if ($(this).val() === 'livingSunset') { /*Start mit Sonnenaufgang*/
483
+ $('.visTimeShift').show();
484
+ $('.visWeekLiving').hide();
462
485
  }
463
486
  }).trigger('change');
464
487
 
465
- // Pumpeneinstellungen => Zisterne sichtbar bei checkbox
488
+ // Pumpeneinstellungen Zisterne sichtbar bei checkbox
466
489
  if ($('#cisternSettings').prop('checked')) {
467
490
  $('.cisternObjekt').show();
468
491
  } else {
469
492
  $('.cisternObjekt').hide();
470
493
  }
471
494
 
495
+
496
+ // Additional start time => sichtbar je nach auswahl
497
+ $('#selectAddStartTime').on('change',function(){
498
+ if ($(this).val() === 'noAddStartTime') {
499
+ selAddStartTime = false;
500
+ $('.showGreaterETpCur').hide();
501
+ $('.showAddStartTime').hide();
502
+ $('.showExtSig').hide();
503
+ } else if ($(this).val() === 'greaterETpCurrent') {
504
+ selAddStartTime = true;
505
+ $('.showGreaterETpCur').show();
506
+ $('.showAddStartTime').show();
507
+ $('.showExtSig').hide();
508
+ } else if ($(this).val() === 'withExternalSignal') {
509
+ selAddStartTime = true;
510
+ $('.showGreaterETpCur').hide();
511
+ $('.showAddStartTime').show();
512
+ $('.showExtSig').show();
513
+ } else {
514
+ selAddStartTime = false;
515
+ $('.showGreaterETpCur').hide();
516
+ $('.showAddStartTime').hide();
517
+ $('.showExtSig').hide();
518
+ }
519
+ }).trigger('change');
520
+
472
521
  // Zeiteinstellungen => Feiertagseinstellung sichtbar bei checkbox
473
522
  let mPublicWeekend = $('#publicWeekend').prop('checked');
474
523
  if (mPublicWeekend) {
@@ -493,6 +542,17 @@ function showHideSettings(callback) {
493
542
  $('.weatherFor').hide();
494
543
  }
495
544
 
545
+ // individuelle Wettervorhersage
546
+ $('#weatherForecastService').on('change', function () {
547
+ if ($(this).val() === 'ownDataPoint') {
548
+ $('.showOwnDataPoint').show();
549
+ $('.showDasWetter').hide();
550
+ } else if ($(this).val() === 'dasWetter') {
551
+ $('.showOwnDataPoint').hide();
552
+ $('.showDasWetter').show();
553
+ }
554
+ }).trigger('change');
555
+
496
556
  // Benachrichtigung Karte Ein / Aus
497
557
  if ($('#notificationEnabled').prop('checked')) {
498
558
  $('.tab-notification').show();
@@ -500,6 +560,7 @@ function showHideSettings(callback) {
500
560
  $('.tab-notification').hide();
501
561
  }
502
562
 
563
+
503
564
  // Benachrichtigung - Typ auswahl
504
565
  $('#notificationsType').on('change', function () {
505
566
  if ($(this).val() === 'Telegram') {
@@ -529,6 +590,13 @@ function showHideSettings(callback) {
529
590
  $('#methodControlSM').on('change',function(){
530
591
 
531
592
  if ($(this).val() === 'calculation') {
593
+ if (selAddStartTime) {
594
+ $('.showAddWateringTime').show();
595
+ $('.showAddTriggersIrrigation').hide();
596
+ }else{
597
+ $('.showAddWateringTime').hide();
598
+ $('.showAddTriggersIrrigation').hide();
599
+ }
532
600
  $('.visInGreenhouse').show()
533
601
  $('.visSensor').hide();
534
602
  $('.visAnalog').hide();
@@ -542,6 +610,13 @@ function showHideSettings(callback) {
542
610
  } else {
543
611
  $('.visInGreenhouse').hide()
544
612
  }
613
+ if (selAddStartTime) {
614
+ $('.showAddWateringTime').show();
615
+ $('.showAddTriggersIrrigation').hide();
616
+ }else{
617
+ $('.showAddWateringTime').hide();
618
+ $('.showAddTriggersIrrigation').hide();
619
+ }
545
620
  $('.visSensor').show();
546
621
  $('.visAnalog').hide();
547
622
  $('.visCalculation').hide();
@@ -554,6 +629,13 @@ function showHideSettings(callback) {
554
629
  } else {
555
630
  $('.visInGreenhouse').hide()
556
631
  }
632
+ if (selAddStartTime) {
633
+ $('.showAddWateringTime').show();
634
+ $('.showAddTriggersIrrigation').show();
635
+ }else{
636
+ $('.showAddWateringTime').hide();
637
+ $('.showAddTriggersIrrigation').hide();
638
+ }
557
639
  $('.visSensor').show();
558
640
  $('.visAnalog').show();
559
641
  $('.visCalculation').hide();
@@ -566,6 +648,13 @@ function showHideSettings(callback) {
566
648
  } else {
567
649
  $('.visInGreenhouse').hide()
568
650
  }
651
+ if (selAddStartTime) {
652
+ $('.showAddWateringTime').show();
653
+ $('.showAddTriggersIrrigation').hide();
654
+ }else{
655
+ $('.showAddWateringTime').hide();
656
+ $('.showAddTriggersIrrigation').hide();
657
+ }
569
658
  $('.visSensor').hide();
570
659
  $('.visAnalog').hide();
571
660
  $('.visCalculation').hide();
@@ -573,6 +662,13 @@ function showHideSettings(callback) {
573
662
  $('.visFixDay').show();
574
663
  } else {
575
664
  $(this).val('calculation');
665
+ if (selAddStartTime) {
666
+ $('.showAddWateringTime').show();
667
+ $('.showAddTriggersIrrigation').show();
668
+ }else{
669
+ $('.showAddWateringTime').hide();
670
+ $('.showAddTriggersIrrigation').hide();
671
+ }
576
672
  $('.visInGreenhouse').show()
577
673
  $('.visSensor').hide();
578
674
  $('.visAnalog').hide();