iobroker.sprinklecontrol 0.2.9 → 0.2.10
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.
- package/README.md +4 -1
- package/io-package.json +13 -1
- package/lib/myConfig.js +18 -6
- package/lib/sendMessageText.js +2 -1
- package/lib/valveControl.js +1 -1
- package/main.js +17 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|

|
|
8
8
|
[](https://www.npmjs.com/package/iobroker.sprinklecontrol)
|
|
9
9
|
[](https://www.npmjs.com/package/iobroker.sprinklecontrol)
|
|
10
|
-
[](https://david-dm.org/Dirk-Peter-md/iobroker.sprinklecontrol)
|
|
11
10
|
[](https://snyk.io/test/github/Dirk-Peter-md/ioBroker.sprinklecontrol)
|
|
12
11
|
[](https://travis-ci.com/Dirk-Peter-md/ioBroker.sprinklecontrol)
|
|
13
12
|
|
|
@@ -35,6 +34,10 @@ Wetterabhängige automatische Steuerung der Gartenbewässerung
|
|
|
35
34
|
Placeholder for the next version (at the beginning of the line):
|
|
36
35
|
### **WORK IN PROGRESS**
|
|
37
36
|
-->
|
|
37
|
+
### 0.2.10 (2022-05-15)
|
|
38
|
+
* (Dirk-Peter-md) manual watering limited to a maximum of 100%
|
|
39
|
+
* (Dirk-Peter-md) Error whatsapp message fixed
|
|
40
|
+
|
|
38
41
|
### 0.2.9 (2022-04-10)
|
|
39
42
|
* (Dirk-Peter-md) Bug-Initialisierungsroutine
|
|
40
43
|
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "sprinklecontrol",
|
|
4
|
-
"version": "0.2.
|
|
4
|
+
"version": "0.2.10",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.2.10": {
|
|
7
|
+
"en": "- manual watering limited to a maximum of 100%; - Error whatsapp message fixed",
|
|
8
|
+
"de": "- manuelle Bewässerung begrenzt auf maximal 100 %; - Fehler WhatsApp-Nachricht behoben",
|
|
9
|
+
"ru": "- ручной полив ограничен максимум 100%; - Исправлено сообщение об ошибке WhatsApp",
|
|
10
|
+
"pt": "- rega manual limitada a um máximo de 100%; - Mensagem de erro do whatsapp corrigida",
|
|
11
|
+
"nl": "- handmatige bewatering beperkt tot maximaal 100%; - Fout whatsapp-bericht opgelost",
|
|
12
|
+
"fr": "- arrosage manuel limité à 100% maximum ; - Message d'erreur WhatsApp corrigé",
|
|
13
|
+
"it": "- irrigazione manuale limitata ad un massimo del 100%; - Errore messaggio whatsapp risolto",
|
|
14
|
+
"es": "- riego manual limitado a un máximo del 100%; - Mensaje de error de whatsapp arreglado",
|
|
15
|
+
"pl": "- nawadnianie ręczne ograniczone do maksymalnie 100%; - Naprawiono błąd wiadomości WhatsApp",
|
|
16
|
+
"zh-cn": "- 手动浇水限制为最大 100%; - 错误whatsapp消息已修复"
|
|
17
|
+
},
|
|
6
18
|
"0.2.9": {
|
|
7
19
|
"en": "Bug initialization routine",
|
|
8
20
|
"de": "Bug-Initialisierungsroutine",
|
package/lib/myConfig.js
CHANGED
|
@@ -21,7 +21,7 @@ let adapter;
|
|
|
21
21
|
* @param {string} res.analogZPct - analog Zero Percent [Auswahlfeld in der Config des Sprinklers > Bodenfeuchte-Sensor > analog > Wert bei 0 %]
|
|
22
22
|
* @param {string} res.analogOHPct - analog One Hundert Percent [Auswahlfeld in der Config des Sprinklers > Bodenfeuchte-Sensor > analog > Wert bei 100 %]
|
|
23
23
|
* @param {string} res.maxSoilMoistureIrrigation - maximale Bodenfeuchte nach der Bewässerung [Auswahlfeld in der Config des Sprinklers]
|
|
24
|
-
* @param {string} res.startDay - Auswahl (threeRd = Start im 3
|
|
24
|
+
* @param {string} res.startDay - Auswahl (threeRd = Start im 3-Tages-Rhythmus,twoNd = Start im 2-Tages-Rhythmus, fixDay = Start an festen Tagen Sun-Sat)
|
|
25
25
|
* @param {boolean} res.sun - Sontag, Sunday (Sun)
|
|
26
26
|
* @param {boolean} res.mon - Montag, Monday (Mon)
|
|
27
27
|
* @param {boolean} res.tue - Dienstag, Tuesday (Tue) (Tues)
|
|
@@ -111,7 +111,18 @@ function getMetConSM(res) {
|
|
|
111
111
|
setBool: null
|
|
112
112
|
};
|
|
113
113
|
} else {
|
|
114
|
-
adapter.log.warn('No irrigation type is selected in the SprinkleControl configuration! Please adjust.');
|
|
114
|
+
adapter.log.warn('Emergency program! No irrigation type is selected in the SprinkleControl configuration! Please adjust.');
|
|
115
|
+
return {
|
|
116
|
+
setStartDay: 'twoNd',
|
|
117
|
+
setStartFixDay: [false, false, false, false, false, false, false], // Sun, Mon, Tue, Wed, Thur, Fri, Sat
|
|
118
|
+
setMetConSM: 'fixDay',
|
|
119
|
+
setTrigSM: '',
|
|
120
|
+
setAnalogZPct: null,
|
|
121
|
+
setAnalogOHPct: null,
|
|
122
|
+
setPct: null,
|
|
123
|
+
setVal: null,
|
|
124
|
+
setBool: null
|
|
125
|
+
};
|
|
115
126
|
}
|
|
116
127
|
}
|
|
117
128
|
|
|
@@ -140,7 +151,8 @@ const myConfig = {
|
|
|
140
151
|
/** Starttage in der Woche
|
|
141
152
|
* - 0(Sun); 1(Mon); 2(Tue); 3(Wed); 4(Thur); 5(Fri); 6(Sat)
|
|
142
153
|
* @type {Array.<boolean>}
|
|
143
|
-
* startFixDay */
|
|
154
|
+
* startFixDay */
|
|
155
|
+
startFixDay: metConSM.setStartFixDay, // Sontag, Sunday (Sun)// Montag, Monday (Mon)// Dienstag, Tuesday (Tue) (Tues)// Mittwoch, Wednesday (Wed)// Donnerstag, Thursday (Thur) (Thurs)// Freitag, Friday (Fri)// Samstag, Saturday (Sat)
|
|
144
156
|
/** - Auswahl:
|
|
145
157
|
* - threeRd = Start im 3 Tages Rhythmus,
|
|
146
158
|
* - twoNd = Start im 2 Tages Rhythmus
|
|
@@ -190,7 +202,7 @@ const myConfig = {
|
|
|
190
202
|
},
|
|
191
203
|
/**
|
|
192
204
|
* apply Evaporation
|
|
193
|
-
*
|
|
205
|
+
* → Verdunstung anwenden auf die einzelnen Sprenger kreise
|
|
194
206
|
* @param {number} eTP - pot. Evapotranspiration nach Penman ETp in mm/d
|
|
195
207
|
*/
|
|
196
208
|
applyEvaporation: (eTP) => {
|
|
@@ -281,13 +293,13 @@ const myConfig = {
|
|
|
281
293
|
}
|
|
282
294
|
},
|
|
283
295
|
/**
|
|
284
|
-
* Bodenfeuchte (soilMoisture) erhöhen bis
|
|
296
|
+
* Bodenfeuchte (soilMoisture) erhöhen bis maxIrrigation (100%)
|
|
285
297
|
* @param {number} mySprinkleID - ID des Bewässerungskreis
|
|
286
298
|
* @param {number} addVal - soilMoisture.val wird um den Wert addVal erhöht
|
|
287
299
|
*/
|
|
288
300
|
addSoilMoistVal: (mySprinkleID, addVal) => {
|
|
289
301
|
myConfig.config[mySprinkleID].soilMoisture.val += addVal;
|
|
290
|
-
if (myConfig.config[mySprinkleID].soilMoisture.val > myConfig.config[mySprinkleID].soilMoisture.
|
|
302
|
+
if (myConfig.config[mySprinkleID].soilMoisture.val > myConfig.config[mySprinkleID].soilMoisture.maxIrrigation) {myConfig.config[mySprinkleID].soilMoisture.val = myConfig.config[mySprinkleID].soilMoisture.maxIrrigation}
|
|
291
303
|
myConfig.config[mySprinkleID].soilMoisture.pct = Math.round(1000 * myConfig.config[mySprinkleID].soilMoisture.val
|
|
292
304
|
/ myConfig.config[mySprinkleID].soilMoisture.maxIrrigation) / 10; // Berechnung in %
|
|
293
305
|
adapter.setState('sprinkle.' + myConfig.config[mySprinkleID].objectName + '.actualSoilMoisture', {
|
package/lib/sendMessageText.js
CHANGED
|
@@ -51,7 +51,7 @@ const sendMessageText = {
|
|
|
51
51
|
/** @type {string} */ emailReceiver: adapter.config.emailReceiver,
|
|
52
52
|
/** @type {string} */ emailSender: adapter.config.emailSender,
|
|
53
53
|
/** @type {boolean} */ onlyError: adapter.config.emailOnlyError,
|
|
54
|
-
/** @type {number} */ waiting: parseInt(adapter.config.emailWaitToSend) * 1000
|
|
54
|
+
/** @type {number} */ waiting: (parseInt(adapter.config.emailWaitToSend) * 1000) || 0
|
|
55
55
|
};
|
|
56
56
|
break;
|
|
57
57
|
|
|
@@ -172,6 +172,7 @@ const sendMessageText = {
|
|
|
172
172
|
ObjMessage.instance !== null &&
|
|
173
173
|
ObjMessage.instance !== undefined) {
|
|
174
174
|
sendMessage = '<b><u>SprinkleControl:</u></b>\n' + sendMessage;
|
|
175
|
+
sendMessage = sendMessage.replace(/\n/g,'%0A'); // Zeilenumbruch
|
|
175
176
|
sendMessage = sendMessage.replace(/<b>|<\/b>/g, '*'); // Fett Bold
|
|
176
177
|
sendMessage = sendMessage.replace(/<i>|<\/i>/g, '_'); // kursive Italic
|
|
177
178
|
sendMessage = sendMessage.replace(/<u>|<\/u>/g, ''); // unterstrichen
|
package/lib/valveControl.js
CHANGED
|
@@ -860,7 +860,7 @@ const valveControl = {
|
|
|
860
860
|
clearTimeout(entry.times.boostTime2);
|
|
861
861
|
entry.times.boostTime2 = null;
|
|
862
862
|
}
|
|
863
|
-
threadList.pop();
|
|
863
|
+
threadList.pop(); // del last array
|
|
864
864
|
adapter.log.debug(`order deleted Stop all ID: ${entry.sprinkleName} ( rest orders: ${threadList.length} )`);
|
|
865
865
|
}
|
|
866
866
|
updateList();
|
package/main.js
CHANGED
|
@@ -116,7 +116,7 @@ function startAdapter(options) {
|
|
|
116
116
|
err && adapter.log.error(err);
|
|
117
117
|
if (state && state.val) {
|
|
118
118
|
try {
|
|
119
|
-
adapter.log.
|
|
119
|
+
adapter.log.debug('getTelegramUser:' + state.val);
|
|
120
120
|
adapter.sendTo(obj.from, obj.command, JSON.parse(state.val), obj.callback);
|
|
121
121
|
} catch (err) {
|
|
122
122
|
err && adapter.log.error(err);
|
|
@@ -953,6 +953,22 @@ async function createSprinklers() {
|
|
|
953
953
|
break;
|
|
954
954
|
default:
|
|
955
955
|
adapter.log.warn(`sprinkleControl cannot created ... Please check your sprinkleControl config ${objectName} methodControl`);
|
|
956
|
+
nameMetConSM = objectName + ' => Emergency program! start on a fixed day';
|
|
957
|
+
objMetConSM = {
|
|
958
|
+
'type': 'state',
|
|
959
|
+
'common': {
|
|
960
|
+
'role': 'state',
|
|
961
|
+
'name': nameMetConSM,
|
|
962
|
+
'type': 'number',
|
|
963
|
+
'min': 0,
|
|
964
|
+
'max': 7,
|
|
965
|
+
'states': {"0":"Sun", "1":"Mon", "2":"Tue", "3":"Wed", "4":"Thur", "5":"Fri", "6":"Sat", "7":"off"},
|
|
966
|
+
'read': true,
|
|
967
|
+
'write': false,
|
|
968
|
+
'def': 7
|
|
969
|
+
},
|
|
970
|
+
'native': {},
|
|
971
|
+
};
|
|
956
972
|
}
|
|
957
973
|
}
|
|
958
974
|
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //
|