iobroker.alarm 3.4.1 → 3.4.3
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 +9 -7
- package/admin/index_m.html +1 -1
- package/io-package.json +27 -27
- package/main.js +22 -19
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -29,20 +29,22 @@
|
|
|
29
29
|
Placeholder for the next version (at the beginning of the line):
|
|
30
30
|
### **WORK IN PROGRESS**
|
|
31
31
|
-->
|
|
32
|
+
### 3.4.3 (2023-11-05)
|
|
33
|
+
* (misanorot) added silent_alarm (state list) to shortcuts
|
|
34
|
+
|
|
35
|
+
### 3.4.2 (2023-10-31)
|
|
36
|
+
* (misanorot) added enhancement #170
|
|
37
|
+
|
|
32
38
|
### 3.4.1 (2023-10-29)
|
|
33
39
|
* (misanorot) fixed astro at presence simulation (jsControler 5.x???)
|
|
34
40
|
|
|
35
41
|
### 3.4.0 (2023-10-03)
|
|
36
42
|
* (misanorot) fixed #168
|
|
37
43
|
|
|
38
|
-
|
|
39
|
-
* (misanorot) fixed #147
|
|
40
|
-
|
|
41
|
-
### 3.3.12 (2023-06-23)
|
|
42
|
-
* (misanorot) fixed select-id popup and little issues on setting pages
|
|
44
|
+
**[older changelogs](CHANGELOG_OLD.md)**
|
|
43
45
|
|
|
44
|
-
### 3.3.
|
|
45
|
-
* (misanorot) fixed
|
|
46
|
+
### 3.3.7 (2023-01-02)
|
|
47
|
+
* (misanorot) fixed issues at presence light trigger
|
|
46
48
|
|
|
47
49
|
## License
|
|
48
50
|
MIT License
|
package/admin/index_m.html
CHANGED
|
@@ -1376,7 +1376,7 @@
|
|
|
1376
1376
|
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"
|
|
1377
1377
|
class=" translate">Name</th>
|
|
1378
1378
|
<th data-name="trigger_val" style="background: #174475" data-type="select"
|
|
1379
|
-
data-options=" ;true;false;deactivated;sharp;sharp_inside;burglary;night_rest;gets_activated;activation_failed;activation_aborted"
|
|
1379
|
+
data-options=" ;true;false;deactivated;sharp;sharp_inside;burglary;night_rest;gets_activated;activation_failed;activation_aborted;silent_alarm"
|
|
1380
1380
|
class=" translate">Trigger</th>
|
|
1381
1381
|
<th data-name="name" style="background: #174475" data-type="text" class=" translate">Name</th>
|
|
1382
1382
|
<th data-name="name_id" style="background: #174475" data-type="text" class=" translate">Object-ID
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "alarm",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.3",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.4.3": {
|
|
7
|
+
"en": "added silent_alarm (state list) to shortcuts",
|
|
8
|
+
"de": "stumm_alarm (stateliste) zu shortcuts hinzugefügt",
|
|
9
|
+
"ru": "добавлено quiet_alarm (список состояния) на shortcuts",
|
|
10
|
+
"pt": "adicionado silent_alarm (lista de estado) para atalhos",
|
|
11
|
+
"nl": "vertaling:",
|
|
12
|
+
"fr": "added silent_alarm (state list) to shortcuts",
|
|
13
|
+
"it": "aggiunto silent_alarm (elenco di stato) alle scorciatoie",
|
|
14
|
+
"es": "añadido silencio_alarma (lista de estado) a atajos",
|
|
15
|
+
"pl": "dodał cichą listę (listę stanową) do skrótów",
|
|
16
|
+
"uk": "додано безшумний_алматичний список (державний список) для ярликів",
|
|
17
|
+
"zh-cn": "补充沉默:沉默(国家名单)"
|
|
18
|
+
},
|
|
19
|
+
"3.4.2": {
|
|
20
|
+
"en": "added enhancement #170",
|
|
21
|
+
"de": "erweiterung #170",
|
|
22
|
+
"ru": "добавлено улучшение #170",
|
|
23
|
+
"pt": "melhoria adicionada #170",
|
|
24
|
+
"nl": "verbetering #170",
|
|
25
|
+
"fr": "amélioration ajoutée #170",
|
|
26
|
+
"it": "aggiunto miglioramento #170",
|
|
27
|
+
"es": "mejora agregada #170",
|
|
28
|
+
"pl": "dodał także poprawkę #170",
|
|
29
|
+
"uk": "додано підвищення #170",
|
|
30
|
+
"zh-cn": "增援行动170"
|
|
31
|
+
},
|
|
6
32
|
"3.4.1": {
|
|
7
33
|
"en": "fixed astro at presence simulation (jsControler 5.x???)",
|
|
8
34
|
"de": "fester Astro bei Präsenzsimulation (jsControler 5.x?)",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "trwały problem w nocy",
|
|
68
94
|
"uk": "виправлено проблему в нічному режимі",
|
|
69
95
|
"zh-cn": "夜间固定问题休息"
|
|
70
|
-
},
|
|
71
|
-
"3.3.10": {
|
|
72
|
-
"en": "fixed litle speech and presence bug",
|
|
73
|
-
"de": "feste litle rede und anwesenheit fehler",
|
|
74
|
-
"ru": "исправлена лиловая речь и ошибка присутствия",
|
|
75
|
-
"pt": "discurso de linho fixo e bug presença",
|
|
76
|
-
"nl": "_",
|
|
77
|
-
"fr": "discours fixe et bug de présence",
|
|
78
|
-
"it": "discorso fisso e bug di presenza",
|
|
79
|
-
"es": "discurso de litio fijo y error de presencia",
|
|
80
|
-
"pl": "stałe przemówienie i obecność bugu",
|
|
81
|
-
"uk": "виправлений лайт мова і наявність помилок",
|
|
82
|
-
"zh-cn": "固定的利词和存在 bug"
|
|
83
|
-
},
|
|
84
|
-
"3.3.9": {
|
|
85
|
-
"en": "fixed issues at burgle log",
|
|
86
|
-
"de": "feste probleme bei burgle log",
|
|
87
|
-
"ru": "фиксированные вопросы в burgle log",
|
|
88
|
-
"pt": "problemas fixos no log de águia",
|
|
89
|
-
"nl": "vertaling:",
|
|
90
|
-
"fr": "problèmes fixes dans le journal de burgle",
|
|
91
|
-
"it": "problemi fissi a log burgle",
|
|
92
|
-
"es": "problemas fijos en el registro de burgle",
|
|
93
|
-
"pl": "prawidłowe problemy z burgle logiem",
|
|
94
|
-
"uk": "виправлені питання в burgle log",
|
|
95
|
-
"zh-cn": "堡固定问题"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"title": "Alarm",
|
package/main.js
CHANGED
|
@@ -1728,6 +1728,9 @@ class Alarm extends utils.Adapter {
|
|
|
1728
1728
|
case 7:
|
|
1729
1729
|
setVal = 'activation_aborted';
|
|
1730
1730
|
break;
|
|
1731
|
+
case 8:
|
|
1732
|
+
setVal = 'silent_alarm';
|
|
1733
|
+
break;
|
|
1731
1734
|
default:
|
|
1732
1735
|
setVal = val;
|
|
1733
1736
|
this.log.warn(`Wrong list state at shortcuts: ${val}`);
|
|
@@ -1848,95 +1851,95 @@ class Alarm extends utils.Adapter {
|
|
|
1848
1851
|
switch (presenceTimers[item].option_presence) {
|
|
1849
1852
|
case 'time':
|
|
1850
1853
|
if (presenceTimers[item].presence_time_from == '' || presenceTimers[item].presence_time_to == '') {
|
|
1851
|
-
this.log.warn(`Please check the times when configuring attendance: ${presenceTimers[item].name_id}`);
|
|
1854
|
+
this.log.warn(`Please check the times when configuring attendance: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} `);
|
|
1852
1855
|
return;
|
|
1853
1856
|
}
|
|
1854
1857
|
if (this.timeInRange(presenceTimers[item].presence_time_from, presenceTimers[item].presence_time_to) && !presenceTimers[item].wasOn) {
|
|
1855
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1858
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} starts ${presenceTimers[item].presence_delay}ms, because time is in range.`);
|
|
1856
1859
|
presenceTimers[item].wasOn = true;
|
|
1857
1860
|
presenceTimers[item].presenceDelayTimer = setTimeout(() => {
|
|
1858
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1861
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch ON ${presenceTimers[item].presence_length}ms.`);
|
|
1859
1862
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_on), (err) => {
|
|
1860
1863
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1861
1864
|
});
|
|
1862
1865
|
presenceTimers[item].presenceLengthTimer = setTimeout(() => {
|
|
1863
|
-
this.log.debug(`Switch ON for: ${presenceTimers[item].name_id}
|
|
1866
|
+
this.log.debug(`Switch ON for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch OFF.`);
|
|
1864
1867
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_off), (err) => {
|
|
1865
1868
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1866
1869
|
});
|
|
1867
1870
|
}, presenceTimers[item].presence_length);
|
|
1868
1871
|
}, presenceTimers[item].presence_delay);
|
|
1869
1872
|
} else {
|
|
1870
|
-
this.log.debug(`${presenceTimers[item].name_id}
|
|
1873
|
+
this.log.debug(`${presenceTimers[item].name} -- ${presenceTimers[item].name_id} was ON or is not in time range`);
|
|
1871
1874
|
}
|
|
1872
1875
|
break;
|
|
1873
1876
|
case 'sunrise':
|
|
1874
1877
|
if (sunrise && !presenceTimers[item].wasOn) {
|
|
1875
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1878
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} starts ${presenceTimers[item].presence_delay}ms, by sunrise`);
|
|
1876
1879
|
presenceTimers[item].wasOn = true;
|
|
1877
1880
|
presenceTimers[item].presenceDelayTimer = setTimeout(() => {
|
|
1878
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1881
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch ON ${presenceTimers[item].presence_length}ms.`);
|
|
1879
1882
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_on), (err) => {
|
|
1880
1883
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1881
1884
|
});
|
|
1882
1885
|
presenceTimers[item].presenceLengthTimer = setTimeout(() => {
|
|
1883
|
-
this.log.debug(`Switch ON for: ${presenceTimers[item].name_id}
|
|
1886
|
+
this.log.debug(`Switch ON for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch OFF.`);
|
|
1884
1887
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_off), (err) => {
|
|
1885
1888
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1886
1889
|
});
|
|
1887
1890
|
}, presenceTimers[item].presence_length);
|
|
1888
1891
|
}, presenceTimers[item].presence_delay);
|
|
1889
1892
|
} else {
|
|
1890
|
-
this.log.debug(`${presenceTimers[item].name_id}
|
|
1893
|
+
this.log.debug(`${presenceTimers[item].name} -- ${presenceTimers[item].name_id} was ON or is no sunrise`);
|
|
1891
1894
|
}
|
|
1892
1895
|
break;
|
|
1893
1896
|
case 'sunset':
|
|
1894
1897
|
if (sunset && !presenceTimers[item].wasOn) {
|
|
1895
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1898
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} starts ${presenceTimers[item].presence_delay}ms, by sunset`);
|
|
1896
1899
|
presenceTimers[item].wasOn = true;
|
|
1897
1900
|
presenceTimers[item].presenceDelayTimer = setTimeout(() => {
|
|
1898
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1901
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch ON ${presenceTimers[item].presence_length}ms.`);
|
|
1899
1902
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_on), (err) => {
|
|
1900
1903
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1901
1904
|
});
|
|
1902
1905
|
presenceTimers[item].presenceLengthTimer = setTimeout(() => {
|
|
1903
|
-
this.log.debug(`Switch ON for: ${presenceTimers[item].name_id}
|
|
1906
|
+
this.log.debug(`Switch ON for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch OFF.`);
|
|
1904
1907
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_off), (err) => {
|
|
1905
1908
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1906
1909
|
});
|
|
1907
1910
|
}, presenceTimers[item].presence_length);
|
|
1908
1911
|
}, presenceTimers[item].presence_delay);
|
|
1909
1912
|
} else {
|
|
1910
|
-
this.log.debug(`${presenceTimers[item].name_id}
|
|
1913
|
+
this.log.debug(`${presenceTimers[item].name} -- ${presenceTimers[item].name_id} was ON or is no sunset`);
|
|
1911
1914
|
}
|
|
1912
1915
|
break;
|
|
1913
1916
|
case 'light':
|
|
1914
1917
|
// eslint-disable-next-line no-case-declarations
|
|
1915
1918
|
const lightVal = await this.getForeignStateAsync(presenceTimers[item].presence_trigger_light).catch((e) => {
|
|
1916
|
-
this.log.warn(`Check your light ID ${presenceTimers[item].name_id}
|
|
1919
|
+
this.log.warn(`Check your light ID ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} in presence config! +++ ${e}`);
|
|
1917
1920
|
return;
|
|
1918
1921
|
});
|
|
1919
1922
|
if (lightVal.val < presenceTimers[item].presence_light_lux && !presenceTimers[item].wasOn) {
|
|
1920
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1923
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} starts ${presenceTimers[item].presence_delay}ms, because light value is not under the limit.`);
|
|
1921
1924
|
presenceTimers[item].wasOn = true;
|
|
1922
1925
|
presenceTimers[item].presenceDelayTimer = setTimeout(() => {
|
|
1923
|
-
this.log.debug(`Delay for: ${presenceTimers[item].name_id}
|
|
1926
|
+
this.log.debug(`Delay for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch ON ${presenceTimers[item].presence_length}ms.`);
|
|
1924
1927
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_on), (err) => {
|
|
1925
1928
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1926
1929
|
});
|
|
1927
1930
|
presenceTimers[item].presenceLengthTimer = setTimeout(() => {
|
|
1928
|
-
this.log.debug(`Switch ON for: ${presenceTimers[item].name_id}
|
|
1931
|
+
this.log.debug(`Switch ON for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} ends and switch OFF.`);
|
|
1929
1932
|
this.setForeignState(presenceTimers[item].name_id, this.bools(presenceTimers[item].presence_val_off), (err) => {
|
|
1930
1933
|
if (err) this.log.warn(`Cannot set state: ${err}`);
|
|
1931
1934
|
});
|
|
1932
1935
|
}, presenceTimers[item].presence_length);
|
|
1933
1936
|
}, presenceTimers[item].presence_delay);
|
|
1934
1937
|
} else {
|
|
1935
|
-
this.log.debug(`${presenceTimers[item].name_id}
|
|
1938
|
+
this.log.debug(`${presenceTimers[item].name} -- ${presenceTimers[item].name_id} was ON or light value is not under the limit.`);
|
|
1936
1939
|
}
|
|
1937
1940
|
break;
|
|
1938
1941
|
default:
|
|
1939
|
-
this.log.warn(`Please check presence configuration for: ${presenceTimers[item].name_id}, value: ${presenceTimers[item].option_presence}`);
|
|
1942
|
+
this.log.warn(`Please check presence configuration for: ${presenceTimers[item].name} -- ${presenceTimers[item].name_id} , value: ${presenceTimers[item].option_presence}`);
|
|
1940
1943
|
}
|
|
1941
1944
|
}
|
|
1942
1945
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.alarm",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.3",
|
|
4
4
|
"description": "Your own lttle alarm system",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "misanorot",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"node": ">= 16"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@iobroker/adapter-core": "^3.0.
|
|
24
|
+
"@iobroker/adapter-core": "^3.0.4",
|
|
25
25
|
"node-schedule": "^2.1.1",
|
|
26
26
|
"suncalc2": "^1.8.1"
|
|
27
27
|
},
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"@iobroker/testing": "^4.1.0",
|
|
35
35
|
"@tsconfig/node16": "^16.1.1",
|
|
36
36
|
"@types/chai": "^4.3.6",
|
|
37
|
-
"@types/chai-as-promised": "^7.1.
|
|
37
|
+
"@types/chai-as-promised": "^7.1.7",
|
|
38
38
|
"@types/mocha": "^10.0.1",
|
|
39
|
-
"@types/node": "^20.8.
|
|
40
|
-
"@types/proxyquire": "^1.3.
|
|
39
|
+
"@types/node": "^20.8.10",
|
|
40
|
+
"@types/proxyquire": "^1.3.30",
|
|
41
41
|
"@types/sinon": "^10.0.15",
|
|
42
|
-
"@types/sinon-chai": "^3.2.
|
|
42
|
+
"@types/sinon-chai": "^3.2.11",
|
|
43
43
|
"chai": "^4.3.10",
|
|
44
44
|
"chai-as-promised": "^7.1.1",
|
|
45
45
|
"eslint": "^8.50.0",
|