iobroker.solarviewdatareader 1.0.3 → 1.0.6
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 +15 -13
- package/admin/index_m.html +3 -3
- package/admin/style.css +25 -3
- package/admin/words.js +42 -34
- package/io-package.json +40 -39
- package/main.js +60 -42
- package/package.json +25 -26
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
- package/.github/workflows/test-and-release.yml +0 -155
- package/.releaseconfig.json +0 -10
- package/CHANGELOG_OLD.md +0 -21
- package/admin/admin.d.ts +0 -1
- package/main.test.js +0 -30
- package/scripts/gulp.sh +0 -3
- package/scripts/upload.sh +0 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2022 Achim Fürhoff <achim.fuerhoff@outlook.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
|
@@ -41,7 +41,7 @@ Here you can configure the time range and the interval. The time range for 24h i
|
|
|
41
41
|
Not 00:00 to 00:00.
|
|
42
42
|
|
|
43
43
|
### Set system variable CCU, System variable
|
|
44
|
-
This
|
|
44
|
+
This is a special feature for the homematic CCU. You can define a system variable in the CCU.
|
|
45
45
|
In this system variable the actual PAC value is saved.
|
|
46
46
|
You have to fill in the ioBroker state for that system variable -> **e.g. "hm-rega.0.12345"**
|
|
47
47
|
|
|
@@ -64,29 +64,31 @@ TKK= Temperature inverter
|
|
|
64
64
|
Placeholder for the next version (at the beginning of the line):
|
|
65
65
|
### __WORK IN PROGRESS__
|
|
66
66
|
-->
|
|
67
|
-
### 1.0.
|
|
67
|
+
### 1.0.6 (2022-07-04)
|
|
68
68
|
* (afuerhoff) dependencies updated
|
|
69
|
+
* (afuerhoff) Interval settings changed from minutes to seconds
|
|
70
|
+
* (afuerhoff) States only writen after changes
|
|
69
71
|
|
|
70
|
-
### 1.0.
|
|
71
|
-
* (afuerhoff) node.js 14 and 16 compatibilty
|
|
72
|
+
### 1.0.5 (2022-02-17)
|
|
72
73
|
* (afuerhoff) dependencies updated
|
|
74
|
+
* (afuerhoff) test and release updated
|
|
75
|
+
* (afuerhoff) smaller changes
|
|
73
76
|
|
|
74
|
-
### 1.0.
|
|
75
|
-
* (afuerhoff)
|
|
77
|
+
### 1.0.4 (2022-02-09)
|
|
78
|
+
* (afuerhoff) dependencies updated
|
|
79
|
+
* (afuerhoff) issue #20 fixed
|
|
76
80
|
|
|
77
|
-
### 1.0.
|
|
81
|
+
### 1.0.3 (2021-12-08)
|
|
78
82
|
* (afuerhoff) dependencies updated
|
|
79
|
-
* (afuerhoff) documentation changed
|
|
80
|
-
* (afuerhoff) minor changes
|
|
81
|
-
* (afuerhoff) due to stable state version set to 1.0.0
|
|
82
83
|
|
|
83
|
-
### 0.2
|
|
84
|
-
* (afuerhoff)
|
|
84
|
+
### 1.0.2 (2021-05-07)
|
|
85
|
+
* (afuerhoff) node.js 14 and 16 compatibilty
|
|
86
|
+
* (afuerhoff) dependencies updated
|
|
85
87
|
|
|
86
88
|
## License
|
|
87
89
|
MIT License
|
|
88
90
|
|
|
89
|
-
Copyright (c) 2019-
|
|
91
|
+
Copyright (c) 2019-2022 Achim Fürhoff <achim.fuerhoff@outlook.de>
|
|
90
92
|
|
|
91
93
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
92
94
|
of this software and associated documentation files (the "Software"), to deal
|
package/admin/index_m.html
CHANGED
|
@@ -163,9 +163,9 @@
|
|
|
163
163
|
</div>
|
|
164
164
|
<div class="row">
|
|
165
165
|
<div class="col s2 input-field tooltip">
|
|
166
|
-
<input type="number" class="value" min="
|
|
167
|
-
<label for="intervalVal" class="translate">polling interval in
|
|
168
|
-
<span class="tooltiptext translate">Here you can define the polling interval [between
|
|
166
|
+
<input type="number" class="value validate" min="10" max="3600" id="intervalVal" />
|
|
167
|
+
<label for="intervalVal" class="translate">polling interval in seconds</label>
|
|
168
|
+
<span class="tooltiptext translate">Here you can define the polling interval [between 10 to 3600 seconds]</span>
|
|
169
169
|
</div>
|
|
170
170
|
<div class="col s2 input-field tooltip">
|
|
171
171
|
<input type="text" class="timepicker value" id="intervalstart"/>
|
package/admin/style.css
CHANGED
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
/* You can delete those if you want. I just found them very helpful */
|
|
2
2
|
* {
|
|
3
|
-
|
|
3
|
+
box-sizing: border-box
|
|
4
4
|
}
|
|
5
5
|
.m {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/* Don't cut off dropdowns! */
|
|
7
|
+
overflow: initial;
|
|
8
|
+
}
|
|
9
|
+
.m.adapter-container {
|
|
10
|
+
/* Fix layout/scrolling issues with tabs */
|
|
11
|
+
height: 100%;
|
|
12
|
+
width: 100%;
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
.m .select-wrapper + label {
|
|
16
|
+
/* The positioning for dropdown labels is messed up */
|
|
17
|
+
transform: none !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
label > i[title] {
|
|
21
|
+
/* Display the help cursor for the tooltip icons and fix their positioning */
|
|
22
|
+
cursor: help;
|
|
23
|
+
margin-left: 0.25em;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.dropdown-content {
|
|
27
|
+
/* Don't wrap text in dropdowns */
|
|
28
|
+
white-space: nowrap;
|
|
8
29
|
}
|
|
9
30
|
|
|
10
31
|
/* Add your styles here */
|
|
32
|
+
|
|
11
33
|
/* Tooltip container */
|
|
12
34
|
.tooltip {
|
|
13
35
|
position: relative;
|
package/admin/words.js
CHANGED
|
@@ -1,44 +1,52 @@
|
|
|
1
1
|
/*global systemDictionary:true */
|
|
2
|
+
/*
|
|
3
|
+
+===================== DO NOT MODIFY ======================+
|
|
4
|
+
| This file was generated by translate-adapter, please use |
|
|
5
|
+
| `translate-adapter adminLanguages2words` to update it. |
|
|
6
|
+
+===================== DO NOT MODIFY ======================+
|
|
7
|
+
*/
|
|
2
8
|
'use strict';
|
|
3
9
|
|
|
4
10
|
systemDictionary = {
|
|
5
|
-
"Data logger and web based analysis software for Solarmax, SMA, Kaco, Fronius and Kostal inverters. For more information please click the link.": {"de": "Datenlogger und webbasierte Analysesoftware für Wechselrichter von Solarmax, SMA, Kaco, Fronius und Kostal. ", "ru": "Регистратор данных и программное обеспечение для веб-анализа для инверторов Solarmax, SMA, Kaco, Fronius и Kostal. ", "pt": "Data logger e software de análise baseado na web para inversores Solarmax, SMA, Kaco, Fronius e Kostal. ", "nl": "Datalogger en webgebaseerde analysesoftware voor Solarmax, SMA, Kaco, Fronius en Kostal-omvormers. ", "fr": "Enregistreur de données et logiciel d’analyse Web pour les onduleurs Solarmax, SMA, Kaco, Fronius et Kostal. ", "it": "Data logger e software di analisi web based per inverter Solarmax, SMA, Kaco, Fronius e Kostal. ", "es": "Registrador de datos y software de análisis basado en web para los inversores Solarmax, SMA, Kaco, Fronius y Kostal. ", "pl": "Rejestrator danych i internetowe oprogramowanie do analizy falowników Solarmax, SMA, Kaco, Fronius i Kostal. ", "zh-cn": "Solarmax,SMA,Kaco,Fronius和Kostal逆变器的数据记录器和基于Web的分析软件。"},
|
|
6
|
-
"Datalogger, monitoring and web-based evaluation software for Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, Aurora inverters / Power-one, Fronius / Sun Power.": {"de": "Datenlogger-, Überwachungs- und webbasierte Auswertungssoftware für Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Steca, Eaton Phoenix / Sunville, SolarConvert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "ru": "Регистратор данных, программное обеспечение для мониторинга и сетевой оценки для Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "pt": "Datalogger, monitoração e software de avaliação baseado na Web para Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Converso, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "nl": "Datalogger, monitoring en webgebaseerde evaluatiesoftware voor Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "fr": "Enregistreur de données, logiciel de surveillance et d’évaluation sur le Web pour Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schaco, ", "it": "Datalogger, monitoraggio e software di valutazione basato sul web per Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "es": "Datalogger, monitoreo y software de evaluación basado en la web para Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Schaco, ", "pl": "Rejestrator danych, oprogramowanie monitorujące i internetowe do Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "zh-cn": "Solarmax,Danfoss,Carlo Gavazzi,IBC Servemaster,SMA,Effekta,Ever-Solar,Effekta,Steca,Eaton Phoenix / Sunville,Solar Convert,SolarEdge / Sunspec,Kostal,Kaco,Schüco的数据记录器,监控和基于网络的评估软件, "},
|
|
7
|
-
"Here you can define the polling interval [between 1 to 59 minutes]": {"en": "
|
|
8
|
-
"IP-Address": {
|
|
9
|
-
"Interval": {
|
|
10
|
-
"Interval end": {
|
|
11
|
-
"Interval start": {
|
|
12
|
-
"Inverter 1": {
|
|
13
|
-
"Inverter 2": {
|
|
14
|
-
"Inverter 3": {
|
|
15
|
-
"Inverter 4": {
|
|
16
|
-
"Please check if inverter 1 available": {
|
|
17
|
-
"Please check if inverter 2 available": {
|
|
18
|
-
"Please check if inverter 3 available": {
|
|
19
|
-
"Please check if inverter 4 available": {
|
|
20
|
-
"Please check if self consumption meter 1 is available": {"en": "Please check if self consumption meter 1 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 1 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 1",
|
|
11
|
+
"Data logger and web based analysis software for Solarmax, SMA, Kaco, Fronius and Kostal inverters. For more information please click the link.": {"en": "", "de": "Datenlogger und webbasierte Analysesoftware für Wechselrichter von Solarmax, SMA, Kaco, Fronius und Kostal. ", "ru": "Регистратор данных и программное обеспечение для веб-анализа для инверторов Solarmax, SMA, Kaco, Fronius и Kostal. ", "pt": "Data logger e software de análise baseado na web para inversores Solarmax, SMA, Kaco, Fronius e Kostal. ", "nl": "Datalogger en webgebaseerde analysesoftware voor Solarmax, SMA, Kaco, Fronius en Kostal-omvormers. ", "fr": "Enregistreur de données et logiciel d’analyse Web pour les onduleurs Solarmax, SMA, Kaco, Fronius et Kostal. ", "it": "Data logger e software di analisi web based per inverter Solarmax, SMA, Kaco, Fronius e Kostal. ", "es": "Registrador de datos y software de análisis basado en web para los inversores Solarmax, SMA, Kaco, Fronius y Kostal. ", "pl": "Rejestrator danych i internetowe oprogramowanie do analizy falowników Solarmax, SMA, Kaco, Fronius i Kostal. ", "zh-cn": "Solarmax,SMA,Kaco,Fronius和Kostal逆变器的数据记录器和基于Web的分析软件。"},
|
|
12
|
+
"Datalogger, monitoring and web-based evaluation software for Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, Aurora inverters / Power-one, Fronius / Sun Power.": {"en": "", "de": "Datenlogger-, Überwachungs- und webbasierte Auswertungssoftware für Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Steca, Eaton Phoenix / Sunville, SolarConvert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "ru": "Регистратор данных, программное обеспечение для мониторинга и сетевой оценки для Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "pt": "Datalogger, monitoração e software de avaliação baseado na Web para Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Converso, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "nl": "Datalogger, monitoring en webgebaseerde evaluatiesoftware voor Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "fr": "Enregistreur de données, logiciel de surveillance et d’évaluation sur le Web pour Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schaco, ", "it": "Datalogger, monitoraggio e software di valutazione basato sul web per Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "es": "Datalogger, monitoreo y software de evaluación basado en la web para Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Schaco, ", "pl": "Rejestrator danych, oprogramowanie monitorujące i internetowe do Solarmax, Danfoss, Carlo Gavazzi, IBC Servemaster, SMA, Effekta, Ever-Solar, Effekta, Steca, Eaton Phoenix / Sunville, Solar Convert, SolarEdge / Sunspec, Kostal, Kaco, Schüco, ", "zh-cn": "Solarmax,Danfoss,Carlo Gavazzi,IBC Servemaster,SMA,Effekta,Ever-Solar,Effekta,Steca,Eaton Phoenix / Sunville,Solar Convert,SolarEdge / Sunspec,Kostal,Kaco,Schüco的数据记录器,监控和基于网络的评估软件, "},
|
|
13
|
+
"Here you can define the polling interval [between 1 to 59 minutes]": {"en": "", "de": "Hier können Sie das Abfrageintervall definieren [zwischen 1 und 59 Minuten]", "ru": "Здесь вы можете определить интервал опроса [от 1 до 59 минут]", "pt": "Aqui você pode definir o intervalo de pesquisa [entre 1 e 59 minutos]", "nl": "Hier kunt u het polling-interval definiëren [tussen 1 en 59 minuten]", "fr": "Ici, vous pouvez définir l'intervalle d'interrogation [entre 1 et 59 minutes]", "it": "Qui è possibile definire l'intervallo di polling [tra 1 e 59 minuti]", "es": "Aquí puede definir el intervalo de sondeo [entre 1 y 59 minutos]", "pl": "Tutaj możesz zdefiniować interwał odpytywania [od 1 do 59 minut]", "zh-cn": "您可以在此处定义轮询间隔[1至59分钟之间]"},
|
|
14
|
+
"IP-Address": { "en": "IP-Address", "de": "IP Adresse", "ru": "Айпи адрес", "pt": "Endereço de IP", "nl": "IP adres", "fr": "Adresse IP", "it": "Indirizzo IP", "es": "Dirección IP", "pl": "Adres IP", "zh-cn": "IP地址"},
|
|
15
|
+
"Interval": { "en": "Interval", "de": "Intervall", "ru": "интервал", "pt": "Intervalo", "nl": "Interval", "fr": "Intervalle", "it": "Intervallo", "es": "Intervalo", "pl": "Interwał", "zh-cn": "间隔"},
|
|
16
|
+
"Interval end": { "en": "Interval end", "de": "Intervallende", "ru": "Конец интервала", "pt": "Fim do intervalo", "nl": "Interval einde", "fr": "Fin d'intervalle", "it": "Intervallo di fine", "es": "Fin de intervalo", "pl": "Koniec interwału", "zh-cn": "间隔结束"},
|
|
17
|
+
"Interval start": { "en": "Interval start", "de": "Intervallstart", "ru": "Интервальный старт", "pt": "Início do intervalo", "nl": "Interval start", "fr": "Début d'intervalle", "it": "Inizio intervallo", "es": "Inicio de intervalo", "pl": "Początek przerwy", "zh-cn": "间隔开始"},
|
|
18
|
+
"Inverter 1": { "en": "Inverter 1", "de": "Wechselrichter 1", "ru": "Инвертор 1", "pt": "Inversor 1", "nl": "Omvormer 1", "fr": "Onduleur 1", "it": "Inverter 1", "es": "Inversor 1", "pl": "Falownik 1", "zh-cn": "逆变器1"},
|
|
19
|
+
"Inverter 2": { "en": "Inverter 2", "de": "Wechselrichter 2", "ru": "Инвертор 2", "pt": "Inversor 2", "nl": "Omvormer 2", "fr": "Onduleur 2", "it": "Inverter 2", "es": "Inversor 2", "pl": "Falownik 2", "zh-cn": "逆变器2"},
|
|
20
|
+
"Inverter 3": { "en": "Inverter 3", "de": "Wechselrichter 3", "ru": "Инвертор 3", "pt": "Inversor 3", "nl": "Omvormer 3", "fr": "Onduleur 3", "it": "Inverter 3", "es": "Inversor 3", "pl": "Falownik 3", "zh-cn": "逆变器3"},
|
|
21
|
+
"Inverter 4": { "en": "Inverter 4", "de": "Wechselrichter 4", "ru": "Инвертор 4", "pt": "Inversor 4", "nl": "Omvormer 4", "fr": "Onduleur 4", "it": "Inverter 4", "es": "Inversor 4", "pl": "Falownik 4", "zh-cn": "逆变器4"},
|
|
22
|
+
"Please check if inverter 1 available": { "en": "Please check if inverter 1 available", "de": "Bitte prüfen Sie, ob Wechselrichter 1 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли инвертор 1", "pt": "Por favor, verifique se o inversor 1 está disponível", "nl": "Controleer of inverter 1 beschikbaar is", "fr": "Veuillez vérifier si le convertisseur 1 est disponible", "it": "Si prega di verificare se l'inverter 1 è disponibile", "es": "Por favor, compruebe si el inversor 1 disponible", "pl": "Sprawdź, czy dostępny jest falownik 1", "zh-cn": "请检查逆变器1是否可用"},
|
|
23
|
+
"Please check if inverter 2 available": { "en": "Please check if inverter 2 available", "de": "Bitte prüfen Sie, ob Wechselrichter 2 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли инвертор 2", "pt": "Por favor, verifique se o inversor 2 está disponível", "nl": "Controleer of inverter 2 beschikbaar is", "fr": "Veuillez vérifier si l'onduleur 2 est disponible", "it": "Si prega di verificare se l'inverter 2 è disponibile", "es": "Por favor, compruebe si el inversor 2 está disponible", "pl": "Sprawdź, czy dostępny jest falownik 2", "zh-cn": "请检查逆变器2是否可用"},
|
|
24
|
+
"Please check if inverter 3 available": { "en": "Please check if inverter 3 available", "de": "Bitte prüfen Sie, ob Wechselrichter 3 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли инвертор 3", "pt": "Por favor, verifique se o inversor 3 está disponível", "nl": "Controleer of inverter 3 beschikbaar is", "fr": "Veuillez vérifier si l'onduleur 3 est disponible", "it": "Si prega di verificare se l'inverter 3 è disponibile", "es": "Por favor verifica si el inversor 3 está disponible.", "pl": "Sprawdź, czy dostępny jest falownik 3", "zh-cn": "请检查逆变器3是否可用"},
|
|
25
|
+
"Please check if inverter 4 available": { "en": "Please check if inverter 4 available", "de": "Bitte prüfen Sie, ob Wechselrichter 4 verfügbar ist", "ru": "Пожалуйста, проверьте, если инвертор 4 доступен", "pt": "Por favor, verifique se o inversor 4 está disponível", "nl": "Controleer of omvormer 4 beschikbaar is", "fr": "Veuillez vérifier si l'inverseur 4 est disponible", "it": "Si prega di verificare se l'inverter 4 è disponibile", "es": "Por favor, compruebe si el inversor 4 está disponible.", "pl": "Sprawdź, czy dostępny jest falownik 4", "zh-cn": "请检查逆变器4是否可用"},
|
|
26
|
+
"Please check if self consumption meter 1 is available": {"en": "Please check if self consumption meter 1 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 1 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 1", "pt": "Verifique se o medidor de autoconsumo 1 está disponível", "nl": "Controleer of meter 1 voor eigen verbruik beschikbaar is", "fr": "Veuillez vérifier si le compteur d'autoconsommation 1 est disponible", "it": "Si prega di verificare se il contatore di autoconsumo 1 è disponibile", "es": "Compruebe si el medidor de autoconsumo 1 está disponible", "pl": "Sprawdź, czy miernik zużycia własnego 1 jest dostępny", "zh-cn": "请检查自用电表1是否可用"},
|
|
21
27
|
"Please check if self consumption meter 2 is available": {"en": "Please check if self consumption meter 2 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 2 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик потребления 2", "pt": "Verifique se o medidor de autoconsumo 2 está disponível", "nl": "Controleer of meter 2 voor eigen verbruik beschikbaar is", "fr": "Veuillez vérifier si le compteur d'autoconsommation 2 est disponible", "it": "Si prega di verificare se il misuratore di autoconsumo 2 è disponibile", "es": "Compruebe si el medidor de autoconsumo 2 está disponible", "pl": "Sprawdź, czy miernik zużycia własnego 2 jest dostępny", "zh-cn": "请检查自用电表2是否可用"},
|
|
22
|
-
"Please check if self consumption meter 3 is available": {"en": "Please check if self consumption meter 3 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 3 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 3",
|
|
23
|
-
"Please check if self consumption meter 4 is available": {"en": "Please check if self consumption meter 4 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 4 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 4",
|
|
28
|
+
"Please check if self consumption meter 3 is available": {"en": "Please check if self consumption meter 3 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 3 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 3", "pt": "Verifique se o medidor de autoconsumo 3 está disponível", "nl": "Controleer of meter 3 voor eigen verbruik beschikbaar is", "fr": "Veuillez vérifier si le compteur d'autoconsommation 3 est disponible", "it": "Si prega di verificare se il misuratore di autoconsumo 3 è disponibile", "es": "Compruebe si el medidor de autoconsumo 3 está disponible", "pl": "Sprawdź, czy miernik zużycia własnego 3 jest dostępny", "zh-cn": "请检查自用电表3是否可用"},
|
|
29
|
+
"Please check if self consumption meter 4 is available": {"en": "Please check if self consumption meter 4 is available", "de": "Bitte prüfen Sie, ob der Eigenverbrauchsmesser 4 verfügbar ist", "ru": "Пожалуйста, проверьте, доступен ли счетчик 4", "pt": "Verifique se o medidor de autoconsumo 4 está disponível", "nl": "Controleer of zelfverbruiksmeter 4 beschikbaar is", "fr": "Veuillez vérifier si le compteur d'autoconsommation 4 est disponible", "it": "Verificare se è disponibile il contatore di autoconsumo 4", "es": "Compruebe si el medidor de autoconsumo 4 está disponible", "pl": "Sprawdź, czy miernik zużycia własnego 4 jest dostępny", "zh-cn": "请检查自用电度表4是否可用"},
|
|
24
30
|
"Please check if you use the self consumption meter sum": {"en": "Please check if you use the self consumption meter sum", "de": "Bitte überprüfen Sie, ob Sie die Selbstverbrauchsmessersumme verwenden", "ru": "Пожалуйста, проверьте, если вы используете сумму счетчика самопотребления", "pt": "Verifique se você usa a soma do medidor de autoconsumo", "nl": "Controleer of u de som van de meter voor eigen verbruik gebruikt", "fr": "Veuillez vérifier si vous utilisez la somme du compteur d'autoconsommation", "it": "Si prega di verificare se si utilizza la somma del contatore di autoconsumo", "es": "Compruebe si usa la suma del medidor de autoconsumo", "pl": "Sprawdź, czy używasz sumy licznika zużycia własnego", "zh-cn": "请检查您是否使用自费表的总和"},
|
|
25
31
|
"Please check if you want to set a system variable in the CCU": {"en": "Please check if you want to set a system variable in the CCU", "de": "Bitte prüfen Sie, ob Sie eine Systemvariable in der CCU setzen möchten", "ru": "Проверьте, хотите ли вы установить системную переменную в CCU", "pt": "Por favor, verifique se você deseja definir uma variável de sistema no CCU", "nl": "Controleer of u een systeemvariabele in de CCU wilt instellen", "fr": "Veuillez vérifier si vous souhaitez définir une variable système dans la CCU.", "it": "Si prega di verificare se si desidera impostare una variabile di sistema nella CCU", "es": "Por favor, compruebe si desea establecer una variable de sistema en la CCU", "pl": "Sprawdź, czy chcesz ustawić zmienną systemową w CCU", "zh-cn": "请检查是否要在CCU中设置系统变量"},
|
|
26
|
-
"Please enter if you have a d0-converter": {
|
|
27
|
-
"Please enter the CCU system variable": {
|
|
32
|
+
"Please enter if you have a d0-converter": { "en": "Please enter if you have a d0-converter", "de": "Bitte geben Sie an, ob Sie einen d0-Konverter haben", "ru": "Пожалуйста, введите, если у вас есть d0-конвертер", "pt": "Por favor, digite se você tem um conversor de d0", "nl": "Voer alstublieft in als u een d0-converter heeft", "fr": "S'il vous plaît entrer si vous avez un convertisseur d0", "it": "Si prega di inserire se si dispone di un convertitore d0", "es": "Por favor ingresa si tienes un convertidor d0", "pl": "Wprowadź, jeśli masz konwerter d0", "zh-cn": "如果您有d0转换器,请输入"},
|
|
33
|
+
"Please enter the CCU system variable": { "en": "Please enter the CCU system variable", "de": "Bitte geben Sie die CCU-Systemvariable ein", "ru": "Пожалуйста, введите системную переменную CCU", "pt": "Por favor insira a variável do sistema CCU", "nl": "Voer de CCU-systeemvariabele in", "fr": "Veuillez entrer la variable système CCU", "it": "Si prega di inserire la variabile di sistema CCU", "es": "Por favor ingrese la variable de sistema CCU", "pl": "Wprowadź zmienną systemową CCU", "zh-cn": "请输入CCU系统变量"},
|
|
28
34
|
"Please enter the IP-Address from your SolarView data logger": {"en": "Please enter the IP-Address from your SolarView data logger", "de": "Bitte geben Sie die IP-Adresse Ihres SolarView-Datenloggers ein", "ru": "Пожалуйста, введите IP-адрес из вашего регистратора данных SolarView", "pt": "Por favor, digite o endereço IP do seu data logger SolarView", "nl": "Voer het IP-adres in vanuit uw SolarView datalogger", "fr": "Veuillez saisir l'adresse IP de votre enregistreur de données SolarView.", "it": "Inserisci l'indirizzo IP dal tuo data logger SolarView", "es": "Introduzca la dirección IP de su registrador de datos SolarView", "pl": "Wprowadź adres IP z rejestratora danych SolarView", "zh-cn": "请从SolarView数据记录器输入IP地址"},
|
|
29
|
-
"Please enter the interval (cron format)": {
|
|
30
|
-
"Please enter the
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"Self consumption meter
|
|
34
|
-
"Self consumption meter
|
|
35
|
-
"Self consumption meter
|
|
36
|
-
"
|
|
37
|
-
"
|
|
35
|
+
"Please enter the interval (cron format)": { "en": "Please enter the interval (cron format)", "de": "Bitte geben Sie das Intervall ein (Cron-Format)", "ru": "Пожалуйста, введите интервал (cron формат)", "pt": "Por favor insira o intervalo (formato cron)", "nl": "Voer het interval in (cron-formaat)", "fr": "S'il vous plaît entrer l'intervalle (format cron)", "it": "Si prega di inserire l'intervallo (formato cron)", "es": "Por favor ingrese el intervalo (formato cron)", "pl": "Wprowadź interwał (format cron)", "zh-cn": "请输入间隔(cron格式)"},
|
|
36
|
+
"Please enter the interval end (e.g. 23:59)": { "en": "Please enter the interval end (e.g. 23:59)", "de": "Bitte geben Sie das Intervallende ein (z. B. 23:59).", "ru": "Введите конец интервала (например, 23:59)", "pt": "Insira o fim do intervalo (por exemplo, 23:59)", "nl": "Voer het einde van het interval in (bijv. 23:59)", "fr": "Veuillez saisir la fin de l'intervalle (par exemple 23:59)", "it": "Inserisci la fine dell'intervallo (ad es. 23:59)", "es": "Ingrese el final del intervalo (por ejemplo, 23:59)", "pl": "Wprowadź koniec interwału (np. 23:59)", "zh-cn": "请输入间隔结束时间(例如23:59)"},
|
|
37
|
+
"Please enter the interval start (e.g. 00:00)": { "en": "Please enter the interval start (e.g. 00:00)", "de": "Bitte geben Sie den Intervallstart ein (z. B. 00:00).", "ru": "Введите начало интервала (например, 00:00)", "pt": "Insira o início do intervalo (por exemplo, 00:00)", "nl": "Voer de intervalstart in (bijv. 00:00)", "fr": "Veuillez saisir le début de l'intervalle (par exemple 00:00)", "it": "Si prega di inserire l'inizio dell'intervallo (es. 00:00)", "es": "Introduzca el inicio del intervalo (p. Ej., 00:00)", "pl": "Wprowadź początek interwału (np. 00:00)", "zh-cn": "请输入间隔开始时间(例如00:00)"},
|
|
38
|
+
"Please enter the port": { "en": "Please enter the port", "de": "Bitte geben Sie den Port ein", "ru": "Пожалуйста, введите порт", "pt": "Por favor, insira o porto", "nl": "Voer de poort in", "fr": "S'il vous plaît entrer le port", "it": "Si prega di inserire il porto", "es": "Por favor ingrese el puerto", "pl": "Proszę wejść do portu", "zh-cn": "请输入端口"},
|
|
39
|
+
"Self consumption meter 1": { "en": "Self consumption meter 1", "de": "Eigenverbrauchsmesser 1", "ru": "Счетчик собственного потребления 1", "pt": "Medidor de auto consumo 1", "nl": "Eigen verbruik meter 1", "fr": "Compteur d'autoconsommation 1", "it": "Indicatore di autoconsumo 1", "es": "Medidor de autoconsumo 1", "pl": "Licznik zużycia własnego 1", "zh-cn": "自用电表1"},
|
|
40
|
+
"Self consumption meter 2": { "en": "Self consumption meter 2", "de": "Eigenverbrauchsmesser 2", "ru": "Счетчик собственного потребления 2", "pt": "Medidor de autoconsumo 2", "nl": "Eigen verbruik meter 2", "fr": "Compteur d'autoconsommation 2", "it": "Contatore di autoconsumo 2", "es": "Medidor de autoconsumo 2", "pl": "Licznik zużycia własnego 2", "zh-cn": "自用电表2"},
|
|
41
|
+
"Self consumption meter 3": { "en": "Self consumption meter 3", "de": "Eigenverbrauchsmesser 3", "ru": "Счетчик собственного потребления 3", "pt": "Medidor de autoconsumo 3", "nl": "Eigen verbruik meter 3", "fr": "Compteur d'autoconsommation 3", "it": "Indicatore di autoconsumo 3", "es": "Medidor de autoconsumo 3", "pl": "Licznik zużycia własnego 3", "zh-cn": "自用电度表3"},
|
|
42
|
+
"Self consumption meter 4": { "en": "Self consumption meter 4", "de": "Eigenverbrauchsmesser 4", "ru": "Счетчик собственного потребления 4", "pt": "Medidor de autoconsumo 4", "nl": "Eigen verbruik meter 4", "fr": "Compteur d'autoconsommation 4", "it": "Indicatore di autoconsumo 4", "es": "Medidor de autoconsumo 4", "pl": "Licznik zużycia własnego 4", "zh-cn": "自用电度表4"},
|
|
43
|
+
"Self consumption meter sum": { "en": "Self consumption meter sum", "de": "Eigenverbrauchsmesser Summe", "ru": "Сумма счетчика собственного потребления", "pt": "Soma de medidor de autoconsumo", "nl": "Som van het eigen verbruik", "fr": "Somme du compteur d'autoconsommation", "it": "Somma dei contatori di autoconsumo", "es": "Suma del medidor de autoconsumo", "pl": "Suma licznika zużycia własnego", "zh-cn": "自耗表总和"},
|
|
44
|
+
"Set system variable CCU": { "en": "Set system variable CCU", "de": "Systemvariable CCU setzen", "ru": "Установить системную переменную CCU", "pt": "Definir CCU da variável do sistema", "nl": "Stel systeemvariabele CCU in", "fr": "Définir la variable système CCU", "it": "Imposta CCU variabile di sistema", "es": "Establecer variable de sistema CCU", "pl": "Ustaw zmienną systemową CCU", "zh-cn": "设置系统变量CCU"},
|
|
45
|
+
"SolarView Logger": { "en": "SolarView Logger", "de": "SolarView Logger", "ru": "SolarView Logger", "pt": "Logger SolarView", "nl": "SolarView Logger", "fr": "Enregistreur SolarView", "it": "Logger di SolarView", "es": "Registrador SolarView", "pl": "SolarView Logger", "zh-cn": "SolarView记录器"},
|
|
38
46
|
"SolarView is a data logger for several inverter. Further informations can be get over the link.": {"en": "SolarView is a data logger for several inverter. Further informations can be get over the link.", "de": "SolarView ist ein Datenlogger für mehrere Wechselrichter. ", "ru": "SolarView - это регистратор данных для нескольких инверторов. ", "pt": "O SolarView é um data logger para vários inversores. ", "nl": "SolarView is een datalogger voor verschillende omvormers. ", "fr": "SolarView est un enregistreur de données pour plusieurs onduleurs. ", "it": "SolarView è un data logger per diversi inverter. ", "es": "SolarView es un registrador de datos para varios inversores. ", "pl": "SolarView to rejestrator danych dla kilku falowników. ", "zh-cn": "SolarView是多个逆变器的数据记录器。"},
|
|
39
|
-
"System variable": {
|
|
40
|
-
"polling interval in minutes": {
|
|
41
|
-
"solarviewdatareader adapter settings": {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
47
|
+
"System variable": { "en": "System variable", "de": "Systemvariable", "ru": "Системная переменная", "pt": "Variável do sistema", "nl": "Systeemvariabele", "fr": "Variable système", "it": "Variabile di sistema", "es": "Variable del sistema", "pl": "Zmienna systemowa", "zh-cn": "系统变量"},
|
|
48
|
+
"polling interval in minutes": { "en": "", "de": "Abfrageintervall in Minuten", "ru": "интервал опроса в минутах", "pt": "intervalo de pesquisa em minutos", "nl": "polling-interval in minuten", "fr": "intervalle d'interrogation en minutes", "it": "intervallo di polling in minuti", "es": "intervalo de sondeo en minutos", "pl": "interwał sondowania w minutach", "zh-cn": "轮询间隔(以分钟为单位)"},
|
|
49
|
+
"solarviewdatareader adapter settings": { "en": "Adapter settings for solarviewdatareader", "de": "Adaptereinstellungen für solarviewdatareader", "ru": "Настройки адаптера для solarviewdatareader", "pt": "Configurações do adaptador para solarviewdatareader", "nl": "Adapterinstellingen voor solarviewdatareader", "fr": "Paramètres d'adaptateur pour solarviewdatareader", "it": "Impostazioni dell'adattatore per solarviewdatareader", "es": "Ajustes del adaptador para solarviewdatareader", "pl": "Ustawienia adaptera dla solarviewdatareader", "zh-cn": "solarviewdatareader的适配器设置"},
|
|
50
|
+
"Here you can define the polling interval [between 10 to 3600 seconds]": {"en": "Here you can define the polling interval [between 10 to 3600 seconds]", "de": "Hier können Sie das Polling-Intervall festlegen [zwischen 10 bis 3600 Sekunden]", "ru": "Здесь вы можете определить интервал опроса [от 10 до 3600 секунд]", "pt": "Aqui você pode definir o intervalo de sondagem [entre 10 a 3600 segundos]", "nl": "Hier kunt u het polling-interval definiëren [tussen 10 en 3600 seconden]", "fr": "Ici, vous pouvez définir l'intervalle d'interrogation [entre 10 et 3600 secondes]", "it": "Qui puoi definire l'intervallo di polling [tra 10 e 3600 secondi]", "es": "Aquí puede definir el intervalo de sondeo [entre 10 y 3600 segundos]", "pl": "Tutaj możesz zdefiniować interwał odpytywania [od 10 do 3600 sekund]", "zh-cn": "在这里您可以定义轮询间隔 [10 到 3600 秒之间]"},
|
|
51
|
+
"polling interval in seconds": { "en": "polling interval in seconds", "de": "Abfrageintervall in Sekunden", "ru": "интервал опроса в секундах", "pt": "intervalo de sondagem em segundos", "nl": "polling-interval in seconden", "fr": "intervalle d'interrogation en secondes", "it": "intervallo di polling in secondi", "es": "intervalo de sondeo en segundos", "pl": "interwał odpytywania w sekundach", "zh-cn": "以秒为单位的轮询间隔"},
|
|
44
52
|
};
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "solarviewdatareader",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.6",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.0.6": {
|
|
7
|
+
"en": "dependencies updated\nInterval settings changed from minutes to seconds\nStates only writen after changes",
|
|
8
|
+
"de": "aktualisierte abhängigkeiten\nIntervalleinstellungen von Minuten bis Sekunden geändert\nNur nach Änderungen geschriebene Staaten",
|
|
9
|
+
"ru": "зависимости обновлены\nИнтервалные настройки изменены с минут до секунд\nГосударства только пишут после изменений",
|
|
10
|
+
"pt": "dependências atualizadas\nAs configurações de intervalo mudaram de minutos para segundos\nEstados apenas escrevem após mudanças",
|
|
11
|
+
"nl": "afhankelijkheid geüpdateerd\nVerandering van minuten tot seconden\nAmerika schreef alleen na veranderingen",
|
|
12
|
+
"fr": "dépendances mises à jour\nLes réglages d'intervalle ont changé de minutes en secondes\nÉtats seulement énumérés après changement",
|
|
13
|
+
"it": "dipendenze aggiornate\nLe impostazioni di intervallazione sono cambiate da minuti a secondi\nStati solo dopo i cambiamenti",
|
|
14
|
+
"es": "dependencias actualizadas\nLos ajustes de intervalor cambiaron de minutos a segundos\nEstados sólo escriben después de los cambios",
|
|
15
|
+
"pl": "aktualizacja\nPrzeszłość zmieniała się z minut na sekundę\nPaństwa pisane są tylko po zmianach",
|
|
16
|
+
"zh-cn": "b. 更新的依赖\n汇率环境从分钟改为第二秒\n国家在修改后只写信"
|
|
17
|
+
},
|
|
18
|
+
"1.0.5": {
|
|
19
|
+
"en": "dependencies updated\ntest and release updated\nsmaller changes",
|
|
20
|
+
"de": "Abhängigkeiten aktualisiert\nTest und Release aktualisiert\nkleinere Änderungen",
|
|
21
|
+
"ru": "зависимости обновлены\nтест и выпуск обновлены\nнебольшие изменения",
|
|
22
|
+
"pt": "dependências atualizadas\nteste e lançamento atualizado\nmudanças menores",
|
|
23
|
+
"nl": "afhankelijkheden bijgewerkt\ntest en release bijgewerkt\nkleinere veranderingen",
|
|
24
|
+
"fr": "dépendances mises à jour\ntest et version mis à jour\npetits changements",
|
|
25
|
+
"it": "dipendenze aggiornate\ntest e rilascio aggiornati\npiccoli cambiamenti",
|
|
26
|
+
"es": "dependencias actualizadas\nprueba y versión actualizada\npequeños cambios",
|
|
27
|
+
"pl": "zaktualizowano zależności\nzaktualizowano test i wydanie\nmniejsze zmiany",
|
|
28
|
+
"zh-cn": "已更新依赖项\n测试和发布更新\n较小的变化"
|
|
29
|
+
},
|
|
30
|
+
"1.0.4": {
|
|
31
|
+
"en": "dependencies updated\nissue #20 fixed",
|
|
32
|
+
"de": "Abhängigkeiten aktualisiert\nProblem Nr. 20 behoben",
|
|
33
|
+
"ru": "зависимости обновлены\nпроблема №20 исправлена",
|
|
34
|
+
"pt": "dependências atualizadas\nproblema nº 20 corrigido",
|
|
35
|
+
"nl": "afhankelijkheden bijgewerkt\nprobleem #20 opgelost",
|
|
36
|
+
"fr": "dépendances mises à jour\nproblème #20 corrigé",
|
|
37
|
+
"it": "dipendenze aggiornate\nproblema n. 20 risolto",
|
|
38
|
+
"es": "dependencias actualizadas\nproblema #20 solucionado",
|
|
39
|
+
"pl": "zaktualizowano zależności\nproblem nr 20 naprawiony",
|
|
40
|
+
"zh-cn": "已更新依赖项\n问题 #20 已修复"
|
|
41
|
+
},
|
|
6
42
|
"1.0.3": {
|
|
7
43
|
"en": "dependencies updated",
|
|
8
44
|
"de": "Abhängigkeiten aktualisiert",
|
|
@@ -50,42 +86,6 @@
|
|
|
50
86
|
"es": "dependencias actualizadas\ndocumentación cambiada\ncambios menores\ndebido a la versión de estado estable establecida en 1.0.0",
|
|
51
87
|
"pl": "zaktualizowane zależności\ndokumentacja uległa zmianie\ndrobne zmiany\nze względu na stabilną wersję stanu ustawioną na 1.0.0",
|
|
52
88
|
"zh-cn": "依赖关系已更新\n文档已更改\n细微的变化\n由于稳定状态版本设置为1.0.0"
|
|
53
|
-
},
|
|
54
|
-
"0.2.1": {
|
|
55
|
-
"en": "self consumption meter optimized",
|
|
56
|
-
"de": "Selbstverbrauchsmesser optimiert",
|
|
57
|
-
"ru": "счетчик собственного потребления оптимизирован",
|
|
58
|
-
"pt": "medidor de autoconsumo otimizado",
|
|
59
|
-
"nl": "eigen verbruiksmeter geoptimaliseerd",
|
|
60
|
-
"fr": "compteur d'autoconsommation optimisé",
|
|
61
|
-
"it": "misuratore di autoconsumo ottimizzato",
|
|
62
|
-
"es": "medidor de autoconsumo optimizado",
|
|
63
|
-
"pl": "miernik zużycia własnego zoptymalizowany",
|
|
64
|
-
"zh-cn": "自耗表优化"
|
|
65
|
-
},
|
|
66
|
-
"0.2.0": {
|
|
67
|
-
"en": "Error handling optimized, self consumption meter implemented",
|
|
68
|
-
"de": "Fehlerbehandlung optimiert, Eigenverbrauchsmesser implementiert",
|
|
69
|
-
"ru": "Оптимизирована обработка ошибок, реализован счетчик собственного потребления",
|
|
70
|
-
"pt": "Tratamento de erros otimizado, medidor de autoconsumo implementado",
|
|
71
|
-
"nl": "Foutafhandeling geoptimaliseerd, eigen verbruiksmeter geïmplementeerd",
|
|
72
|
-
"fr": "Gestion des erreurs optimisée, compteur d'autoconsommation mis en œuvre",
|
|
73
|
-
"it": "Gestione degli errori ottimizzata, misuratore di autoconsumo implementato",
|
|
74
|
-
"es": "Manejo de errores optimizado, medidor de autoconsumo implementado",
|
|
75
|
-
"pl": "Zoptymalizowana obsługa błędów, zaimplementowano miernik zużycia własnego",
|
|
76
|
-
"zh-cn": "优化错误处理,实施自耗电表"
|
|
77
|
-
},
|
|
78
|
-
"0.1.0": {
|
|
79
|
-
"en": "optimizations for adding to latest repository",
|
|
80
|
-
"de": "Optimierungen zum Hinzufügen zum neuesten Repository",
|
|
81
|
-
"ru": "оптимизации для добавления в последний репозиторий",
|
|
82
|
-
"pt": "otimizações para adicionar ao repositório mais recente",
|
|
83
|
-
"nl": "optimalisaties voor het toevoegen aan de nieuwste repository",
|
|
84
|
-
"fr": "optimisations pour l'ajout au dernier référentiel",
|
|
85
|
-
"it": "ottimizzazioni per l'aggiunta all'ultimo repository",
|
|
86
|
-
"es": "optimizaciones para agregar al último repositorio",
|
|
87
|
-
"pl": "optymalizacje w celu dodania do najnowszego repozytorium",
|
|
88
|
-
"zh-cn": "添加到最新存储库的优化"
|
|
89
89
|
}
|
|
90
90
|
},
|
|
91
91
|
"title": "SolarViewDataReader",
|
|
@@ -140,14 +140,15 @@
|
|
|
140
140
|
"admin": ">=3.0.0"
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
|
-
"js-controller": ">=
|
|
143
|
+
"js-controller": ">=3.0.0"
|
|
144
144
|
}
|
|
145
145
|
]
|
|
146
146
|
},
|
|
147
147
|
"native": {
|
|
148
148
|
"ipaddress": "",
|
|
149
149
|
"port": "15000",
|
|
150
|
-
"intervalVal":
|
|
150
|
+
"intervalVal": 10,
|
|
151
|
+
"interval_seconds": false,
|
|
151
152
|
"intervalstart": "00:00",
|
|
152
153
|
"intervalend": "23:59",
|
|
153
154
|
"d0converter": false,
|
package/main.js
CHANGED
|
@@ -136,7 +136,7 @@ async function getData(port, ip_address) {
|
|
|
136
136
|
const dend = new Date(dnow.getFullYear() + '-' + (dnow.getMonth()+1) + '-' + dnow.getDate() + ' ' + endtime);
|
|
137
137
|
let timeoutCnt = 0;
|
|
138
138
|
if (gthis.config.d0converter == true){ //Verbrauch wird immer eingelesen
|
|
139
|
-
timeoutCnt +=
|
|
139
|
+
timeoutCnt += 500;
|
|
140
140
|
to1 = setTimeout(function() {
|
|
141
141
|
sv_cmd = '22*';
|
|
142
142
|
conn.connect(port, ip_address, function() {
|
|
@@ -147,7 +147,7 @@ async function getData(port, ip_address) {
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
if (gthis.config.scm0 == true){
|
|
150
|
-
timeoutCnt +=
|
|
150
|
+
timeoutCnt += 500;
|
|
151
151
|
to7 = setTimeout(function() {
|
|
152
152
|
sv_cmd = '10*'; //pvi1 Wechselrichter 1
|
|
153
153
|
conn.connect(port, ip_address, function() {
|
|
@@ -157,7 +157,7 @@ async function getData(port, ip_address) {
|
|
|
157
157
|
}, timeoutCnt);
|
|
158
158
|
}
|
|
159
159
|
if (gthis.config.scm1 == true){
|
|
160
|
-
timeoutCnt +=
|
|
160
|
+
timeoutCnt += 500;
|
|
161
161
|
to8 = setTimeout(function() {
|
|
162
162
|
sv_cmd = '11*';
|
|
163
163
|
conn.connect(port, ip_address, function() {
|
|
@@ -167,7 +167,7 @@ async function getData(port, ip_address) {
|
|
|
167
167
|
}, timeoutCnt);
|
|
168
168
|
}
|
|
169
169
|
if (gthis.config.scm2 == true){
|
|
170
|
-
timeoutCnt +=
|
|
170
|
+
timeoutCnt += 500;
|
|
171
171
|
to9 = setTimeout(function() {
|
|
172
172
|
sv_cmd = '12*';
|
|
173
173
|
conn.connect(port, ip_address, function() {
|
|
@@ -177,7 +177,7 @@ async function getData(port, ip_address) {
|
|
|
177
177
|
}, timeoutCnt);
|
|
178
178
|
}
|
|
179
179
|
if (gthis.config.scm3 == true){
|
|
180
|
-
timeoutCnt +=
|
|
180
|
+
timeoutCnt += 500;
|
|
181
181
|
to10 = setTimeout(function() {
|
|
182
182
|
sv_cmd = '13*';
|
|
183
183
|
conn.connect(port, ip_address, function() {
|
|
@@ -187,7 +187,7 @@ async function getData(port, ip_address) {
|
|
|
187
187
|
}, timeoutCnt);
|
|
188
188
|
}
|
|
189
189
|
if (gthis.config.scm4 == true){
|
|
190
|
-
timeoutCnt +=
|
|
190
|
+
timeoutCnt += 500;
|
|
191
191
|
to11 = setTimeout(function() {
|
|
192
192
|
sv_cmd = '14*';
|
|
193
193
|
conn.connect(port, ip_address, function() {
|
|
@@ -204,7 +204,7 @@ async function getData(port, ip_address) {
|
|
|
204
204
|
conn.end();
|
|
205
205
|
});
|
|
206
206
|
if (gthis.config.d0converter == true){
|
|
207
|
-
timeoutCnt +=
|
|
207
|
+
timeoutCnt += 500;
|
|
208
208
|
to2 = setTimeout(function() {
|
|
209
209
|
sv_cmd = '21*';
|
|
210
210
|
conn.connect(port, ip_address, function() {
|
|
@@ -214,7 +214,7 @@ async function getData(port, ip_address) {
|
|
|
214
214
|
}, timeoutCnt);
|
|
215
215
|
}
|
|
216
216
|
if (gthis.config.pvi1 == true){
|
|
217
|
-
timeoutCnt +=
|
|
217
|
+
timeoutCnt += 500;
|
|
218
218
|
to3 = setTimeout(function() {
|
|
219
219
|
sv_cmd = '01*'; //pvi1 Wechselrichter 1
|
|
220
220
|
conn.connect(port, ip_address, function() {
|
|
@@ -224,7 +224,7 @@ async function getData(port, ip_address) {
|
|
|
224
224
|
}, timeoutCnt);
|
|
225
225
|
}
|
|
226
226
|
if (gthis.config.pvi2 == true){
|
|
227
|
-
timeoutCnt +=
|
|
227
|
+
timeoutCnt += 500;
|
|
228
228
|
to4 = setTimeout(function() {
|
|
229
229
|
sv_cmd = '02*';
|
|
230
230
|
conn.connect(port, ip_address, function() {
|
|
@@ -234,7 +234,7 @@ async function getData(port, ip_address) {
|
|
|
234
234
|
}, timeoutCnt);
|
|
235
235
|
}
|
|
236
236
|
if (gthis.config.pvi3 == true){
|
|
237
|
-
timeoutCnt +=
|
|
237
|
+
timeoutCnt += 500;
|
|
238
238
|
to5 = setTimeout(function() {
|
|
239
239
|
sv_cmd = '03*';
|
|
240
240
|
conn.connect(port, ip_address, function() {
|
|
@@ -244,7 +244,7 @@ async function getData(port, ip_address) {
|
|
|
244
244
|
}, timeoutCnt);
|
|
245
245
|
}
|
|
246
246
|
if (gthis.config.pvi4 == true){
|
|
247
|
-
timeoutCnt +=
|
|
247
|
+
timeoutCnt += 500;
|
|
248
248
|
to6 = setTimeout(function() {
|
|
249
249
|
sv_cmd = '04*';
|
|
250
250
|
conn.connect(port, ip_address, function() {
|
|
@@ -284,9 +284,27 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
284
284
|
const port = this.config.port;
|
|
285
285
|
let chkCnt = 0;
|
|
286
286
|
|
|
287
|
-
this.log.info('start solarview ' + ip_address + ':' + port + ' - polling interval: ' + this.config.intervalVal + '
|
|
287
|
+
this.log.info('start solarview ' + ip_address + ':' + port + ' - polling interval: ' + this.config.intervalVal + ' s (' + this.config.intervalstart + ' to ' + this.config.intervalend + ')');
|
|
288
288
|
this.log.info('d0 converter: ' + this.config.d0converter.toString());
|
|
289
289
|
|
|
290
|
+
//Workaround for interval change to seconds
|
|
291
|
+
let adapterObj = (await this.getForeignObjectAsync(`system.adapter.${this.namespace}`));
|
|
292
|
+
let adapterObjChanged = false; //for changes
|
|
293
|
+
|
|
294
|
+
if (this.config.interval_seconds === false) { //Workaround: Switch interval to seconds
|
|
295
|
+
this.log.warn('Interval changed to seconds!');
|
|
296
|
+
adapterObj.native.interval_seconds = true;
|
|
297
|
+
adapterObj.native.intervalVal = adapterObj.native.intervalVal * 60;
|
|
298
|
+
adapterObjChanged = true;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
if (adapterObjChanged === true){ //Save changes
|
|
302
|
+
this.log.info('Interval attribute changed! Please check the configuration');
|
|
303
|
+
this.log.info('Adapter restarts');
|
|
304
|
+
await this.setForeignObjectAsync(`system.adapter.${this.namespace}`, adapterObj);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
|
|
290
308
|
//Datenobjekte erzeugen
|
|
291
309
|
await createGlobalObjects(gthis);
|
|
292
310
|
await createSolarviewObjects(gthis, 'pvig');
|
|
@@ -313,7 +331,7 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
313
331
|
|
|
314
332
|
conn = new net.Socket();
|
|
315
333
|
|
|
316
|
-
const cron = this.config.intervalVal *
|
|
334
|
+
const cron = this.config.intervalVal * 1000;
|
|
317
335
|
try {
|
|
318
336
|
getData(port, ip_address);
|
|
319
337
|
jobSchedule = setInterval(async function(){
|
|
@@ -327,9 +345,9 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
327
345
|
try {
|
|
328
346
|
if (response == null){
|
|
329
347
|
gthis.log.error("connect: cann't read data from tcp-server!" );
|
|
330
|
-
gthis.
|
|
348
|
+
gthis.setStateChanged('info.connection', { val: false, ack: true });
|
|
331
349
|
}else{
|
|
332
|
-
gthis.
|
|
350
|
+
gthis.setStateChanged('info.connection', { val: true, ack: true });
|
|
333
351
|
sv_data = response.toString('ascii'); //Daten in globale variable sv_data ablegen
|
|
334
352
|
sv_data = sv_data.replace (/[{]+/,''); // "{" entfernen
|
|
335
353
|
sv_data = sv_data.replace (/[}]+/,''); // "}" entfernen
|
|
@@ -381,7 +399,7 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
381
399
|
TKK= Temperatur Wechselrichter */
|
|
382
400
|
|
|
383
401
|
let value = Number(sv_data[10]);
|
|
384
|
-
gthis.
|
|
402
|
+
gthis.setStateChanged(sv_prefix + 'current', { val: value, ack: true });
|
|
385
403
|
if (sv_prefix == 'pvig.') {
|
|
386
404
|
if (gthis.config.setCCU == true){
|
|
387
405
|
const obj = await gthis.findForeignObjectAsync(gthis.config.CCUSystemV);
|
|
@@ -395,60 +413,60 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
395
413
|
}
|
|
396
414
|
|
|
397
415
|
value = Number(sv_data[6]);
|
|
398
|
-
gthis.
|
|
416
|
+
gthis.setStateChanged(sv_prefix + 'daily', { val: value, ack: true });
|
|
399
417
|
|
|
400
418
|
value = Number(sv_data[7]);
|
|
401
|
-
gthis.
|
|
419
|
+
gthis.setStateChanged(sv_prefix + 'monthly', { val: value, ack: true });
|
|
402
420
|
|
|
403
421
|
value = Number(sv_data[8]);
|
|
404
|
-
gthis.
|
|
422
|
+
gthis.setStateChanged(sv_prefix + 'yearly', { val: value, ack: true });
|
|
405
423
|
|
|
406
424
|
value = Number(sv_data[9]);
|
|
407
|
-
gthis.
|
|
425
|
+
gthis.setStateChanged(sv_prefix + 'total', { val: value, ack: true });
|
|
408
426
|
|
|
409
427
|
const sDate = Number(sv_data[3]) + '-' + aLZ(Number(sv_data[2])) + '-' + aLZ(Number(sv_data[1])) + ' ' + aLZ(Number(sv_data[4])) + ':' + aLZ(Number(sv_data[5]));
|
|
410
|
-
gthis.
|
|
428
|
+
gthis.setStateChanged('info.lastUpdate', { val: sDate, ack: true });
|
|
411
429
|
|
|
412
430
|
if (sv_prefix == 'pvi1.' || sv_prefix == 'pvi2.' || sv_prefix == 'pvi3.' || sv_prefix == 'pvi4.'){
|
|
413
431
|
value = Number(sv_data[11]);
|
|
414
|
-
gthis.
|
|
432
|
+
gthis.setStateChanged(sv_prefix + 'udc', { val: value, ack: true });
|
|
415
433
|
value = Number(sv_data[12]);
|
|
416
|
-
gthis.
|
|
434
|
+
gthis.setStateChanged(sv_prefix + 'idc', { val: value, ack: true });
|
|
417
435
|
value = Number(sv_data[13]);
|
|
418
|
-
gthis.
|
|
436
|
+
gthis.setStateChanged(sv_prefix + 'udcb', { val: value, ack: true });
|
|
419
437
|
value = Number(sv_data[14]);
|
|
420
|
-
gthis.
|
|
438
|
+
gthis.setStateChanged(sv_prefix + 'idcb', { val: value, ack: true });
|
|
421
439
|
value = Number(sv_data[15]);
|
|
422
|
-
gthis.
|
|
440
|
+
gthis.setStateChanged(sv_prefix + 'udcc', { val: value, ack: true });
|
|
423
441
|
value = Number(sv_data[16]);
|
|
424
|
-
gthis.
|
|
442
|
+
gthis.setStateChanged(sv_prefix + 'idcc', { val: value, ack: true });
|
|
425
443
|
value = Number(sv_data[17]);
|
|
426
|
-
gthis.
|
|
444
|
+
gthis.setStateChanged(sv_prefix + 'udcd', { val: value, ack: true });
|
|
427
445
|
value = Number(sv_data[18]);
|
|
428
|
-
gthis.
|
|
446
|
+
gthis.setStateChanged(sv_prefix + 'idcd', { val: value, ack: true });
|
|
429
447
|
if (sv_data.length == 27) { //neue Version Solarview
|
|
430
448
|
value = Number(sv_data[19]);
|
|
431
|
-
gthis.
|
|
449
|
+
gthis.setStateChanged(sv_prefix + 'ul1', { val: value, ack: true });
|
|
432
450
|
value = Number(sv_data[20]);
|
|
433
|
-
gthis.
|
|
451
|
+
gthis.setStateChanged(sv_prefix + 'il1', { val: value, ack: true });
|
|
434
452
|
value = Number(sv_data[21]);
|
|
435
|
-
gthis.
|
|
453
|
+
gthis.setStateChanged(sv_prefix + 'ul2', { val: value, ack: true });
|
|
436
454
|
value = Number(sv_data[22]);
|
|
437
|
-
gthis.
|
|
455
|
+
gthis.setStateChanged(sv_prefix + 'il2', { val: value, ack: true });
|
|
438
456
|
value = Number(sv_data[23]);
|
|
439
|
-
gthis.
|
|
457
|
+
gthis.setStateChanged(sv_prefix + 'ul3', { val: value, ack: true });
|
|
440
458
|
value = Number(sv_data[24]);
|
|
441
|
-
gthis.
|
|
459
|
+
gthis.setStateChanged(sv_prefix + 'il3', { val: value, ack: true });
|
|
442
460
|
value = Number(sv_data[25]);
|
|
443
|
-
gthis.
|
|
461
|
+
gthis.setStateChanged(sv_prefix + 'tkk', { val: value, ack: true });
|
|
444
462
|
}
|
|
445
463
|
if (sv_data.length === 23) { //alte Version Solarview
|
|
446
464
|
value = Number(sv_data[19]);
|
|
447
|
-
gthis.
|
|
465
|
+
gthis.setStateChanged(sv_prefix + 'ul1', { val: value, ack: true });
|
|
448
466
|
value = Number(sv_data[20]);
|
|
449
|
-
gthis.
|
|
467
|
+
gthis.setStateChanged(sv_prefix + 'il1', { val: value, ack: true });
|
|
450
468
|
value = Number(sv_data[21]);
|
|
451
|
-
gthis.
|
|
469
|
+
gthis.setStateChanged(sv_prefix + 'tkk', { val: value, ack: true });
|
|
452
470
|
}
|
|
453
471
|
}
|
|
454
472
|
}else{
|
|
@@ -469,7 +487,7 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
469
487
|
|
|
470
488
|
conn.on('error', function(err) {
|
|
471
489
|
gthis.log.error('error: ' + err.message);
|
|
472
|
-
gthis.
|
|
490
|
+
gthis.setStateChanged('info.connection', { val: false, ack: true });
|
|
473
491
|
});
|
|
474
492
|
|
|
475
493
|
conn.on('close', function() {
|
|
@@ -484,7 +502,7 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
484
502
|
onUnload(callback) {
|
|
485
503
|
try {
|
|
486
504
|
this.log.info('cleaned everything up...');
|
|
487
|
-
gthis.
|
|
505
|
+
gthis.setStateChanged('info.connection', { val: false, ack: true });
|
|
488
506
|
clearInterval(jobSchedule);
|
|
489
507
|
clearTimeout(to1);
|
|
490
508
|
clearTimeout(to2);
|
|
@@ -554,7 +572,7 @@ class Solarviewdatareader extends utils.Adapter {
|
|
|
554
572
|
}
|
|
555
573
|
|
|
556
574
|
// @ts-ignore parent is a valid property on module
|
|
557
|
-
if (module
|
|
575
|
+
if (require.main !== module) {
|
|
558
576
|
// Export the constructor in compact mode
|
|
559
577
|
/**
|
|
560
578
|
* @param {Partial<ioBroker.AdapterOptions>} [options={}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.solarviewdatareader",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "Get data from SolarView",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Achim Fürhoff",
|
|
@@ -18,36 +18,34 @@
|
|
|
18
18
|
"url": "https://github.com/afuerhoff/ioBroker.solarviewdatareader"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@iobroker/adapter-core": "^2.
|
|
21
|
+
"@iobroker/adapter-core": "^2.6.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@alcalzone/release-script": "^3.
|
|
25
|
-
"@alcalzone/release-script-plugin-iobroker": "^3.
|
|
26
|
-
"@alcalzone/release-script-plugin-license": "^3.
|
|
27
|
-
"@iobroker/
|
|
28
|
-
"@
|
|
29
|
-
"@types/chai
|
|
30
|
-
"@types/
|
|
31
|
-
"@types/mocha": "^
|
|
32
|
-
"@types/node": "^
|
|
33
|
-
"
|
|
34
|
-
"@types/sinon": "^10.0.6",
|
|
35
|
-
"@types/sinon-chai": "^3.2.6",
|
|
36
|
-
"chai": "^4.3.4",
|
|
24
|
+
"@alcalzone/release-script": "^3.5.9",
|
|
25
|
+
"@alcalzone/release-script-plugin-iobroker": "^3.5.9",
|
|
26
|
+
"@alcalzone/release-script-plugin-license": "^3.5.9",
|
|
27
|
+
"@iobroker/adapter-dev": "^1.0.0",
|
|
28
|
+
"@iobroker/testing": "^3.0.2",
|
|
29
|
+
"@types/chai": "^4.3.1",
|
|
30
|
+
"@types/chai-as-promised": "^7.1.5",
|
|
31
|
+
"@types/mocha": "^9.1.1",
|
|
32
|
+
"@types/node": "^17.0.40",
|
|
33
|
+
"chai": "^4.3.6",
|
|
37
34
|
"chai-as-promised": "^7.1.1",
|
|
38
|
-
"eslint": "^
|
|
39
|
-
"
|
|
40
|
-
"hosted-git-info": "^4.0.2",
|
|
41
|
-
"mocha": "^8.4.0",
|
|
42
|
-
"proxyquire": "^2.1.3",
|
|
43
|
-
"sinon": "^10.0.0",
|
|
44
|
-
"sinon-chai": "^3.7.0"
|
|
35
|
+
"eslint": "^8.18.0",
|
|
36
|
+
"mocha": "^9.2.2"
|
|
45
37
|
},
|
|
46
38
|
"main": "main.js",
|
|
39
|
+
"files": [
|
|
40
|
+
"admin{,/!(src)/**}/!(tsconfig|tsconfig.*).json",
|
|
41
|
+
"admin{,/!(src)/**}/*.{html,css,png,svg,jpg,js}",
|
|
42
|
+
"lib/",
|
|
43
|
+
"www/",
|
|
44
|
+
"io-package.json",
|
|
45
|
+
"LICENSE",
|
|
46
|
+
"main.js"
|
|
47
|
+
],
|
|
47
48
|
"scripts": {
|
|
48
|
-
"watch:parcel": "parcel admin/src/index.jsx -d admin/build",
|
|
49
|
-
"build:parcel": "parcel build admin/src/index.jsx -d admin/build",
|
|
50
|
-
"build": "npm run build:parcel",
|
|
51
49
|
"test:js": "mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"",
|
|
52
50
|
"test:package": "mocha test/package --exit",
|
|
53
51
|
"test:unit": "mocha test/unit --exit",
|
|
@@ -56,7 +54,8 @@
|
|
|
56
54
|
"aftest": "mocha test/af_test.js --exit",
|
|
57
55
|
"check": "tsc --noEmit -p tsconfig.check.json",
|
|
58
56
|
"lint": "eslint --ext .js,.jsx",
|
|
59
|
-
"release": "release-script"
|
|
57
|
+
"release": "release-script",
|
|
58
|
+
"translate": "translate-adapter"
|
|
60
59
|
},
|
|
61
60
|
"bugs": {
|
|
62
61
|
"url": "https://github.com/afuerhoff/ioBroker.solarviewdatareader/issues"
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Something is not working as it should
|
|
4
|
-
title: ''
|
|
5
|
-
labels: ''
|
|
6
|
-
assignees: ''
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
**Describe the bug**
|
|
10
|
-
A clear and concise description of what the bug is.
|
|
11
|
-
|
|
12
|
-
**To Reproduce**
|
|
13
|
-
Steps to reproduce the behavior:
|
|
14
|
-
1. Go to '...'
|
|
15
|
-
2. Click on '...'
|
|
16
|
-
3. Scroll down to '....'
|
|
17
|
-
4. See error
|
|
18
|
-
|
|
19
|
-
**Expected behavior**
|
|
20
|
-
A clear and concise description of what you expected to happen.
|
|
21
|
-
|
|
22
|
-
**Screenshots & Logfiles**
|
|
23
|
-
If applicable, add screenshots and logfiles to help explain your problem.
|
|
24
|
-
|
|
25
|
-
**Versions:**
|
|
26
|
-
- Adapter version: <adapter-version>
|
|
27
|
-
- JS-Controller version: <js-controller-version> <!-- determine this with `iobroker -v` on the console -->
|
|
28
|
-
- Node version: <node-version> <!-- determine this with `node -v` on the console -->
|
|
29
|
-
- Operating system: <os-name>
|
|
30
|
-
|
|
31
|
-
**Additional context**
|
|
32
|
-
Add any other context about the problem here.
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
name: Test and Release
|
|
2
|
-
|
|
3
|
-
# Run this job on all pushes and pull requests
|
|
4
|
-
# as well as tags with a semantic version
|
|
5
|
-
on:
|
|
6
|
-
push:
|
|
7
|
-
branches:
|
|
8
|
-
- "*"
|
|
9
|
-
tags:
|
|
10
|
-
# normal versions
|
|
11
|
-
- "v[0-9]+.[0-9]+.[0-9]+"
|
|
12
|
-
# pre-releases
|
|
13
|
-
- "v[0-9]+.[0-9]+.[0-9]+-**"
|
|
14
|
-
pull_request: {}
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
# Performs quick checks before the expensive test runs
|
|
18
|
-
check-and-lint:
|
|
19
|
-
if: contains(github.event.head_commit.message, '[skip ci]') == false
|
|
20
|
-
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
|
|
23
|
-
strategy:
|
|
24
|
-
matrix:
|
|
25
|
-
node-version: [14.x]
|
|
26
|
-
|
|
27
|
-
steps:
|
|
28
|
-
- name: Checkout code
|
|
29
|
-
uses: actions/checkout@v2
|
|
30
|
-
|
|
31
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
32
|
-
uses: actions/setup-node@v1
|
|
33
|
-
with:
|
|
34
|
-
node-version: ${{ matrix.node-version }}
|
|
35
|
-
|
|
36
|
-
- name: Install Dependencies
|
|
37
|
-
run: npm ci
|
|
38
|
-
|
|
39
|
-
- name: Lint source code
|
|
40
|
-
run: npm run lint
|
|
41
|
-
- name: Test package files
|
|
42
|
-
run: npm run test:package
|
|
43
|
-
|
|
44
|
-
# Runs adapter tests on all supported node versions and OSes
|
|
45
|
-
adapter-tests:
|
|
46
|
-
if: contains(github.event.head_commit.message, '[skip ci]') == false
|
|
47
|
-
|
|
48
|
-
needs: [check-and-lint]
|
|
49
|
-
|
|
50
|
-
runs-on: ${{ matrix.os }}
|
|
51
|
-
strategy:
|
|
52
|
-
matrix:
|
|
53
|
-
node-version: [12.x, 14.x, 16.x]
|
|
54
|
-
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
55
|
-
|
|
56
|
-
steps:
|
|
57
|
-
- name: Checkout code
|
|
58
|
-
uses: actions/checkout@v2
|
|
59
|
-
|
|
60
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
61
|
-
uses: actions/setup-node@v1
|
|
62
|
-
with:
|
|
63
|
-
node-version: ${{ matrix.node-version }}
|
|
64
|
-
|
|
65
|
-
- name: Install Dependencies
|
|
66
|
-
run: npm ci
|
|
67
|
-
|
|
68
|
-
- name: Run unit tests
|
|
69
|
-
run: npm run test:unit
|
|
70
|
-
|
|
71
|
-
- name: Run integration tests (unix only)
|
|
72
|
-
if: startsWith(runner.OS, 'windows') == false
|
|
73
|
-
run: DEBUG=testing:* npm run test:integration
|
|
74
|
-
|
|
75
|
-
- name: Run integration tests (windows only)
|
|
76
|
-
if: startsWith(runner.OS, 'windows')
|
|
77
|
-
run: set DEBUG=testing:* & npm run test:integration
|
|
78
|
-
|
|
79
|
-
# TODO: To enable automatic npm releases, create a token on npmjs.org
|
|
80
|
-
# Enter this token as a GitHub secret (with name NPM_TOKEN) in the repository options
|
|
81
|
-
# Then uncomment the following block:
|
|
82
|
-
|
|
83
|
-
# Deploys the final package to NPM
|
|
84
|
-
deploy:
|
|
85
|
-
needs: [adapter-tests]
|
|
86
|
-
|
|
87
|
-
# Trigger this step only when a commit on any branch is tagged with a version number
|
|
88
|
-
if: |
|
|
89
|
-
contains(github.event.head_commit.message, '[skip ci]') == false &&
|
|
90
|
-
github.event_name == 'push' &&
|
|
91
|
-
startsWith(github.ref, 'refs/tags/v')
|
|
92
|
-
|
|
93
|
-
runs-on: ubuntu-latest
|
|
94
|
-
strategy:
|
|
95
|
-
matrix:
|
|
96
|
-
node-version: [14.x]
|
|
97
|
-
|
|
98
|
-
steps:
|
|
99
|
-
- name: Checkout code
|
|
100
|
-
uses: actions/checkout@v2
|
|
101
|
-
|
|
102
|
-
- name: Use Node.js ${{ matrix.node-version }}
|
|
103
|
-
uses: actions/setup-node@v1
|
|
104
|
-
with:
|
|
105
|
-
node-version: ${{ matrix.node-version }}
|
|
106
|
-
|
|
107
|
-
- name: Extract the version and commit body from the tag
|
|
108
|
-
id: extract_release
|
|
109
|
-
# The body may be multiline, therefore newlines and % need to be escaped
|
|
110
|
-
run: |
|
|
111
|
-
VERSION="${{ github.ref }}"
|
|
112
|
-
VERSION=${VERSION##*/v}
|
|
113
|
-
echo "::set-output name=VERSION::$VERSION"
|
|
114
|
-
BODY=$(git show -s --format=%b)
|
|
115
|
-
BODY="${BODY//'%'/'%25'}"
|
|
116
|
-
BODY="${BODY//$'\n'/'%0A'}"
|
|
117
|
-
BODY="${BODY//$'\r'/'%0D'}"
|
|
118
|
-
echo "::set-output name=BODY::$BODY"
|
|
119
|
-
|
|
120
|
-
- name: Publish package to npm
|
|
121
|
-
run: |
|
|
122
|
-
npm config set //registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}
|
|
123
|
-
npm whoami
|
|
124
|
-
npm publish
|
|
125
|
-
|
|
126
|
-
- name: Create Github Release
|
|
127
|
-
uses: actions/create-release@v1
|
|
128
|
-
env:
|
|
129
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
130
|
-
with:
|
|
131
|
-
tag_name: ${{ github.ref }}
|
|
132
|
-
release_name: Release v${{ steps.extract_release.outputs.VERSION }}
|
|
133
|
-
draft: false
|
|
134
|
-
# Prerelease versions create prereleases on Github
|
|
135
|
-
prerelease: ${{ contains(steps.extract_release.outputs.VERSION, '-') }}
|
|
136
|
-
body: ${{ steps.extract_release.outputs.BODY }}
|
|
137
|
-
|
|
138
|
-
# # When using Sentry for error reporting, Sentry could be informed about new releases
|
|
139
|
-
# # To enable create a API-Token in Sentry (User settings, API keys)
|
|
140
|
-
# # Enter this token as a GitHub secret (with name SENTRY_AUTH_TOKEN) in the repository options
|
|
141
|
-
# # Then uncomment and customize the following block:
|
|
142
|
-
# #- name: Notify Sentry.io about the release
|
|
143
|
-
# # run: |
|
|
144
|
-
# # npm i -g @sentry/cli
|
|
145
|
-
# # export SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
146
|
-
# # export SENTRY_URL=https://sentry.iobroker.net
|
|
147
|
-
# # export SENTRY_ORG=iobroker
|
|
148
|
-
# # export SENTRY_PROJECT=iobroker-fb-checkpresence
|
|
149
|
-
# # export SENTRY_VERSION=iobroker.fb-checkpresence@${{ steps.extract_release.outputs.VERSION }}
|
|
150
|
-
# # sentry-cli releases new $SENTRY_VERSION
|
|
151
|
-
# # sentry-cli releases finalize $SENTRY_VERSION
|
|
152
|
-
# # # Add the following line BEFORE finalize if repositories are connected in Sentry
|
|
153
|
-
# # #sentry-cli releases set-commits $SENTRY_VERSION --auto
|
|
154
|
-
# # # Add the following line BEFORE finalize if sourcemap uploads are needed
|
|
155
|
-
# # #sentry-cli releases files $SENTRY_VERSION upload-sourcemaps build/
|
package/.releaseconfig.json
DELETED
package/CHANGELOG_OLD.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Older changes
|
|
2
|
-
## 0.2.0
|
|
3
|
-
* (afuerhoff) Error handling optimized, self consumption meter implemented
|
|
4
|
-
|
|
5
|
-
## 0.1.0
|
|
6
|
-
* (afuerhoff) optimizations for adding to latest repository
|
|
7
|
-
|
|
8
|
-
## 0.0.5
|
|
9
|
-
* (afuerhoff) Code optimized, unload optimized, documentation added
|
|
10
|
-
|
|
11
|
-
## 0.0.4
|
|
12
|
-
* (afuerhoff) Objects, Telnet client and checksum calculation changed
|
|
13
|
-
|
|
14
|
-
## 0.0.3
|
|
15
|
-
* (afuerhoff) inverter selection added
|
|
16
|
-
|
|
17
|
-
## 0.0.2
|
|
18
|
-
* (afuerhoff) test version
|
|
19
|
-
|
|
20
|
-
## 0.0.1
|
|
21
|
-
* (afuerhoff) initial release
|
package/admin/admin.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
declare let systemDictionary: Record<string, Record<string, string>>;
|
package/main.test.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* This is a dummy TypeScript test file using chai and mocha
|
|
5
|
-
*
|
|
6
|
-
* It's automatically excluded from npm and its build output is excluded from both git and npm.
|
|
7
|
-
* It is advised to test all your modules with accompanying *.test.js-files
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// tslint:disable:no-unused-expression
|
|
11
|
-
|
|
12
|
-
const { expect } = require("chai");
|
|
13
|
-
// import { functionToTest } from "./moduleToTest";
|
|
14
|
-
|
|
15
|
-
describe("module to test => function to test", () => {
|
|
16
|
-
// initializing logic
|
|
17
|
-
const expected = 5;
|
|
18
|
-
|
|
19
|
-
it(`should return ${expected}`, () => {
|
|
20
|
-
const result = 5;
|
|
21
|
-
// assign result a value from functionToTest
|
|
22
|
-
expect(result).to.equal(expected);
|
|
23
|
-
// or using the should() syntax
|
|
24
|
-
result.should.equal(expected);
|
|
25
|
-
});
|
|
26
|
-
// ... more tests => it
|
|
27
|
-
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// ... more test suites => describe
|
package/scripts/gulp.sh
DELETED
package/scripts/upload.sh
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/opt/iobroker/iobroker upload solarviewdatareader
|