iobroker.pv-notifications 1.2.21 → 1.2.22
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/admin/i18n/de/translations.json +96 -92
- package/admin/i18n/en/translations.json +96 -92
- package/admin/i18n/ru/translations.json +96 -92
- package/admin/jsonConfig.json +22 -0
- package/io-package.json +16 -15
- package/main.js +21 -4
- package/package.json +9 -3
|
@@ -1,94 +1,98 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
2
|
+
"pv-notifications": "PV Notifications",
|
|
3
|
+
"header_telegram": "Telegram Konfiguration",
|
|
4
|
+
"label_telegramInstance": "Telegram Instanz",
|
|
5
|
+
"label_telegramUsers": "Telegram Benutzer (kommagetrennt)",
|
|
6
|
+
"tooltip_telegramUsers": "Z.B. User1, User2 oder -123456789 (ID)",
|
|
7
|
+
"header_datapoints": "Datenpunkte Konfiguration",
|
|
8
|
+
"label_batterySOC": "Batterie SOC Datenpunkt",
|
|
9
|
+
"tooltip_batterySOC": "Z.B. modbus.0.holdingRegisters.40083_Batterie_SOC",
|
|
10
|
+
"label_powerProduction": "Aktuelle PV-Leistung (W)",
|
|
11
|
+
"label_totalProduction": "Gesamtproduktion heute (kWh)",
|
|
12
|
+
"label_feedIn": "Einspeisung heute (kWh)",
|
|
13
|
+
"label_consumption": "Hausverbrauch heute (kWh)",
|
|
14
|
+
"label_gridPower": "Netzbezug heute (kWh)",
|
|
15
|
+
"label_weeklyProduction": "Produktion diese Woche (kWh)",
|
|
16
|
+
"tooltip_weeklyProduction": "sourceanalytix...Produktion.currentWeek",
|
|
17
|
+
"label_weeklyConsumption": "Verbrauch diese Woche (kWh)",
|
|
18
|
+
"tooltip_weeklyConsumption": "sourceanalytix...Verbrauch.currentWeek",
|
|
19
|
+
"label_weeklyFeedIn": "Einspeisung diese Woche (kWh)",
|
|
20
|
+
"tooltip_weeklyFeedIn": "sourceanalytix...Einspeisung.currentWeek",
|
|
21
|
+
"label_weeklyGridPower": "Netzbezug diese Woche (kWh)",
|
|
22
|
+
"tooltip_weeklyGridPower": "sourceanalytix...Netzbezug.currentWeek",
|
|
23
|
+
"label_monthlyProduction": "Produktion diesen Monat (kWh)",
|
|
24
|
+
"tooltip_monthlyProduction": "sourceanalytix...Produktion.currentMonth",
|
|
25
|
+
"label_monthlyConsumption": "Verbrauch diesen Monat (kWh)",
|
|
26
|
+
"tooltip_monthlyConsumption": "sourceanalytix...Verbrauch.currentMonth",
|
|
27
|
+
"label_monthlyFeedIn": "Einspeisung diesen Monat (kWh)",
|
|
28
|
+
"tooltip_monthlyFeedIn": "sourceanalytix...Einspeisung.currentMonth",
|
|
29
|
+
"label_monthlyGridPower": "Netzbezug diesen Monat (kWh)",
|
|
30
|
+
"tooltip_monthlyGridPower": "sourceanalytix...Netzbezug.currentMonth",
|
|
31
|
+
"header_battery": "Batterie Konfiguration",
|
|
32
|
+
"label_batteryCapacityWh": "Batterie-Kapazität (Wh)",
|
|
33
|
+
"label_thresholdFull": "Schwellwert VOLL (%)",
|
|
34
|
+
"label_thresholdEmpty": "Schwellwert LEER (%)",
|
|
35
|
+
"label_thresholdResetFull": "Reset VOLL unter (%)",
|
|
36
|
+
"label_thresholdResetEmpty": "Reset LEER über (%)",
|
|
37
|
+
"header_intermediate": "Nachtmodus & Intermediate-Stufen",
|
|
38
|
+
"label_nightModeEnabled": "Nachtmodus aktivieren",
|
|
39
|
+
"tooltip_nightModeEnabled": "Wenn deaktiviert, werden Benachrichtigungen auch nachts gesendet",
|
|
40
|
+
"label_nightModeStart": "Start",
|
|
41
|
+
"tooltip_nightModeStart": "Startzeit für Nachtmodus (z.B. 00:00)",
|
|
42
|
+
"label_nightModeEnd": "Ende",
|
|
43
|
+
"tooltip_nightModeEnd": "Endezeit für Nachtmodus (z.B. 08:00)",
|
|
44
|
+
"label_nightModeIgnoreEmpty": "Nachtmodus für 0% Batterie ignorieren",
|
|
45
|
+
"tooltip_nightModeIgnoreEmpty": "Wenn aktiviert, wird bei 0% immer benachrichtigt (auch nachts)",
|
|
46
|
+
"label_quietModeEnabled": "Ruhemodus aktivieren",
|
|
47
|
+
"tooltip_quietModeEnabled": "Wenn aktiviert, werden keine Benachrichtigungen während der Ruhezeit gesendet",
|
|
48
|
+
"label_quietModeStart": "Start",
|
|
49
|
+
"tooltip_quietModeStart": "Startzeit für Ruhemodus (z.B. 22:00)",
|
|
50
|
+
"label_quietModeEnd": "Ende",
|
|
51
|
+
"tooltip_quietModeEnd": "Endezeit für Ruhemodus (z.B. 07:00)",
|
|
52
|
+
"label_intermediateSteps": "Intermediate-Stufen (kommagetrennt)",
|
|
53
|
+
"tooltip_intermediateSteps": "Z.B. 20,40,60,80",
|
|
54
|
+
"label_minIntervalFull": "Min. Intervall VOLL (Minuten)",
|
|
55
|
+
"label_minIntervalEmpty": "Min. Intervall LEER (Minuten)",
|
|
56
|
+
"label_minIntervalIntermediate": "Min. Intervall Intermediate (Minuten)",
|
|
57
|
+
"header_statistics": "Statistik & Zeitplanung",
|
|
58
|
+
"label_statsDayTime": "Tagesstatistik Uhrzeit",
|
|
59
|
+
"tooltip_statsDayTime": "Format: HH:MM (z.B. 22:00)",
|
|
60
|
+
"label_statsWeekDay": "Wochentag für Wochenstatistik",
|
|
61
|
+
"tooltip_statsWeekDay": "0=Montag, 1=Dienstag, ..., 6=Sonntag",
|
|
62
|
+
"label_statsWeekTime": "Uhrzeit für Wochenstatistik",
|
|
63
|
+
"tooltip_statsWeekTime": "Format: HH:MM (z.B. 10:00)",
|
|
64
|
+
"header_monthly": "Monatsstatistik (Optional)",
|
|
65
|
+
"label_monthlyStatsEnabled": "Monatsstatistik aktivieren",
|
|
66
|
+
"label_monthlyStatsDay": "Tag des Monats",
|
|
67
|
+
"tooltip_monthlyStatsDay": "1-31 (z.B. 1 = Erster des Monats)",
|
|
68
|
+
"label_monthlyStatsTime": "Uhrzeit",
|
|
69
|
+
"tooltip_monthlyStatsTime": "Format: HH:MM (z.B. 09:00)",
|
|
70
|
+
"header_weather": "Wetter (Optional)",
|
|
71
|
+
"label_weatherEnabled": "Wetterdaten in Nachrichten anzeigen",
|
|
72
|
+
"tooltip_weatherEnabled": "Wenn aktiviert, werden Wetterdaten in Tagesstatistik und Batterie-Status-Nachrichten angezeigt",
|
|
73
|
+
"label_weatherInIntermediate": "Intermediate-Stufen",
|
|
74
|
+
"tooltip_weatherInIntermediate": "Wetterdaten in Intermediate-Nachrichten (20%, 40%, 60%, 80%) anzeigen",
|
|
75
|
+
"label_weatherInDailyStats": "Tagesstatistik",
|
|
76
|
+
"tooltip_weatherInDailyStats": "Wetterdaten in Tagesstatistik (22:00) anzeigen",
|
|
77
|
+
"label_weatherTodayText": "Wetter heute",
|
|
78
|
+
"tooltip_weatherTodayText": "Z.B. daswetter.0.Day0.forecast.currentSymbol",
|
|
79
|
+
"label_weatherTodayTemp": "Temperatur heute (°C)",
|
|
80
|
+
"tooltip_weatherTodayTemp": "Z.B. daswetter.0.Day0.forecast.maxTemp",
|
|
81
|
+
"label_weatherTomorrowText": "Wetter morgen",
|
|
82
|
+
"tooltip_weatherTomorrowText": "Z.B. daswetter.0.Day1.forecast.currentSymbol",
|
|
83
|
+
"label_weatherTomorrowTemp": "Temperatur morgen (°C)",
|
|
84
|
+
"tooltip_weatherTomorrowTemp": "Z.B. daswetter.0.Day1.forecast.maxTemp",
|
|
85
|
+
"header_thresholds": "Schwellwerte für Empfehlungen",
|
|
86
|
+
"label_highProduction": "Hohe Produktion ab (W)",
|
|
87
|
+
"label_highConsumption": "Hoher Verbrauch ab (W)",
|
|
88
|
+
"label_testButton": "Test-Benachrichtigung",
|
|
89
|
+
"buttonText_testButton": "Test senden",
|
|
90
|
+
"tooltip_testButton": "Sendet eine Test-Benachrichtigung an alle konfigurierten Telegram-Benutzer",
|
|
91
|
+
"Test Notification": "Test-Benachrichtigung",
|
|
92
|
+
"Production today": "Produktion heute",
|
|
93
|
+
"Current production": "Aktuelle Produktion",
|
|
94
|
+
"label_statsUseSunset": "Nach Sonnenuntergang senden",
|
|
95
|
+
"tooltip_statsUseSunset": "Wenn aktiviert, wird die Tagesstatistik zur Uhrzeit des Sonnenuntergang-Objekts gesendet statt zur festen Uhrzeit oben",
|
|
96
|
+
"label_statsSunsetObject": "Sonnenuntergang-Objekt",
|
|
97
|
+
"tooltip_statsSunsetObject": "Objekt mit Sonnenuntergangszeit als HH:MM-String (z.B. daswetter.0.Day0.forecast.sunset)"
|
|
94
98
|
}
|
|
@@ -1,94 +1,98 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
2
|
+
"pv-notifications": "PV Notifications",
|
|
3
|
+
"header_telegram": "Telegram Configuration",
|
|
4
|
+
"label_telegramInstance": "Telegram Instance",
|
|
5
|
+
"label_telegramUsers": "Telegram Users (comma-separated)",
|
|
6
|
+
"tooltip_telegramUsers": "e.g. User1, User2 or -123456789 (ID)",
|
|
7
|
+
"header_datapoints": "Data Points Configuration",
|
|
8
|
+
"label_batterySOC": "Battery SOC Data Point",
|
|
9
|
+
"tooltip_batterySOC": "e.g. modbus.0.holdingRegisters.40083_Battery_SOC",
|
|
10
|
+
"label_powerProduction": "Current PV Power (W)",
|
|
11
|
+
"label_totalProduction": "Total Production Today (kWh)",
|
|
12
|
+
"label_feedIn": "Feed-in Today (kWh)",
|
|
13
|
+
"label_consumption": "House Consumption Today (kWh)",
|
|
14
|
+
"label_gridPower": "Grid Consumption Today (kWh)",
|
|
15
|
+
"label_weeklyProduction": "Production This Week (kWh)",
|
|
16
|
+
"tooltip_weeklyProduction": "sourceanalytix...Production.currentWeek",
|
|
17
|
+
"label_weeklyConsumption": "Consumption This Week (kWh)",
|
|
18
|
+
"tooltip_weeklyConsumption": "sourceanalytix...Consumption.currentWeek",
|
|
19
|
+
"label_weeklyFeedIn": "Feed-in This Week (kWh)",
|
|
20
|
+
"tooltip_weeklyFeedIn": "sourceanalytix...Feed-in.currentWeek",
|
|
21
|
+
"label_weeklyGridPower": "Grid Consumption This Week (kWh)",
|
|
22
|
+
"tooltip_weeklyGridPower": "sourceanalytix...GridConsumption.currentWeek",
|
|
23
|
+
"label_monthlyProduction": "Production This Month (kWh)",
|
|
24
|
+
"tooltip_monthlyProduction": "sourceanalytix...Production.currentMonth",
|
|
25
|
+
"label_monthlyConsumption": "Consumption This Month (kWh)",
|
|
26
|
+
"tooltip_monthlyConsumption": "sourceanalytix...Consumption.currentMonth",
|
|
27
|
+
"label_monthlyFeedIn": "Feed-in This Month (kWh)",
|
|
28
|
+
"tooltip_monthlyFeedIn": "sourceanalytix...Feed-in.currentMonth",
|
|
29
|
+
"label_monthlyGridPower": "Grid Consumption This Month (kWh)",
|
|
30
|
+
"tooltip_monthlyGridPower": "sourceanalytix...GridConsumption.currentMonth",
|
|
31
|
+
"header_battery": "Battery Configuration",
|
|
32
|
+
"label_batteryCapacityWh": "Battery Capacity (Wh)",
|
|
33
|
+
"label_thresholdFull": "Threshold FULL (%)",
|
|
34
|
+
"label_thresholdEmpty": "Threshold EMPTY (%)",
|
|
35
|
+
"label_thresholdResetFull": "Reset FULL below (%)",
|
|
36
|
+
"label_thresholdResetEmpty": "Reset EMPTY above (%)",
|
|
37
|
+
"header_intermediate": "Night Mode & Intermediate Levels",
|
|
38
|
+
"label_nightModeEnabled": "Activate night mode",
|
|
39
|
+
"tooltip_nightModeEnabled": "If disabled, notifications will be sent at night too",
|
|
40
|
+
"label_nightModeStart": "Start",
|
|
41
|
+
"tooltip_nightModeStart": "Start time for night mode (e.g. 00:00)",
|
|
42
|
+
"label_nightModeEnd": "End",
|
|
43
|
+
"tooltip_nightModeEnd": "End time for night mode (e.g. 08:00)",
|
|
44
|
+
"label_nightModeIgnoreEmpty": "Ignore night mode for 0% battery",
|
|
45
|
+
"tooltip_nightModeIgnoreEmpty": "If enabled, 0% will always notify (even at night)",
|
|
46
|
+
"label_quietModeEnabled": "Activate quiet mode",
|
|
47
|
+
"tooltip_quietModeEnabled": "If enabled, no notifications will be sent during quiet time",
|
|
48
|
+
"label_quietModeStart": "Start",
|
|
49
|
+
"tooltip_quietModeStart": "Start time for quiet mode (e.g. 22:00)",
|
|
50
|
+
"label_quietModeEnd": "End",
|
|
51
|
+
"tooltip_quietModeEnd": "End time for quiet mode (e.g. 07:00)",
|
|
52
|
+
"label_intermediateSteps": "Intermediate levels (comma-separated)",
|
|
53
|
+
"tooltip_intermediateSteps": "e.g. 20,40,60,80",
|
|
54
|
+
"label_minIntervalFull": "Min. interval FULL (minutes)",
|
|
55
|
+
"label_minIntervalEmpty": "Min. interval EMPTY (minutes)",
|
|
56
|
+
"label_minIntervalIntermediate": "Min. interval Intermediate (minutes)",
|
|
57
|
+
"header_statistics": "Statistics & Scheduling",
|
|
58
|
+
"label_statsDayTime": "Daily statistics time",
|
|
59
|
+
"tooltip_statsDayTime": "Format: HH:MM (e.g. 22:00)",
|
|
60
|
+
"label_statsWeekDay": "Weekday for weekly statistics",
|
|
61
|
+
"tooltip_statsWeekDay": "0=Monday, 1=Tuesday, ..., 6=Sunday",
|
|
62
|
+
"label_statsWeekTime": "Time for weekly statistics",
|
|
63
|
+
"tooltip_statsWeekTime": "Format: HH:MM (e.g. 10:00)",
|
|
64
|
+
"header_monthly": "Monthly Statistics (Optional)",
|
|
65
|
+
"label_monthlyStatsEnabled": "Activate monthly statistics",
|
|
66
|
+
"label_monthlyStatsDay": "Day of month",
|
|
67
|
+
"tooltip_monthlyStatsDay": "1-31 (e.g. 1 = First of month)",
|
|
68
|
+
"label_monthlyStatsTime": "Time",
|
|
69
|
+
"tooltip_monthlyStatsTime": "Format: HH:MM (e.g. 09:00)",
|
|
70
|
+
"header_weather": "Weather (Optional)",
|
|
71
|
+
"label_weatherEnabled": "Show weather data in messages",
|
|
72
|
+
"tooltip_weatherEnabled": "If enabled, weather data will be shown in daily statistics and battery status messages",
|
|
73
|
+
"label_weatherInIntermediate": "Intermediate levels",
|
|
74
|
+
"tooltip_weatherInIntermediate": "Show weather data in intermediate messages (20%, 40%, 60%, 80%)",
|
|
75
|
+
"label_weatherInDailyStats": "Daily statistics",
|
|
76
|
+
"tooltip_weatherInDailyStats": "Show weather data in daily statistics (22:00)",
|
|
77
|
+
"label_weatherTodayText": "Weather today",
|
|
78
|
+
"tooltip_weatherTodayText": "e.g. daswetter.0.Day0.forecast.currentSymbol",
|
|
79
|
+
"label_weatherTodayTemp": "Temperature today (°C)",
|
|
80
|
+
"tooltip_weatherTodayTemp": "e.g. daswetter.0.Day0.forecast.maxTemp",
|
|
81
|
+
"label_weatherTomorrowText": "Weather tomorrow",
|
|
82
|
+
"tooltip_weatherTomorrowText": "e.g. daswetter.0.Day1.forecast.currentSymbol",
|
|
83
|
+
"label_weatherTomorrowTemp": "Temperature tomorrow (°C)",
|
|
84
|
+
"tooltip_weatherTomorrowTemp": "e.g. daswetter.0.Day1.forecast.maxTemp",
|
|
85
|
+
"header_thresholds": "Thresholds for recommendations",
|
|
86
|
+
"label_highProduction": "High production from (W)",
|
|
87
|
+
"label_highConsumption": "High consumption from (W)",
|
|
88
|
+
"label_testButton": "Test Notification",
|
|
89
|
+
"buttonText_testButton": "Send Test",
|
|
90
|
+
"tooltip_testButton": "Sends a test notification to all configured Telegram users",
|
|
91
|
+
"Test Notification": "Test Notification",
|
|
92
|
+
"Production today": "Production today",
|
|
93
|
+
"Current production": "Current production",
|
|
94
|
+
"label_statsUseSunset": "Send at sunset time",
|
|
95
|
+
"tooltip_statsUseSunset": "If enabled, daily statistics will be sent at the time shown in the sunset object instead of the fixed time above",
|
|
96
|
+
"label_statsSunsetObject": "Sunset time object",
|
|
97
|
+
"tooltip_statsSunsetObject": "Object containing sunset time as HH:MM string (e.g. daswetter.0.Day0.forecast.sunset)"
|
|
94
98
|
}
|
|
@@ -1,94 +1,98 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
2
|
+
"pv-notifications": "PV Notifications",
|
|
3
|
+
"header_telegram": "Настройка Telegram",
|
|
4
|
+
"label_telegramInstance": "Экземпляр Telegram",
|
|
5
|
+
"label_telegramUsers": "Пользователи Telegram (через запятую)",
|
|
6
|
+
"tooltip_telegramUsers": "Например: User1, User2 или -123456789 (ID)",
|
|
7
|
+
"header_datapoints": "Настройка точек данных",
|
|
8
|
+
"label_batterySOC": "Точка данных SOC батареи",
|
|
9
|
+
"tooltip_batterySOC": "Например: modbus.0.holdingRegisters.40083_Batterie_SOC",
|
|
10
|
+
"label_powerProduction": "Текущая мощность PV (Вт)",
|
|
11
|
+
"label_totalProduction": "Общее производство сегодня (кВт⋅ч)",
|
|
12
|
+
"label_feedIn": "Подача в сеть сегодня (кВт⋅ч)",
|
|
13
|
+
"label_consumption": "Потребление дома сегодня (кВт⋅ч)",
|
|
14
|
+
"label_gridPower": "Потребление из сети сегодня (кВт⋅ч)",
|
|
15
|
+
"label_weeklyProduction": "Производство на этой неделе (кВт⋅ч)",
|
|
16
|
+
"tooltip_weeklyProduction": "sourceanalytix...Produktion.currentWeek",
|
|
17
|
+
"label_weeklyConsumption": "Потребление на этой неделе (кВт⋅ч)",
|
|
18
|
+
"tooltip_weeklyConsumption": "sourceanalytix...Verbrauch.currentWeek",
|
|
19
|
+
"label_weeklyFeedIn": "Подача в сеть на этой неделе (кВт⋅ч)",
|
|
20
|
+
"tooltip_weeklyFeedIn": "sourceanalytix...Einspeisung.currentWeek",
|
|
21
|
+
"label_weeklyGridPower": "Потребление из сети на этой неделе (кВт⋅ч)",
|
|
22
|
+
"tooltip_weeklyGridPower": "sourceanalytix...Netzbezug.currentWeek",
|
|
23
|
+
"label_monthlyProduction": "Производство в этом месяце (кВт⋅ч)",
|
|
24
|
+
"tooltip_monthlyProduction": "sourceanalytix...Produktion.currentMonth",
|
|
25
|
+
"label_monthlyConsumption": "Потребление в этом месяце (кВт⋅ч)",
|
|
26
|
+
"tooltip_monthlyConsumption": "sourceanalytix...Verbrauch.currentMonth",
|
|
27
|
+
"label_monthlyFeedIn": "Подача в сеть в этом месяце (кВт⋅ч)",
|
|
28
|
+
"tooltip_monthlyFeedIn": "sourceanalytix...Einspeisung.currentMonth",
|
|
29
|
+
"label_monthlyGridPower": "Потребление из сети в этом месяце (кВт⋅ч)",
|
|
30
|
+
"tooltip_monthlyGridPower": "sourceanalytix...Netzbezug.currentMonth",
|
|
31
|
+
"header_battery": "Настройка батареи",
|
|
32
|
+
"label_batteryCapacityWh": "Емкость батареи (Вт⋅ч)",
|
|
33
|
+
"label_thresholdFull": "Порог ПОЛНАЯ (%)",
|
|
34
|
+
"label_thresholdEmpty": "Порог ПУСТАЯ (%)",
|
|
35
|
+
"label_thresholdResetFull": "Сброс ПОЛНАЯ ниже (%)",
|
|
36
|
+
"label_thresholdResetEmpty": "Сброс ПУСТАЯ выше (%)",
|
|
37
|
+
"header_intermediate": "Ночной режим и промежуточные уровни",
|
|
38
|
+
"label_nightModeEnabled": "Активировать ночной режим",
|
|
39
|
+
"tooltip_nightModeEnabled": "Если отключено, уведомления будут отправляться и ночью",
|
|
40
|
+
"label_nightModeStart": "Начало",
|
|
41
|
+
"tooltip_nightModeStart": "Время начала ночного режима (например, 00:00)",
|
|
42
|
+
"label_nightModeEnd": "Конец",
|
|
43
|
+
"tooltip_nightModeEnd": "Время окончания ночного режима (например, 08:00)",
|
|
44
|
+
"label_nightModeIgnoreEmpty": "Игнорировать ночной режим для 0% батареи",
|
|
45
|
+
"tooltip_nightModeIgnoreEmpty": "Если включено, 0% всегда будет уведомлять (даже ночью)",
|
|
46
|
+
"label_quietModeEnabled": "Активировать тихий режим",
|
|
47
|
+
"tooltip_quietModeEnabled": "Если включено, уведомления не будут отправляться во время тихого времени",
|
|
48
|
+
"label_quietModeStart": "Начало",
|
|
49
|
+
"tooltip_quietModeStart": "Время начала тихого режима (например, 22:00)",
|
|
50
|
+
"label_quietModeEnd": "Конец",
|
|
51
|
+
"tooltip_quietModeEnd": "Время окончания тихого режима (например, 07:00)",
|
|
52
|
+
"label_intermediateSteps": "Промежуточные уровни (через запятую)",
|
|
53
|
+
"tooltip_intermediateSteps": "Например: 20,40,60,80",
|
|
54
|
+
"label_minIntervalFull": "Мин. интервал ПОЛНАЯ (минуты)",
|
|
55
|
+
"label_minIntervalEmpty": "Мин. интервал ПУСТАЯ (минуты)",
|
|
56
|
+
"label_minIntervalIntermediate": "Мин. интервал Промежуточный (минуты)",
|
|
57
|
+
"header_statistics": "Статистика и планирование",
|
|
58
|
+
"label_statsDayTime": "Время дневной статистики",
|
|
59
|
+
"tooltip_statsDayTime": "Формат: ЧЧ:ММ (например, 22:00)",
|
|
60
|
+
"label_statsWeekDay": "День недели для недельной статистики",
|
|
61
|
+
"tooltip_statsWeekDay": "0=Понедельник, 1=Вторник, ..., 6=Воскресенье",
|
|
62
|
+
"label_statsWeekTime": "Время для недельной статистики",
|
|
63
|
+
"tooltip_statsWeekTime": "Формат: ЧЧ:ММ (например, 10:00)",
|
|
64
|
+
"header_monthly": "Месячная статистика (опционально)",
|
|
65
|
+
"label_monthlyStatsEnabled": "Активировать месячную статистику",
|
|
66
|
+
"label_monthlyStatsDay": "День месяца",
|
|
67
|
+
"tooltip_monthlyStatsDay": "1-31 (например, 1 = Первое число месяца)",
|
|
68
|
+
"label_monthlyStatsTime": "Время",
|
|
69
|
+
"tooltip_monthlyStatsTime": "Формат: ЧЧ:ММ (например, 09:00)",
|
|
70
|
+
"header_weather": "Погода (опционально)",
|
|
71
|
+
"label_weatherEnabled": "Показывать данные о погоде в сообщениях",
|
|
72
|
+
"tooltip_weatherEnabled": "Если включено, данные о погоде будут отображаться в дневной статистике и сообщениях о статусе батареи",
|
|
73
|
+
"label_weatherInIntermediate": "Промежуточные уровни",
|
|
74
|
+
"tooltip_weatherInIntermediate": "Показывать погоду в промежуточных сообщениях (20%, 40%, 60%, 80%)",
|
|
75
|
+
"label_weatherInDailyStats": "Дневная статистика",
|
|
76
|
+
"tooltip_weatherInDailyStats": "Показывать погоду в дневной статистике (22:00)",
|
|
77
|
+
"label_weatherTodayText": "Погода сегодня",
|
|
78
|
+
"tooltip_weatherTodayText": "Например: daswetter.0.Day0.forecast.currentSymbol",
|
|
79
|
+
"label_weatherTodayTemp": "Температура сегодня (°C)",
|
|
80
|
+
"tooltip_weatherTodayTemp": "Например: daswetter.0.Day0.forecast.maxTemp",
|
|
81
|
+
"label_weatherTomorrowText": "Погода завтра",
|
|
82
|
+
"tooltip_weatherTomorrowText": "Например: daswetter.0.Day1.forecast.currentSymbol",
|
|
83
|
+
"label_weatherTomorrowTemp": "Температура завтра (°C)",
|
|
84
|
+
"tooltip_weatherTomorrowTemp": "Например: daswetter.0.Day1.forecast.maxTemp",
|
|
85
|
+
"header_thresholds": "Пороги для рекомендаций",
|
|
86
|
+
"label_highProduction": "Высокое производство от (Вт)",
|
|
87
|
+
"label_highConsumption": "Высокое потребление от (Вт)",
|
|
88
|
+
"label_testButton": "Тестовое уведомление",
|
|
89
|
+
"buttonText_testButton": "Отправить тест",
|
|
90
|
+
"tooltip_testButton": "Отправляет тестовое уведомление всем настроенным пользователям Telegram",
|
|
91
|
+
"Test Notification": "Тестовое уведомление",
|
|
92
|
+
"Production today": "Выработка сегодня",
|
|
93
|
+
"Current production": "Текущая мощность",
|
|
94
|
+
"label_statsUseSunset": "Отправлять по закату",
|
|
95
|
+
"tooltip_statsUseSunset": "Если включено, дневная статистика отправляется в момент заката из выбранного объекта, а не в фиксированное время",
|
|
96
|
+
"label_statsSunsetObject": "Объект времени заката",
|
|
97
|
+
"tooltip_statsSunsetObject": "Объект содержащий время заката в формате ЧЧ:ММ (например daswetter.0.Day0.forecast.sunset)"
|
|
94
98
|
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -384,6 +384,28 @@
|
|
|
384
384
|
"xl": 4,
|
|
385
385
|
"tooltip": "tooltip_statsDayTime"
|
|
386
386
|
},
|
|
387
|
+
"statsUseSunset": {
|
|
388
|
+
"type": "checkbox",
|
|
389
|
+
"label": "label_statsUseSunset",
|
|
390
|
+
"xs": 12,
|
|
391
|
+
"sm": 4,
|
|
392
|
+
"md": 4,
|
|
393
|
+
"lg": 4,
|
|
394
|
+
"xl": 4,
|
|
395
|
+
"default": false,
|
|
396
|
+
"tooltip": "tooltip_statsUseSunset"
|
|
397
|
+
},
|
|
398
|
+
"statsSunsetObject": {
|
|
399
|
+
"type": "objectId",
|
|
400
|
+
"label": "label_statsSunsetObject",
|
|
401
|
+
"xs": 12,
|
|
402
|
+
"sm": 8,
|
|
403
|
+
"md": 8,
|
|
404
|
+
"lg": 8,
|
|
405
|
+
"xl": 8,
|
|
406
|
+
"tooltip": "tooltip_statsSunsetObject",
|
|
407
|
+
"disabled": "!statsUseSunset"
|
|
408
|
+
},
|
|
387
409
|
"statsWeekDay": {
|
|
388
410
|
"type": "number",
|
|
389
411
|
"label": "label_statsWeekDay",
|
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.22",
|
|
5
5
|
"titleLang": {
|
|
6
6
|
"en": "PV Notifications",
|
|
7
7
|
"de": "PV-Benachrichtigungen",
|
|
@@ -29,6 +29,18 @@
|
|
|
29
29
|
"zh-cn": "发送 Telegram 通知用于 PV 电池状态"
|
|
30
30
|
},
|
|
31
31
|
"news": {
|
|
32
|
+
"1.2.22": {
|
|
33
|
+
"en": "Add sunset-based daily statistics: optional checkbox to send daily stats at sunset time from a configurable object instead of fixed time",
|
|
34
|
+
"de": "Sonnenuntergang-basierte Tagesstatistik: optionale Checkbox um Tagesstatistik zur Sonnenuntergangszeit aus einem konfigurierbaren Objekt zu senden statt zur festen Uhrzeit",
|
|
35
|
+
"ru": "Отправка дневной статистики по закату: опциональный чекбокс для отправки статистики в момент заката из настраиваемого объекта вместо фиксированного времени",
|
|
36
|
+
"fr": "Statistiques quotidiennes au coucher du soleil: case optionnelle pour envoyer les stats au coucher du soleil depuis un objet configurable au lieu d une heure fixe",
|
|
37
|
+
"it": "Statistiche giornaliere al tramonto: checkbox opzionale per inviare le statistiche all ora del tramonto da un oggetto configurabile invece di un orario fisso",
|
|
38
|
+
"es": "Estadisticas diarias al atardecer: casilla opcional para enviar estadisticas a la hora del atardecer desde un objeto configurable en lugar de hora fija",
|
|
39
|
+
"pl": "Statystyki dzienne o zachodzie slonca: opcjonalne pole wyboru do wysylania statystyk o zachodzie slonca z konfigurowalnego obiektu zamiast stalej godziny",
|
|
40
|
+
"pt": "Estatisticas diarias ao por do sol: caixa opcional para enviar estatisticas na hora do por do sol de um objeto configuravel em vez de hora fixa",
|
|
41
|
+
"nl": "Dagelijkse statistieken bij zonsondergang: optioneel selectievakje om dagelijkse statistieken te sturen op zonsondergangtijd van een configureerbaar object in plaats van vaste tijd",
|
|
42
|
+
"zh-cn": "日落时发送每日统计:可选复选框,在可配置对象的日落时间发送每日统计,而非固定时间"
|
|
43
|
+
},
|
|
32
44
|
"1.2.21": {
|
|
33
45
|
"en": "Fix: use extendObject instead of setObjectNotExists for states with unit/role to update existing instances",
|
|
34
46
|
"de": "Fix: extendObject statt setObjectNotExists fuer States mit unit/role, um bestehende Instanzen zu aktualisieren",
|
|
@@ -104,19 +116,6 @@
|
|
|
104
116
|
"pl": "Usunięto pusty wiersz w wiadomości o pełnej baterii dla lepszej formatowania",
|
|
105
117
|
"uk": "Видалено порожній рядок у повідомленні про повну батарею для покращення форматування",
|
|
106
118
|
"zh-cn": "已删除电池满消息中的空行以改善格式"
|
|
107
|
-
},
|
|
108
|
-
"1.2.15": {
|
|
109
|
-
"en": "Added separator lines to battery full/empty and intermediate messages for improved readability",
|
|
110
|
-
"de": "Trennlinien zu Batterie VOLL/LEER und Intermediate-Nachrichten für bessere Lesbarkeit hinzugefügt",
|
|
111
|
-
"ru": "Добавлены разделительные линии к сообщениям о полной/пустой батарее и промежуточным сообщениям для улучшения читаемости",
|
|
112
|
-
"pt": "Adicionadas linhas separadoras às mensagens de bateria cheia/vazia e intermediárias para melhor legibilidade",
|
|
113
|
-
"nl": "Scheidinglijnen toegevoegd aan batterij vol/leeg en intermediate-berichten voor verbeterde leesbaarheid",
|
|
114
|
-
"fr": "Ajout de lignes séparatrices aux messages batterie pleine/vide et intermédiaires pour une meilleure lisibilité",
|
|
115
|
-
"it": "Aggiunte linee separatrici ai messaggi di batteria piena/vuota e intermedi per una migliore leggibilità",
|
|
116
|
-
"es": "Agregadas líneas separadoras a los mensajes de batería llena/vacía e intermedios para mejorar la legibilidad",
|
|
117
|
-
"pl": "Dodano linie oddzielające do wiadomości o pełnej/pustej baterii i pośrednich dla lepszej czytelności",
|
|
118
|
-
"uk": "Додано розділювальні лінії до повідомлень про повну/порожню батарею та проміжних для покращення читабельності",
|
|
119
|
-
"zh-cn": "已添加分隔线到电池满/空和中间消息以提高可读性"
|
|
120
119
|
}
|
|
121
120
|
},
|
|
122
121
|
"authors": [
|
|
@@ -205,7 +204,9 @@
|
|
|
205
204
|
"monthlyGridPower": "",
|
|
206
205
|
"weatherEnabled": true,
|
|
207
206
|
"weatherInIntermediate": true,
|
|
208
|
-
"weatherInDailyStats": true
|
|
207
|
+
"weatherInDailyStats": true,
|
|
208
|
+
"statsUseSunset": false,
|
|
209
|
+
"statsSunsetObject": ""
|
|
209
210
|
},
|
|
210
211
|
"objects": [
|
|
211
212
|
{
|
package/main.js
CHANGED
|
@@ -1505,10 +1505,27 @@ ${statusText}
|
|
|
1505
1505
|
this.resetMonthlyStats();
|
|
1506
1506
|
}
|
|
1507
1507
|
|
|
1508
|
-
// Tägliche Statistik zur konfigurierten Zeit
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
this.
|
|
1508
|
+
// Tägliche Statistik — entweder zur konfigurierten Zeit oder zum Sonnenuntergang
|
|
1509
|
+
if (this.config.statsUseSunset && this.config.statsSunsetObject) {
|
|
1510
|
+
// Sonnenuntergangszeit aus dem konfigurierten Objekt lesen
|
|
1511
|
+
this.getForeignStateAsync(this.config.statsSunsetObject).then(sunsetState => {
|
|
1512
|
+
if (sunsetState && sunsetState.val) {
|
|
1513
|
+
const sunsetTime = String(sunsetState.val).trim();
|
|
1514
|
+
const match = sunsetTime.match(/^(\d{1,2}):(\d{2})/);
|
|
1515
|
+
if (match) {
|
|
1516
|
+
const sunsetHours = parseInt(match[1], 10);
|
|
1517
|
+
const sunsetMinutes = parseInt(match[2], 10);
|
|
1518
|
+
if (hours === sunsetHours && minutes === sunsetMinutes) {
|
|
1519
|
+
this.sendDailyStatsMessage();
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
}
|
|
1523
|
+
}).catch(e => this.log.warn(`Could not read sunset object: ${e.message}`));
|
|
1524
|
+
} else {
|
|
1525
|
+
const [dayHours, dayMinutes] = this.config.statsDayTime.split(':').map(Number);
|
|
1526
|
+
if (hours === dayHours && minutes === dayMinutes) {
|
|
1527
|
+
this.sendDailyStatsMessage();
|
|
1528
|
+
}
|
|
1512
1529
|
}
|
|
1513
1530
|
|
|
1514
1531
|
// Wöchentliche Statistik am konfigurierten Tag und Zeit
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.pv-notifications",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.22",
|
|
4
4
|
"description": "PV-Anlage Batterie-Status Telegram Benachrichtigungen",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Alex1808 via LLM: Qwen",
|
|
@@ -40,7 +40,12 @@
|
|
|
40
40
|
"lint": "eslint -c eslint.config.mjs .",
|
|
41
41
|
"lint:fix": "eslint -c eslint.config.mjs . --fix",
|
|
42
42
|
"translate": "translate-adapter",
|
|
43
|
-
"release": "release-script"
|
|
43
|
+
"release": "release-script",
|
|
44
|
+
"dev": "dev-server watch default",
|
|
45
|
+
"dev:run": "dev-server run default",
|
|
46
|
+
"dev:debug": "dev-server debug default",
|
|
47
|
+
"dev-setup": "dev-server setup default",
|
|
48
|
+
"dev-upload": "dev-server upload default"
|
|
44
49
|
},
|
|
45
50
|
"dependencies": {
|
|
46
51
|
"@iobroker/adapter-core": "^3.3.2"
|
|
@@ -54,7 +59,8 @@
|
|
|
54
59
|
"@iobroker/eslint-config": "^2.2.0",
|
|
55
60
|
"@iobroker/testing": "^5.2.2",
|
|
56
61
|
"@types/node": "^25.5.0",
|
|
57
|
-
"typescript": "~5.9.3"
|
|
62
|
+
"typescript": "~5.9.3",
|
|
63
|
+
"@iobroker/dev-server": "^0.8.0"
|
|
58
64
|
},
|
|
59
65
|
"bugs": {
|
|
60
66
|
"url": "https://github.com/alex/iobroker.pv-notifications/issues"
|