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.
@@ -1,163 +1,197 @@
1
- 'use strict';
2
- /*
3
- info: log aufbau sendMessageText.js: #4.*
4
- */
5
- /**
6
- * The adapter instance
7
- *
8
- */
9
- let adapter;
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
- const sendMessageText = {
18
-
19
- /**
20
- *
21
- * @param myAdapter - Kopie von Adapter main.js
22
- */
23
- initConfigMessage (myAdapter) {
24
- adapter = myAdapter;
25
- switch (adapter.config.notificationsType) {
26
- case 'Telegram':
27
- ObjMessage = { enabled: adapter.config.notificationEnabled || false, notificationsType: adapter.config.notificationsType, type: 'message', instance: adapter.config.telegramInstance, silentNotice: adapter.config.telegramSilentNotice, noticeType: (adapter.config.telegramNoticeType === 'longTelegramNotice'), user: adapter.config.telegramUser, onlyError: adapter.config.telegramOnlyError, waiting: (Math.round(adapter.config.telegramWaitToSend) * 1000) || 0
28
- };
29
- break;
30
-
31
- case 'E-Mail':
32
- ObjMessage = { enabled: adapter.config.notificationEnabled || false, notificationsType: adapter.config.notificationsType, type: 'message', instance: adapter.config.emailInstance, noticeType: (adapter.config.emailNoticeType === 'longEmailNotice'), emailReceiver: adapter.config.emailReceiver, emailSender: adapter.config.emailSender, onlyError: adapter.config.emailOnlyError, waiting: (Math.round(adapter.config.emailWaitToSend) * 1000) || 0
33
- };
34
- break;
35
-
36
- case 'Pushover':
37
- ObjMessage = { enabled: adapter.config.notificationEnabled || false, notificationsType: adapter.config.notificationsType, type: 'message', sound: adapter.config.pushoverSound, instance: adapter.config.pushoverInstance, silentNotice: adapter.config.pushoverSilentNotice, noticeType: (adapter.config.pushoverNoticeType === 'longPushoverNotice'), deviceID: adapter.config.pushoverDeviceID, onlyError: adapter.config.pushoverOnlyError, waiting: (Math.round(adapter.config.pushoverWaitToSend) * 1000) || 0
38
- };
39
- break;
40
-
41
- case 'WhatsApp':
42
- ObjMessage = { enabled: adapter.config.notificationEnabled || false, notificationsType: adapter.config.notificationsType, type: 'message', instance: adapter.config.whatsappInstance, noticeType: (adapter.config.whatsappNoticeType === 'longWhatsappNotice'), onlyError: adapter.config.whatsappOnlyError, waiting: (Math.round(adapter.config.whatsappWaitToSend) * 1000) || 0
43
- };
44
- break;
45
- }
46
- },
47
- /**
48
- * send Message ist für Telegram formatiert und muss für andere Empfänger umformatiert werden
49
- *
50
- *@param message - Botschaft
51
- */
52
- sendMessage (message) {
53
-
54
- let sendMessage = message;
55
-
56
- setTimeout(function () {
57
- switch (ObjMessage.notificationsType) {
58
- case 'Telegram':
59
- if (ObjMessage.enabled &&
60
- ObjMessage.instance !== '' &&
61
- ObjMessage.instance !== null &&
62
- ObjMessage.instance !== undefined) {
63
- adapter.log.debug('start sendMessageText per Telegram');
64
- sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage }`;
65
- // send Telegram Message
66
- if ((ObjMessage.User) && (ObjMessage.User !== 'allTelegramUsers')) {
67
- adapter.sendTo(ObjMessage.instance, 'send', {
68
- user: ObjMessage.User,
69
- text: sendMessage,
70
- disable_notification: ObjMessage.SilentNotice,
71
- parse_mode: 'HTML'
72
- });
73
- } else {
74
- adapter.sendTo(ObjMessage.instance, 'send', {
75
- text: sendMessage,
76
- disable_notification: ObjMessage.SilentNotice,
77
- parse_mode: 'HTML'
78
- });
79
- }
80
- }
81
- break;
82
-
83
- case 'E-Mail':
84
-
85
- if (ObjMessage.enabled &&
86
- ObjMessage.instance !== '' &&
87
- ObjMessage.instance !== null &&
88
- ObjMessage.instance !== undefined) {
89
- sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage}`;
90
- sendMessage = sendMessage.replace(/\n/g, '<br />');
91
- adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
92
- // Send E-Mail Message
93
- adapter.sendTo(ObjMessage.instance, 'send', {
94
- html: sendMessage,
95
- to: ObjMessage.emailReceiver,
96
- subject: 'SprinkleControl',
97
- from: ObjMessage.emailSender
98
- });
99
- }
100
- break;
101
-
102
- case 'Pushover' :
103
-
104
- if (ObjMessage.enabled &&
105
- ObjMessage.instance !== '' &&
106
- ObjMessage.instance !== null &&
107
- ObjMessage.instance !== undefined) {
108
- adapter.log.debug(`start sendMessageText per E-Mail on used E-Mail-Instance: ${ObjMessage.instance}`);
109
- // Send pushover Message
110
- if (ObjMessage.SilentNotice === 'true' || ObjMessage.SilentNotice === true) {
111
- adapter.sendTo(ObjMessage.instance, 'send', {
112
- message: sendMessage,
113
- sound: ObjMessage.sound,
114
- priority: -1,
115
- html: 1,
116
- title: 'SprinkleControl',
117
- device: ObjMessage.deviceID
118
- });
119
- } else {
120
- adapter.sendTo(ObjMessage.instance, 'send', {
121
- message: sendMessage,
122
- sound: ObjMessage.sound,
123
- html: 1,
124
- title: 'SprinkleControl',
125
- device: ObjMessage.deviceID
126
- });
127
- }
128
- }
129
- break;
130
-
131
- case 'WhatsApp' :
132
- if (ObjMessage.enabled &&
133
- ObjMessage.instance !== '' &&
134
- ObjMessage.instance !== null &&
135
- ObjMessage.instance !== undefined) {
136
- sendMessage = `<b><u>SprinkleControl:</u></b>\n${ sendMessage}`;
137
- sendMessage = sendMessage.replace(/\n/g,'%0A'); // Zeilenumbruch
138
- sendMessage = sendMessage.replace(/<b>|<\/b>/g, '*'); // Fett Bold
139
- sendMessage = sendMessage.replace(/<i>|<\/i>/g, '_'); // kursive Italic
140
- sendMessage = sendMessage.replace(/<u>|<\/u>/g, ''); // unterstrichen
141
- adapter.log.debug(`start sendMessageText per WhatsApp on used WhatsApp-Instance: ${ObjMessage.instance}`);
142
- // Send WhatsApp Message
143
- adapter.sendTo(ObjMessage.instance, 'send', {
144
- text: sendMessage
145
- });
146
- }
147
- break;
148
- }
149
- }, ObjMessage.waiting);
150
- },
151
-
152
- /**
153
- * Nachrichtenversandabfrage => true (Ja)
154
- *
155
- * @returns
156
- */
157
- onlySendError () {
158
- return (adapter.config.notificationEnabled && adapter.config.notificationsType && ObjMessage.onlyError);
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;