iobroker.pv-notifications 1.2.29 → 1.2.31

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 CHANGED
@@ -314,6 +314,15 @@ sadam6752@gmail.com
314
314
  ### **WORK IN PROGRESS**
315
315
  -->
316
316
 
317
+ ### 1.2.31 (2026-09-21)
318
+ * (ADD) CI: Node.js 26 in the test matrix and a new deploy job using npm Trusted Publishing (OIDC) with provenance
319
+ * (FIX) Added the missing changelog entry for 1.2.30
320
+ * (FIX) Completed the short 1.2.29 news translations (es, it, nl, pl, pt, uk)
321
+ * (FIX) Dependencies: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2
322
+
323
+ ### 1.2.30
324
+ * (ADD) Optional data point for the current house consumption in W - battery full/empty messages now use this live value instead of the daily kWh total (fixes #74); fallback: PV power minus feed-in
325
+
317
326
  ### 1.2.29
318
327
  * (FIX) Corrupted UTF-8 separator lines in the monthly stats message (showed as question marks in Telegram)
319
328
  * (FIX) Corrupted Russian translations for "Current charge level" and "Own consumption"
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Gesamtproduktion heute (kWh)",
12
12
  "label_feedIn": "Einspeisung heute (kWh)",
13
13
  "label_consumption": "Hausverbrauch heute (kWh)",
14
+ "label_currentConsumptionPower": "Aktueller Hausverbrauch (W)",
15
+ "tooltip_currentConsumptionPower": "Momentaner Verbrauch in W (sekündlicher Wert). Wird bei Batterie-Status-Meldungen (voll/leer) für den aktuellen Verbrauch verwendet. Wenn leer, wird ersatzweise PV-Leistung minus Einspeisung genutzt.",
14
16
  "label_gridPower": "Netzbezug heute (kWh)",
15
17
  "label_weeklyProduction": "Produktion diese Woche (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Produktion.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Total Production Today (kWh)",
12
12
  "label_feedIn": "Feed-in Today (kWh)",
13
13
  "label_consumption": "House Consumption Today (kWh)",
14
+ "label_currentConsumptionPower": "Current House Consumption (W)",
15
+ "tooltip_currentConsumptionPower": "Instantaneous consumption in W (live value). Used for the current consumption in battery status messages (full/empty). If empty, PV power minus feed-in is used as a fallback.",
14
16
  "label_gridPower": "Grid Consumption Today (kWh)",
15
17
  "label_weeklyProduction": "Production This Week (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Producción Total Hoy (kWh)",
12
12
  "label_feedIn": "Inyección Hoy (kWh)",
13
13
  "label_consumption": "Consumo del Hogar Hoy (kWh)",
14
+ "label_currentConsumptionPower": "Consumo Actual del Hogar (W)",
15
+ "tooltip_currentConsumptionPower": "Consumo instantáneo en W (valor en vivo). Se usa para el consumo actual en los mensajes de estado de la batería (llena/vacía). Si está vacío, se usa la potencia FV menos la inyección como alternativa.",
14
16
  "label_gridPower": "Consumo de Red Hoy (kWh)",
15
17
  "label_weeklyProduction": "Producción Esta Semana (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Production Totale Aujourd'hui (kWh)",
12
12
  "label_feedIn": "Injection Aujourd'hui (kWh)",
13
13
  "label_consumption": "Consommation Maison Aujourd'hui (kWh)",
14
+ "label_currentConsumptionPower": "Consommation Actuelle de la Maison (W)",
15
+ "tooltip_currentConsumptionPower": "Consommation instantanée en W (valeur en direct). Utilisée pour la consommation actuelle dans les messages d'état de la batterie (pleine/vide). Si vide, la puissance PV moins l'injection est utilisée en remplacement.",
14
16
  "label_gridPower": "Consommation Réseau Aujourd'hui (kWh)",
15
17
  "label_weeklyProduction": "Production Cette Semaine (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Produzione Totale Oggi (kWh)",
12
12
  "label_feedIn": "Immissione Oggi (kWh)",
13
13
  "label_consumption": "Consumo Casa Oggi (kWh)",
14
+ "label_currentConsumptionPower": "Consumo Attuale della Casa (W)",
15
+ "tooltip_currentConsumptionPower": "Consumo istantaneo in W (valore in tempo reale). Usato per il consumo attuale nei messaggi di stato della batteria (piena/vuota). Se vuoto, viene usata la potenza FV meno l'immissione come alternativa.",
14
16
  "label_gridPower": "Consumo Rete Oggi (kWh)",
15
17
  "label_weeklyProduction": "Produzione Questa Settimana (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Totale Productie Vandaag (kWh)",
12
12
  "label_feedIn": "Teruglevering Vandaag (kWh)",
13
13
  "label_consumption": "Huisverbruik Vandaag (kWh)",
14
+ "label_currentConsumptionPower": "Huidig Huisverbruik (W)",
15
+ "tooltip_currentConsumptionPower": "Momentaan verbruik in W (live waarde). Wordt gebruikt voor het huidige verbruik in batterijstatusberichten (vol/leeg). Indien leeg, wordt PV-vermogen minus teruglevering als alternatief gebruikt.",
14
16
  "label_gridPower": "Netverbruik Vandaag (kWh)",
15
17
  "label_weeklyProduction": "Productie Deze Week (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Całkowita Produkcja Dzisiaj (kWh)",
12
12
  "label_feedIn": "Wysyłka Dzisiaj (kWh)",
13
13
  "label_consumption": "Zużycie Domu Dzisiaj (kWh)",
14
+ "label_currentConsumptionPower": "Bieżące Zużycie Domu (W)",
15
+ "tooltip_currentConsumptionPower": "Chwilowe zużycie w W (wartość na żywo). Używane do bieżącego zużycia w wiadomościach o stanie baterii (pełna/pusta). Jeśli puste, jako alternatywa używana jest moc PV minus oddawanie do sieci.",
14
16
  "label_gridPower": "Zużycie Sieci Dzisiaj (kWh)",
15
17
  "label_weeklyProduction": "Produkcja W Tym Tygodniu (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Produção Total Hoje (kWh)",
12
12
  "label_feedIn": "Injeção Hoje (kWh)",
13
13
  "label_consumption": "Consumo da Casa Hoje (kWh)",
14
+ "label_currentConsumptionPower": "Consumo Atual da Casa (W)",
15
+ "tooltip_currentConsumptionPower": "Consumo instantâneo em W (valor ao vivo). Usado para o consumo atual nas mensagens de estado da bateria (cheia/vazia). Se vazio, é usada a potência FV menos a injeção como alternativa.",
14
16
  "label_gridPower": "Consumo da Rede Hoje (kWh)",
15
17
  "label_weeklyProduction": "Produção Esta Semana (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Общее производство сегодня (кВт⋅ч)",
12
12
  "label_feedIn": "Подача в сеть сегодня (кВт⋅ч)",
13
13
  "label_consumption": "Потребление дома сегодня (кВт⋅ч)",
14
+ "label_currentConsumptionPower": "Текущее потребление дома (Вт)",
15
+ "tooltip_currentConsumptionPower": "Мгновенное потребление в Вт (значение в реальном времени). Используется для текущего потребления в сообщениях о состоянии батареи (полная/пустая). Если не указано, вместо этого используется мощность PV минус подача в сеть.",
14
16
  "label_gridPower": "Потребление из сети сегодня (кВт⋅ч)",
15
17
  "label_weeklyProduction": "Производство на этой неделе (кВт⋅ч)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Produktion.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "Загальне Виробництво Сьогодні (кВт·год)",
12
12
  "label_feedIn": "Віддача Сьогодні (кВт·год)",
13
13
  "label_consumption": "Споживання Будинку Сьогодні (кВт·год)",
14
+ "label_currentConsumptionPower": "Поточне Споживання Будинку (Вт)",
15
+ "tooltip_currentConsumptionPower": "Миттєве споживання у Вт (значення в реальному часі). Використовується для поточного споживання в повідомленнях про стан батареї (повна/порожня). Якщо не вказано, замість цього використовується потужність PV мінус віддача в мережу.",
14
16
  "label_gridPower": "Споживання Мережі Сьогодні (кВт·год)",
15
17
  "label_weeklyProduction": "Виробництво Цього Тижня (кВт·год)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -11,6 +11,8 @@
11
11
  "label_totalProduction": "今日总发电量 (kWh)",
12
12
  "label_feedIn": "今日馈电量 (kWh)",
13
13
  "label_consumption": "今日家庭用电量 (kWh)",
14
+ "label_currentConsumptionPower": "当前家庭功耗 (W)",
15
+ "tooltip_currentConsumptionPower": "瞬时功耗,单位为 W(实时值)。用于电池状态消息(满/空)中的当前用电量。如果为空,则使用光伏功率减去馈电作为备用值。",
14
16
  "label_gridPower": "今日电网用电量 (kWh)",
15
17
  "label_weeklyProduction": "本周发电量 (kWh)",
16
18
  "tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
@@ -84,6 +84,16 @@
84
84
  "lg": 6,
85
85
  "xl": 6
86
86
  },
