iobroker.sbfspot 4.1.2 → 4.1.4
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/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- package/.github/workflows/test-and-release.yml +2 -2
- package/LICENSE +1 -1
- package/README.md +27 -8
- package/admin/words.js +24 -18
- package/io-package.json +96 -185
- package/lib/SMA_Bluetooth.js +27 -0
- package/main.js +9 -5
- package/package.json +17 -15
- package/sbfspot.njsproj +3 -1
|
@@ -0,0 +1,32 @@
|
|
|
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.
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
|
|
26
26
|
strategy:
|
|
27
27
|
matrix:
|
|
28
|
-
node-version: [
|
|
28
|
+
node-version: [16.x]
|
|
29
29
|
|
|
30
30
|
steps:
|
|
31
31
|
- uses: actions/checkout@v2
|
|
@@ -51,7 +51,7 @@ jobs:
|
|
|
51
51
|
runs-on: ${{ matrix.os }}
|
|
52
52
|
strategy:
|
|
53
53
|
matrix:
|
|
54
|
-
node-version: [
|
|
54
|
+
node-version: [ 16.x, 18.x]
|
|
55
55
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
56
56
|
exclude:
|
|
57
57
|
# Don't test Node.js 8 on Windows. npm is weird here
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2017-
|
|
3
|
+
Copyright (c) 2017-2023 rg-engineering info@rg-engineering.eu
|
|
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
|
@@ -51,6 +51,12 @@ sometimes npm intall must be called more then one time to successfully install a
|
|
|
51
51
|
|
|
52
52
|
## Changelog
|
|
53
53
|
|
|
54
|
+
### 4.1.4 (2023-04-07)
|
|
55
|
+
* (René) dependencies updated
|
|
56
|
+
|
|
57
|
+
### 4.1.3 (2023-01-31)
|
|
58
|
+
* (René) dependencies updated
|
|
59
|
+
|
|
54
60
|
### 4.1.2 (2022-08-20)
|
|
55
61
|
* (René) bug fix in AddObject
|
|
56
62
|
|
|
@@ -189,14 +195,27 @@ sometimes npm intall must be called more then one time to successfully install a
|
|
|
189
195
|
|
|
190
196
|
|
|
191
197
|
## License
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
MIT License
|
|
199
|
+
|
|
200
|
+
Copyright (c) 2017-2023 rg-engineering info@rg-engineering.eu
|
|
201
|
+
|
|
202
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
203
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
204
|
+
in the Software without restriction, including without limitation the rights
|
|
205
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
206
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
207
|
+
furnished to do so, subject to the following conditions:
|
|
208
|
+
|
|
209
|
+
The above copyright notice and this permission notice shall be included in all
|
|
210
|
+
copies or substantial portions of the Software.
|
|
211
|
+
|
|
212
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
213
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
214
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
215
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
216
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
217
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
218
|
+
SOFTWARE.
|
|
200
219
|
|
|
201
220
|
|
|
202
221
|
|
package/admin/words.js
CHANGED
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
/*global systemDictionary:true */
|
|
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
|
-
|
|
4
|
-
systemDictionary = {
|
|
5
|
-
"Attention": {
|
|
6
|
-
"GetDataOnlyWhenDaylight": {
|
|
7
|
-
"install_date": {
|
|
8
|
-
"install_date_desc": {
|
|
9
|
-
"path_to_DB_file": {
|
|
10
|
-
"path_to_DB_file_descr": {
|
|
11
|
-
"sbfspot_DB_IP": {
|
|
12
|
-
"sbfspot_DB_IP_descr": {
|
|
13
|
-
"sbfspot_DB_databasename": {
|
|
14
|
-
"sbfspot_DB_password": {
|
|
15
|
-
"sbfspot_DB_port": {
|
|
16
|
-
"sbfspot_DB_port_descr": {
|
|
17
|
-
"sbfspot_DB_user": {
|
|
18
|
-
"sbfspot_adapter_settings": {
|
|
19
|
-
"type_of_DB": {
|
|
9
|
+
|
|
10
|
+
systemDictionary = {
|
|
11
|
+
"Attention": { "en": "adapter, sbfspot and database should run on the same system", "de": "adapter, sbfspot und database sollten auf demselben system laufen", "ru": "адаптер, sbfspot и база данных должны работать в одной системе", "pt": "adaptador, sbfspot e banco de dados devem ser executados no mesmo sistema", "nl": "adapter, sbfspot en database moeten op hetzelfde systeem worden uitgevoerd", "fr": "L'adaptateur, sbfspot et la base de données doivent fonctionner sur le même système", "it": "adattatore, sbfspot e database dovrebbero essere eseguiti sullo stesso sistema", "es": "adaptador, sbfspot y base de datos deben ejecutarse en el mismo sistema", "pl": "adapter, sbfspot i baza danych powinny działać w tym samym systemie", "uk": "адаптер, sbfspot і база даних повинні працювати в одній системі", "zh-cn": "适配器,sbfspot和数据库应在同一系统上运行"},
|
|
12
|
+
"GetDataOnlyWhenDaylight": { "en": "get data only when daylight", "de": "Daten nur bei Tageslicht abrufen", "ru": "получать данные только при дневном свете", "pt": "obtenha dados somente quando a luz do dia", "nl": "krijg alleen gegevens bij daglicht", "fr": "obtenir des données uniquement lorsque la lumière du jour", "it": "ottenere i dati solo alla luce del giorno", "es": "obtener datos solo cuando la luz del día", "pl": "odbieraj dane tylko przy świetle dziennym", "uk": "отримувати дані тільки вдень", "zh-cn": "仅在白天时获取数据"},
|
|
13
|
+
"install_date": { "en": "install date PV-System", "de": "Installationsdatum PV-Anlage", "ru": "дата установки PV-система", "pt": "data de instalação PV-System", "nl": "installeer datum PV-systeem", "fr": "date d'installation PV-System", "it": "installare data PV-System", "es": "fecha de instalación PV-System", "pl": "data instalacji PV-System", "uk": "дата встановлення PV-системи", "zh-cn": "安装日期PV-System"},
|
|
14
|
+
"install_date_desc": { "en": "used for calculation of history in vis widget", "de": "verwendet für die Berechnung der Geschichte in vis Widget", "ru": "используется для расчета истории в виджетах", "pt": "usado para calcular o histórico no vis widget", "nl": "gebruikt voor de berekening van de geschiedenis in vis widget", "fr": "utilisé pour le calcul de l'histoire dans vis widget", "it": "utilizzato per il calcolo della cronologia nel widget vis", "es": "utilizado para el cálculo de la historia en el widget vis", "pl": "służy do obliczania historii w widgecie vis", "uk": "використовується для обчислення історії у віджеті vis", "zh-cn": "用于计算vis小部件中的历史记录"},
|
|
15
|
+
"path_to_DB_file": { "en": "path to sqlite database file", "de": "Pfad zur SQLite-Datenbankdatei", "ru": "путь к файлу базы данных sqlite", "pt": "caminho para o arquivo de banco de dados sqlite", "nl": "pad naar sqlite databasebestand", "fr": "chemin vers le fichier de base de données sqlite", "it": "percorso per il file di database sqlite", "es": "ruta al archivo de base de datos sqlite", "pl": "ścieżka do pliku bazy danych sqlite", "uk": "шлях до файлу бази даних sqlite", "zh-cn": "sqlite数据库文件的路径"},
|
|
16
|
+
"path_to_DB_file_descr": { "en": "enter the complete path incl. database file name e.g. /home/pi/sbfspot/smadata/SBFspot.db", "de": "geben Sie den kompletten Pfad inkl. Datenbankdateiname z.B. /home/pi/sbfspot/smadata/SBFspot.db", "ru": "введите полный путь, включая. имя файла базы данных, например. /home/pi/sbfspot/smadata/SBFspot.db", "pt": "insira o caminho completo incl. nome do arquivo do banco de dados, e. /home/pi/sbfspot/smadata/SBFspot.db", "nl": "vul het complete pad in incl. databasebestandsnaam, b.v. /home/pi/sbfspot/smadata/SBFspot.db", "fr": "entrez le chemin complet incl. nom de fichier de base de données, par ex. /home/pi/sbfspot/smadata/SBFspot.db", "it": "inserisci il percorso completo incl. nome del file di database, ad es. /home/pi/sbfspot/smadata/SBFspot.db", "es": "ingrese la ruta completa incl. nombre de archivo de base de datos, p. /home/pi/sbfspot/smadata/SBFspot.db", "pl": "wprowadź pełną ścieżkę włącznie nazwa pliku bazy danych, np. /home/pi/sbfspot/smadata/SBFspot.db", "uk": "введіть повний шлях, вкл. назва файлу бази даних, напр. /home/pi/sbfspot/smadata/SBFspot.db", "zh-cn": "输入完整的路径,包括"},
|
|
17
|
+
"sbfspot_DB_IP": { "en": "database IP", "de": "Datenbank-IP", "ru": "IP-адрес", "pt": "banco de dadosL", "nl": "database IP", "fr": "base de données IP", "it": "IP del databaseL", "es": "base de datos IP", "pl": "IP bazy danych", "uk": "IP бази даних", "zh-cn": "数据库IP"},
|
|
18
|
+
"sbfspot_DB_IP_descr": { "en": "you can use 'localhost' as IP", "de": "Sie können \"localhost\" als IP verwenden", "ru": "вы можете использовать «localhost» в качестве IP-адреса", "pt": "você pode usar 'localhost' como IP", "nl": "u kunt 'localhost' als IP gebruiken", "fr": "vous pouvez utiliser 'localhost' comme adresse IP", "it": "puoi usare 'localhost' come IP", "es": "puedes usar 'localhost' como IP", "pl": "możesz użyć \"localhost\" jako IP", "uk": "ви можете використовувати 'localhost' як IP", "zh-cn": "您可以使用“本地主机”作为IP"},
|
|
19
|
+
"sbfspot_DB_databasename": { "en": "database name", "de": "Datenbank-Name", "ru": "Имя базы данных", "pt": "Nome do banco de dados", "nl": "databasenaam", "fr": "Nom de la base de données", "it": "nome del database", "es": "nombre de la base de datos", "pl": "nazwa bazy danych", "uk": "ім'я бази даних", "zh-cn": "数据库名称"},
|
|
20
|
+
"sbfspot_DB_password": { "en": "database password", "de": "Datenbankkennwort", "ru": "пароль базы данных", "pt": "senha do banco de dados", "nl": "database wachtwoord", "fr": "Mot de passe de base de données", "it": "password del database", "es": "contraseña de la base de datos", "pl": "Hasło bazy danychL", "uk": "пароль бази даних", "zh-cn": "数据库密码"},
|
|
21
|
+
"sbfspot_DB_port": { "en": "database port", "de": "Datenbankport", "ru": "Порт базы данных", "pt": "Porta da base de dados", "nl": "MariaDB databasepoort", "fr": "Port de base de données", "it": "Porta del database", "es": "Puerto de base de datos", "pl": "Port bazy danych", "uk": "порт бази даних", "zh-cn": "数据库端口"},
|
|
22
|
+
"sbfspot_DB_port_descr": { "en": "default 3306", "de": "Standard 3306", "ru": "по умолчанию 3306", "pt": "padrão 3306", "nl": "standaard 3306", "fr": "par défaut 3306", "it": "predefinito 3306", "es": "predeterminado 3306", "pl": "domyślnie 3306", "uk": "за замовчуванням 3306", "zh-cn": "默认值3306"},
|
|
23
|
+
"sbfspot_DB_user": { "en": "database user", "de": "Benutzer der Datenbank", "ru": "Пользователь базы данных ", "pt": "usuário do banco de dados", "nl": "mySQL-databasegebruiker", "fr": "utilisateur de base de données", "it": "utente del database", "es": "usuario de la base de datos", "pl": "użytkownik bazy danych", "uk": "користувач бази даних", "zh-cn": "数据库用户"},
|
|
24
|
+
"sbfspot_adapter_settings": { "en": "sbfspot adapter settings", "de": "sbfspot Adapter Einstellungen", "ru": "Настройки адаптера sbfspot", "pt": "Configurações do adaptador sbfspot", "nl": "sbfspot-adapterinstellingen", "fr": "Paramètres de l'adaptateur sbfspot", "it": "impostazioni dell'adattatore sbfspot", "es": "Configuración del adaptador sbfspot", "pl": "Ustawienia adaptera sbfspot", "uk": "налаштування адаптера sbfspot", "zh-cn": "sbfspot适配器设置"},
|
|
25
|
+
"type_of_DB": { "en": "type of database", "de": "Type der Datenbank", "ru": "тип базы данных", "pt": "tipo de banco de dados", "nl": "type database", "fr": "type de base de données", "it": "tipo di database", "es": "tipo de base de datos", "pl": "typ bazy danych", "uk": "тип бази даних", "zh-cn": "数据库类型"},
|
|
20
26
|
};
|
package/io-package.json
CHANGED
|
@@ -1,185 +1,96 @@
|
|
|
1
|
-
{
|
|
2
|
-
"common": {
|
|
3
|
-
"name": "sbfspot",
|
|
4
|
-
"version": "4.1.
|
|
5
|
-
"news": {
|
|
6
|
-
"4.1.
|
|
7
|
-
"en": "
|
|
8
|
-
"de": "
|
|
9
|
-
"ru": "
|
|
10
|
-
"pt": "
|
|
11
|
-
"nl": "
|
|
12
|
-
"fr": "
|
|
13
|
-
"it": "
|
|
14
|
-
"es": "
|
|
15
|
-
"pl": "
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
"it": "rilavorazione per \"asincrona / attendi\"",
|
|
98
|
-
"es": "retrabajo a \"async / wait\"",
|
|
99
|
-
"pl": "przerobienie na „async / await”",
|
|
100
|
-
"zh-cn": "返工为“异步/等待”"
|
|
101
|
-
},
|
|
102
|
-
"3.0.0": {
|
|
103
|
-
"en": "package sqlite3 replaced",
|
|
104
|
-
"de": "Paket sqlite3 ersetzt",
|
|
105
|
-
"ru": "пакет sqlite3 заменен",
|
|
106
|
-
"pt": "pacote sqlite3 substituído",
|
|
107
|
-
"nl": "pakket sqlite3 vervangen",
|
|
108
|
-
"fr": "paquet sqlite3 remplacé",
|
|
109
|
-
"it": "pacchetto sqlite3 sostituito",
|
|
110
|
-
"es": "paquete sqlite3 reemplazado",
|
|
111
|
-
"pl": "pakiet sqlite3 zastąpiony",
|
|
112
|
-
"zh-cn": "软件包sqlite3替换为"
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
"title": "SMA inverter (sbfspot)",
|
|
116
|
-
"titleLang": {
|
|
117
|
-
"en": "SMA inverter (sbfspot)",
|
|
118
|
-
"de": "SMA Wechselrichter (sbfspot)",
|
|
119
|
-
"ru": "Преобразователь SMA (sbfspot)",
|
|
120
|
-
"pt": "SMA inversor (sbfspot)",
|
|
121
|
-
"nl": "SMA-omvormer (sbfspot)",
|
|
122
|
-
"fr": "d'onduleur SMA (sbfspot)",
|
|
123
|
-
"it": "Inverter SMA (sbfspot)",
|
|
124
|
-
"es": "Inversor SMA (sbfspot)",
|
|
125
|
-
"pl": "Falownika SMA (sbfspot)",
|
|
126
|
-
"zh-cn": "SMA逆变器(sbfspot)"
|
|
127
|
-
},
|
|
128
|
-
"desc": {
|
|
129
|
-
"en": "SMA inverter (sbfspot) Adapter with vis widget",
|
|
130
|
-
"de": "SMA-Wechselrichter (sbfspot) Adapter mit Vis-Widget",
|
|
131
|
-
"ru": "Преобразователь SMA (sbfspot) с vis-виджетами",
|
|
132
|
-
"pt": "Inversor SMA (sbfspot) Adaptador com vis widget",
|
|
133
|
-
"nl": "SMA-omvormer (sbfspot) Adapter met vis-widget",
|
|
134
|
-
"fr": "SMA inverter (sbfspot) Adaptateur avec vis widget",
|
|
135
|
-
"it": "Adattatore SMA (sbfspot) Adattatore con widget vis",
|
|
136
|
-
"es": "Adaptador de inversor SMA (sbfspot) con widget de vis",
|
|
137
|
-
"pl": "Adapter falownika SMA (sbfspot) z wid?etem vis",
|
|
138
|
-
"zh-cn": "带有vis小部件的SMA逆变器(sbfspot)适配器"
|
|
139
|
-
},
|
|
140
|
-
"platform": "Javascript/Node.js",
|
|
141
|
-
"mode": "schedule",
|
|
142
|
-
"schedule": "*/15 * * * *",
|
|
143
|
-
"icon": "sbfspot.png",
|
|
144
|
-
"enabled": true,
|
|
145
|
-
"messagebox": true,
|
|
146
|
-
"extIcon": "https://raw.githubusercontent.com/rg-engineering/ioBroker.sbfspot/master/admin/sbfspot.png",
|
|
147
|
-
"keywords": [
|
|
148
|
-
"sbfspot"
|
|
149
|
-
],
|
|
150
|
-
"readme": "https://github.com/rg-engineering/ioBroker.sbfspot/blob/master/README.md",
|
|
151
|
-
"loglevel": "info",
|
|
152
|
-
"stopBeforeUpdate": true,
|
|
153
|
-
"type": "hardware",
|
|
154
|
-
"license": "MIT",
|
|
155
|
-
"materialize": true,
|
|
156
|
-
"plugins": {
|
|
157
|
-
"sentry": {
|
|
158
|
-
"dsn": "https://5369ea829c024fdf92b71a7b82f1f410@o390433.ingest.sentry.io/5434783"
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
"compact": true,
|
|
162
|
-
"authors": [
|
|
163
|
-
{
|
|
164
|
-
"name": "René G.",
|
|
165
|
-
"email": "info@rg-engineering.eu"
|
|
166
|
-
}
|
|
167
|
-
],
|
|
168
|
-
"connectionType": "local",
|
|
169
|
-
"dataSource": "push",
|
|
170
|
-
"adminUI": {
|
|
171
|
-
"config": "materialize"
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
"native": {
|
|
175
|
-
"sbfspotIP": "localhost",
|
|
176
|
-
"sbfspotPort": 3306,
|
|
177
|
-
"sbfspotUser": "SBFspotUser",
|
|
178
|
-
"sbfspotPassword": "",
|
|
179
|
-
"sbfspotDatabasename": "SBFspot",
|
|
180
|
-
"databasetype": "mySQL",
|
|
181
|
-
"sqlite_path": "",
|
|
182
|
-
"install_date": "2001-08-25",
|
|
183
|
-
"GetDataOnlyWhenDaylight": true
|
|
184
|
-
}
|
|
185
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"name": "sbfspot",
|
|
4
|
+
"version": "4.1.4",
|
|
5
|
+
"news": {
|
|
6
|
+
"4.1.4": {
|
|
7
|
+
"en": "dependencies updated",
|
|
8
|
+
"de": "Abhängigkeiten aktualisiert",
|
|
9
|
+
"ru": "зависимости обновлены",
|
|
10
|
+
"pt": "dependências atualizadas",
|
|
11
|
+
"nl": "afhankelijkheden bijgewerkt",
|
|
12
|
+
"fr": "dépendances mises à jour",
|
|
13
|
+
"it": "dipendenze aggiornate",
|
|
14
|
+
"es": "dependencias actualizadas",
|
|
15
|
+
"pl": "zaktualizowane zależności",
|
|
16
|
+
"uk": "залежності оновлено",
|
|
17
|
+
"zh-cn": "依赖更新"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"titleLang": {
|
|
21
|
+
"en": "SMA inverter (sbfspot)",
|
|
22
|
+
"de": "SMA Wechselrichter (sbfspot)",
|
|
23
|
+
"ru": "Преобразователь SMA (sbfspot)",
|
|
24
|
+
"pt": "SMA inversor (sbfspot)",
|
|
25
|
+
"nl": "SMA-omvormer (sbfspot)",
|
|
26
|
+
"fr": "d'onduleur SMA (sbfspot)",
|
|
27
|
+
"it": "Inverter SMA (sbfspot)",
|
|
28
|
+
"es": "Inversor SMA (sbfspot)",
|
|
29
|
+
"pl": "Falownika SMA (sbfspot)",
|
|
30
|
+
"zh-cn": "SMA逆变器(sbfspot)",
|
|
31
|
+
"uk": "SMA інвертор (sbfspot)"
|
|
32
|
+
},
|
|
33
|
+
"desc": {
|
|
34
|
+
"en": "SMA inverter (sbfspot) Adapter with vis widget",
|
|
35
|
+
"de": "SMA-Wechselrichter (sbfspot) Adapter mit Vis-Widget",
|
|
36
|
+
"ru": "Преобразователь SMA (sbfspot) с vis-виджетами",
|
|
37
|
+
"pt": "Inversor SMA (sbfspot) Adaptador com vis widget",
|
|
38
|
+
"nl": "SMA-omvormer (sbfspot) Adapter met vis-widget",
|
|
39
|
+
"fr": "SMA inverter (sbfspot) Adaptateur avec vis widget",
|
|
40
|
+
"it": "Adattatore SMA (sbfspot) Adattatore con widget vis",
|
|
41
|
+
"es": "Adaptador de inversor SMA (sbfspot) con widget de vis",
|
|
42
|
+
"pl": "Adapter falownika SMA (sbfspot) z wid?etem vis",
|
|
43
|
+
"zh-cn": "带有vis小部件的SMA逆变器(sbfspot)适配器",
|
|
44
|
+
"uk": "Адаптер інвертора SMA (sbfspot) із віджетом vis"
|
|
45
|
+
},
|
|
46
|
+
"platform": "Javascript/Node.js",
|
|
47
|
+
"mode": "schedule",
|
|
48
|
+
"schedule": "*/15 * * * *",
|
|
49
|
+
"icon": "sbfspot.png",
|
|
50
|
+
"enabled": true,
|
|
51
|
+
"messagebox": true,
|
|
52
|
+
"extIcon": "https://raw.githubusercontent.com/rg-engineering/ioBroker.sbfspot/master/admin/sbfspot.png",
|
|
53
|
+
"keywords": [
|
|
54
|
+
"sbfspot"
|
|
55
|
+
],
|
|
56
|
+
"readme": "https://github.com/rg-engineering/ioBroker.sbfspot/blob/master/README.md",
|
|
57
|
+
"loglevel": "info",
|
|
58
|
+
"stopBeforeUpdate": true,
|
|
59
|
+
"type": "hardware",
|
|
60
|
+
"license": "MIT",
|
|
61
|
+
"materialize": true,
|
|
62
|
+
"dependencies": [
|
|
63
|
+
{
|
|
64
|
+
"js-controller": ">=2.0.0"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"plugins": {
|
|
68
|
+
"sentry": {
|
|
69
|
+
"dsn": "https://5369ea829c024fdf92b71a7b82f1f410@o390433.ingest.sentry.io/5434783"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"compact": true,
|
|
73
|
+
"authors": [
|
|
74
|
+
{
|
|
75
|
+
"name": "René G.",
|
|
76
|
+
"email": "info@rg-engineering.eu"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"connectionType": "local",
|
|
80
|
+
"dataSource": "push",
|
|
81
|
+
"adminUI": {
|
|
82
|
+
"config": "materialize"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"native": {
|
|
86
|
+
"sbfspotIP": "localhost",
|
|
87
|
+
"sbfspotPort": 3306,
|
|
88
|
+
"sbfspotUser": "SBFspotUser",
|
|
89
|
+
"sbfspotPassword": "",
|
|
90
|
+
"sbfspotDatabasename": "SBFspot",
|
|
91
|
+
"databasetype": "mySQL",
|
|
92
|
+
"sqlite_path": "",
|
|
93
|
+
"install_date": "2001-08-25",
|
|
94
|
+
"GetDataOnlyWhenDaylight": true
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const bluetooth = require('node-bluetooth');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
let parentAdapter;
|
|
6
|
+
|
|
7
|
+
function test(adapter) {
|
|
8
|
+
|
|
9
|
+
parentAdapter = adapter;
|
|
10
|
+
|
|
11
|
+
const device = new bluetooth.DeviceINQ();
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
device
|
|
15
|
+
.on('finished', function () {
|
|
16
|
+
parentAdapter.log.warn("finished ");
|
|
17
|
+
})
|
|
18
|
+
.on('found', function found(address, name) {
|
|
19
|
+
parentAdapter.log.warn('Found: ' + address + ' with name ' + name);
|
|
20
|
+
}).scan();
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
module.exports = {
|
|
26
|
+
test
|
|
27
|
+
}
|
package/main.js
CHANGED
|
@@ -18,7 +18,7 @@ const utils = require("@iobroker/adapter-core");
|
|
|
18
18
|
//const { json } = require("stream/consumers");
|
|
19
19
|
const SunCalc = require("suncalc2");
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
//const bluetooth_test = require("./lib/SMA_Bluetooth").test;
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
let adapter;
|
|
@@ -56,7 +56,11 @@ let killTimer;
|
|
|
56
56
|
|
|
57
57
|
async function main() {
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
|
|
60
|
+
//bluetooth_test();
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if (adapter.config.databasetype === undefined) {
|
|
60
64
|
adapter.log.error("databasetype not defined. check and update settings and save");
|
|
61
65
|
adapter.terminate ? adapter.terminate(11) : process.exit(11);
|
|
62
66
|
}
|
|
@@ -187,7 +191,7 @@ async function GetSystemDateformat() {
|
|
|
187
191
|
try {
|
|
188
192
|
const ret = await adapter.getForeignObjectAsync("system.config");
|
|
189
193
|
|
|
190
|
-
if (
|
|
194
|
+
if (ret !== undefined && ret != null) {
|
|
191
195
|
//dateformat = ret.common.dateFormat;
|
|
192
196
|
longitude = ret.common.longitude;
|
|
193
197
|
latitude = ret.common.latitude;
|
|
@@ -1116,11 +1120,11 @@ function DB_Disconnect() {
|
|
|
1116
1120
|
|
|
1117
1121
|
adapter.log.debug("disconnect database");
|
|
1118
1122
|
if (adapter.config.databasetype == "mySQL" || adapter.config.databasetype == "MariaDB") {
|
|
1119
|
-
if (
|
|
1123
|
+
if (mysql_connection !== undefined && mysql_connection != null) {
|
|
1120
1124
|
mysql_connection.end();
|
|
1121
1125
|
}
|
|
1122
1126
|
} else {
|
|
1123
|
-
if (
|
|
1127
|
+
if (sqlite_db !== undefined && sqlite_db != null) {
|
|
1124
1128
|
sqlite_db.close();
|
|
1125
1129
|
}
|
|
1126
1130
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.sbfspot",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.4",
|
|
4
4
|
"description": "sbfspot (SMA inverter) Adapter",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "René G.",
|
|
@@ -18,30 +18,31 @@
|
|
|
18
18
|
"url": "https://github.com/rg-engineering/ioBroker.sbfspot"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@iobroker/adapter-core": "2.6.
|
|
22
|
-
"better-sqlite3": "
|
|
23
|
-
"mysql2": "2.
|
|
21
|
+
"@iobroker/adapter-core": "2.6.8",
|
|
22
|
+
"better-sqlite3": "8.2.0",
|
|
23
|
+
"mysql2": "3.2.0",
|
|
24
24
|
"suncalc2": "1.8.1"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@iobroker/
|
|
28
|
-
"@
|
|
27
|
+
"@iobroker/adapter-dev": "1.2.0",
|
|
28
|
+
"@iobroker/testing": "4.1.0",
|
|
29
|
+
"@types/chai": "4.3.4",
|
|
29
30
|
"@types/chai-as-promised": "7.1.5",
|
|
30
|
-
"@types/gulp": "4.0.
|
|
31
|
-
"@types/mocha": "
|
|
32
|
-
"@types/node": "18.
|
|
31
|
+
"@types/gulp": "4.0.10",
|
|
32
|
+
"@types/mocha": "10.0.1",
|
|
33
|
+
"@types/node": "18.15.11",
|
|
33
34
|
"@types/proxyquire": "1.3.28",
|
|
34
35
|
"@types/request-promise-native": "1.0.18",
|
|
35
36
|
"@types/sinon": "10.0.13",
|
|
36
|
-
"@types/sinon-chai": "3.2.
|
|
37
|
+
"@types/sinon-chai": "3.2.9",
|
|
37
38
|
"axios": "0.27.2",
|
|
38
|
-
"chai": "4.3.
|
|
39
|
+
"chai": "4.3.7",
|
|
39
40
|
"chai-as-promised": "7.1.1",
|
|
40
|
-
"eslint": "8.
|
|
41
|
+
"eslint": "8.37.0",
|
|
41
42
|
"gulp": "4.0.2",
|
|
42
|
-
"mocha": "10.
|
|
43
|
+
"mocha": "10.2.0",
|
|
43
44
|
"proxyquire": "2.1.3",
|
|
44
|
-
"sinon": "
|
|
45
|
+
"sinon": "15.0.3",
|
|
45
46
|
"sinon-chai": "3.7.0"
|
|
46
47
|
},
|
|
47
48
|
"main": "main.js",
|
|
@@ -53,7 +54,8 @@
|
|
|
53
54
|
"test:package": "mocha test/package --exit",
|
|
54
55
|
"test:unit": "mocha test/unit --exit",
|
|
55
56
|
"test:integration": "mocha test/integration --exit",
|
|
56
|
-
"lint": "eslint"
|
|
57
|
+
"lint": "eslint",
|
|
58
|
+
"translate": "translate-adapter"
|
|
57
59
|
},
|
|
58
60
|
"readmeFilename": "README.md"
|
|
59
61
|
}
|
package/sbfspot.njsproj
CHANGED
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
<Compile Include="admin\words.js">
|
|
22
22
|
<SubType>Code</SubType>
|
|
23
23
|
</Compile>
|
|
24
|
-
<Compile Include="gulpfile.js" />
|
|
25
24
|
<Compile Include="main.js" />
|
|
26
25
|
<Compile Include="test\integration.js" />
|
|
27
26
|
<Compile Include="test\mocha.setup.js" />
|
|
@@ -50,6 +49,9 @@
|
|
|
50
49
|
<Content Include="docs\en\install_arm.md">
|
|
51
50
|
<SubType>Code</SubType>
|
|
52
51
|
</Content>
|
|
52
|
+
<Content Include="lib\SMA_Bluetooth.js">
|
|
53
|
+
<SubType>Code</SubType>
|
|
54
|
+
</Content>
|
|
53
55
|
<Content Include="lib\tools.js">
|
|
54
56
|
<SubType>Code</SubType>
|
|
55
57
|
</Content>
|