iobroker.alarm 2.1.1 → 3.0.4
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 +14 -4
- package/admin/index_m.html +128 -71
- package/admin/words.js +83 -12
- package/io-package.json +59 -5
- package/main.js +108 -94
- package/package.json +3 -4
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2022 misanorot <audi16v@gmx.de>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
|
|
4
4
|
 [](https://www.npmjs.com/package/iobroker.alarm)
|
|
5
5
|
[](https://www.npmjs.com/package/iobroker.alarm)
|
|
6
|
-
[](https://david-dm.org/misanorot/iobroker.alarm)
|
|
7
6
|
[](https://snyk.io/test/github/misanorot/ioBroker.alarm)
|
|
8
7
|
|
|
9
8
|
[](https://nodei.co/npm/iobroker.alarm/)
|
|
@@ -32,9 +31,9 @@ Hier werden die Einstellungen wie die Zeiten der Nachtruhe, Sirenezeit, Stiller-
|
|
|
32
31
|
|
|
33
32
|
|
|
34
33
|
- Aktivierzeit -> Zeitverzögerung bis zu Aktivierung wenn man einen delay Datenpunkt benutzt
|
|
35
|
-
- Sirenenzeit bei Einbruch -> Bei Einbruch wird der Datenpunkt alarm.0.status.siren für die Zeit auf true gesetzt
|
|
34
|
+
- Sirenenzeit bei Einbruch -> Bei Einbruch wird der Datenpunkt alarm.0.status.siren / siren_inside für die Zeit auf true gesetzt
|
|
36
35
|
- Alarmverzögerung -> Verzögerungszeit bis Einbruch ausgelöst wird (während dieser Zeit wird der Stille Alarm ausgelöst)
|
|
37
|
-
|
|
36
|
+
|
|
38
37
|
|
|
39
38
|
----------------------------------------------------------------------------------------------------------------------
|
|
40
39
|
|
|
@@ -43,6 +42,8 @@ Hier werden die Einstellungen wie die Zeiten der Nachtruhe, Sirenezeit, Stiller-
|
|
|
43
42
|
Benachrichtigungen über Andere Adapter wie z. B. Telegramm, Email oder andere.
|
|
44
43
|
[Probleme](#Probleme)
|
|
45
44
|
|
|
45
|
+
Bei Benachrichtigungen an den Telegram Adapter, ist es möglich User- oder Chat IDs zu benutzen.
|
|
46
|
+
|
|
46
47
|
----------------------------------------------------------------------------------------------------------------------
|
|
47
48
|
|
|
48
49
|
### Tab Überwachung
|
|
@@ -152,6 +153,15 @@ Beinhaltet die Informationen für die "anderen" Alarmkreise 1 + 2.
|
|
|
152
153
|
|
|
153
154
|
## Changelog
|
|
154
155
|
|
|
156
|
+
#### 3.0.3 (31.01.2022)
|
|
157
|
+
* (misanorot) changed burgle concept, added silent alarm at sharp inside, fixed little issues
|
|
158
|
+
|
|
159
|
+
#### 2.2.1 (20.01.2022)
|
|
160
|
+
* (misanorot) added notification when warnings at beginning night rest
|
|
161
|
+
|
|
162
|
+
#### 2.2.0 (16.01.2022)
|
|
163
|
+
* (misanorot) added telegram special parameters
|
|
164
|
+
|
|
155
165
|
#### 2.1.1 (07.11.2021)
|
|
156
166
|
* (misanorot) added countdown state for silent alarm
|
|
157
167
|
|
|
@@ -245,4 +255,4 @@ Beinhaltet die Informationen für die "anderen" Alarmkreise 1 + 2.
|
|
|
245
255
|
## License
|
|
246
256
|
MIT License
|
|
247
257
|
|
|
248
|
-
Copyright (c) 2019-
|
|
258
|
+
Copyright (c) 2019-2022 misanorot <audi16v@gmx.de>
|
package/admin/index_m.html
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
sayit = settings.sayit || [];
|
|
39
39
|
one = settings.one || [];
|
|
40
40
|
two = settings.two || [];
|
|
41
|
+
new_version = settings.version;
|
|
41
42
|
|
|
42
43
|
|
|
43
44
|
|
|
@@ -63,12 +64,15 @@
|
|
|
63
64
|
onChange(false);
|
|
64
65
|
// reinitialize all the Materialize labels on the page if you are dynamically adding inputs:
|
|
65
66
|
if (M) M.updateTextFields();
|
|
67
|
+
if (!new_version) {
|
|
68
|
+
version('', onChange);
|
|
69
|
+
}
|
|
66
70
|
$('.timepicker').timepicker({
|
|
67
71
|
"twelveHour":false
|
|
68
72
|
});
|
|
69
73
|
|
|
70
74
|
$('.tooltipped').tooltip();
|
|
71
|
-
|
|
75
|
+
telChanging();
|
|
72
76
|
values2table('circuits', circuits, onChange, tableOnReady);
|
|
73
77
|
leaving();
|
|
74
78
|
values2table('shorts_in', shorts_in, onChange, tableOnReady);
|
|
@@ -83,9 +87,9 @@
|
|
|
83
87
|
values2table('zone_five', zone_five, onChange, tableOnReady);
|
|
84
88
|
values2table('zone_six', zone_six, onChange, tableOnReady);
|
|
85
89
|
*/
|
|
86
|
-
$('#opt_leave').change(leaving);
|
|
87
|
-
|
|
88
90
|
|
|
91
|
+
$('#opt_leave').change(leaving);
|
|
92
|
+
$('#opt_telegram').change(telChanging);
|
|
89
93
|
$('.sendTo_Chips').chips({
|
|
90
94
|
placeholder: 'Add adapter',
|
|
91
95
|
secondaryPlaceholder: '+instance'
|
|
@@ -102,12 +106,11 @@
|
|
|
102
106
|
});
|
|
103
107
|
});
|
|
104
108
|
list2chips('.sendTo_Chips', settings.sendTo || '', onChange);
|
|
105
|
-
|
|
106
109
|
$('#sayit_help').on('click', ()=> {
|
|
107
110
|
showMessage('Bitte einen state auswählen, wo Sie sicher sind, dass dieser mit einem Text zur Sprachausgabe beschrieben werden kann! Als Beispiel sayit.0.tts.text. Als Optionen zur Ausgabe, stehen die unten stehenden Sätze mit der entsprechenden Nummer zu Verfügung.');
|
|
108
111
|
});
|
|
109
112
|
$('#circuits_help').on('click', ()=> {
|
|
110
|
-
showMessage('Alarmkreis => entspricht Vollschutz, Betreiber ist nicht Zuhause
|
|
113
|
+
showMessage('* Alarmkreis => entspricht Vollschutz, Betreiber ist nicht Zuhause <br>* Scharf innen => entspricht Aussenhautüberwachung, Betreiber ist anwesend <br>* Benachrichtigungen => Es werden Meldungen während scharf und scharf innen aussgegeben <br>* Stiller Alarm => Bei Aktivierung wird erst der Stille statt der richtige Alarm ausgelöst. <br>* negieren => triggert den State auf false <br>* verlassen => Bei Aktivierung über Countdown, wird dieser beendet und die Alarmanlage aktiviert');
|
|
111
114
|
});
|
|
112
115
|
$('#test_sayit').on('click', ()=>{
|
|
113
116
|
const tts_instance = table2values('sayit');
|
|
@@ -154,12 +157,21 @@
|
|
|
154
157
|
obj.zone_five = table2values('zone_five');
|
|
155
158
|
obj.zone_six = table2values('zone_six');*/
|
|
156
159
|
obj.states = states;
|
|
160
|
+
obj.version = new_version;
|
|
157
161
|
callback(obj);
|
|
158
162
|
}
|
|
159
163
|
//##############################################
|
|
160
164
|
|
|
161
165
|
//########### HELPERS ###########
|
|
162
166
|
|
|
167
|
+
function version(id, callback) {
|
|
168
|
+
if (id !== 'version_button') {
|
|
169
|
+
new_version = true;
|
|
170
|
+
callback();
|
|
171
|
+
}
|
|
172
|
+
showMessage('<b>Ab Version 3.x.x, habe ich mich dazu entschieden den Alarm auch bei scharf innen auszulösen! Das verändert die Funktion des Adapters ein wenig. Es wird jetzt zwischen Sirene intern und extern unterschieden, hierzu ist zu beachten, dass es den Datenpunkt info.sharp_inside_siren nicht mehr gibt. Diesen bitte ggf. manuell löschen! Der Datenpunkt wurde durch status.siren_inside ersetzt, und entspricht der Innensirene. Es ist zu beachten, dass das auch ggf. bei den Verknüpfungen neu einzustellen ist. Möchte man dies Aussensirene auch bei innen Alarm auslösen, kann man das in den allgemeinen Einstellungen tun. <br><br> DANKE FÜR DAS VERSTÄNDNIS, ABER ICH DENKE SO IST ES LOGISCHER!</b>');
|
|
173
|
+
}
|
|
174
|
+
|
|
163
175
|
function checkTrigger(val, id) {
|
|
164
176
|
if (val === 'status.state_list') {
|
|
165
177
|
$('#shorts .values-input[data-name="trigger_val"][data-index="' + id + '"] option[value=true]').prop('disabled',true);
|
|
@@ -187,10 +199,23 @@ function checkTrigger(val, id) {
|
|
|
187
199
|
$('select').select()
|
|
188
200
|
}
|
|
189
201
|
|
|
190
|
-
function
|
|
202
|
+
function telChanging() {
|
|
203
|
+
let check = document.getElementById('opt_telegram').checked;
|
|
204
|
+
if (check) {
|
|
205
|
+
$('#user').prop('disabled', false);
|
|
206
|
+
$('#chatID').prop('disabled', false);
|
|
207
|
+
$('#user').show();
|
|
208
|
+
$('#chatID').show();
|
|
209
|
+
} else {
|
|
210
|
+
$('#user').prop('disabled', true);
|
|
211
|
+
$('#chatID').prop('disabled', true);
|
|
212
|
+
$('#user').hide();
|
|
213
|
+
$('#chatID').hide();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
191
216
|
|
|
217
|
+
function leaving() {
|
|
192
218
|
let check = document.getElementById('opt_leave').checked;
|
|
193
|
-
|
|
194
219
|
if (check) {
|
|
195
220
|
$('#circuits .table-values-div .table-values [data-name="leave"]').each(function() {
|
|
196
221
|
$(this).prop('disabled', false);
|
|
@@ -550,11 +575,26 @@ function getName(obj) {
|
|
|
550
575
|
|
|
551
576
|
<div id="tab_settings" class="col s12 page">
|
|
552
577
|
<div class="row">
|
|
578
|
+
<div class="col s12 m2">
|
|
553
579
|
<form action="https://www.paypal.com/donate" method="post" target="_top">
|
|
554
580
|
<input type="hidden" name="hosted_button_id" value="BXTYTYW3D5MRU" />
|
|
555
581
|
<input type="image" src="https://www.paypalobjects.com/de_DE/DE/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button" />
|
|
556
582
|
<img alt="" border="0" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1" />
|
|
557
583
|
</form>
|
|
584
|
+
</div>
|
|
585
|
+
<div class="col s12 m8">
|
|
586
|
+
<p class=" left translate">donat</p>
|
|
587
|
+
</div>
|
|
588
|
+
<div>
|
|
589
|
+
<a id="version_button" onclick="version(this.id)" class="pulse waves-effect waves-light btn">Version > 3</a>
|
|
590
|
+
</div>
|
|
591
|
+
</div>
|
|
592
|
+
<div class="row">
|
|
593
|
+
<div class="col s12">
|
|
594
|
+
<div class="card-panel">
|
|
595
|
+
<span class="blue-text text-darken-2 translate">alarm</span>
|
|
596
|
+
</div>
|
|
597
|
+
</div>
|
|
558
598
|
</div>
|
|
559
599
|
<div class="row">
|
|
560
600
|
<div class="input-field col s4 m2 l1">
|
|
@@ -587,36 +627,6 @@ function getName(obj) {
|
|
|
587
627
|
<option value="min">min</option>
|
|
588
628
|
</select>
|
|
589
629
|
</div>
|
|
590
|
-
<div class="input-field col s4 m2 l1">
|
|
591
|
-
<i class="material-icons prefix">alarm</i>
|
|
592
|
-
<input id="time_silent"
|
|
593
|
-
type="number"
|
|
594
|
-
class="validate value tooltipped"
|
|
595
|
-
data-position="top"
|
|
596
|
-
data-tooltip="in sec">
|
|
597
|
-
<label for="time_silent" class="translate">time_silent</label>
|
|
598
|
-
</div>
|
|
599
|
-
<div class="input-field col s2 m1 l1">
|
|
600
|
-
<select id="time_silent_select" class="value">
|
|
601
|
-
<option value="sec">sec</option>
|
|
602
|
-
<option value="min">min</option>
|
|
603
|
-
</select>
|
|
604
|
-
</div>
|
|
605
|
-
<div class="input-field col s4 m2 l1">
|
|
606
|
-
<i class="material-icons prefix">alarm</i>
|
|
607
|
-
<input id="time_warning"
|
|
608
|
-
type="number"
|
|
609
|
-
class="validate value tooltipped"
|
|
610
|
-
data-position="top"
|
|
611
|
-
data-tooltip="in sec">
|
|
612
|
-
<label for="time_warning" class="translate">time_warning</label>
|
|
613
|
-
</div>
|
|
614
|
-
<div class="input-field col s2 m1 l1">
|
|
615
|
-
<select id="time_warning_select" class="value">
|
|
616
|
-
<option value="sec">sec</option>
|
|
617
|
-
<option value="min">min</option>
|
|
618
|
-
</select>
|
|
619
|
-
</div>
|
|
620
630
|
<div class="input-field col s6 m3 l2">
|
|
621
631
|
<i class="material-icons prefix">alarm</i>
|
|
622
632
|
<input id="alarm_flash"
|
|
@@ -626,14 +636,36 @@ function getName(obj) {
|
|
|
626
636
|
data-tooltip="in sec">
|
|
627
637
|
<label for="alarm_flash" class="translate">alarm_flash</label>
|
|
628
638
|
</div>
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
639
|
+
</div>
|
|
640
|
+
<div class="row">
|
|
641
|
+
<div class="col s12">
|
|
642
|
+
<div class="card-panel">
|
|
643
|
+
<span class="blue-text text-darken-2 translate">inside</span>
|
|
644
|
+
</div>
|
|
645
|
+
</div>
|
|
646
|
+
</div>
|
|
647
|
+
<div class="row">
|
|
648
|
+
<div class="input-field col s4 m2 l1">
|
|
649
|
+
<i class="material-icons prefix">alarm</i>
|
|
650
|
+
<input id="time_warning"
|
|
651
|
+
type="number"
|
|
652
|
+
class="validate value tooltipped"
|
|
653
|
+
data-position="top"
|
|
654
|
+
data-tooltip="in sec">
|
|
655
|
+
<label for="time_warning" class="translate">time_warning</label>
|
|
656
|
+
</div>
|
|
657
|
+
<div class="input-field col s2 m1 l1">
|
|
658
|
+
<select id="time_warning_select" class="value">
|
|
659
|
+
<option value="sec">sec</option>
|
|
660
|
+
<option value="min">min</option>
|
|
661
|
+
</select>
|
|
662
|
+
</div>
|
|
663
|
+
</div>
|
|
664
|
+
<div class="row">
|
|
665
|
+
<div class="col s12">
|
|
666
|
+
<div class="card-panel">
|
|
667
|
+
<span class="blue-text text-darken-2 translate">general_settings</span>
|
|
668
|
+
</div>
|
|
637
669
|
</div>
|
|
638
670
|
</div>
|
|
639
671
|
<div class="row">
|
|
@@ -653,6 +685,32 @@ function getName(obj) {
|
|
|
653
685
|
</div>
|
|
654
686
|
</div>
|
|
655
687
|
<div class="row">
|
|
688
|
+
<div class="input-field col s4 m2 l1">
|
|
689
|
+
<i class="material-icons prefix">alarm</i>
|
|
690
|
+
<input id="time_silent"
|
|
691
|
+
type="number"
|
|
692
|
+
class="validate value tooltipped"
|
|
693
|
+
data-position="top"
|
|
694
|
+
data-tooltip="in sec">
|
|
695
|
+
<label for="time_silent" class="translate">time_silent</label>
|
|
696
|
+
</div>
|
|
697
|
+
<div class="input-field col s2 m1 l1">
|
|
698
|
+
<select id="time_silent_select" class="value">
|
|
699
|
+
<option value="sec">sec</option>
|
|
700
|
+
<option value="min">min</option>
|
|
701
|
+
</select>
|
|
702
|
+
</div>
|
|
703
|
+
<div class="input-field col s6 m3 l2">
|
|
704
|
+
<i class="material-icons prefix">alarm</i>
|
|
705
|
+
<input id="silent_flash"
|
|
706
|
+
type="number"
|
|
707
|
+
class="validate value tooltipped"
|
|
708
|
+
data-position="top"
|
|
709
|
+
data-tooltip="in sec">
|
|
710
|
+
<label for="silent_flash" class="translate">silent_flash</label>
|
|
711
|
+
</div>
|
|
712
|
+
</div>
|
|
713
|
+
<div class="row">
|
|
656
714
|
<!--
|
|
657
715
|
<div class="col s12">
|
|
658
716
|
<input type="checkbox" id="opt_night" class="value" /><label for="opt_night" class="translate">opt_night</label>
|
|
@@ -665,7 +723,7 @@ function getName(obj) {
|
|
|
665
723
|
<input type="checkbox" id="opt_warning" class="value" /><label for="opt_warning" class="translate">opt_warning</label>
|
|
666
724
|
</div>
|
|
667
725
|
<div class="col s12 m4 l2">
|
|
668
|
-
<input type="checkbox" id="
|
|
726
|
+
<input type="checkbox" id="opt_siren" class="value" /><label for="opt_siren" class="translate">opt_siren</label>
|
|
669
727
|
</div>
|
|
670
728
|
<div class="col s12 m4 l2">
|
|
671
729
|
<input type="checkbox" id="opt_leave" class="value" /><label for="opt_leave" class="translate">opt_leave</label>
|
|
@@ -689,6 +747,19 @@ function getName(obj) {
|
|
|
689
747
|
<div class="chips sendTo_Chips"></div>
|
|
690
748
|
</div>
|
|
691
749
|
</div>
|
|
750
|
+
<div class="row">
|
|
751
|
+
<div class="col s12 m4 l2">
|
|
752
|
+
<input type="checkbox" id="opt_telegram" class="value" /><label for="opt_telegram" class="translate">opt_telegram</label>
|
|
753
|
+
</div>
|
|
754
|
+
<div class="input-field col s6 m4 l2">
|
|
755
|
+
<input id="chatID" type="text" class="validate value">
|
|
756
|
+
<label for="chatID">chatID</label>
|
|
757
|
+
</div>
|
|
758
|
+
<div class="input-field col s6 m4 l2">
|
|
759
|
+
<input id="user" type="text" class="validate value">
|
|
760
|
+
<label for="user">user</label>
|
|
761
|
+
</div>
|
|
762
|
+
</div>
|
|
692
763
|
<div class="row">
|
|
693
764
|
<div class="col s12">
|
|
694
765
|
<div class="card-panel">
|
|
@@ -733,6 +804,9 @@ function getName(obj) {
|
|
|
733
804
|
<div class="col s12 m6 l4">
|
|
734
805
|
<input type="checkbox" id="send_activation_warnings_inside" class="value" /><label for="send_activation_warnings_inside" class="translate">send_activation_warnings</label>
|
|
735
806
|
</div>
|
|
807
|
+
<div class="col s12 m6 l4">
|
|
808
|
+
<input type="checkbox" id="send_alarm_silent_inside" class="value" /><label for="send_alarm_silent_inside" class="translate">send_alarm_silent</label>
|
|
809
|
+
</div>
|
|
736
810
|
</div>
|
|
737
811
|
<div class="row">
|
|
738
812
|
<div class="col s12">
|
|
@@ -745,6 +819,9 @@ function getName(obj) {
|
|
|
745
819
|
<div class="col s12 m6 l4">
|
|
746
820
|
<input type="checkbox" id="send_notification_changes" class="value" /><label for="send_notification_changes" class="translate">send_notification_changes</label>
|
|
747
821
|
</div>
|
|
822
|
+
<div class="col s12 m6 l4">
|
|
823
|
+
<input type="checkbox" id="send_activation_warnings_night" class="value" /><label for="send_activation_warnings_night" class="translate">send_activation_warnings_night</label>
|
|
824
|
+
</div>
|
|
748
825
|
</div>
|
|
749
826
|
<div class="row">
|
|
750
827
|
<div class="col s12">
|
|
@@ -779,7 +856,7 @@ function getName(obj) {
|
|
|
779
856
|
<a class="btn-floating waves-effect waves-light blue table-button-add" id="circuits_table"><i class="material-icons">add</i></a>
|
|
780
857
|
</div>
|
|
781
858
|
<div class="col s2 m1 l1 right">
|
|
782
|
-
<a class="btn-floating waves-effect waves-light blue" id="circuits_help"><i class="material-icons">help_center</i></a>
|
|
859
|
+
<a class="btn-floating pulse waves-effect waves-light blue" id="circuits_help"><i class="material-icons">help_center</i></a>
|
|
783
860
|
</div>
|
|
784
861
|
</div>
|
|
785
862
|
<div class="table-values-div">
|
|
@@ -792,10 +869,11 @@ function getName(obj) {
|
|
|
792
869
|
<th data-buttons="edit" style="width: 40px" class="header"></th>
|
|
793
870
|
<th data-name="negativ" style="width: 100px" data-type="checkbox" class="header translate">negativ</th>
|
|
794
871
|
<th data-name="alarm" style="width: 100px" data-type="checkbox" class="header translate">alarm</th>
|
|
795
|
-
<th data-name="warning" style="width: 100px" data-type="checkbox" class="header translate">inside</th>
|
|
796
|
-
<th data-name="night" style="width: 130px" data-type="checkbox" class="header translate">notification</th>
|
|
797
872
|
<th data-name="delay" style="width: 100px" data-type="checkbox" class="header translate">delay</th>
|
|
798
873
|
<th data-name="leave" style="width: 100px" data-type="checkbox" class="header translate">leave</th>
|
|
874
|
+
<th data-name="warning" style="width: 100px" data-type="checkbox" class="header translate">inside</th>
|
|
875
|
+
<th data-name="delay_inside" style="width: 100px" data-type="checkbox" class="header translate">delay_inside</th>
|
|
876
|
+
<th data-name="night" style="width: 130px" data-type="checkbox" class="header translate">notification</th>
|
|
799
877
|
<th data-buttons="delete" style="width: 40px" class="header"></th>
|
|
800
878
|
</tr>
|
|
801
879
|
</thead>
|
|
@@ -878,27 +956,6 @@ function getName(obj) {
|
|
|
878
956
|
<textarea id="text_warning" class="materialize-textarea value"></textarea>
|
|
879
957
|
<label for="text_warning" class="translate">text_warning</label>
|
|
880
958
|
</div>
|
|
881
|
-
<div class="input-field col s9 m4 l3">
|
|
882
|
-
<i class="material-icons prefix">filter_5</i>
|
|
883
|
-
<textarea id="text_changes" class="materialize-textarea value"></textarea>
|
|
884
|
-
<label for="text_changes" class="translate">text_changes</label>
|
|
885
|
-
</div>
|
|
886
|
-
<div class="input-field col s3 m2 l1">
|
|
887
|
-
<select id="changes_repeat" class="value">
|
|
888
|
-
<option value="1">1x</option>
|
|
889
|
-
<option value="2">2x</option>
|
|
890
|
-
<option value="3">3x</option>
|
|
891
|
-
<option value="4">4x</option>
|
|
892
|
-
<option value="5">5x</option>
|
|
893
|
-
<option value="6">6x</option>
|
|
894
|
-
<option value="7">7x</option>
|
|
895
|
-
<option value="8">8x</option>
|
|
896
|
-
<option value="9">9x</option>
|
|
897
|
-
<option value="10">10x</option>
|
|
898
|
-
<option value="15">15x</option>
|
|
899
|
-
<option value="20">20x</option>
|
|
900
|
-
</select>
|
|
901
|
-
</div>
|
|
902
959
|
<div class="input-field col s9 m4 l3">
|
|
903
960
|
<i class="material-icons prefix">filter_6</i>
|
|
904
961
|
<textarea id="text_alarm" class="materialize-textarea value"></textarea>
|
|
@@ -985,7 +1042,7 @@ function getName(obj) {
|
|
|
985
1042
|
<thead>
|
|
986
1043
|
<tr>
|
|
987
1044
|
<th data-name="enabled" style="width: 50px" data-type="checkbox" class="header translate">active</th>
|
|
988
|
-
<th data-name="select_id" data-type="select" data-options="status.state_list;status.activated;status.gets_activated;status.deactivated;status.burglar_alarm;status.silent_alarm;status.siren;status.activation_failed;status.sleep;status.activated_with_warnings;status.enableable;status.sharp_inside_activated;
|
|
1045
|
+
<th data-name="select_id" data-type="select" data-options="status.state_list;status.activated;status.gets_activated;status.deactivated;status.burglar_alarm;status.silent_alarm;status.siren;status.activation_failed;status.sleep;status.activated_with_warnings;status.enableable;status.sharp_inside_activated;status.siren_inside;info.notification_circuit_changes;status.alarm_flash;status.silent_flash;other_alarms.one_changes;other_alarms.two_changes" class="header translate">Name</th>
|
|
989
1046
|
<th data-name="trigger_val" data-type="select" data-options=" ;true;false;deactivated;sharp;sharp_inside;burglary;night_rest;gets_activated;activation_failed;activation_aborted" class="header translate">Trigger</th>
|
|
990
1047
|
<th data-name="name" data-type="text" class="header translate">Name</th>
|
|
991
1048
|
<th data-name="name_id" data-type="text" class="header translate">Object-ID</th>
|
package/admin/words.js
CHANGED
|
@@ -32,8 +32,39 @@ systemDictionary = {
|
|
|
32
32
|
'es': 'alarma silenciosa',
|
|
33
33
|
'pl': 'cichy alarm',
|
|
34
34
|
'zh-cn': '静音警报'},
|
|
35
|
+
'delay_inside': {
|
|
36
|
+
'en': 'silent alarm sharp inside',
|
|
37
|
+
'de': 'Stiller Alarm scharf innen',
|
|
38
|
+
'ru': 'тихая тревога острая внутри',
|
|
39
|
+
'pt': 'alarme silencioso afiado por dentro',
|
|
40
|
+
'nl': 'stil alarm scherp van binnen',
|
|
41
|
+
'fr': "alarme silencieuse à l'intérieur",
|
|
42
|
+
'it': "allarme silenzioso acuto all'interno",
|
|
43
|
+
'es': 'alarma silenciosa aguda en el interior',
|
|
44
|
+
'pl': 'cichy alarm ostry w środku',
|
|
45
|
+
'zh-cn': '静音报警尖锐内部'},
|
|
35
46
|
'disabled': { 'en': 'disabled', 'de': 'deaktiviert', 'ru': 'отключен', 'pt': 'Desativado', 'nl': 'invalide', 'fr': 'désactivée', 'it': 'Disabilitato', 'es': 'discapacitado', 'pl': 'wyłączone', 'zh-cn': '残'},
|
|
47
|
+
'donat': {'en': "I'm not a professional developer and this is a private project, the development takes place in my spare time, if you want to support this you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.",
|
|
48
|
+
'de': 'Ich bin kein professioneller Entwickler und dies ist ein privates Projekt, die Entwicklung findet in meiner Freizeit statt, wenn Sie dies unterstützen möchten, können Sie sich mit einer Spende unter PayPal bei mir bedanken. Sie können mir auch gerne Funktionsanfragen für zukünftige Versionen des Adapters senden.',
|
|
49
|
+
'ru': 'Я не профессиональный разработчик, и это частный проект, разработка происходит в свободное время, если вы хотите поддержать это, вы можете отблагодарить меня пожертвованием через PayPal. Вы также можете присылать мне запросы функций для будущих версий адаптера.',
|
|
50
|
+
'pt': 'Eu não sou um desenvolvedor profissional e este é um projeto privado, o desenvolvimento ocorre no meu tempo livre, se você quiser apoiar isso, pode me agradecer com uma doação no PayPal. Você também pode me enviar solicitações de recursos para versões futuras do adaptador.',
|
|
51
|
+
'nl': 'Ik ben geen professionele ontwikkelaar en dit is een privé project, de ontwikkeling vindt plaats in mijn vrije tijd, als je dit wilt steunen kun je me bedanken met een donatie onder PayPal. U bent ook welkom om mij functieverzoeken te sturen voor toekomstige versies van de adapter.',
|
|
52
|
+
'fr': "Je ne suis pas un développeur professionnel et c'est un projet privé, le développement a lieu sur mon temps libre, si vous voulez soutenir cela vous pouvez me remercier avec un don sous PayPal. Vous pouvez également m'envoyer des demandes de fonctionnalités pour les futures versions de l'adaptateur.",
|
|
53
|
+
'it': "Non sono uno sviluppatore professionista e questo è un progetto privato, lo sviluppo avviene nel mio tempo libero, se vuoi supportarlo puoi ringraziarmi con una donazione sotto PayPal. Puoi anche inviarmi richieste di funzionalità per versioni future dell'adattatore.",
|
|
54
|
+
'es': 'No soy un desarrollador profesional y este es un proyecto privado, el desarrollo se lleva a cabo en mi tiempo libre, si quieres apoyar esto puedes agradecerme con una donación a través de PayPal. También puede enviarme solicitudes de funciones para futuras versiones del adaptador.',
|
|
55
|
+
'pl': 'Nie jestem profesjonalnym programistą i jest to projekt prywatny, rozwój odbywa się w wolnym czasie, jeśli chcesz to wesprzeć, możesz mi podziękować darowizną w systemie PayPal. Zapraszam również do przesyłania mi próśb o funkcje dla przyszłych wersji adaptera.',
|
|
56
|
+
'zh-cn': '我不是专业开发人员,这是一个私人项目,开发是在我的业余时间进行的,如果你想支持这个,你可以通过 PayPal 捐款来感谢我。也欢迎您向我发送有关适配器未来版本的功能请求。'},
|
|
36
57
|
'general': { 'en': 'Main settings', 'de': 'Haupteinstellungen', 'ru': 'Основные параметры', 'pt': 'Configurações principais', 'nl': 'Belangrijkste instellingen', 'fr': 'Réglages principaux', 'it': 'Impostazioni principali', 'es': 'Ajustes principales', 'pl': 'Ustawienia główne', 'zh-cn': '主要设置'},
|
|
58
|
+
'general_settings': { 'en': 'general settings',
|
|
59
|
+
'de': 'Allgemeine Einstellungen',
|
|
60
|
+
'ru': 'общие настройки',
|
|
61
|
+
'pt': 'Configurações Gerais',
|
|
62
|
+
'nl': 'Algemene instellingen',
|
|
63
|
+
'fr': 'réglages généraux',
|
|
64
|
+
'it': 'impostazioni generali',
|
|
65
|
+
'es': 'Configuración general',
|
|
66
|
+
'pl': 'Ustawienia główne',
|
|
67
|
+
'zh-cn': '常规设置'},
|
|
37
68
|
'important': { 'en': 'Important! Do not create loops.', 'de': 'Wichtig! Erstellen Sie keine Schleifen.', 'ru': 'Важный! Не создавайте петли.', 'pt': 'Importante! Não crie loops.', 'nl': 'Belangrijk! Maak geen lussen.', 'fr': 'Important! Ne créez pas de boucles.', 'it': 'Importante! Non creare loop.', 'es': '¡Importante! No cree bucles.', 'pl': 'Ważny! Nie twórz pętli.', 'zh-cn': '重要!不要创建循环。'},
|
|
38
69
|
'input': { 'en': 'Input shortcuts', 'de': 'Eingabeverknüpfungen', 'ru': 'Входные ярлыки', 'pt': 'Atalhos de entrada', 'nl': 'Sneltoetsen invoeren', 'fr': "Raccourcis d'entrée", 'it': 'Scorciatoie di input', 'es': 'Atajos de entrada', 'pl': 'Skróty wprowadzania', 'zh-cn': '输入快捷键'},
|
|
39
70
|
'info_words': { 'en': 'You can edit the notifications at words tab', 'de': 'Texte der Benachrichtigungen können auf der Registerkarte Texte bearbeitet werden', 'ru': 'Вы можете редактировать уведомления на вкладке слов', 'pt': 'Você pode editar as notificações na guia palavras', 'nl': 'Je kunt de meldingen bewerken op het tabblad Woorden', 'fr': "Vous pouvez modifier les notifications dans l'onglet mots", 'it': 'Puoi modificare le notifiche nella scheda parole', 'es': 'Puedes editar las notificaciones en la pestaña de palabras', 'pl': 'Możesz edytować powiadomienia na karcie słów', 'zh-cn': '您可以在单词选项卡上编辑通知'},
|
|
@@ -89,7 +120,16 @@ systemDictionary = {
|
|
|
89
120
|
'night_Chips': { 'en': 'States for night rest circuit', 'de': 'Zustände für die Nachtruhe', 'ru': 'Штаты для ночного отдыха', 'pt': 'Estados para circuito de descanso noturno', 'nl': 'Staten voor nachtrustcircuit', 'fr': 'États pour circuit de nuit', 'it': 'Stati per il circuito di riposo notturno', 'es': 'Estados para el circuito de descanso nocturno.', 'pl': 'Stany na nocny obwód odpoczynku', 'zh-cn': '国家为夜间休息电路'},
|
|
90
121
|
'night_from': { 'en': 'Begins of the night rest', 'de': 'Beginn der Nachtruhe', 'ru': 'Начинается ночной отдых', 'pt': 'Começa do resto da noite', 'nl': 'Begin van de nachtrust', 'fr': 'Commence la nuit repos', 'it': 'Inizia il riposo notturno', 'es': 'Comienzo del descanso nocturno.', 'pl': 'Zaczyna się nocny odpoczynek', 'zh-cn': '开始的夜晚休息'},
|
|
91
122
|
'night_to': { 'en': 'Ends of the night rest', 'de': 'Ende der Nachtruhe', 'ru': 'Концы ночного отдыха', 'pt': 'Termina do resto da noite', 'nl': 'Einde van de nachtrust', 'fr': 'Fin de la nuit repos', 'it': 'Fine del riposo notturno', 'es': 'Finales del descanso nocturno.', 'pl': 'Koniec nocnego odpoczynku', 'zh-cn': '晚上休息'},
|
|
92
|
-
'notification': {
|
|
123
|
+
'notification': {'en': 'notifications (include night rest)',
|
|
124
|
+
'de': 'Benachrichtigungen (einschließlich Nachtruhe)',
|
|
125
|
+
'ru': 'уведомления (включая ночной отдых)',
|
|
126
|
+
'pt': 'notificações (incluindo descanso noturno)',
|
|
127
|
+
'nl': 'notificaties (inclusief nachtrust)',
|
|
128
|
+
'fr': 'notifications (y compris le repos nocturne)',
|
|
129
|
+
'it': 'notifiche (incluso riposo notturno)',
|
|
130
|
+
'es': 'notificaciones (incluye descanso nocturno)',
|
|
131
|
+
'pl': 'powiadomienia (w tym odpoczynek nocny)',
|
|
132
|
+
'zh-cn': '通知(包括夜间休息)'},
|
|
93
133
|
'notifications': { 'en': 'Notifications', 'de': 'Benachrichtigungen', 'ru': 'Уведомления', 'pt': 'Notificações', 'nl': 'Kennisgevingen', 'fr': 'Notifications', 'it': 'notifiche', 'es': 'Notificaciones', 'pl': 'Powiadomienia', 'zh-cn': '通知事项'},
|
|
94
134
|
'opt_leave': { 'en': 'activation at leaving during countdown',
|
|
95
135
|
'de': 'Aktivierung beim Verlassen während des Countdowns',
|
|
@@ -101,16 +141,16 @@ systemDictionary = {
|
|
|
101
141
|
'es': 'activación al salir durante la cuenta atrás',
|
|
102
142
|
'pl': 'aktywacja przy wyjściu podczas odliczania',
|
|
103
143
|
'zh-cn': '倒计时离开时激活' },
|
|
104
|
-
'
|
|
105
|
-
'de': '
|
|
106
|
-
'ru': '
|
|
107
|
-
'pt': '
|
|
108
|
-
'nl': '
|
|
109
|
-
'fr': "
|
|
110
|
-
'it': "
|
|
111
|
-
'es': '
|
|
112
|
-
'pl': '
|
|
113
|
-
'zh-cn': '
|
|
144
|
+
'opt_siren': { 'en': 'activate outside siren at burgle sharp inside',
|
|
145
|
+
'de': 'Außensirene bei Einbruch scharf innen aktivieren',
|
|
146
|
+
'ru': 'активировать внешнюю сирену при взломе резко внутри',
|
|
147
|
+
'pt': 'ativar a sirene externa em arrombamento afiado por dentro',
|
|
148
|
+
'nl': 'activeer buitensirene bij inbraak scherp binnen',
|
|
149
|
+
'fr': "activer la sirène extérieure en cas d'effraction à l'intérieur",
|
|
150
|
+
'it': "attivare la sirena esterna in caso di scasso acuto all'interno",
|
|
151
|
+
'es': 'activar la sirena exterior en caso de robo agudo en el interior',
|
|
152
|
+
'pl': 'aktywuj syrenę zewnętrzną podczas włamywania się do środka',
|
|
153
|
+
'zh-cn': '内部爆破时激活外部警报器' },
|
|
114
154
|
'opt_log': { 'en': 'Log output', 'de': 'Ausgabe protokollieren', 'ru': 'Выход журнала', 'pt': 'Saída de log', 'nl': 'Log output', 'fr': 'Journal de sortie', 'it': "Registrare l'output", 'es': 'Salida de registro', 'pl': 'Wynik dziennika', 'zh-cn': '记录输出'},
|
|
115
155
|
'opt_night': { 'en': 'Control configured states during night rest', 'de': 'Konfigurierte Zustände während der Nachtruhe überwachen', 'ru': 'Контроль настроенных состояний во время ночного отдыха', 'pt': 'Controle configurado estados durante o resto da noite', 'nl': 'Controleer geconfigureerde staten tijdens nachtrust', 'fr': 'Contrôler les états configurés pendant le repos de nuit', 'it': 'Controllare gli stati configurati durante il riposo notturno', 'es': 'Control de estados configurados durante el descanso nocturno.', 'pl': 'Kontroluj skonfigurowane stany podczas nocnego odpoczynku', 'zh-cn': '在夜间休息期间控制配置状态'},
|
|
116
156
|
'opt_night_silent': {'en': 'no speech output during night rest',
|
|
@@ -128,6 +168,17 @@ systemDictionary = {
|
|
|
128
168
|
'opt_say_night': { 'en': "Warnings at the beginning of the night's rest", 'de': 'Warnungen zu Beginn der Nachtruhe', 'ru': 'Предупреждения в начале ночного отдыха', 'pt': 'Advertências no início do resto da noite', 'nl': 'Waarschuwingen aan het begin van de nachtrust', 'fr': 'Avertissements au début du repos nocturne', 'it': "Avvertenze all'inizio del riposo notturno", 'es': 'Advertencias al comienzo del descanso nocturno.', 'pl': 'Ostrzeżenia na początku nocnego odpoczynku', 'zh-cn': '夜间休息开始时的警告'},
|
|
129
169
|
'opt_say_warn': { 'en': 'Warnings at the beginning of the warn circuit activate', 'de': 'Warnungen zu Beginn der Warnkreis Aktivierung', 'ru': 'Предупреждения в начале ночного отдыха', 'pt': 'Advertências no início do resto da noite', 'nl': 'Waarschuwingen aan het begin van de nachtrust', 'fr': 'Avertissements au début du repos nocturne', 'it': "Avvertenze all'inizio del riposo notturno", 'es': 'Advertencias al comienzo del descanso nocturno.', 'pl': 'Ostrzeżenia na początku nocnego odpoczynku', 'zh-cn': '夜间休息开始时的警告'},
|
|
130
170
|
'opt_say_warn_changes': { 'en': 'Changes during sharp inside', 'de': 'Veränderungen während SCHARF INTERN', 'ru': 'Изменения во время ночного отдыха и резких внутри', 'pt': 'Alterações durante o descanso noturno e nítidas por dentro', 'nl': 'Veranderingen tijdens nachtrust en scherp van binnen', 'fr': 'Changements pendant le repos nocturne et intérieur vif', 'it': "Cambiamenti durante il riposo notturno e taglienti all'interno", 'es': 'Cambios durante el descanso nocturno y agudo por dentro', 'pl': 'Zmiany podczas nocnego odpoczynku i ostre wnętrze', 'zh-cn': '夜间休息时变化多端,内部锐利'},
|
|
171
|
+
'opt_telegram': {'en': 'special parameters for Telegram',
|
|
172
|
+
'de': 'spezielle Parameter für Telegram',
|
|
173
|
+
'ru': 'специальные параметры для Telegram',
|
|
174
|
+
'pt': 'parâmetros especiais para Telegram',
|
|
175
|
+
'nl': 'speciale parameters voor Telegram',
|
|
176
|
+
'fr': 'paramètres spéciaux pour Telegram',
|
|
177
|
+
'it': 'parametri speciali per Telegram',
|
|
178
|
+
'es': 'parámetros especiales para Telegram',
|
|
179
|
+
'pl': 'specjalne parametry dla Telegrama',
|
|
180
|
+
'zh-cn': '电报的特殊参数'},
|
|
181
|
+
|
|
131
182
|
'opt_warning': { 'en': 'Ignore configured states at activation', 'de': 'Konfigurierte Zustände bei der Aktivierung ignorieren', 'ru': 'Игнорировать настроенные состояния предупреждения при активации', 'pt': 'Ignore os estados de aviso configurados na ativação', 'nl': 'Negeer geconfigureerde waarschuwingsstatussen bij activering', 'fr': "Ignorer les états d'avertissement configurés lors de l'activation", 'it': "Ignora gli stati di avviso configurati all'attivazione", 'es': 'Ignorar los estados de advertencia configurados en la activación', 'pl': 'Zignoruj skonfigurowane stany ostrzeżeń przy aktywacji', 'zh-cn': '激活时忽略已配置的警告状态'},
|
|
132
183
|
'other_alarms': {'en': 'other alarms',
|
|
133
184
|
'de': 'andere Alarme',
|
|
@@ -187,7 +238,7 @@ systemDictionary = {
|
|
|
187
238
|
'pl': 'Aktywowany z ostrzeżeniami',
|
|
188
239
|
'zh-cn': '警告激活'},
|
|
189
240
|
'send_activation_warnings': { 'en': 'Notification if warnings upon activation',
|
|
190
|
-
'de': 'Benachrichtigung
|
|
241
|
+
'de': 'Benachrichtigung falls Warnungen bei Aktivierung',
|
|
191
242
|
'ru': 'Уведомление, если предупреждения при активации',
|
|
192
243
|
'pt': 'Notificação se houver avisos na ativação',
|
|
193
244
|
'nl': 'Melding als waarschuwingen bij activering',
|
|
@@ -196,6 +247,16 @@ systemDictionary = {
|
|
|
196
247
|
'es': 'Notificación de advertencias sobre la activación',
|
|
197
248
|
'pl': 'Powiadomienie o ostrzeżeniach po aktywacji',
|
|
198
249
|
'zh-cn': '激活时发出警告通知'},
|
|
250
|
+
'send_activation_warnings_night': {'en': 'notification when warnings at beginning night rest',
|
|
251
|
+
'de': 'Benachrichtigung bei Warnungen zu Beginn der Nachtruhe',
|
|
252
|
+
'ru': 'уведомление при предупреждениях о начале ночного отдыха',
|
|
253
|
+
'pt': 'notificação quando avisos no início do descanso noturno',
|
|
254
|
+
'nl': 'melding bij waarschuwingen bij het begin van de nachtrust',
|
|
255
|
+
'fr': 'notification lors des avertissements au début du repos nocturne',
|
|
256
|
+
'it': "notifica quando avvisi all'inizio del riposo notturno",
|
|
257
|
+
'es': 'notificación cuando avisos al inicio del descanso nocturno',
|
|
258
|
+
'pl': 'powiadomienie o ostrzeżeniach na początku odpoczynku nocnego',
|
|
259
|
+
'zh-cn': '在开始夜间休息时发出警告时的通知' },
|
|
199
260
|
'send_failed': {
|
|
200
261
|
'en': 'wrong password',
|
|
201
262
|
'de': 'falsches Passwort',
|
|
@@ -254,6 +315,16 @@ systemDictionary = {
|
|
|
254
315
|
'time_activate': { 'en': 'Activation time', 'de': 'Aktivierungszeit', 'ru': 'Время активации', 'pt': 'Tempo de ativação', 'nl': 'Activeringstijd', 'fr': "Temps d'activation", 'it': 'Tempo di attivazione', 'es': 'Tiempo de activacion', 'pl': 'Czas aktywacji', 'zh-cn': '激活时间(秒)'},
|
|
255
316
|
'time_alarm': { 'en': 'Siren time at burgle', 'de': 'Sirenenzeit bei Einbruch', 'ru': 'Сирена время в Burgle', 'pt': 'Hora da sirene no burgle', 'nl': 'Sirenetijd bij inbraak', 'fr': 'Temps de sirène à burgle', 'it': 'Ora della sirena al burgle', 'es': 'Tiempo de sirena en burgle', 'pl': 'Czas syreny w burgle', 'zh-cn': '警报器的警笛时间在几秒钟内'},
|
|
256
317
|
'time_silent': { 'en': 'Alarm delay', 'de': 'Alarmverzögerung', 'ru': 'Задержка тревоги в секундах', 'pt': 'Atraso do alarme em segundos', 'nl': 'Alarmvertraging in seconden', 'fr': "Délai d'alarme en secondes", 'it': "Ritardo dell'allarme in secondi", 'es': 'Retraso de alarma en segundos', 'pl': 'Opóźnienie alarmu w sekundach', 'zh-cn': '警报延迟秒数'},
|
|
318
|
+
'time_silent_inside': { 'en': 'alarm delay sharp inside',
|
|
319
|
+
'de': 'Alarmverzögerung scharf innen',
|
|
320
|
+
'ru': 'задержка будильника резко внутри',
|
|
321
|
+
'pt': 'atraso de alarme acentuado por dentro',
|
|
322
|
+
'nl': 'alarmvertraging scherp van binnen',
|
|
323
|
+
'fr': "retard d'alarme net à l'intérieur",
|
|
324
|
+
'it': "ritardo di allarme acuto all'interno",
|
|
325
|
+
'es': 'retardo de alarma agudo en el interior',
|
|
326
|
+
'pl': 'opóźnienie alarmu ostre wewnątrz',
|
|
327
|
+
'zh-cn': '内部报警延迟尖锐'},
|
|
257
328
|
'time_warning': { 'en': 'Siren time at sharp inside',
|
|
258
329
|
'de': 'Sirenenzeit scharf innen',
|
|
259
330
|
'ru': 'Время сирены на резком внутри',
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,56 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "alarm",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.4",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.4": {
|
|
7
|
+
"en": "changed burgle concept, added silent alarm at sharp inside, fixed little issues",
|
|
8
|
+
"de": "Einbruchkonzept geändert, stiller Alarm bei scharf Innen hinzugefügt, kleine Probleme behoben",
|
|
9
|
+
"ru": "изменена концепция взломов, добавлена бесшумная сигнализация при проникновении внутрь, исправлены мелкие недочеты",
|
|
10
|
+
"pt": "mudou o conceito de burle, adicionou alarme silencioso no interior, corrigiu pequenos problemas",
|
|
11
|
+
"nl": "gewijzigd inbraakconcept, stil alarm toegevoegd aan scherpe binnenkant, kleine problemen opgelost",
|
|
12
|
+
"fr": "changement du concept de cambriolage, ajout d'une alarme silencieuse à l'intérieur net, petits problèmes résolus",
|
|
13
|
+
"it": "cambiato il concetto di furto, aggiunto un allarme silenzioso all'interno acuto, risolti piccoli problemi",
|
|
14
|
+
"es": "cambió el concepto de robo, agregó alarma silenciosa en el interior agudo, solucionó pequeños problemas",
|
|
15
|
+
"pl": "zmieniono koncepcję włamywania, dodano cichy alarm w ostrym wnętrzu, naprawiono małe problemy",
|
|
16
|
+
"zh-cn": "改变了防盗概念,在尖锐的内部增加了静音警报,修复了一些小问题"
|
|
17
|
+
},
|
|
18
|
+
"2.2.1": {
|
|
19
|
+
"en": "added notification when warnings at beginning night rest",
|
|
20
|
+
"de": "Benachrichtigung bei Warnungen zu Beginn der Nachtruhe hinzugefügt",
|
|
21
|
+
"ru": "добавлено уведомление при предупреждениях при начале ночного отдыха",
|
|
22
|
+
"pt": "adicionada notificação quando avisos no início do descanso noturno",
|
|
23
|
+
"nl": "melding toegevoegd bij waarschuwingen bij het begin van de nachtrust",
|
|
24
|
+
"fr": "ajout d'une notification lors des avertissements au début du repos nocturne",
|
|
25
|
+
"it": "aggiunta notifica quando avverte all'inizio del riposo notturno",
|
|
26
|
+
"es": "notificación agregada cuando las advertencias al comienzo del descanso nocturno",
|
|
27
|
+
"pl": "dodano powiadomienie, gdy ostrzeżenia o rozpoczęciu nocnego odpoczynku",
|
|
28
|
+
"zh-cn": "在开始夜间休息时发出警告时添加通知"
|
|
29
|
+
},
|
|
30
|
+
"2.2.0": {
|
|
31
|
+
"en": "added telegram special parameters",
|
|
32
|
+
"de": "spezielle Telegrammparameter hinzugefügt",
|
|
33
|
+
"ru": "добавлены специальные параметры телеграммы",
|
|
34
|
+
"pt": "parâmetros especiais de telegrama adicionados",
|
|
35
|
+
"nl": "toegevoegde telegram speciale parameters",
|
|
36
|
+
"fr": "paramètres spéciaux de télégramme ajoutés",
|
|
37
|
+
"it": "aggiunti parametri speciali del telegramma",
|
|
38
|
+
"es": "parámetros especiales de telegrama agregados",
|
|
39
|
+
"pl": "dodano parametry specjalne telegramu",
|
|
40
|
+
"zh-cn": "添加电报特殊参数"
|
|
41
|
+
},
|
|
42
|
+
"2.1.2": {
|
|
43
|
+
"en": "fixed \"colors\" vulnerabilities",
|
|
44
|
+
"de": "\"Farben\"-Schwachstellen behoben",
|
|
45
|
+
"ru": "исправлены \"цветовые\" уязвимости",
|
|
46
|
+
"pt": "vulnerabilidades de \"cores\" corrigidas",
|
|
47
|
+
"nl": "vaste \"kleuren\" kwetsbaarheden",
|
|
48
|
+
"fr": "vulnérabilités \"couleurs\" corrigées",
|
|
49
|
+
"it": "risolte le vulnerabilità dei \"colori\".",
|
|
50
|
+
"es": "vulnerabilidades de \"colores\" fijas",
|
|
51
|
+
"pl": "naprawiono podatności na „kolory”",
|
|
52
|
+
"zh-cn": "修复了“颜色”漏洞"
|
|
53
|
+
},
|
|
6
54
|
"2.1.1": {
|
|
7
55
|
"en": "added countdown state for silent alarm",
|
|
8
56
|
"de": "Countdown-Status für stillen Alarm hinzugefügt",
|
|
@@ -119,6 +167,7 @@
|
|
|
119
167
|
"installedFrom": "misanorot/ioBroker.alarm"
|
|
120
168
|
},
|
|
121
169
|
"native": {
|
|
170
|
+
"new_version": false,
|
|
122
171
|
"circuits": [],
|
|
123
172
|
"shorts_in": [],
|
|
124
173
|
"shorts": [],
|
|
@@ -142,7 +191,7 @@
|
|
|
142
191
|
"opt_say_warn_changes": true,
|
|
143
192
|
"opt_night": true,
|
|
144
193
|
"opt_log": true,
|
|
145
|
-
"
|
|
194
|
+
"opt_siren": false,
|
|
146
195
|
"opt_leave": false,
|
|
147
196
|
"opt_warning": false,
|
|
148
197
|
"night_from": "",
|
|
@@ -156,8 +205,10 @@
|
|
|
156
205
|
"send_activation_inside": false,
|
|
157
206
|
"send_activation_warnings": true,
|
|
158
207
|
"send_activation_warnings_inside": true,
|
|
208
|
+
"send_activation_warnings_night": true,
|
|
159
209
|
"send_activated_with_warnings": true,
|
|
160
210
|
"send_alarm_silent": true,
|
|
211
|
+
"send_alarm_silent_inside": true,
|
|
161
212
|
"send_failed": true,
|
|
162
213
|
"sayit": [],
|
|
163
214
|
"text_activated": "Alarmanlage aktiviert",
|
|
@@ -200,7 +251,10 @@
|
|
|
200
251
|
"log_one": "Alarmanlage meldet einen Feueralarm:",
|
|
201
252
|
"log_two": "Alarmanlage meldet einen Wasseralarm:",
|
|
202
253
|
"one_name": "Feueralarm",
|
|
203
|
-
"two_name": "Wasseralarm"
|
|
254
|
+
"two_name": "Wasseralarm",
|
|
255
|
+
"opt_telegram": false,
|
|
256
|
+
"chatID": "",
|
|
257
|
+
"user": ""
|
|
204
258
|
},
|
|
205
259
|
"objects": [],
|
|
206
260
|
"instanceObjects": [
|
|
@@ -628,11 +682,11 @@
|
|
|
628
682
|
"native": {}
|
|
629
683
|
},
|
|
630
684
|
{
|
|
631
|
-
"_id": "
|
|
685
|
+
"_id": "status.siren_inside",
|
|
632
686
|
"type": "state",
|
|
633
687
|
"common": {
|
|
634
688
|
"role": "",
|
|
635
|
-
"name": "
|
|
689
|
+
"name": "Sharp inside siren",
|
|
636
690
|
"desc": "Changes in sharp inside circuit detected",
|
|
637
691
|
"type": "boolean",
|
|
638
692
|
"read": true,
|
package/main.js
CHANGED
|
@@ -64,7 +64,7 @@ let activated = false,
|
|
|
64
64
|
|
|
65
65
|
let timer = null,
|
|
66
66
|
silent_timer = null,
|
|
67
|
-
|
|
67
|
+
siren_inside_timer = null,
|
|
68
68
|
timer_notification_changes = null,
|
|
69
69
|
siren_timer = null,
|
|
70
70
|
silent_interval = null,
|
|
@@ -212,6 +212,7 @@ function main() {
|
|
|
212
212
|
//################# ENABLE ####################################################
|
|
213
213
|
|
|
214
214
|
function enable(id, state){
|
|
215
|
+
if (activated || burgle) return;
|
|
215
216
|
let say = A.text_failed;
|
|
216
217
|
if(timer) {
|
|
217
218
|
clearInterval(timer);
|
|
@@ -282,22 +283,11 @@ function disable(){
|
|
|
282
283
|
adapter.setState('info.log', `${A.log_deact}`, true);
|
|
283
284
|
sayit(A.text_deactivated, 2);
|
|
284
285
|
if(log)adapter.log.info(`${A.log_deact}`);
|
|
285
|
-
adapter.setState('status.siren', false, true);
|
|
286
|
-
adapter.setState('status.silent_flash', false, true);
|
|
287
|
-
adapter.setState('status.alarm_flash', false, true);
|
|
288
|
-
adapter.setState('status.activated', false, true);
|
|
289
|
-
adapter.setState('status.deactivated', true, true);
|
|
290
286
|
adapter.setState('status.activated_with_warnings', false, true);
|
|
291
287
|
adapter.setState('status.activation_failed', false, true);
|
|
292
|
-
adapter.setState('status.
|
|
293
|
-
adapter.setState('status.burglar_alarm', false, true);
|
|
294
|
-
adapter.setState('status.silent_alarm', false, true);
|
|
295
|
-
adapter.setState('status.state', 'deactivated', true);
|
|
296
|
-
adapter.setState('status.state_list',0, true);
|
|
297
|
-
adapter.setState('homekit.CurrentState', 3, true);
|
|
298
|
-
adapter.setState('homekit.TargetState', 3, true);
|
|
299
|
-
adapter.setState('use.list',0, true);
|
|
288
|
+
adapter.setState('status.activated', false, true);
|
|
300
289
|
if(A.send_activation) messages(`${A.log_deact}`);
|
|
290
|
+
disableStates();
|
|
301
291
|
}else if (inside) {
|
|
302
292
|
inside_ends(true);
|
|
303
293
|
}else if (night_rest) {
|
|
@@ -310,7 +300,7 @@ function disable(){
|
|
|
310
300
|
|
|
311
301
|
//################# BURGALARY ####################################################
|
|
312
302
|
|
|
313
|
-
function burglary(id, state, silent){
|
|
303
|
+
function burglary(id, state, silent, indoor){
|
|
314
304
|
if(burgle) return;
|
|
315
305
|
if(silent_timer && silent) return;
|
|
316
306
|
let count = 0;
|
|
@@ -320,7 +310,8 @@ function burglary(id, state, silent){
|
|
|
320
310
|
if(silent){
|
|
321
311
|
adapter.setState('status.silent_alarm', true, true);
|
|
322
312
|
adapter.setState('status.state', 'silent alarm', true);
|
|
323
|
-
if(A.
|
|
313
|
+
if (A.send_alarm_silent_inside && indoor) messages(`${A.log_burgle} ${name}`);
|
|
314
|
+
if(A.send_alarm_silent && !indoor) messages(`${A.log_burgle} ${name}`);
|
|
324
315
|
if(A.silent_flash > 0) {
|
|
325
316
|
silent_interval = setInterval(()=>{
|
|
326
317
|
if(silent_i) {
|
|
@@ -359,25 +350,22 @@ function burglary(id, state, silent){
|
|
|
359
350
|
adapter.setState('status.burglar_alarm', true, true);
|
|
360
351
|
adapter.setState('status.silent_alarm', false, true);
|
|
361
352
|
adapter.setState('status.silent_flash', false, true);
|
|
362
|
-
adapter.setState('status.
|
|
353
|
+
adapter.setState('status.siren_inside', true, true);
|
|
354
|
+
siren_inside_timer = setTimeout(()=>{
|
|
355
|
+
adapter.setState('status.siren_inside', false, true);
|
|
356
|
+
}, timeMode(A.time_warning_select) * A.time_warning);
|
|
357
|
+
if (A.opt_siren && indoor) {
|
|
358
|
+
alarmSiren();
|
|
359
|
+
alarmFlash();
|
|
360
|
+
}
|
|
361
|
+
if (!indoor) {
|
|
362
|
+
adapter.setState('status.siren', true, true);
|
|
363
|
+
alarmSiren();
|
|
364
|
+
alarmFlash();
|
|
365
|
+
}
|
|
363
366
|
adapter.setState('status.state', 'burgle', true);
|
|
364
367
|
adapter.setState('status.state_list', 3, true);
|
|
365
368
|
adapter.setState('homekit.CurrentState', 4, true);
|
|
366
|
-
if(A.alarm_flash > 0) {
|
|
367
|
-
alarm_interval = setInterval(()=>{
|
|
368
|
-
if(alarm_i) {
|
|
369
|
-
adapter.setState('status.alarm_flash', true, true);
|
|
370
|
-
alarm_i = false;
|
|
371
|
-
} else {
|
|
372
|
-
adapter.setState('status.alarm_flash', false, true);
|
|
373
|
-
alarm_i = true;
|
|
374
|
-
}
|
|
375
|
-
}, A.alarm_flash * 1000);
|
|
376
|
-
}
|
|
377
|
-
siren_timer = setTimeout(()=>{
|
|
378
|
-
adapter.setState('status.siren', false, true);
|
|
379
|
-
clearTimeout(siren_timer);
|
|
380
|
-
}, timeMode(A.time_alarm_select) * A.time_alarm);
|
|
381
369
|
}, timeMode(A.time_silent_select) * A.time_silent);
|
|
382
370
|
}
|
|
383
371
|
else if (!silent) {
|
|
@@ -385,7 +373,8 @@ function burglary(id, state, silent){
|
|
|
385
373
|
clearTimeout(silent_timer);
|
|
386
374
|
clearInterval(silent_interval);
|
|
387
375
|
clearInterval(silent_contdown);
|
|
388
|
-
if(A.
|
|
376
|
+
if(A.send_alarm_inside && indoor) messages(`${A.log_burgle} ${name}`);
|
|
377
|
+
if(A.send_alarm && !indoor) messages(`${A.log_burgle} ${name}`);
|
|
389
378
|
sayit(A.text_alarm, 6);
|
|
390
379
|
text_alarm_interval = setInterval(()=> {
|
|
391
380
|
if(count < alarm_repeat) {
|
|
@@ -398,21 +387,22 @@ function burglary(id, state, silent){
|
|
|
398
387
|
adapter.setState('status.burglar_alarm', true, true);
|
|
399
388
|
adapter.setState('status.silent_alarm', false, true);
|
|
400
389
|
adapter.setState('status.silent_flash', false, true);
|
|
401
|
-
adapter.setState('status.
|
|
390
|
+
adapter.setState('status.siren_inside', true, true);
|
|
391
|
+
siren_inside_timer = setTimeout(()=>{
|
|
392
|
+
adapter.setState('status.siren_inside', false, true);
|
|
393
|
+
}, timeMode(A.time_warning_select) * A.time_warning);
|
|
394
|
+
if (A.opt_siren && indoor) {
|
|
395
|
+
alarmSiren();
|
|
396
|
+
alarmFlash();
|
|
397
|
+
}
|
|
398
|
+
if (!indoor) {
|
|
399
|
+
adapter.setState('status.siren', true, true);
|
|
400
|
+
alarmSiren();
|
|
401
|
+
alarmFlash();
|
|
402
|
+
}
|
|
402
403
|
adapter.setState('status.state', 'burgle', true);
|
|
403
404
|
adapter.setState('status.state_list', 3, true);
|
|
404
405
|
adapter.setState('homekit.CurrentState', 4, true);
|
|
405
|
-
if(A.alarm_flash > 0) {
|
|
406
|
-
alarm_interval = setInterval(()=>{
|
|
407
|
-
if(alarm_i) {
|
|
408
|
-
adapter.setState('status.alarm_flash', true, true);
|
|
409
|
-
alarm_i = false;
|
|
410
|
-
} else {
|
|
411
|
-
adapter.setState('status.alarm_flash', false, true);
|
|
412
|
-
alarm_i = true;
|
|
413
|
-
}
|
|
414
|
-
}, A.alarm_flash * 1000);
|
|
415
|
-
}
|
|
416
406
|
siren_timer = setTimeout(()=>{
|
|
417
407
|
adapter.setState('status.siren', false, true);
|
|
418
408
|
clearTimeout(siren_timer);
|
|
@@ -583,10 +573,10 @@ function change(id, state){
|
|
|
583
573
|
return;
|
|
584
574
|
}
|
|
585
575
|
else if(id === adapter.namespace + '.use.quit_changes'){
|
|
586
|
-
clearTimeout(
|
|
576
|
+
clearTimeout(siren_inside_timer);
|
|
587
577
|
clearTimeout(timer_notification_changes);
|
|
588
578
|
adapter.setState('status.activation_failed', false, true);
|
|
589
|
-
adapter.setState('
|
|
579
|
+
adapter.setState('status.siren_inside', false, true);
|
|
590
580
|
adapter.setState('info.notification_circuit_changes', false, true);
|
|
591
581
|
adapter.setState('other_alarms.one_changes', false, true);
|
|
592
582
|
adapter.setState('other_alarms.two_changes', false, true);
|
|
@@ -628,8 +618,8 @@ function change(id, state){
|
|
|
628
618
|
shortcuts('status.state', state.val);
|
|
629
619
|
return;
|
|
630
620
|
}
|
|
631
|
-
else if(id === adapter.namespace + '.
|
|
632
|
-
shortcuts('
|
|
621
|
+
else if(id === adapter.namespace + '.status.siren_inside'){
|
|
622
|
+
shortcuts('status.siren_inside', state.val);
|
|
633
623
|
return;
|
|
634
624
|
}
|
|
635
625
|
else if(id === adapter.namespace + '.info.notification_circuit_changes'){
|
|
@@ -727,33 +717,9 @@ function change(id, state){
|
|
|
727
717
|
return;
|
|
728
718
|
}
|
|
729
719
|
if(inside_ids.includes(id) && inside && isTrue(id, state)){
|
|
730
|
-
|
|
731
|
-
const name = get_name(id);
|
|
732
|
-
let say = A.text_changes;
|
|
733
|
-
adapter.setState('info.log', `${A.log_warn} ${name}`, true);
|
|
734
|
-
if (A.opt_list) adapter.setState('status.state', 'burgle', true);
|
|
735
|
-
if (A.opt_list) adapter.setState('status.state_list', 3, true);
|
|
736
|
-
if (A.opt_list) adapter.setState('homekit.CurrentState', 4, true);
|
|
737
|
-
adapter.setState('info.sharp_inside_siren', true, true);
|
|
738
|
-
if(log) adapter.log.info(`${A.log_warn} ${name}`);
|
|
739
|
-
if(A.send_alarm_inside) messages(`${A.log_warn} ${name}`);
|
|
740
|
-
if(A.opt_say_names){
|
|
741
|
-
say = say + ' ' + name;
|
|
742
|
-
}
|
|
743
|
-
sayit(say, 5);
|
|
744
|
-
text_changes_interval = setInterval(()=> {
|
|
745
|
-
if(count < changes_repeat) {
|
|
746
|
-
sayit(say, 5);
|
|
747
|
-
count++;
|
|
748
|
-
} else {
|
|
749
|
-
clearInterval(text_changes_interval);
|
|
750
|
-
}
|
|
751
|
-
}, 5000);
|
|
752
|
-
timer_inside_changes = setTimeout(()=>{
|
|
753
|
-
adapter.setState('info.sharp_inside_siren', false, true);
|
|
754
|
-
}, timeMode(A.time_warning_select) * A.time_warning);
|
|
755
|
-
return;
|
|
720
|
+
burglary(id, state, isSilent(id, true), true);
|
|
756
721
|
}
|
|
722
|
+
|
|
757
723
|
if(notification_ids.includes(id) && isTrue(id, state)){
|
|
758
724
|
if(!activated && !inside && !night_rest) return;
|
|
759
725
|
const name = get_name(id);
|
|
@@ -844,7 +810,7 @@ function set_subs(){
|
|
|
844
810
|
}
|
|
845
811
|
});
|
|
846
812
|
adapter.subscribeStates('info.log');
|
|
847
|
-
adapter.subscribeStates('
|
|
813
|
+
adapter.subscribeStates('status.siren_inside');
|
|
848
814
|
adapter.subscribeStates('info.notification_circuit_changes');
|
|
849
815
|
adapter.subscribeStates('other_alarms.one_changes');
|
|
850
816
|
adapter.subscribeStates('other_alarms.two_changes');
|
|
@@ -858,9 +824,15 @@ function set_subs(){
|
|
|
858
824
|
|
|
859
825
|
function messages(content){
|
|
860
826
|
if(send_instances.length){
|
|
827
|
+
const reg = new RegExp('telegram');
|
|
861
828
|
send_instances.forEach((ele)=>{
|
|
862
|
-
|
|
863
|
-
|
|
829
|
+
if (reg.test(ele) && A.opt_telegram) {
|
|
830
|
+
adapter.log.debug(`Send message to ${ele} with special parameter, message: text: ${content}, user: ${A.user}, chatID: ${A.chatID}`);
|
|
831
|
+
adapter.sendTo(ele, 'send', {'text':content, 'user': A.user, 'chatId': A.chatID});
|
|
832
|
+
} else {
|
|
833
|
+
adapter.log.debug(`Send message to ${ele}, message: ${content}`);
|
|
834
|
+
adapter.sendTo(ele, {'text':content});
|
|
835
|
+
}
|
|
864
836
|
});
|
|
865
837
|
}
|
|
866
838
|
}
|
|
@@ -996,6 +968,45 @@ function sayit(message, opt_val){
|
|
|
996
968
|
|
|
997
969
|
//################# HELPERS ####################################################
|
|
998
970
|
|
|
971
|
+
function alarmSiren() {
|
|
972
|
+
adapter.setState('status.siren', true, true);
|
|
973
|
+
siren_timer = setTimeout(()=>{
|
|
974
|
+
adapter.setState('status.siren', false, true);
|
|
975
|
+
clearTimeout(siren_timer);
|
|
976
|
+
}, timeMode(A.time_alarm_select) * A.time_alarm);
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
function alarmFlash() {
|
|
980
|
+
if(A.alarm_flash > 0) {
|
|
981
|
+
alarm_interval = setInterval(()=>{
|
|
982
|
+
if(alarm_i) {
|
|
983
|
+
adapter.setState('status.alarm_flash', true, true);
|
|
984
|
+
alarm_i = false;
|
|
985
|
+
} else {
|
|
986
|
+
adapter.setState('status.alarm_flash', false, true);
|
|
987
|
+
alarm_i = true;
|
|
988
|
+
}
|
|
989
|
+
}, A.alarm_flash * 1000);
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
function disableStates() {
|
|
994
|
+
adapter.setState('status.deactivated', true, true);
|
|
995
|
+
adapter.setState('status.state', 'deactivated', true);
|
|
996
|
+
adapter.setState('status.state_list',0, true);
|
|
997
|
+
adapter.setState('homekit.CurrentState', 3, true);
|
|
998
|
+
adapter.setState('homekit.TargetState', 3, true);
|
|
999
|
+
adapter.setState('use.list',0, true);
|
|
1000
|
+
adapter.setState('status.siren_inside', false, true);
|
|
1001
|
+
adapter.setState('status.siren', false, true);
|
|
1002
|
+
adapter.setState('info.notification_circuit_changes', false, true);
|
|
1003
|
+
adapter.setState('status.silent_flash', false, true);
|
|
1004
|
+
adapter.setState('status.alarm_flash', false, true);
|
|
1005
|
+
adapter.setState('status.burglar_alarm', false, true);
|
|
1006
|
+
adapter.setState('status.silent_alarm', false, true);
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
|
|
999
1010
|
function check_doubles() {
|
|
1000
1011
|
clean_ids.forEach((ele, i) => {
|
|
1001
1012
|
one_ids.forEach((item, i) => {
|
|
@@ -1008,12 +1019,21 @@ function check_doubles() {
|
|
|
1008
1019
|
|
|
1009
1020
|
}
|
|
1010
1021
|
|
|
1011
|
-
function isSilent(id) {
|
|
1012
|
-
|
|
1013
|
-
const
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1022
|
+
function isSilent(id, indoor) {
|
|
1023
|
+
if (indoor) {
|
|
1024
|
+
const temp = A.circuits.findIndex((obj)=>{
|
|
1025
|
+
const reg = new RegExp(id);
|
|
1026
|
+
return reg.test(obj.name_id);
|
|
1027
|
+
});
|
|
1028
|
+
return A.circuits[temp].delay_inside;
|
|
1029
|
+
} else {
|
|
1030
|
+
const temp = A.circuits.findIndex((obj)=>{
|
|
1031
|
+
const reg = new RegExp(id);
|
|
1032
|
+
return reg.test(obj.name_id);
|
|
1033
|
+
});
|
|
1034
|
+
return A.circuits[temp].delay;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1017
1037
|
}
|
|
1018
1038
|
|
|
1019
1039
|
function timeMode(value) {
|
|
@@ -1059,7 +1079,7 @@ function inside_begins(){
|
|
|
1059
1079
|
adapter.setState('homekit.TargetState', 0, true);
|
|
1060
1080
|
adapter.setState('use.list', 2, true);
|
|
1061
1081
|
adapter.setState('status.activated', false, true);
|
|
1062
|
-
adapter.setState('status.deactivated',
|
|
1082
|
+
adapter.setState('status.deactivated', false, true);
|
|
1063
1083
|
}
|
|
1064
1084
|
}
|
|
1065
1085
|
|
|
@@ -1067,20 +1087,14 @@ function inside_ends(off){
|
|
|
1067
1087
|
if(inside){
|
|
1068
1088
|
inside = false;
|
|
1069
1089
|
if(off){
|
|
1070
|
-
clearTimeout(
|
|
1090
|
+
clearTimeout(siren_inside_timer);
|
|
1071
1091
|
clearTimeout(timer_notification_changes);
|
|
1072
1092
|
adapter.setState('info.log', `${A.log_warn_deact}`, true);
|
|
1073
1093
|
if(log)adapter.log.info(`${A.log_warn_deact}`);
|
|
1074
1094
|
if(A.send_activation_inside) messages(`${A.log_warn_deact}`);
|
|
1075
1095
|
sayit(A.text_warn_end, 0);
|
|
1076
1096
|
adapter.setState('status.sharp_inside_activated', false, true);
|
|
1077
|
-
|
|
1078
|
-
adapter.setState('status.state_list',0, true);
|
|
1079
|
-
adapter.setState('homekit.CurrentState', 3, true);
|
|
1080
|
-
adapter.setState('homekit.TargetState', 3, true);
|
|
1081
|
-
adapter.setState('use.list',0, true);
|
|
1082
|
-
adapter.setState('info.sharp_inside_siren', false, true);
|
|
1083
|
-
adapter.setState('info.notification_circuit_changes', false, true);
|
|
1097
|
+
disableStates();
|
|
1084
1098
|
}
|
|
1085
1099
|
|
|
1086
1100
|
}
|
|
@@ -1105,7 +1119,7 @@ function sleep_begin(auto) {
|
|
|
1105
1119
|
adapter.setState('use.list', 4, true);
|
|
1106
1120
|
if(is_notification){
|
|
1107
1121
|
let say = A.text_warning;
|
|
1108
|
-
|
|
1122
|
+
if(A.send_activation_warnings_night) messages(`${A.log_nights_b_w} ${names_notification}`);
|
|
1109
1123
|
adapter.setState('info.log', `${A.log_nights_b_w} ${names_notification}`, true);
|
|
1110
1124
|
if(log) adapter.log.info(`${A.log_nights_b_w} ${names_notification}`);
|
|
1111
1125
|
if(A.opt_say_names){
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "github:misanorot/ioBroker.alarm",
|
|
3
|
-
"_id": "iobroker.alarm@
|
|
3
|
+
"_id": "iobroker.alarm@3.0.4",
|
|
4
4
|
"_inBundle": false,
|
|
5
5
|
"_integrity": "",
|
|
6
6
|
"_location": "/iobroker.alarm",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"#USER",
|
|
23
23
|
"/"
|
|
24
24
|
],
|
|
25
|
-
"_resolved": "github:misanorot/ioBroker.alarm#
|
|
25
|
+
"_resolved": "github:misanorot/ioBroker.alarm#7808aadd3a1a21733062b86f49a4f3e970bd6743",
|
|
26
26
|
"_spec": "misanorot/ioBroker.alarm",
|
|
27
27
|
"_where": "/opt/iobroker",
|
|
28
28
|
"author": {
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"@iobroker/testing": "^1.2.5",
|
|
47
47
|
"chai": "^4.2.0",
|
|
48
48
|
"chai-as-promised": "^7.1.1",
|
|
49
|
-
"colors": "^1.4.0",
|
|
50
49
|
"copyfiles": "^2.2.0",
|
|
51
50
|
"coveralls": "^3.0.11",
|
|
52
51
|
"eslint-config-prettier": "^6.10.1",
|
|
@@ -81,5 +80,5 @@
|
|
|
81
80
|
"test:package": "mocha test/package --exit",
|
|
82
81
|
"test:unit": "mocha test/unit --exit"
|
|
83
82
|
},
|
|
84
|
-
"version": "
|
|
83
|
+
"version": "3.0.4"
|
|
85
84
|
}
|