87
+ "currentConsumptionPower": {
88
+ "type": "objectId",
89
+ "label": "label_currentConsumptionPower",
90
+ "xs": 12,
91
+ "sm": 6,
92
+ "md": 6,
93
+ "lg": 6,
94
+ "xl": 6,
95
+ "tooltip": "tooltip_currentConsumptionPower"
96
+ },
87
97
  "gridPower": {
88
98
  "type": "objectId",
89
99
  "label": "label_gridPower",
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "pv-notifications",
4
- "version": "1.2.29",
4
+ "version": "1.2.31",
5
5
  "titleLang": {
6
6
  "en": "PV Notifications",
7
7
  "de": "PV-Benachrichtigungen",
@@ -29,17 +29,43 @@
29
29
  "zh-cn": "发送 Telegram 通知用于 PV 电池状态"
30
30
  },
31
31
  "news": {
32
+ "1.2.31": {
33
+ "en": "CI: Node.js 26 added to the test matrix and a new deploy job using npm Trusted Publishing (OIDC) with provenance. Added the missing changelog entry for 1.2.30 and completed the short 1.2.29 news translations. Dependencies: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
34
+ "de": "CI: Node.js 26 in die Test-Matrix aufgenommen und neuer Deploy-Job mit npm Trusted Publishing (OIDC) samt Provenance. Fehlender Changelog-Eintrag fuer 1.2.30 ergaenzt und zu kurze 1.2.29-News-Uebersetzungen vervollstaendigt. Abhaengigkeiten: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
35
+ "ru": "CI: Node.js 26 добавлен в тестовую матрицу и новый job deploy с npm Trusted Publishing (OIDC) и provenance. Добавлена отсутствующая запись чейнджлога для 1.2.30 и дополнены короткие переводы новостей 1.2.29. Зависимости: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
36
+ "fr": "CI : Node.js 26 ajoute a la matrice de tests et nouveau job deploy avec npm Trusted Publishing (OIDC) et provenance. Ajout de l'entree de changelog manquante pour 1.2.30 et traductions courtes des nouveautes 1.2.29 completees. Dependances : @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
37
+ "it": "CI: Node.js 26 aggiunto alla matrice di test e nuovo job deploy con npm Trusted Publishing (OIDC) e provenance. Aggiunta la voce di changelog mancante per 1.2.30 e completate le traduzioni brevi delle novita 1.2.29. Dipendenze: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
38
+ "es": "CI: Node.js 26 anadido a la matriz de pruebas y nuevo job deploy con npm Trusted Publishing (OIDC) y provenance. Anadida la entrada de changelog que faltaba para 1.2.30 y completadas las traducciones cortas de novedades 1.2.29. Dependencias: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
39
+ "pl": "CI: Node.js 26 dodany do macierzy testow i nowy job deploy z npm Trusted Publishing (OIDC) oraz provenance. Dodano brakujacy wpis changeloga dla 1.2.30 i uzupelniono krotkie tlumaczenia nowosci 1.2.29. Zaleznosci: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
40
+ "pt": "CI: Node.js 26 adicionado a matriz de testes e novo job deploy com npm Trusted Publishing (OIDC) e provenance. Adicionada a entrada de changelog em falta para 1.2.30 e completadas as traducoes curtas das novidades 1.2.29. Dependencias: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
41
+ "nl": "CI: Node.js 26 toegevoegd aan de testmatrix en nieuwe deploy-job met npm Trusted Publishing (OIDC) en provenance. Ontbrekende changelog-regel voor 1.2.30 toegevoegd en korte 1.2.29-nieuwsteksten aangevuld. Afhankelijkheden: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
42
+ "uk": "CI: Node.js 26 додано до тестової матриці та новий job deploy із npm Trusted Publishing (OIDC) і provenance. Додано відсутній запис журналу змін для 1.2.30 та доповнено короткі переклади новин 1.2.29. Залежності: @iobroker/testing 6.2.x, @alcalzone/release-script-plugin-license 5.2.2.",
43
+ "zh-cn": "CI:将 Node.js 26 加入测试矩阵,并新增使用 npm Trusted Publishing (OIDC) 的 deploy 作业(含 provenance)。补充了 1.2.30 缺失的变更日志条目并完善了 1.2.29 新闻的简短翻译。依赖:@iobroker/testing 6.2.x、@alcalzone/release-script-plugin-license 5.2.2。"
44
+ },
45
+ "1.2.30": {
46
+ "en": "Add optional data point for current house consumption in W. Battery full/empty messages now use this live value instead of the daily kWh total (fixes #74). If not configured, PV power minus feed-in is used as a fallback.",
47
+ "de": "Optionalen Datenpunkt für den aktuellen Hausverbrauch in W hinzugefügt. Batterie-Voll/Leer-Meldungen verwenden jetzt diesen Live-Wert statt des Tages-kWh-Werts (behebt #74). Wenn nicht konfiguriert, wird ersatzweise PV-Leistung minus Einspeisung genutzt.",
48
+ "ru": "Добавлен опциональный датапоинт для текущего потребления дома в Вт. Сообщения о полной/пустой батарее теперь используют это значение в реальном времени вместо дневного значения в кВт⋅ч (исправляет #74). Если не настроено, вместо этого используется мощность PV минус подача в сеть.",
49
+ "fr": "Ajout d'un point de données optionnel pour la consommation actuelle de la maison en W. Les messages batterie pleine/vide utilisent désormais cette valeur en direct au lieu du total quotidien en kWh (corrige #74). Si non configuré, la puissance PV moins l'injection est utilisée en remplacement.",
50
+ "it": "Aggiunto un punto dati opzionale per il consumo attuale della casa in W. I messaggi batteria piena/vuota ora usano questo valore in tempo reale invece del totale giornaliero in kWh (risolve #74). Se non configurato, viene usata la potenza FV meno l'immissione come alternativa.",
51
+ "es": "Añadido un punto de datos opcional para el consumo actual del hogar en W. Los mensajes de batería llena/vacía ahora usan este valor en vivo en lugar del total diario en kWh (corrige #74). Si no se configura, se usa la potencia FV menos la inyección como alternativa.",
52
+ "pl": "Dodano opcjonalny punkt danych dla bieżącego zużycia domu w W. Wiadomości o pełnej/pustej baterii używają teraz tej wartości na żywo zamiast dziennego zużycia w kWh (naprawia #74). Jeśli nie skonfigurowano, jako alternatywa używana jest moc PV minus oddawanie do sieci.",
53
+ "pt": "Adicionado ponto de dados opcional para o consumo atual da casa em W. As mensagens de bateria cheia/vazia agora usam este valor ao vivo em vez do total diário em kWh (corrige #74). Se não configurado, é usada a potência FV menos a injeção como alternativa.",
54
+ "nl": "Optioneel gegevenspunt toegevoegd voor het huidige huisverbruik in W. Berichten over volle/lege batterij gebruiken nu deze live-waarde in plaats van het dagelijkse kWh-totaal (lost #74 op). Indien niet geconfigureerd, wordt PV-vermogen minus teruglevering als alternatief gebruikt.",
55
+ "uk": "Додано опціональний датапоінт для поточного споживання будинку у Вт. Повідомлення про повну/порожню батарею тепер використовують це значення в реальному часі замість денного значення в кВт·год (виправляє #74). Якщо не налаштовано, замість цього використовується потужність PV мінус віддача в мережу.",
56
+ "zh-cn": "新增可选数据点用于当前家庭功耗(W)。电池满/空消息现在使用此实时值,而不是每日 kWh 总量(修复 #74)。如果未配置,则使用光伏功率减去馈电作为备用值。"
57
+ },
32
58
  "1.2.29": {
33
59
  "en": "Fix corrupted UTF-8 separator lines in the monthly stats message (showed as question marks in Telegram). Fix corrupted Russian translations for 'Current charge level' and 'Own consumption'. Weather today in daily stats now shows the temperature reading as '(currently: X°C)' instead of implying a daily value.",
34
60
  "de": "Beschädigte UTF-8-Trennzeilen in der Monatsstatistik-Nachricht behoben (erschienen als Fragezeichen in Telegram). Beschädigte russische Übersetzungen für 'Aktueller Ladestand' und 'Eigenverbrauch' behoben. Wetter heute in der Tagesstatistik zeigt den Temperaturwert jetzt als '(aktuell: X°C)' statt einen Tageswert zu suggerieren.",
35
61
  "ru": "Исправлены повреждённые UTF-8 разделители в сообщении месячной статистики (отображались как знаки вопроса в Telegram). Исправлены повреждённые русские переводы 'Текущий уровень заряда' и 'Собственное потребление'. Погода сегодня в дневной статистике теперь показывает температуру как '(сейчас: X°C)' вместо намёка на дневное значение.",
36
62
  "fr": "Correction des lignes de séparation UTF-8 corrompues dans le message de statistiques mensuelles (affichées comme des points d'interrogation dans Telegram). Correction des traductions russes corrompues.",
37
- "it": "Corrette le righe separatore UTF-8 danneggiate nel messaggio delle statistiche mensili (apparivano come punti interrogativi in Telegram). Corrette le traduzioni russe danneggiate.",
38
- "es": "Corregidas las líneas separadoras UTF-8 dañadas en el mensaje de estadísticas mensuales (aparecían como signos de interrogación en Telegram). Corregidas las traducciones rusas dañadas.",
39
- "pl": "Naprawiono uszkodzone linie separatora UTF-8 w wiadomości statystyk miesięcznych (wyświetlane jako znaki zapytania w Telegramie). Naprawiono uszkodzone tłumaczenia rosyjskie.",
40
- "pt": "Corrigidas as linhas separadoras UTF-8 corrompidas na mensagem de estatísticas mensais (apareciam como pontos de interrogação no Telegram). Corrigidas as traduções russas corrompidas.",
41
- "nl": "Beschadigde UTF-8-scheidingsregels in het maandstatistiekbericht gecorrigeerd (werden weergegeven als vraagtekens in Telegram). Beschadigde Russische vertalingen gecorrigeerd.",
42
- "uk": "Виправлено пошкоджені UTF-8 роздільники в повідомленні місячної статистики (відображалися як знаки питання в Telegram). Виправлено пошкоджені російські переклади.",
63
+ "it": "Corrette le righe separatore UTF-8 danneggiate nel messaggio delle statistiche mensili (apparivano come punti interrogativi in Telegram). Corrette le traduzioni russe danneggiate. Il meteo di oggi nelle statistiche giornaliere ora mostra la temperatura come \"(attualmente: X deg C)\" invece di suggerire un valore giornaliero.",
64
+ "es": "Corregidas las líneas separadoras UTF-8 dañadas en el mensaje de estadísticas mensuales (aparecían como signos de interrogación en Telegram). Corregidas las traducciones rusas dañadas. El tiempo de hoy en las estadisticas diarias ahora muestra la temperatura como \"(actualmente: X deg C)\" en lugar de sugerir un valor diario.",
65
+ "pl": "Naprawiono uszkodzone linie separatora UTF-8 w wiadomości statystyk miesięcznych (wyświetlane jako znaki zapytania w Telegramie). Naprawiono uszkodzone tłumaczenia rosyjskie. Pogoda na dzis w statystykach dziennych pokazuje teraz temperature jako \"(aktualnie: X deg C)\" zamiast sugerowac wartosc dzienna.",
66
+ "pt": "Corrigidas as linhas separadoras UTF-8 corrompidas na mensagem de estatísticas mensais (apareciam como pontos de interrogação no Telegram). Corrigidas as traduções russas corrompidas. O tempo de hoje nas estatisticas diarias agora mostra a temperatura como \"(atualmente: X deg C)\" em vez de sugerir um valor diario.",
67
+ "nl": "Beschadigde UTF-8-scheidingsregels in het maandstatistiekbericht gecorrigeerd (werden weergegeven als vraagtekens in Telegram). Beschadigde Russische vertalingen gecorrigeerd. Het weer van vandaag in de dagstatistieken toont de temperatuur nu als \"(momenteel: X deg C)\" in plaats van een dagwaarde te suggereren.",
68
+ "uk": "Виправлено пошкоджені UTF-8 роздільники в повідомленні місячної статистики (відображалися як знаки питання в Telegram). Виправлено пошкоджені російські переклади. Погода на сьогодні в денній статистиці тепер показує температуру як \"(наразі: X deg C)\" замість того, щоб натякати на денне значення.",
43
69
  "zh-cn": "修复了月度统计消息中损坏的UTF-8分隔线(在Telegram中显示为问号)。修复了损坏的俄语翻译。"
44
70
  },
45
71
  "1.2.28": {
@@ -93,32 +119,6 @@
93
119
  "nl": "Fix W5604: ontbrekende weer-i18n-sleutels in 8 talen toegevoegd; engines.node bijgewerkt naar >=22; node-versies workflow gecorrigeerd; devDependencies bijgewerkt; tsconfig.json, prettier.config.mjs toegevoegd",
94
120
  "uk": "Виправлення W5604: додано відсутні weather i18n ключі у 8 мовах; engines.node оновлено до >=22; виправлено версії node у workflow; оновлено devDependencies; додано tsconfig.json, prettier.config.mjs",
95
121
  "zh-cn": "修复W5604:在8种语言中添加缺失的weather i18n键;将engines.node更新为>=22;修复workflow中的node版本;更新devDependencies;添加tsconfig.json、prettier.config.mjs"
96
- },
97
- "1.2.24": {
98
- "en": "Add missing uk translations to news, fix prettier formatting in main.js",
99
- "de": "Fehlende uk-Uebersetzungen in news ergaenzt, Prettier-Formatierung in main.js korrigiert",
100
- "ru": "Добавлены недостающие uk-переводы в news, исправлено форматирование prettier в main.js",
101
- "fr": "Ajout des traductions uk manquantes dans news, correction formatage prettier dans main.js",
102
- "it": "Aggiunte traduzioni uk mancanti in news, corretta formattazione prettier in main.js",
103
- "es": "Anadidas traducciones uk faltantes en news, corregido formato prettier en main.js",
104
- "pl": "Dodano brakujace tlumaczenia uk w news, poprawiono formatowanie prettier w main.js",
105
- "pt": "Adicionadas traducoes uk em falta em news, corrigida formatacao prettier em main.js",
106
- "nl": "Ontbrekende uk-vertalingen toegevoegd aan news, prettier-opmaak gecorrigeerd in main.js",
107
- "uk": "Додано відсутні uk-переклади до news, виправлено форматування prettier у main.js",
108
- "zh-cn": "添加 news 中缺失的 uk 翻译,修复 main.js 中的 prettier 格式"
109
- },
110
- "1.2.23": {
111
- "en": "Fix statistics section layout: align daily time, sunset checkbox and sunset object on one row",
112
- "de": "Layout der Statistik-Sektion korrigiert: Tageszeit, Sonnenuntergang-Checkbox und Objekt in einer Zeile",
113
- "ru": "Исправлен макет секции статистики: время, чекбокс заката и объект в одну строку",
114
- "fr": "Correction mise en page section statistiques: heure, case coucher soleil et objet sur une ligne",
115
- "it": "Correzione layout sezione statistiche: ora, checkbox tramonto e oggetto su una riga",
116
- "es": "Correccion diseno seccion estadisticas: hora, casilla atardecer y objeto en una fila",
117
- "pl": "Poprawka ukladu sekcji statystyk: czas, pole zachodu slonca i obiekt w jednym wierszu",
118
- "pt": "Correcao layout seccao estatisticas: hora, caixa por do sol e objeto numa linha",
119
- "nl": "Lay-out statistieksectie gecorrigeerd: tijd, zonsondergang-checkbox en object op een rij",
120
- "zh-cn": "修复统计部分布局:将时间、日落复选框和对象放在同一行",
121
- "uk": "Виправлено макет секції статистики: час, чекбокс заходу сонця та обєкт в одному рядку"
122
122
  }
123
123
  },
124
124
  "authors": [
@@ -168,6 +168,7 @@
168
168
  "totalProduction": "",
169
169
  "feedIn": "",
170
170
  "consumption": "",
171
+ "currentConsumptionPower": "",
171
172
  "gridPower": "",
172
173
  "batteryCapacityWh": 21000,
173
174
  "thresholdFull": 100,
@@ -345,6 +346,19 @@
345
346
  "unit": "kWh"
346
347
  }
347
348
  },
