iobroker.sprinklecontrol 0.2.18 → 1.0.0
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/LICENSE +1 -1
- package/README.md +11 -13
- package/admin/i18n/de/translations.json +13 -3
- package/admin/i18n/en/translations.json +13 -3
- package/admin/i18n/es/translations.json +13 -3
- package/admin/i18n/fr/translations.json +13 -3
- package/admin/i18n/it/translations.json +13 -3
- package/admin/i18n/nl/translations.json +13 -3
- package/admin/i18n/pl/translations.json +13 -3
- package/admin/i18n/pt/translations.json +13 -3
- package/admin/i18n/ru/translations.json +13 -3
- package/admin/i18n/uk/translations.json +13 -3
- package/admin/i18n/zh-cn/translations.json +13 -3
- package/admin/index_m.html +941 -914
- package/admin/index_m.js +807 -779
- package/admin/words.js +12 -2
- package/io-package.json +231 -186
- package/lib/evaporation.js +497 -455
- package/lib/myConfig.js +190 -266
- package/lib/sendMessageText.js +196 -162
- package/lib/tools.js +211 -148
- package/lib/valveControl.js +1414 -974
- package/main.js +1416 -1245
- package/package.json +9 -14
package/lib/sendMessageText.js
CHANGED
|
@@ -1,163 +1,197 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
/*
|
|
3
|
-
info: log aufbau sendMessageText.js: #4.*
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* The adapter instance
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
let ObjMessage = {};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Modul zum Versenden von Nachrichten mittels Telegram, E-Mail, Pushover oder WhatsApp
|
|
14
|
-
* der passende Adapter muss installiert sein!
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
adapter
|
|
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
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
/*
|
|
3
|
+
info: log aufbau sendMessageText.js: #4.*
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The adapter instance
|
|
7
|
+
*/
|
|
8
|
+
let adapter;
|
|
9
|
+
|
|
10
|
+
let ObjMessage = {};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Modul zum Versenden von Nachrichten mittels Telegram, E-Mail, Pushover oder WhatsApp
|
|
14
|
+
* der passende Adapter muss installiert sein!
|
|
15
|
+
*/
|
|
16
|
+
const sendMessageText = {
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param {ioBroker.Adapter} myAdapter - Kopie von Adapter main.js
|
|
21
|
+
*/
|
|
22
|
+
initConfigMessage (myAdapter) {
|
|
23
|
+
adapter = myAdapter;
|
|
24
|
+
switch (adapter.config.notificationsType) {
|
|
25
|
+
case 'Telegram':
|
|
26
|
+
ObjMessage = {
|
|
27
|
+
enabled: adapter.config.notificationEnabled || false,
|
|
28
|
+
notificationsType: adapter.config.notificationsType,
|
|
29
|
+
type: 'message',
|
|
30
|
+
instance: adapter.config.telegramInstance,
|
|
31
|
+
silentNotice: adapter.config.telegramSilentNotice,
|
|
32
|
+
noticeType: (adapter.config.telegramNoticeType === 'longTelegramNotice'),
|
|
33
|
+
user: adapter.config.telegramUser,
|
|
34
|
+
onlyError: adapter.config.telegramOnlyError,
|
|
35
|
+
waiting: (+ adapter.config.telegramWaitToSend * 1000) || 0
|
|
36
|
+
};
|
|
37
|
+
break;
|
|
38
|
+
|
|
39
|
+
case 'E-Mail':
|
|
40
|
+
ObjMessage = {
|
|
41
|
+
enabled: adapter.config.notificationEnabled || false,
|
|
42
|
+
notificationsType: adapter.config.notificationsType,
|
|
43
|
+
type: 'message',
|
|
44
|
+
instance: adapter.config.emailInstance,
|
|
45
|
+
noticeType: (adapter.config.emailNoticeType === 'longEmailNotice'),
|
|
46
|
+
emailReceiver: adapter.config.emailReceiver,
|
|
47
|
+
emailSender: adapter.config.emailSender,
|
|
48
|
+
onlyError: adapter.config.emailOnlyError,
|
|
49
|
+
waiting: (+ adapter.config.emailWaitToSend * 1000) || 0
|
|
50
|
+
};
|
|
51
|
+
break;
|
|
52
|
+
|
|
53
|
+
case 'Pushover':
|
|
54
|
+
ObjMessage = {
|
|
55
|
+
enabled: adapter.config.notificationEnabled || false,
|
|
56
|
+
notificationsType: adapter.config.notificationsType,
|
|
57
|
+
type: 'message',
|
|
58
|
+
sound: adapter.config.pushoverSound,
|
|
59
|
+
instance: adapter.config.pushoverInstance,
|
|
60
|
+
silentNotice: adapter.config.pushoverSilentNotice,
|
|
61
|
+
noticeType: (adapter.config.pushoverNoticeType === 'longPushoverNotice'),
|
|
62
|
+
deviceID: adapter.config.pushoverDeviceID,
|
|
63
|
+
onlyError: adapter.config.pushoverOnlyError,
|
|
64
|
+
waiting: (+ adapter.config.pushoverWaitToSend * 1000) || 0
|
|
65
|
+
};
|
|
66
|
+
break;
|
|
67
|
+
|
|
68
|
+
case 'WhatsApp':
|
|
69
|
+
ObjMessage = {
|
|
70
|
+
enabled: adapter.config.notificationEnabled || false,
|
|
71
|
+
notificationsType: adapter.config.notificationsType,
|
|
72
|
+
type: 'message',
|
|
73
|
+
instance: adapter.config.whatsappInstance,
|
|
74
|
+
noticeType: (adapter.config.whatsappNoticeType === 'longWhatsappNotice'),
|
|
75
|
+
onlyError: adapter.config.whatsappOnlyError,
|
|
76
|
+
waiting: (+ adapter.config.whatsappWaitToSend * 1000) || 0
|
|
77
|
+
};
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* send Message ist für Telegram formatiert und muss für andere Empfänger umformatiert werden
|
|
83
|
+
*
|
|
84
|
+
*@param {string} message - Botschaft
|
|
85
|
+
*/
|
|
86
|
+
sendMessage (message) {
|
|
87
|
+
|
|
88
|
+
let sendMessage = message;
|
|
89
|
+
|
|
90
|
+
setTimeout(function () {
|
|
91
|
+
switch (ObjMessage.notificationsType) {
|
|
92
|
+
case 'Telegram':
|
|
93
|
+
if (ObjMessage.enabled &&
|
|
94
|
+
ObjMessage.instance !== '' &&
|
|
95
|
+
ObjMessage.instance !== null &&
|
|
96
|
+
ObjMessage.instance !== undefined) {
|
|
97
|
+
adapter.log.debug('start sendMessageText per Telegram');
|
|
98
|
+
sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage }`;
|
|
99
|
+
// send Telegram Message
|
|
100
|
+
if ((ObjMessage.User) && (ObjMessage.User !== 'allTelegramUsers')) {
|
|
101
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
102
|
+
user: ObjMessage.User,
|
|
103
|
+
text: sendMessage,
|
|
104
|
+
disable_notification: ObjMessage.SilentNotice,
|
|
105
|
+
parse_mode: 'HTML'
|
|
106
|
+
});
|
|
107
|
+
} else {
|
|
108
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
109
|
+
text: sendMessage,
|
|
110
|
+
disable_notification: ObjMessage.SilentNotice,
|
|
111
|
+
parse_mode: 'HTML'
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
|
|
117
|
+
case 'E-Mail':
|
|
118
|
+
|
|
119
|
+
if (ObjMessage.enabled &&
|
|
120
|
+
ObjMessage.instance !== '' &&
|
|
121
|
+
ObjMessage.instance !== null &&
|
|
122
|
+
ObjMessage.instance !== undefined) {
|
|
123
|
+
sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage }`;
|
|
124
|
+
sendMessage = sendMessage.replace(/\n/g, '<br />');
|
|
125
|
+
adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
|
|
126
|
+
// Send E-Mail Message
|
|
127
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
128
|
+
html: sendMessage,
|
|
129
|
+
to: ObjMessage.emailReceiver,
|
|
130
|
+
subject: 'SprinkleControl',
|
|
131
|
+
from: ObjMessage.emailSender
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
break;
|
|
135
|
+
|
|
136
|
+
case 'Pushover' :
|
|
137
|
+
|
|
138
|
+
if (ObjMessage.enabled &&
|
|
139
|
+
ObjMessage.instance !== '' &&
|
|
140
|
+
ObjMessage.instance !== null &&
|
|
141
|
+
ObjMessage.instance !== undefined) {
|
|
142
|
+
adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
|
|
143
|
+
// Send pushover Message
|
|
144
|
+
if (ObjMessage.SilentNotice === 'true' || ObjMessage.SilentNotice === true) {
|
|
145
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
146
|
+
message: sendMessage,
|
|
147
|
+
sound: ObjMessage.sound,
|
|
148
|
+
priority: -1,
|
|
149
|
+
html: 1,
|
|
150
|
+
title: 'SprinkleControl',
|
|
151
|
+
device: ObjMessage.deviceID
|
|
152
|
+
});
|
|
153
|
+
} else {
|
|
154
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
155
|
+
message: sendMessage,
|
|
156
|
+
sound: ObjMessage.sound,
|
|
157
|
+
html: 1,
|
|
158
|
+
title: 'SprinkleControl',
|
|
159
|
+
device: ObjMessage.deviceID
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
break;
|
|
164
|
+
|
|
165
|
+
case 'WhatsApp' :
|
|
166
|
+
if (ObjMessage.enabled &&
|
|
167
|
+
ObjMessage.instance !== '' &&
|
|
168
|
+
ObjMessage.instance !== null &&
|
|
169
|
+
ObjMessage.instance !== undefined) {
|
|
170
|
+
sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage }`;
|
|
171
|
+
sendMessage = sendMessage.replace(/\n/g,'%0A'); // Zeilenumbruch
|
|
172
|
+
sendMessage = sendMessage.replace(/<b>|<\/b>/g, '*'); // Fett Bold
|
|
173
|
+
sendMessage = sendMessage.replace(/<i>|<\/i>/g, '_'); // kursive Italic
|
|
174
|
+
sendMessage = sendMessage.replace(/<u>|<\/u>/g, ''); // unterstrichen
|
|
175
|
+
adapter.log.debug(`start sendMessageText per WhatsApp on used WhatsApp-Instance: ${ObjMessage.instance}`);
|
|
176
|
+
// Send WhatsApp Message
|
|
177
|
+
adapter.sendTo(ObjMessage.instance, 'send', {
|
|
178
|
+
text: sendMessage
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
}, ObjMessage.waiting);
|
|
184
|
+
},
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Nachrichtenversandabfrage => true (Ja)
|
|
188
|
+
*
|
|
189
|
+
* @returns {boolean}
|
|
190
|
+
*/
|
|
191
|
+
onlySendError () {
|
|
192
|
+
return (adapter.config.notificationEnabled && adapter.config.notificationsType && ObjMessage.onlyError);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
};
|
|
196
|
+
|
|
163
197
|
module.exports = sendMessageText;
|