iobroker.pv-notifications 1.2.13 → 1.2.15
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 +7 -0
- package/io-package.json +27 -27
- package/main.js +15 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -344,8 +344,15 @@ sadam6752@gmail.com
|
|
|
344
344
|
### **WORK IN PROGRESS**
|
|
345
345
|
-->
|
|
346
346
|
|
|
347
|
+
### 1.2.15 (2026-03-08)
|
|
348
|
+
* (ADD) Added separator lines to battery full/empty and intermediate messages for improved readability
|
|
349
|
+
|
|
350
|
+
### 1.2.14 (2026-03-06)
|
|
351
|
+
* (FIX) Fixed intermediate message formatting: Removed extra line break before weather data (weather today appears directly below separator)
|
|
352
|
+
|
|
347
353
|
### 1.2.13 (2026-03-03)
|
|
348
354
|
* (ADD) Added current production (W) to test message, daily statistics and intermediate messages with improved layout
|
|
355
|
+
* (FIX) README.md Changelog updated for repository checker (E6006 fix)
|
|
349
356
|
|
|
350
357
|
### 1.2.11 (2026-03-02)
|
|
351
358
|
|
package/io-package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "pv-notifications",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.15",
|
|
5
5
|
"titleLang": {
|
|
6
6
|
"en": "PV Notifications",
|
|
7
7
|
"de": "PV-Benachrichtigungen",
|
|
@@ -29,6 +29,32 @@
|
|
|
29
29
|
"zh-cn": "发送 Telegram 通知用于 PV 电池状态"
|
|
30
30
|
},
|
|
31
31
|
"news": {
|
|
32
|
+
"1.2.15": {
|
|
33
|
+
"en": "Added separator lines to battery full/empty and intermediate messages for improved readability",
|
|
34
|
+
"de": "Trennlinien zu Batterie VOLL/LEER und Intermediate-Nachrichten für bessere Lesbarkeit hinzugefügt",
|
|
35
|
+
"ru": "Добавлены разделительные линии к сообщениям о полной/пустой батарее и промежуточным сообщениям для улучшения читаемости",
|
|
36
|
+
"pt": "Adicionadas linhas separadoras às mensagens de bateria cheia/vazia e intermediárias para melhor legibilidade",
|
|
37
|
+
"nl": "Scheidinglijnen toegevoegd aan batterij vol/leeg en intermediate-berichten voor verbeterde leesbaarheid",
|
|
38
|
+
"fr": "Ajout de lignes séparatrices aux messages batterie pleine/vide et intermédiaires pour une meilleure lisibilité",
|
|
39
|
+
"it": "Aggiunte linee separatrici ai messaggi di batteria piena/vuota e intermedi per una migliore leggibilità",
|
|
40
|
+
"es": "Agregadas líneas separadoras a los mensajes de batería llena/vacía e intermedios para mejorar la legibilidad",
|
|
41
|
+
"pl": "Dodano linie oddzielające do wiadomości o pełnej/pustej baterii i pośrednich dla lepszej czytelności",
|
|
42
|
+
"uk": "Додано розділювальні лінії до повідомлень про повну/порожню батарею та проміжних для покращення читабельності",
|
|
43
|
+
"zh-cn": "已添加分隔线到电池满/空和中间消息以提高可读性"
|
|
44
|
+
},
|
|
45
|
+
"1.2.14": {
|
|
46
|
+
"en": "Fixed intermediate message formatting: Removed extra line break before weather data",
|
|
47
|
+
"de": "Intermediate-Nachricht formatiert: Zusätzlichen Zeilenumbruch vor Wetterdaten entfernt",
|
|
48
|
+
"ru": "Исправлено форматирование промежуточного сообщения: удалён лишний перенос строки перед данными погоды",
|
|
49
|
+
"pt": "Corrigida formatação da mensagem intermediária: Removida quebra de linha extra antes dos dados meteorológicos",
|
|
50
|
+
"nl": "Formattering tussentijds bericht gecorrigeerd: extra regeleis voor weergegevens verwijderd",
|
|
51
|
+
"fr": "Correction du formatage des messages intermédiaires: suppression du saut de ligne supplémentaire avant les données météo",
|
|
52
|
+
"it": "Corretta formattazione messaggio intermedio: rimossa interruzione di riga extra prima dei dati meteo",
|
|
53
|
+
"es": "Corregido formato de mensaje intermedio: Eliminada salto de línea adicional antes de datos meteorológicos",
|
|
54
|
+
"pl": "Poprawiono formatowanie wiadomości pośrednich: Usunięto dodatkowy podział wiersza przed danymi pogodowymi",
|
|
55
|
+
"uk": "Виправлено форматування проміжних повідомлень: видалено додатковий перенос рядка перед даними погоди",
|
|
56
|
+
"zh-cn": "修复中间消息格式:删除天气数据前的额外换行符"
|
|
57
|
+
},
|
|
32
58
|
"1.2.13": {
|
|
33
59
|
"en": "Added current production (W) to test message, daily statistics and intermediate messages with improved layout",
|
|
34
60
|
"de": "Aktuelle Produktion (W) zu Test-Nachricht, Tagesstatistik und Zwischenmeldungen mit verbessertem Layout hinzugefügt",
|
|
@@ -93,32 +119,6 @@
|
|
|
93
119
|
"pl": "Naprawiono problemy z formatowaniem ESLint (75 błędów prettier/prettier automatycznie naprawionych za pomocą lint:fix)",
|
|
94
120
|
"uk": "Виправлено проблеми з форматуванням ESLint (75 помилок prettier/prettier автоматично виправлено за допомогою lint:fix)",
|
|
95
121
|
"zh-cn": "已修复 ESLint 格式化问题(75 个 prettier/prettier 错误已通过 lint:fix 自动修复)"
|
|
96
|
-
},
|
|
97
|
-
"1.2.8": {
|
|
98
|
-
"en": "Fixed duplicate news entry in io-package.json (E1036/E2005 fix)",
|
|
99
|
-
"de": "Doppelten news-Eintrag in io-package.json behoben (E1036/E2005 Fix)",
|
|
100
|
-
"ru": "Исправлена дублирующаяся запись news в io-package.json (исправление E1036/E2005)",
|
|
101
|
-
"pt": "Corrigida entrada duplicada de notícias no io-package.json (correção E1036/E2005)",
|
|
102
|
-
"nl": "Dubbele nieuwsvermelding in io-package.json hersteld (E1036/E2005 fix)",
|
|
103
|
-
"fr": "Correction d'une entrée de nouvelles en double dans io-package.json (correction E1036/E2005)",
|
|
104
|
-
"it": "Corretta voce duplicata delle notizie in io-package.json (correzione E1036/E2005)",
|
|
105
|
-
"es": "Entrada de noticias duplicada corregida en io-package.json (corrección E1036/E2005)",
|
|
106
|
-
"pl": "Naprawiono podwójny wpis wiadomości w io-package.json (poprawka E1036/E2005)",
|
|
107
|
-
"uk": "Виправлено подвійний запис новин у io-package.json (виправлення E1036/E2005)",
|
|
108
|
-
"zh-cn": "已修复 io-package.json 中的重复新闻条目(E1036/E2005 修复)"
|
|
109
|
-
},
|
|
110
|
-
"1.2.7": {
|
|
111
|
-
"en": "Fixed io-package.json JSON syntax error (invalid duplicate news section removed)",
|
|
112
|
-
"de": "io-package.json JSON-Syntaxfehler behoben (ungültiger doppelter news-Abschnitt entfernt)",
|
|
113
|
-
"ru": "Исправлена ошибка синтаксиса JSON в io-package.json (удален недопустимый дублирующийся раздел news)",
|
|
114
|
-
"pt": "Erro de sintaxe JSON no io-package.json corrigido (seção de notícias duplicada removida)",
|
|
115
|
-
"nl": "JSON-syntaxfout in io-package.json hersteld (ongeldige dubbele nieuwssectie verwijderd)",
|
|
116
|
-
"fr": "Erreur de syntaxe JSON dans io-package.json corrigée (section de nouvelles en double supprimée)",
|
|
117
|
-
"it": "Errore di sintassi JSON in io-package.json corretto (sezione notizie duplicata rimossa)",
|
|
118
|
-
"es": "Error de sintaxis JSON en io-package.json corregido (sección de noticias duplicada eliminada)",
|
|
119
|
-
"pl": "Naprawiono błąd składni JSON w io-package.json (usunięto podwójną sekcję wiadomości)",
|
|
120
|
-
"uk": "Виправлено помилку синтаксису JSON у io-package.json (видалено подвійний розділ новин)",
|
|
121
|
-
"zh-cn": "已修复 io-package.json JSON 语法错误(已删除无效的重复新闻部分)"
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
124
|
"authors": [
|
package/main.js
CHANGED
|
@@ -888,12 +888,14 @@ class PvNotifications extends utils.Adapter {
|
|
|
888
888
|
const feedIn = feedInState && feedInState.val !== null ? feedInState.val : 0;
|
|
889
889
|
const consumption = consumptionState && consumptionState.val !== null ? consumptionState.val : 0;
|
|
890
890
|
|
|
891
|
-
|
|
891
|
+
const separator = '\n━━━━━━━━━━━━━━━━━━━━━━';
|
|
892
|
+
|
|
893
|
+
let message = `🔋 *${this.translate('Battery full')}* (${soc}%)${separator}
|
|
892
894
|
|
|
893
895
|
⚡ ${this.translate('Current production')}: ${this.round(power)} W
|
|
894
896
|
🏠 ${this.translate('Current consumption')}: ${this.round(consumption)} W
|
|
895
897
|
☀️ ${this.translate('Production today')}: ${this.round(totalProd)} kWh
|
|
896
|
-
🔌 ${this.translate('Feed-in today')}: ${this.round(Math.abs(feedIn), 0)} kWh`;
|
|
898
|
+
🔌 ${this.translate('Feed-in today')}: ${this.round(Math.abs(feedIn), 0)} kWh${separator}`;
|
|
897
899
|
|
|
898
900
|
// Wetter-Prognose hinzufügen (heute und morgen)
|
|
899
901
|
const weatherConfigured =
|
|
@@ -963,7 +965,7 @@ class PvNotifications extends utils.Adapter {
|
|
|
963
965
|
|
|
964
966
|
// Empfehlungen bei hoher Produktion
|
|
965
967
|
if (power > this.config.highProduction) {
|
|
966
|
-
message +=
|
|
968
|
+
message += `${separator}\n🚗 ${this.translate('Now ideal for electric car washing machine dishwasher')}`;
|
|
967
969
|
}
|
|
968
970
|
|
|
969
971
|
return message;
|
|
@@ -982,10 +984,12 @@ class PvNotifications extends utils.Adapter {
|
|
|
982
984
|
const gridPower = gridPowerState && gridPowerState.val !== null ? gridPowerState.val : 0;
|
|
983
985
|
const consumption = consumptionState && consumptionState.val !== null ? consumptionState.val : 0;
|
|
984
986
|
|
|
985
|
-
|
|
987
|
+
const separator = '\n━━━━━━━━━━━━━━━━━━━━━━';
|
|
988
|
+
|
|
989
|
+
let message = `🔋 *${this.translate('Battery empty')}* (${soc}%)${separator}
|
|
986
990
|
|
|
987
991
|
⚠️ ${this.translate('Grid consumption today')}: ${this.round(gridPower)} W
|
|
988
|
-
🏠 ${this.translate('Consumption today')}: ${this.round(consumption)} W`;
|
|
992
|
+
🏠 ${this.translate('Consumption today')}: ${this.round(consumption)} W${separator}`;
|
|
989
993
|
|
|
990
994
|
// Wetter-Prognose hinzufügen (heute und morgen)
|
|
991
995
|
const weatherConfigured =
|
|
@@ -1055,7 +1059,7 @@ class PvNotifications extends utils.Adapter {
|
|
|
1055
1059
|
|
|
1056
1060
|
// Spartipps
|
|
1057
1061
|
if (consumption > this.config.highConsumption) {
|
|
1058
|
-
message +=
|
|
1062
|
+
message += `${separator}\n💰 ${this.translate('High consumption Turn off unnecessary devices')}`;
|
|
1059
1063
|
}
|
|
1060
1064
|
|
|
1061
1065
|
return message;
|
|
@@ -1143,7 +1147,7 @@ ${statusText}
|
|
|
1143
1147
|
|
|
1144
1148
|
if (weatherTodayText || weatherTodayTemp) {
|
|
1145
1149
|
const weatherDesc = weatherTodayText ? this.getWeatherDescription(weatherTodayText) : '🌡️';
|
|
1146
|
-
message += `\n
|
|
1150
|
+
message += `\n🌤️ ${this.translate('Weather today')}: ${weatherDesc}${todayTempText}`;
|
|
1147
1151
|
this.log.info(`Weather today added to intermediate message: ${weatherDesc}${todayTempText}`);
|
|
1148
1152
|
}
|
|
1149
1153
|
}
|
|
@@ -1197,6 +1201,8 @@ ${statusText}
|
|
|
1197
1201
|
}
|
|
1198
1202
|
}
|
|
1199
1203
|
|
|
1204
|
+
message += '\n━━━━━━━━━━━━━━━━━━━━━━';
|
|
1205
|
+
|
|
1200
1206
|
return message;
|
|
1201
1207
|
}
|
|
1202
1208
|
|
|
@@ -1373,12 +1379,12 @@ ${statusText}
|
|
|
1373
1379
|
━━━━━━━━━━━━━━━━━━━━━━
|
|
1374
1380
|
🔋 ${this.translate('Full cycles last month')}: ${this.stats.lastMonthFullCycles}
|
|
1375
1381
|
📉 ${this.translate('Empty cycles last month')}: ${this.stats.lastMonthEmptyCycles}
|
|
1376
|
-
|
|
1382
|
+
���━━━━━━━━━━━━━━━━━━━━━
|
|
1377
1383
|
☀️ ${this.translate('Production')}: ${totalProd} kWh
|
|
1378
1384
|
🏠 ${this.translate('Own consumption')}: ${selfConsumption} kWh (${selfConsumptionRate}%)
|
|
1379
1385
|
🔌 ${this.translate('Feed-in')}: ${feedIn} kWh
|
|
1380
1386
|
⚡ ${this.translate('Grid consumption')}: ${gridPower} kWh
|
|
1381
|
-
|
|
1387
|
+
━━━━━━━━━━━━���━━━━━━━━━`;
|
|
1382
1388
|
}
|
|
1383
1389
|
|
|
1384
1390
|
/**
|