349
+ {
350
+ "_id": "statistics.currentConsumptionPower",
351
+ "type": "state",
352
+ "common": {
353
+ "name": "Current consumption power",
354
+ "type": "number",
355
+ "role": "value.power",
356
+ "read": true,
357
+ "write": false,
358
+ "def": 0,
359
+ "unit": "W"
360
+ }
361
+ },
348
362
  {
349
363
  "_id": "statistics.lastMonthProduction",
350
364
  "type": "state",
package/main.js CHANGED
@@ -191,6 +191,18 @@ class PvNotifications extends utils.Adapter {
191
191
  unit: 'W',
192
192
  },
193
193
  });
194
+ await this.extendObject('statistics.currentConsumptionPower', {
195
+ type: 'state',
196
+ common: {
197
+ name: 'Current consumption power',
198
+ type: 'number',
199
+ role: 'value.power',
200
+ read: true,
201
+ write: false,
202
+ def: 0,
203
+ unit: 'W',
204
+ },
205
+ });
194
206
  await this.extendObject('statistics.currentTotalProduction', {
195
207
  type: 'state',
196
208
  common: {
@@ -424,6 +436,7 @@ class PvNotifications extends utils.Adapter {
424
436
  this.config.totalProduction,
425
437
  this.config.feedIn,
426
438
  this.config.consumption,
439
+ this.config.currentConsumptionPower,
427
440
  this.config.gridPower,
428
441
  this.config.weeklyProduction,
429
442
  this.config.weeklyConsumption,
@@ -475,6 +488,7 @@ class PvNotifications extends utils.Adapter {
475
488
  { name: 'Total Production', id: this.config.totalProduction },
476
489
  { name: 'Feed In', id: this.config.feedIn },
477
490
  { name: 'Consumption', id: this.config.consumption },
491
+ { name: 'Current Consumption Power', id: this.config.currentConsumptionPower },
478
492
  { name: 'Grid Power', id: this.config.gridPower },
479
493
  ];
480
494
 
@@ -585,6 +599,7 @@ class PvNotifications extends utils.Adapter {
585
599
  { config: this.config.totalProduction, state: 'statistics.currentTotalProduction' },
586
600
  { config: this.config.feedIn, state: 'statistics.currentFeedIn' },
587
601
  { config: this.config.consumption, state: 'statistics.currentConsumption' },
602
+ { config: this.config.currentConsumptionPower, state: 'statistics.currentConsumptionPower' },
588
603
  { config: this.config.gridPower, state: 'statistics.currentGridPower' },
589
604
  ];
590
605
 
@@ -675,6 +690,10 @@ class PvNotifications extends utils.Adapter {
675
690
  await this.setStateAsync('statistics.currentConsumption', state.val, true);
676
691
  this.log.debug(`Updated currentConsumption: ${state.val}`);
677
692
  }
693
+ if (id === this.config.currentConsumptionPower) {
694
+ await this.setStateAsync('statistics.currentConsumptionPower', state.val, true);
695
+ this.log.debug(`Updated currentConsumptionPower: ${state.val}`);
696
+ }
678
697
  if (id === this.config.gridPower) {
679
698
  await this.setStateAsync('statistics.currentGridPower', state.val, true);
680
699
  this.log.debug(`Updated currentGridPower: ${state.val}`);
@@ -951,6 +970,28 @@ class PvNotifications extends utils.Adapter {
951
970
  return now.toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit' });
952
971
  }
953
972
 
973
+ /**
974
+ * Baue die Verbrauchs-Zeile für Batterie-Status-Meldungen (voll/leer).
975
+ *
976
+ * Wenn ein Datenpunkt für den momentanen Verbrauch (W) konfiguriert ist,
977
+ * wird dieser Live-Wert in W ausgegeben (Issue #74). Andernfalls kann kein
978
+ * korrekter momentaner W-Wert gebildet werden, daher wird der Tages-Verbrauch
979
+ * in kWh mit korrekter Einheit angezeigt (Fallback, rückwärtskompatibel).
980
+ *
981
+ * @param {number} consumptionKWh - Tages-Hausverbrauch in kWh (Fallback-Wert)
982
+ * @returns {Promise<string>} Formatierte Zeile für die Nachricht
983
+ */
984
+ async buildConsumptionPowerLine(consumptionKWh) {
985
+ if (this.config.currentConsumptionPower) {
986
+ const consumptionPowerState = await this.getStateAsync('statistics.currentConsumptionPower');
987
+ const consumptionPower =
988
+ consumptionPowerState && consumptionPowerState.val !== null ? consumptionPowerState.val : 0;
989
+ return `🏠 ${this.translate('Current consumption')}: ${this.round(consumptionPower)} W`;
990
+ }
991
+ // Fallback: kein momentaner W-Datenpunkt konfiguriert -> Tageswert in kWh anzeigen
992
+ return `🏠 ${this.translate('Consumption today')}: ${this.round(consumptionKWh, 1)} kWh`;
993
+ }
994
+
954
995
  /**
955
996
  * Baue detaillierte Status-Nachricht bei vollem Akku
956
997
  *
@@ -968,11 +1009,14 @@ class PvNotifications extends utils.Adapter {
968
1009
  const feedIn = feedInState && feedInState.val !== null ? feedInState.val : 0;
969
1010
  const consumption = consumptionState && consumptionState.val !== null ? consumptionState.val : 0;
970
1011
 
1012
+ // Momentanen Hausverbrauch in W ermitteln (Issue #74)
1013
+ const consumptionPowerLine = await this.buildConsumptionPowerLine(consumption);
1014
+
971
1015
  const separator = '\n━━━━━━━━━━━━━━━━━━━━━━';
972
1016
 
973
1017
  let message = `🔋 *${this.translate('Battery full')}* (${soc}%)${separator}
974
1018
  ⚡ ${this.translate('Current production')}: ${this.round(power)} W
975
- 🏠 ${this.translate('Current consumption')}: ${this.round(consumption)} W
1019
+ ${consumptionPowerLine}
976
1020
  ☀️ ${this.translate('Production today')}: ${this.round(totalProd)} kWh
977
1021
  🔌 ${this.translate('Feed-in today')}: ${this.round(Math.abs(feedIn), 0)} kWh${separator}`;
978
1022
 
@@ -1065,10 +1109,13 @@ class PvNotifications extends utils.Adapter {
1065
1109
 
1066
1110
  const separator = '\n━━━━━━━━━━━━━━━━━━━━━━';
1067
1111
 
1112
+ // Momentanen Hausverbrauch in W ermitteln (Issue #74)
1113
+ const consumptionPowerLine = await this.buildConsumptionPowerLine(consumption);
1114
+
1068
1115
  let message = `🔋 *${this.translate('Battery empty')}* (${soc}%)${separator}
1069
1116
 
1070
- ⚠️ ${this.translate('Grid consumption today')}: ${this.round(gridPower)} W
1071
- 🏠 ${this.translate('Consumption today')}: ${this.round(consumption)} W${separator}`;
1117
+ ⚠️ ${this.translate('Grid consumption today')}: ${this.round(gridPower)} kWh
1118
+ ${consumptionPowerLine}${separator}`;
1072
1119
 
1073
1120
  // Wetter-Prognose hinzufügen (heute und morgen)
1074
1121
  const weatherConfigured =
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.pv-notifications",
3
- "version": "1.2.29",
3
+ "version": "1.2.31",
4
4
  "description": "PV-Anlage Batterie-Status Telegram Benachrichtigungen",
5
5
  "author": {
6
6
  "name": "Alex1808 via LLM: Qwen",
@@ -18,7 +18,7 @@
18
18
  ],
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "https://github.com/sadam6752-tech/ioBroker.pv-notifications.git"
21
+ "url": "git+https://github.com/sadam6752-tech/ioBroker.pv-notifications.git"
22
22
  },
23
23
  "engines": {
24
24
  "node": ">=22"
@@ -53,12 +53,12 @@
53
53
  "devDependencies": {
54
54
  "@alcalzone/release-script": "^5.2.1",
55
55
  "@alcalzone/release-script-plugin-iobroker": "^5.2.0",
56
- "@alcalzone/release-script-plugin-license": "^5.2.0",
56
+ "@alcalzone/release-script-plugin-license": "^5.2.2",
57
57
  "@alcalzone/release-script-plugin-manual-review": "^5.2.0",
58
58
  "@iobroker/adapter-dev": "^1.5.0",
59
59
  "@iobroker/dev-server": "^0.8.0",
60
60
  "@iobroker/eslint-config": "^2.3.4",
61
- "@iobroker/testing": "^5.2.2",
61
+ "@iobroker/testing": "^6.2.1",
62
62
  "@tsconfig/node22": "^22.0.5",
63
63
  "@types/node": "^22.19.21",
64
64
  "typescript": "~5.9.3"