iobroker.tibberlink 7.0.0 → 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -38
- package/admin/i18n/de.json +15 -2
- package/admin/i18n/en.json +15 -2
- package/admin/i18n/es.json +14 -1
- package/admin/i18n/fr.json +14 -1
- package/admin/i18n/it.json +14 -1
- package/admin/i18n/nl.json +14 -1
- package/admin/i18n/pl.json +14 -1
- package/admin/i18n/pt.json +14 -1
- package/admin/i18n/ru.json +14 -1
- package/admin/i18n/uk.json +14 -1
- package/admin/i18n/zh-cn.json +14 -1
- package/admin/jsonConfig.json +106 -0
- package/build/lib/tibberAPICaller.js +21 -33
- package/build/lib/tibberAPICaller.js.map +1 -1
- package/build/lib/tibberCalculator.js +17 -17
- package/build/lib/tibberCalculator.js.map +1 -1
- package/build/lib/tibberCharts.js.map +1 -1
- package/build/lib/tibberDataAPI.js +264 -0
- package/build/lib/tibberDataAPI.js.map +1 -0
- package/build/lib/tibberLocal.js +23 -23
- package/build/lib/tibberLocal.js.map +1 -1
- package/build/lib/tibberPulse.js +2 -0
- package/build/lib/tibberPulse.js.map +1 -1
- package/build/main.js +21 -0
- package/build/main.js.map +1 -1
- package/io-package.json +35 -29
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
|
|
27
27
|
[](https://nodei.co/npm/iobroker.tibberlink/)
|
|
28
28
|
|
|
29
|
-
## Adapter for Utilizing
|
|
29
|
+
## Adapter for Utilizing Tibber Energy Data in ioBroker
|
|
30
30
|
|
|
31
|
-
This adapter
|
|
32
|
-
|
|
31
|
+
This adapter connects your Tibber account's API data to ioBroker, whether for a single home or multiple residences.
|
|
32
|
+
It also supports direct local reading of the Tibber Pulse sensor via your home network, enabling real-time monitoring and data collection without relying solely on the cloud API.
|
|
33
33
|
|
|
34
34
|
If you're not currently a Tibber user, I would greatly appreciate it if you could use my referral link: [Tibber Referral Link](https://invite.tibber.com/mu8c82n5).
|
|
35
35
|
|
|
@@ -38,24 +38,32 @@ If you're not currently a Tibber user, I would greatly appreciate it if you coul
|
|
|
38
38
|
- Begin by creating a new instance of the adapter.
|
|
39
39
|
- You'll also require an API token from Tibber, which you can obtain here: [Tibber Developer API](https://developer.tibber.com).
|
|
40
40
|
- Enter your Tibber API token in the standard settings and configure at least one line for live feed settings (select "None available").
|
|
41
|
-
- Save the settings and exit the configuration to restart the adapter; this step allows your home(s) to be queried the first time from the Tibber server.
|
|
41
|
+
- Save the settings and exit the configuration to restart the adapter; this step allows your home(s) to be queried for the first time from the Tibber server.
|
|
42
42
|
- Return to the configuration screen and select the homes from which you wish to fetch real-time data using your Tibber Pulse. You can also select homes and disable the feed (Note: This works only if the hardware is installed and the Tibber server has verified the connection to Pulse).
|
|
43
|
-
- Note: If you have more than one home
|
|
44
|
-
- You have the option to deactivate the retrieval of price data for today and tomorrow, for instance, if you only intend to
|
|
43
|
+
- Note: If you have more than one home in your Tibber account, you must add all of them to avoid error messages caused by homes that may not be needed. Add them all and disable the unwanted ones.
|
|
44
|
+
- You have the option to deactivate the retrieval of price data for today and tomorrow, for instance, if you only intend to use the Pulse live feed.
|
|
45
45
|
- Optionally, you can enable the retrieval of historical consumption data. Please specify the number of datasets for hours, days, weeks, months, and years. You can use "0" to disable one or more of these intervals based on your preferences.
|
|
46
|
-
- Note: It's essential to be mindful of the dataset size, as excessively large requests may result in
|
|
46
|
+
- Note: It's essential to be mindful of the dataset size, as excessively large requests may result in no response from the Tibber Server. We recommend experimenting with the dataset size to ensure optimal functionality. Adjusting the intervals and dataset numbers can help strike the right balance between obtaining insightful data and maintaining server responsiveness. For example, 48 is a recommended value for hours.
|
|
47
47
|
- Save the settings.
|
|
48
48
|
|
|
49
|
+
## Consumption Data Documentation
|
|
50
|
+
|
|
51
|
+
When daily historical consumption is enabled, the adapter provides an aggregated state for the current month:
|
|
52
|
+
|
|
53
|
+
- `Homes.<HOME-ID>.Consumption.currentMonthConsumption`
|
|
54
|
+
|
|
55
|
+
This state is the total consumption for the current calendar month in `kWh`, calculated from the daily consumption data returned by Tibber. If too few days are configured, the value will only reflect that number of days — not a complete month.
|
|
56
|
+
|
|
49
57
|
## Calculator Configuration
|
|
50
58
|
|
|
51
59
|
- Now that the Tibber connection is up and running, you can also leverage the Calculator to incorporate additional automation features into the TibberLink adapter.
|
|
52
60
|
- The Calculator operates using channels, with each channel linked to a selected home.
|
|
53
61
|
- These states are designed to serve as external, dynamic inputs for TibberLink, allowing you to, for example, adjust the marginal cost ("TriggerPrice") from an external source or enable the calculator channel ("Active").
|
|
54
62
|
- These channels have to be activated or deactivated based on corresponding states.
|
|
55
|
-
- The states of a calculator channel are positioned adjacent to the home states and named according to the channel number.
|
|
56
|
-
|
|
63
|
+
- The states of a calculator channel are positioned adjacent to the home states and named according to the channel number. The channel name entered in the admin screen is displayed here to help identify your configurations.
|
|
64
|
+
<img src="docu/calculatorStates.png" width="938" alt="Calculator States">
|
|
57
65
|
- The behavior of each channel is determined by its type: "best cost (LTF)", "best single hours (LTF)", "best hours block (LTF)" or "smart battery buffer".
|
|
58
|
-
- Each channel populates one or two external states as output, which
|
|
66
|
+
- Each channel populates one or two external states as output, which have to be selected in the settings tab. For instance, this state might be "0_userdata.0.example_state" or any other writeable external state.
|
|
59
67
|
- If no external output state is selected, an internal state within the channel's range will be created.
|
|
60
68
|
- The values to be written to the output state can be defined in "value YES" and "value NO," e.g., "true" for boolean states or a number or text to be written.
|
|
61
69
|
- Outputs:
|
|
@@ -76,18 +84,17 @@ If you're not currently a Tibber user, I would greatly appreciate it if you coul
|
|
|
76
84
|
- Expensive timeslots: Battery charging is disabled (value NO) and feed into the home energy system is enabled (value 2 YES). These slots have the highest prices, above the dynamically calculated threshold based on the cheapest timeslot prices and efficiency loss.
|
|
77
85
|
- Normal timeslots: Where charging is not economically viable, both outputs are disabled.
|
|
78
86
|
- This approach ensures that the battery is only used when it is economically beneficial, rather than strictly adhering to a fixed number of hours.
|
|
79
|
-
- LTF channels: These operate similarly to standard channels but are active only within a time frame defined by the 'StartTime' and 'StopTime' state objects. After 'StopTime,' the channel automatically deactivates. 'StartTime' and 'StopTime' can span two calendar days, as Tibber does not provide data beyond a 48-hour window. Both states require a date-time string in ISO-8601 format with a timezone offset, e.g., '2024-12-24T18:00:00.000+01:00'.
|
|
87
|
+
- LTF channels: These operate similarly to standard channels but are active only within a time frame defined by the 'StartTime' and 'StopTime' state objects. After 'StopTime,' the channel automatically deactivates. 'StartTime' and 'StopTime' can span two calendar days, as Tibber does not provide data beyond a 48-hour window. Both states require a date-time string in ISO-8601 format with a timezone offset, e.g., '2024-12-24T18:00:00.000+01:00'. Additionally, the LTF channels feature a new state parameter called 'RepeatDays,' which defaults to 0. When 'RepeatDays' is set to a positive integer, the channel will repeat its cycle by incrementing both 'StartTime' and 'StopTime' by the specified number of days after 'StopTime' is reached. For example, set 'RepeatDays' to 1 for daily repetition.
|
|
80
88
|
|
|
81
89
|
## Graph Output Configuration
|
|
82
90
|
|
|
83
|
-
The adapter helps visualize price trends and calculator results. It provides three levels of complexity
|
|
84
|
-
These three methods provide various options for visualizing price trends and calculator results. Depending on your requirements, you can choose from a simple JSON-based approach to a fully customized JavaScript solution.
|
|
91
|
+
The adapter helps visualize price trends and calculator results. It provides three levels of complexity — from a simple JSON-based approach to a fully customized JavaScript solution.
|
|
85
92
|
|
|
86
93
|
### 1. **(Under Development) Visualization using the "E-Charts" Adapter**
|
|
87
94
|
|
|
88
95
|
This method requires the "E-Charts" adapter to be installed separately.
|
|
89
96
|
|
|
90
|
-
- JSON data
|
|
97
|
+
- JSON data generated in the Calculator States section (`Output-E-Charts`) can be used.
|
|
91
98
|
- The capabilities are limited by the constraints of the E-Charts adapter.
|
|
92
99
|
|
|
93
100
|
### 2. **Using the "FlexCharts" (or "Fully Featured eCharts") Adapter with JSON**
|
|
@@ -96,13 +103,13 @@ This method requires the "FlexCharts" adapter to be installed separately.
|
|
|
96
103
|
|
|
97
104
|
- The TibberLink adapter creates a state called `jsonFlexCharts`.
|
|
98
105
|
|
|
99
|
-
|
|
106
|
+
<img src="docu/jsonFlexChartsState.png" width="938" alt="jsonFlexCharts State">
|
|
100
107
|
|
|
101
108
|
- The FlexCharts adapter renders this state via the following URL:
|
|
102
109
|
```
|
|
103
110
|
http://[YOUR IP of FLEXCHARTS]:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.[TIBBER-HOME-ID].PricesTotal.jsonFlexCharts
|
|
104
111
|
```
|
|
105
|
-
- Starting with V0.7.0 FlexCharts supports automatic chart updates via SSE (Server
|
|
112
|
+
- Starting with V0.7.0, FlexCharts supports automatic chart updates via SSE (Server-Sent Events). To use this add `&sse` to the URL:
|
|
106
113
|
```
|
|
107
114
|
http://[YOUR IP of FLEXCHARTS]:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.[TIBBER-HOME-ID].PricesTotal.jsonFlexCharts&sse=30
|
|
108
115
|
```
|
|
@@ -111,16 +118,16 @@ This method requires the "FlexCharts" adapter to be installed separately.
|
|
|
111
118
|
#### **JSON Template Usage**
|
|
112
119
|
|
|
113
120
|
- The `jsonFlexCharts` state is generated based on a template configured via the JSON editor in the adapter settings.
|
|
114
|
-
-
|
|
121
|
+
- The built-in JSON editor uses JSON5 mode, so comments and trailing commas are permitted.
|
|
115
122
|
- A sample template can be downloaded from: [TemplateFlexChart01.md](docu/TemplateFlexChart01.md).
|
|
116
123
|
- Copy and paste the template into the JSON editor.
|
|
117
124
|
- The template contains the placeholders:
|
|
118
|
-
- `%%
|
|
125
|
+
- `%%seriesData%%` (populated with the time-series price data at runtime).
|
|
119
126
|
- `%%CalcChannelsData%%` (populated with selected calculator channel data).
|
|
120
127
|
- The rest of the template follows the Apache ECharts configuration. For reference, see [Apache ECharts Examples](https://echarts.apache.org/examples/en/index.html).
|
|
121
128
|
- **Recommendation:** Test the TibberLink adapter without a real template using the default string:
|
|
122
129
|
```
|
|
123
|
-
%%
|
|
130
|
+
%%seriesData%%\n\n%%CalcChannelsData%%
|
|
124
131
|
```
|
|
125
132
|
This helps understand its functionality.
|
|
126
133
|
- Template adjustments can be tested on Apache ECharts examples pages using the "Output-E-Charts" state data.
|
|
@@ -139,25 +146,86 @@ For maximum flexibility and customization, the FlexCharts adapter can be used wi
|
|
|
139
146
|
### Inverse Usage
|
|
140
147
|
|
|
141
148
|
To obtain, for example, peak hours instead of optimal hours, simply invert the usage and parameters:
|
|
142
|
-

|
|
143
|
-
By swapping true <-> false, you will receive a true at a low cost in the first line and a true at a high cost in the second line (Channel names are not triggers and are still free to choose).
|
|
144
149
|
|
|
145
|
-
|
|
150
|
+
<img src="docu/calculatorStatesInverse.png" width="938" alt="Calculator States Inverse">
|
|
151
|
+
|
|
152
|
+
By swapping true <-> false, you will receive a true at a low cost in the first line and a true at a high cost in the second line (channel names are just examples and can be freely chosen).
|
|
153
|
+
|
|
154
|
+
Attention: For peak single hours, such as in the example, you also need to adjust the number of hours. Original: 5 -> Inverse (24-5) = 19 -> You will obtain a 'true' output during the 5 peak hours.
|
|
146
155
|
|
|
147
156
|
### LTF channels
|
|
148
157
|
|
|
149
|
-
The calculation is performed for "multiday" data. As we only have information for "today" and "tomorrow" (available after approximately 13:00), the time scope
|
|
158
|
+
The calculation is performed for "multiday" data. As we only have information for "today" and "tomorrow" (available after approximately 13:00), the time scope covers up to 48 hours, though typically around 35 hours immediately after the 13:00 price update. However, it's crucial to be mindful of this behavior because the calculated result may/will change around 13:00 when new data for tomorrow's prices becomes available.
|
|
150
159
|
|
|
151
160
|
To observe this dynamic change in the time scope for a standard channel, you may opt for a Limited Time Frame (LTF) spanning several years. This is particularly useful for the "Best Single Hours LTF" scenario.
|
|
152
161
|
|
|
153
162
|
## Direct local poll of Pulse data
|
|
154
163
|
|
|
155
164
|
To make it work, you need to modify the web interface of the Bridge to remain permanently enabled.
|
|
156
|
-
marq24
|
|
165
|
+
marq24 provides an excellent description of how to do this for his Home Assistant integration here:
|
|
157
166
|
|
|
158
167
|
https://github.com/marq24/ha-tibber-pulse-local
|
|
159
168
|
|
|
160
|
-
If everything works correctly, the meter data will be written to
|
|
169
|
+
If everything works correctly, the meter data will be written to ioBroker states every 2 seconds.
|
|
170
|
+
|
|
171
|
+
## Vehicles & Chargers Configuration
|
|
172
|
+
|
|
173
|
+
Tibber operates two separate APIs with different purposes:
|
|
174
|
+
|
|
175
|
+
- **Developer GraphQL API** (`api.tibber.com`) — energy prices, consumption history, and the Pulse live feed. This is what the standard Tibber API token (from [developer.tibber.com](https://developer.tibber.com)) gives access to.
|
|
176
|
+
- **Tibber Data API** (`data-api.tibber.com`) — IoT device data for paired vehicles, chargers, heat pumps, and inverters. This is a newer, separate REST API that requires its own OAuth2 client registration.
|
|
177
|
+
|
|
178
|
+
Neither API replaces the other — they complement each other. The vehicle and charger feature described here uses the Data API and therefore needs its own credentials in addition to the main API token.
|
|
179
|
+
|
|
180
|
+
### Prerequisites
|
|
181
|
+
|
|
182
|
+
1. Open [https://data-api.tibber.com/clients/manage](https://data-api.tibber.com/clients/manage) and click **+ New client**.
|
|
183
|
+
|
|
184
|
+
<img src="docu/dataApi1.png" width="938" alt="Tibber Data API Client Management">
|
|
185
|
+
|
|
186
|
+
2. Give the client a name (e.g. `ioBrokerTibber`), set the **Redirect URI** to exactly `http://localhost/` (with trailing slash), and enable at least these scopes:
|
|
187
|
+
- `data-api-homes-read`
|
|
188
|
+
- `data-api-vehicles-read`
|
|
189
|
+
- `data-api-chargers-read`
|
|
190
|
+
|
|
191
|
+
<img src="docu/dataApi2.png" width="938" alt="Create client form with scopes">
|
|
192
|
+
|
|
193
|
+
3. Click **Create**. Copy the **Client ID** and **Client Secret** immediately — the secret is only shown once.
|
|
194
|
+
|
|
195
|
+
<img src="docu/dataApi3.png" width="938" alt="Client created with ID and Secret">
|
|
196
|
+
|
|
197
|
+
4. Open the **Vehicles & Chargers** tab in the adapter configuration, enter both values, and save.
|
|
198
|
+
5. Restart the adapter. It will log a **warning** containing the ready-to-use authorization URL with your Client ID already filled in:
|
|
199
|
+
```
|
|
200
|
+
[tibberDataAPI]: no auth code configured — please authorize. URL: https://thewall.tibber.com/connect/authorize?client_id=<your-id>&...
|
|
201
|
+
```
|
|
202
|
+
6. Open that URL in a browser and log in with your Tibber account to grant access.
|
|
203
|
+
7. The browser will redirect to `http://localhost/` and show a connection error — this is **expected and correct**. Copy the full URL from the address bar (it contains `?code=...`).
|
|
204
|
+
|
|
205
|
+
<img src="docu/dataApi4.png" width="938" alt="Browser showing localhost connection refused with code in URL">
|
|
206
|
+
|
|
207
|
+
8. Paste the complete URL into the **Auth Code** field in the adapter configuration and save.
|
|
208
|
+
9. The adapter exchanges the code for tokens and begins polling. The Auth Code field is cleared automatically.
|
|
209
|
+
|
|
210
|
+
The adapter stores the refresh token internally and renews the access token automatically, so this one-time authorization step does not need to be repeated.
|
|
211
|
+
|
|
212
|
+
### Available States
|
|
213
|
+
|
|
214
|
+
Vehicle data is written to `Vehicles.<VIN>.*`:
|
|
215
|
+
|
|
216
|
+
| State | Description |
|
|
217
|
+
| --------------------- | --------------------------------- |
|
|
218
|
+
| `ChargingStatus` | Current charging status |
|
|
219
|
+
| `HomeId` | Associated Tibber home ID |
|
|
220
|
+
| `LastUpdated` | Timestamp of the last data update |
|
|
221
|
+
| `PlugStatus` | Plug connection status |
|
|
222
|
+
| `Range` | Remaining range in km |
|
|
223
|
+
| `StateOfCharge` | Battery state of charge in % |
|
|
224
|
+
| `TargetStateOfCharge` | Target state of charge in % |
|
|
225
|
+
|
|
226
|
+
### Poll Interval
|
|
227
|
+
|
|
228
|
+
The poll interval can be configured in the **Vehicles & Chargers** tab (1–60 minutes, default: 5 minutes).
|
|
161
229
|
|
|
162
230
|
## Sentry
|
|
163
231
|
|
|
@@ -174,6 +242,21 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
174
242
|
Placeholder for the next version (at the beginning of the line):
|
|
175
243
|
### **WORK IN PROGRESS**
|
|
176
244
|
-->
|
|
245
|
+
### 7.1.1 (2026-06-07)
|
|
246
|
+
|
|
247
|
+
- (HombachC) optimized vehicle states
|
|
248
|
+
- (HombachC) fixed adapter checker warnings
|
|
249
|
+
|
|
250
|
+
### 7.1.0 (2026-06-07)
|
|
251
|
+
|
|
252
|
+
- (claude) added integration for vehicles(#67)
|
|
253
|
+
- (HombachC) optimized documentation
|
|
254
|
+
- (claude) added code documentation
|
|
255
|
+
- (claude) performance optimization of event listeners
|
|
256
|
+
- (HombachC) added current month consumption docu
|
|
257
|
+
- (HombachC) updated release-script
|
|
258
|
+
- (HombachC) fixed adapter checker warnings
|
|
259
|
+
|
|
177
260
|
### 7.0.0 (2026-06-04)
|
|
178
261
|
|
|
179
262
|
- (copilot) BREAKING: Adapter requires node.js >= 22 now
|
|
@@ -197,19 +280,6 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
|
|
|
197
280
|
- (HombachC) switch to ES2023 code
|
|
198
281
|
- (HombachC) update dependencies
|
|
199
282
|
|
|
200
|
-
### 6.2.0 (2026-03-07)
|
|
201
|
-
|
|
202
|
-
- (HombachC) enable umlauts to calculation channel names (#844)
|
|
203
|
-
- (HombachC) enhance resolution of pulse meter data (#840)
|
|
204
|
-
- (HombachC) fix wrong end block state calculation (#841)
|
|
205
|
-
- (HombachC) setup auto-merge for dependabot (#834)
|
|
206
|
-
- (HombachC) update dependencies
|
|
207
|
-
|
|
208
|
-
### 6.1.1 (2026-02-05)
|
|
209
|
-
|
|
210
|
-
- (HombachC) fix LTF shifting for frames greater 24h
|
|
211
|
-
- (HombachC) update dependencies
|
|
212
|
-
|
|
213
283
|
### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md)
|
|
214
284
|
|
|
215
285
|
## License
|
package/admin/i18n/de.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Das Passwort für Ihre lokale Tibber Bridge, wie auf der Hardware angegeben.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "Das Intervall (in Millisekunden) für die Abfrage Ihrer Bridge nach Pulse-Daten.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Name Ihrer Bridge oder ihre IP-Adresse (standardmäßig „tibber-host“).",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "Die Knoten-ID, unter der Ihr Pulse auf der Bridge registriert ist."
|
|
108
|
-
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "Die Knoten-ID, unter der Ihr Pulse auf der Bridge registriert ist.",
|
|
108
|
+
"LBL_VehiclesTab": "Fahrzeuge & Ladestationen",
|
|
109
|
+
"LBL_vehiclesHelp1": "Schritt 1: OAuth2-Client unter data-api.tibber.com/clients/manage registrieren. Redirect-URI exakt auf http://localhost/ setzen (mit abschließendem Schrägstrich) und folgende Scopes aktivieren: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Dann Client ID und Client Secret unten eintragen.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Tibber Data API Client-Verwaltung oeffnen",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID aus dem Tibber Data API Client-Verwaltungsportal",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret aus dem Tibber Data API Client-Verwaltungsportal",
|
|
115
|
+
"LBL_vehiclesHelp2": "Schritt 2: Einstellungen speichern und Adapter neu starten. Im ioBroker-Log erscheint dann eine Warnung mit der vollständigen Autorisierungs-URL (Client ID bereits eingesetzt). Diese URL im Browser öffnen und mit dem Tibber-Konto anmelden.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Der Browser zeigt 'Verbindung abgelehnt' – das ist erwartet. Vollständige URL aus der Adressleiste kopieren und unten in das Feld 'Autorisierungs-Callback-URL' einfügen.",
|
|
117
|
+
"LBL_TibberAuthCode": "Autorisierungs-Callback-URL (einmalig einfuegen, dann leer lassen)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Die vollstaendige Callback-URL (http://localhost/?code=...) hier einfuegen. Sie wird beim naechsten Adapterstart verarbeitet und automatisch geloescht.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Abfrageintervall (Minuten)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Wie oft Fahrzeug- und Ladedaten von der Tibber Data API abgefragt werden (1-60 Minuten)"
|
|
121
|
+
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"LBL_FlexGraphPastCutOff": "FlexGraph past hours cut off",
|
|
105
105
|
"TTIP_FlexGraphPastCutOff": "number of hours to be shown in the past",
|
|
106
106
|
"LBL_FlexGraphFutureCutOff": "FlexGraph future hours cut off",
|
|
107
|
-
"TTIP_FlexGraphFutureCutOff": "number of hours to be shown in the future"
|
|
108
|
-
|
|
107
|
+
"TTIP_FlexGraphFutureCutOff": "number of hours to be shown in the future",
|
|
108
|
+
"LBL_VehiclesTab": "Vehicles & Chargers",
|
|
109
|
+
"LBL_vehiclesHelp1": "Step 1: Register an OAuth2 client at data-api.tibber.com/clients/manage. Set the redirect URI to exactly http://localhost/ (with trailing slash) and enable these scopes: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Then enter your Client ID and Client Secret below.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Open Tibber Data API client management",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID from the Tibber Data API client management portal",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret from the Tibber Data API client management portal",
|
|
115
|
+
"LBL_vehiclesHelp2": "Step 2: Save the settings and restart the adapter. It will log a warning containing the authorization URL with your Client ID already filled in. Open that URL in your browser and log in with your Tibber account.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "The browser will show ‘connection refused’ — that is expected. Copy the full URL from the address bar and paste it into the Authorization callback URL field below.",
|
|
117
|
+
"LBL_TibberAuthCode": "Authorization callback URL (paste once, then leave empty)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Paste the full callback URL (http://localhost/?code=...) here. It will be consumed on the next adapter start and cleared automatically.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Poll interval (minutes)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "How often vehicle and charger data is fetched from the Tibber Data API (1-60 minutes)"
|
|
121
|
+
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "La contraseña de su Tibber Bridge local, tal como se proporciona en el hardware.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "El intervalo, en milisegundos, para sondear los datos de Bridge for Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Nombre de su Bridge o su dirección IP (el valor predeterminado es 'tibber-host').",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "El ID del nodo donde está registrado su Pulse en el Bridge."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "El ID del nodo donde está registrado su Pulse en el Bridge.",
|
|
108
|
+
"LBL_VehiclesTab": "Vehículos y cargadores",
|
|
109
|
+
"LBL_vehiclesHelp1": "Paso 1: Registre un cliente OAuth2 en data-api.tibber.com/clients/manage. Configure el URI de redirección exactamente como http://localhost/ (con barra final) y active estos permisos: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Luego introduzca su Client ID y Client Secret a continuación.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Abrir administración de clientes de Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "ID de cliente de Tibber Data API",
|
|
112
|
+
"TTIP_TibberClientId": "ID de cliente OAuth2 del portal de administración de clientes de Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Secreto de cliente de Tibber Data API",
|
|
114
|
+
"TTIP_TibberClientSecret": "Secreto de cliente OAuth2 del portal de administración de clientes de Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Paso 2: Guarda la configuración y reinicia el adaptador. El log de ioBroker mostrará una advertencia con la URL de autorización completa (con tu Client ID ya incluido). Abre esa URL en tu navegador e inicia sesión con tu cuenta Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "El navegador mostrará 'conexión rechazada' — eso es esperado. Copia la URL completa de la barra de direcciones y pégala en el campo URL de callback de autorización abajo.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL de devolución de llamada (pegar una vez, luego dejar vacío)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Pegue aquí la URL completa de devolución de llamada (http://localhost/?code=...). Se usará en el próximo inicio del adaptador y se borrará automáticamente.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Intervalo de sondeo (minutos)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Con qué frecuencia se obtienen datos de vehículos y cargadores de Tibber Data API (1-60 minutos)"
|
|
108
121
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Le mot de passe de votre Tibber Bridge local, tel qu'indiqué sur le matériel.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "L'intervalle, en millisecondes, pour interroger votre Bridge for Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Nom de votre Bridge ou son adresse IP (par défaut 'tibber-host').",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "L'ID du nœud où votre Pulse est enregistré sur le Bridge."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "L'ID du nœud où votre Pulse est enregistré sur le Bridge.",
|
|
108
|
+
"LBL_VehiclesTab": "Véhicules et chargeurs",
|
|
109
|
+
"LBL_vehiclesHelp1": "Étape 1 : Enregistrez un client OAuth2 sur data-api.tibber.com/clients/manage. Définissez l'URI de redirection exactement sur http://localhost/ (avec barre oblique finale) et activez ces autorisations : data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Saisissez ensuite votre Client ID et Client Secret ci-dessous.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Ouvrir la gestion des clients Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "ID client Tibber Data API",
|
|
112
|
+
"TTIP_TibberClientId": "ID client OAuth2 du portail de gestion des clients Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Secret client Tibber Data API",
|
|
114
|
+
"TTIP_TibberClientSecret": "Secret client OAuth2 du portail de gestion des clients Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Étape 2 : Enregistrez les paramètres et redémarrez l'adaptateur. Le log ioBroker affichera un avertissement contenant l'URL d'autorisation complète (avec votre Client ID déjà inclus). Ouvrez cette URL dans votre navigateur et connectez-vous avec votre compte Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Le navigateur affichera « connexion refusée » — c'est normal. Copiez l'URL complète depuis la barre d'adresse et collez-la dans le champ URL de rappel d'autorisation ci-dessous.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL de rappel d'autorisation (coller une fois, puis laisser vide)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Collez ici l'URL de rappel complète (http://localhost/?code=...). Elle sera utilisée au prochain démarrage de l'adaptateur et effacée automatiquement.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Intervalle d'interrogation (minutes)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Fréquence de récupération des données des véhicules et chargeurs depuis Tibber Data API (1-60 minutes)"
|
|
108
121
|
}
|
package/admin/i18n/it.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "La password per il tuo Tibber Bridge locale, come fornita sull'hardware.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "L'intervallo, in millisecondi, per il polling dei dati Bridge for Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Nome del tuo Bridge o relativo indirizzo IP (il valore predefinito è \"tibber-host\").",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "L'ID del nodo in cui è registrato il tuo Pulse sul Bridge."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "L'ID del nodo in cui è registrato il tuo Pulse sul Bridge.",
|
|
108
|
+
"LBL_VehiclesTab": "Veicoli e caricatori",
|
|
109
|
+
"LBL_vehiclesHelp1": "Passaggio 1: Registra un client OAuth2 su data-api.tibber.com/clients/manage. Imposta l'URI di reindirizzamento esattamente su http://localhost/ (con barra finale) e abilita questi permessi: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Inserisci quindi il tuo Client ID e Client Secret qui sotto.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Apri la gestione client Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "ID client Tibber Data API",
|
|
112
|
+
"TTIP_TibberClientId": "ID client OAuth2 dal portale di gestione client Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Segreto client Tibber Data API",
|
|
114
|
+
"TTIP_TibberClientSecret": "Segreto client OAuth2 dal portale di gestione client Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Passaggio 2: Salva le impostazioni e riavvia l'adattatore. Il log di ioBroker mostrerà un avviso con l'URL di autorizzazione completo (con il tuo Client ID già incluso). Apri quell'URL nel browser e accedi con il tuo account Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Il browser mostrerà «connessione rifiutata» — è normale. Copia l'URL completo dalla barra degli indirizzi e incollalo nel campo URL di callback di autorizzazione sottostante.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL di callback di autorizzazione (incolla una volta, poi lascia vuoto)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Incolla qui l'URL di callback completo (http://localhost/?code=...). Verrà utilizzato al prossimo avvio dell'adattatore e cancellato automaticamente.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Intervallo di polling (minuti)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Con quale frequenza vengono recuperati i dati di veicoli e caricatori dall'API Tibber Data (1-60 minuti)"
|
|
108
121
|
}
|
package/admin/i18n/nl.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Het wachtwoord voor uw lokale Tibber Bridge, zoals aangegeven op de hardware.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "Het interval, in milliseconden, voor het opvragen van uw Bridge for Pulse-gegevens.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Naam van uw Bridge of zijn IP-adres (standaard 'tibber-host').",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "Het knooppunt-ID waar uw Pulse op de Bridge is geregistreerd."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "Het knooppunt-ID waar uw Pulse op de Bridge is geregistreerd.",
|
|
108
|
+
"LBL_VehiclesTab": "Voertuigen en laders",
|
|
109
|
+
"LBL_vehiclesHelp1": "Stap 1: Registreer een OAuth2-client op data-api.tibber.com/clients/manage. Stel de omleidings-URI in op precies http://localhost/ (met afsluitende schuine streep) en schakel deze rechten in: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Voer daarna uw Client ID en Client Secret hieronder in.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Tibber Data API-clientbeheer openen",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID van het Tibber Data API-clientbeheerportaal",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret van het Tibber Data API-clientbeheerportaal",
|
|
115
|
+
"LBL_vehiclesHelp2": "Stap 2: Sla de instellingen op en herstart de adapter. Het ioBroker-log toont een waarschuwing met de volledige autorisatie-URL (met je Client ID al ingevuld). Open die URL in je browser en log in met je Tibber-account.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "De browser toont 'verbinding geweigerd' — dat is verwacht. Kopieer de volledige URL uit de adresbalk en plak deze in het veld Autorisatie-callback-URL hieronder.",
|
|
117
|
+
"LBL_TibberAuthCode": "Autorisatie callback-URL (eenmalig plakken, daarna leeg laten)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Plak hier de volledige callback-URL (http://localhost/?code=...). Deze wordt gebruikt bij de volgende start van de adapter en automatisch verwijderd.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Poll-interval (minuten)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Hoe vaak worden voertuig- en ladergegevens opgehaald uit de Tibber Data API (1-60 minuten)"
|
|
108
121
|
}
|
package/admin/i18n/pl.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Hasło do lokalnego mostu Tibber Bridge, podane na sprzęcie.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "Interwał w milisekundach odpytywania danych Bridge for Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Nazwa Twojego mostu lub jego adres IP (domyślnie „tibber-host”).",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "Identyfikator węzła, w którym Twój Pulse jest zarejestrowany na moście."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "Identyfikator węzła, w którym Twój Pulse jest zarejestrowany na moście.",
|
|
108
|
+
"LBL_VehiclesTab": "Pojazdy i ładowarki",
|
|
109
|
+
"LBL_vehiclesHelp1": "Krok 1: Zarejestruj klienta OAuth2 na data-api.tibber.com/clients/manage. Ustaw URI przekierowania dokładnie jako http://localhost/ (z końcowym ukośnikiem) i włącz te uprawnienia: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Następnie wprowadź swój Client ID i Client Secret poniżej.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Otwórz zarządzanie klientami Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID z portalu zarządzania klientami Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret z portalu zarządzania klientami Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Krok 2: Zapisz ustawienia i uruchom ponownie adapter. W logu ioBroker pojawi się ostrzeżenie z pełnym adresem URL autoryzacji (z Twoim Client ID już wstawionym). Otwórz ten URL w przeglądarce i zaloguj się na swoje konto Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Przeglądarka pokaże 'odmowa połączenia' — to oczekiwane. Skopiuj pełny adres URL z paska adresu i wklej go w pole URL wywołania zwrotnego autoryzacji poniżej.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL wywołania zwrotnego autoryzacji (wkleić raz, potem pozostawić puste)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Wklej tutaj pełny URL wywołania zwrotnego (http://localhost/?code=...). Zostanie użyty przy następnym uruchomieniu adaptera i automatycznie usunięty.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Interwał odpytywania (minuty)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Jak często dane pojazdów i ładowarek są pobierane z Tibber Data API (1-60 minut)"
|
|
108
121
|
}
|
package/admin/i18n/pt.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "A senha do seu Tibber Bridge local, conforme fornecida no hardware.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "O intervalo, em milissegundos, para pesquisar dados do Bridge for Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Nome da sua Bridge ou seu endereço IP (o padrão é 'tibber-host').",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "O ID do nó onde seu Pulse está registrado na Bridge."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "O ID do nó onde seu Pulse está registrado na Bridge.",
|
|
108
|
+
"LBL_VehiclesTab": "Veículos e carregadores",
|
|
109
|
+
"LBL_vehiclesHelp1": "Passo 1: Registe um cliente OAuth2 em data-api.tibber.com/clients/manage. Defina o URI de redirecionamento exatamente como http://localhost/ (com barra final) e ative estas permissões: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Em seguida, introduza o seu Client ID e Client Secret abaixo.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Abrir gestão de clientes Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "ID de cliente Tibber Data API",
|
|
112
|
+
"TTIP_TibberClientId": "ID de cliente OAuth2 do portal de gestão de clientes Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Segredo de cliente Tibber Data API",
|
|
114
|
+
"TTIP_TibberClientSecret": "Segredo de cliente OAuth2 do portal de gestão de clientes Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Passo 2: Guarde as definições e reinicie o adaptador. O log do ioBroker mostrará um aviso com o URL de autorização completo (com o seu Client ID já incluído). Abra esse URL no browser e inicie sessão com a sua conta Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "O browser mostrará 'ligação recusada' — isso é esperado. Copie o URL completo da barra de endereços e cole-o no campo URL de callback de autorização abaixo.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL de callback de autorização (colar uma vez, depois deixar vazio)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Cole aqui o URL de callback completo (http://localhost/?code=...). Será utilizado no próximo arranque do adaptador e apagado automaticamente.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Intervalo de sondagem (minutos)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Com que frequência os dados de veículos e carregadores são obtidos da Tibber Data API (1-60 minutos)"
|
|
108
121
|
}
|
package/admin/i18n/ru.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Пароль для вашего локального Tibber Bridge, предусмотренный на оборудовании.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "Интервал в миллисекундах для опроса вашего моста на предмет импульсных данных.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Имя вашего моста или его IP-адрес (по умолчанию «tibber-host»).",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "Идентификатор узла, на котором ваш Pulse зарегистрирован на мосту."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "Идентификатор узла, на котором ваш Pulse зарегистрирован на мосту.",
|
|
108
|
+
"LBL_VehiclesTab": "Транспортные средства и зарядные устройства",
|
|
109
|
+
"LBL_vehiclesHelp1": "Шаг 1: Зарегистрируйте клиент OAuth2 на data-api.tibber.com/clients/manage. Установите URI перенаправления точно как http://localhost/ (с завершающим слешем) и включите следующие разрешения: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Затем введите ваш Client ID и Client Secret ниже.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Открыть управление клиентами Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID из портала управления клиентами Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret из портала управления клиентами Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Шаг 2: Сохраните настройки и перезапустите адаптер. В логе ioBroker появится предупреждение с полным URL авторизации (с уже подставленным Client ID). Откройте этот URL в браузере и войдите в аккаунт Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Браузер покажет «отказано в подключении» — это ожидаемо. Скопируйте полный URL из адресной строки и вставьте его в поле URL обратного вызова авторизации ниже.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL обратного вызова авторизации (вставить один раз, затем оставить пустым)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Вставьте сюда полный URL обратного вызова (http://localhost/?code=...). Он будет использован при следующем запуске адаптера и автоматически очищен.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Интервал опроса (минуты)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Как часто данные транспортных средств и зарядных устройств запрашиваются из Tibber Data API (1-60 минут)"
|
|
108
121
|
}
|
package/admin/i18n/uk.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "Пароль для вашого локального Tibber Bridge, як зазначено на апаратному забезпеченні.",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "Інтервал, у мілісекундах, для опитування вашого Bridge для даних Pulse.",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "Ім'я вашого Bridge або його IP-адреса (за замовчуванням \"tibber-host\").",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "Ідентифікатор вузла, де ваш Pulse зареєстровано на Bridge."
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "Ідентифікатор вузла, де ваш Pulse зареєстровано на Bridge.",
|
|
108
|
+
"LBL_VehiclesTab": "Транспортні засоби та зарядні пристрої",
|
|
109
|
+
"LBL_vehiclesHelp1": "Крок 1: Зареєструйте клієнт OAuth2 на data-api.tibber.com/clients/manage. Встановіть URI перенаправлення точно як http://localhost/ (з кінцевим слешем) і увімкніть такі дозволи: data-api-homes-read, data-api-vehicles-read, data-api-chargers-read. Потім введіть ваш Client ID і Client Secret нижче.",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "Відкрити управління клієнтами Tibber Data API",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API Client ID",
|
|
112
|
+
"TTIP_TibberClientId": "OAuth2 Client ID з порталу управління клієнтами Tibber Data API",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API Client Secret",
|
|
114
|
+
"TTIP_TibberClientSecret": "OAuth2 Client Secret з порталу управління клієнтами Tibber Data API",
|
|
115
|
+
"LBL_vehiclesHelp2": "Крок 2: Збережіть налаштування та перезапустіть адаптер. У лозі ioBroker з'явиться попередження з повним URL авторизації (з вашим Client ID вже вставленим). Відкрийте цей URL у браузері та увійдіть в акаунт Tibber.",
|
|
116
|
+
"LBL_vehiclesHelp2b": "Браузер покаже «відмовлено у з'єднанні» — це очікувано. Скопіюйте повний URL з адресного рядка та вставте його в поле URL зворотного виклику авторизації нижче.",
|
|
117
|
+
"LBL_TibberAuthCode": "URL зворотного виклику авторизації (вставити один раз, потім залишити порожнім)",
|
|
118
|
+
"TTIP_TibberAuthCode": "Вставте сюди повний URL зворотного виклику (http://localhost/?code=...). Його буде використано при наступному запуску адаптера та автоматично очищено.",
|
|
119
|
+
"LBL_TibberDataApiInterval": "Інтервал опитування (хвилини)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "Як часто дані транспортних засобів та зарядних пристроїв запитуються з Tibber Data API (1-60 хвилин)"
|
|
108
121
|
}
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -104,5 +104,18 @@
|
|
|
104
104
|
"TTIP_item_tibberBridgePassword": "硬件上提供的本地 Tibber Bridge 的密码。",
|
|
105
105
|
"TTIP_item_tibberBridgeRawDataInterval": "轮询 Bridge 获取脉冲数据的时间间隔(以毫秒为单位)。",
|
|
106
106
|
"TTIP_item_tibberBridgeUrl": "您的网桥名称或其 IP 地址(默认为“tibber-host”)。",
|
|
107
|
-
"TTIP_item_tibberPulseLocalNodeId": "您的 Pulse 在网桥上注册的节点 ID。"
|
|
107
|
+
"TTIP_item_tibberPulseLocalNodeId": "您的 Pulse 在网桥上注册的节点 ID。",
|
|
108
|
+
"LBL_VehiclesTab": "车辆与充电器",
|
|
109
|
+
"LBL_vehiclesHelp1": "步骤1:在 data-api.tibber.com/clients/manage 注册 OAuth2 客户端。将重定向 URI 设置为 http://localhost/(末尾带斜杠),并启用以下权限:data-api-homes-read、data-api-vehicles-read、data-api-chargers-read。然后在下方输入您的 Client ID 和 Client Secret。",
|
|
110
|
+
"LBL_vehiclesRegisterLink": "打开 Tibber Data API 客户端管理",
|
|
111
|
+
"LBL_TibberClientId": "Tibber Data API 客户端 ID",
|
|
112
|
+
"TTIP_TibberClientId": "来自 Tibber Data API 客户端管理门户的 OAuth2 客户端 ID",
|
|
113
|
+
"LBL_TibberClientSecret": "Tibber Data API 客户端密钥",
|
|
114
|
+
"TTIP_TibberClientSecret": "来自 Tibber Data API 客户端管理门户的 OAuth2 客户端密钥",
|
|
115
|
+
"LBL_vehiclesHelp2": "第二步:保存设置并重启适配器。ioBroker 日志将显示一条包含完整授权 URL(已填入您的 Client ID)的警告信息。在浏览器中打开该 URL 并使用 Tibber 账户登录。",
|
|
116
|
+
"LBL_vehiclesHelp2b": "浏览器将显示「连接被拒绝」——这是正常现象。从地址栏复制完整 URL 并粘贴到下方的授权回调 URL 字段中。",
|
|
117
|
+
"LBL_TibberAuthCode": "授权回调 URL(粘贴一次后留空)",
|
|
118
|
+
"TTIP_TibberAuthCode": "在此粘贴完整的回调 URL(http://localhost/?code=...)。它将在下次适配器启动时使用并自动清除。",
|
|
119
|
+
"LBL_TibberDataApiInterval": "轮询间隔(分钟)",
|
|
120
|
+
"TTIP_TibberDataApiInterval": "从 Tibber Data API 获取车辆和充电器数据的频率(1-60 分钟)"
|
|
108
121
|
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -1158,6 +1158,112 @@
|
|
|
1158
1158
|
]
|
|
1159
1159
|
}
|
|
1160
1160
|
}
|
|
1161
|
+
},
|
|
1162
|
+
|
|
1163
|
+
"_VehiclesTab": {
|
|
1164
|
+
"type": "panel",
|
|
1165
|
+
"label": "LBL_VehiclesTab",
|
|
1166
|
+
"xs": 12,
|
|
1167
|
+
"sm": 12,
|
|
1168
|
+
"md": 12,
|
|
1169
|
+
"lg": 12,
|
|
1170
|
+
"xl": 12,
|
|
1171
|
+
"items": {
|
|
1172
|
+
"_vehiclesHelp1": {
|
|
1173
|
+
"type": "staticText",
|
|
1174
|
+
"text": "LBL_vehiclesHelp1",
|
|
1175
|
+
"xs": 12,
|
|
1176
|
+
"sm": 12,
|
|
1177
|
+
"md": 12,
|
|
1178
|
+
"lg": 12,
|
|
1179
|
+
"xl": 12,
|
|
1180
|
+
"newLine": true
|
|
1181
|
+
},
|
|
1182
|
+
"_vehiclesRegisterLink": {
|
|
1183
|
+
"type": "staticLink",
|
|
1184
|
+
"label": "LBL_vehiclesRegisterLink",
|
|
1185
|
+
"href": "https://data-api.tibber.com/clients/manage",
|
|
1186
|
+
"button": true,
|
|
1187
|
+
"icon": "info",
|
|
1188
|
+
"xs": 12,
|
|
1189
|
+
"sm": 12,
|
|
1190
|
+
"md": 12,
|
|
1191
|
+
"lg": 12,
|
|
1192
|
+
"xl": 12,
|
|
1193
|
+
"newLine": true
|
|
1194
|
+
},
|
|
1195
|
+
"TibberClientId": {
|
|
1196
|
+
"type": "text",
|
|
1197
|
+
"label": "LBL_TibberClientId",
|
|
1198
|
+
"tooltip": "TTIP_TibberClientId",
|
|
1199
|
+
"maxLength": 120,
|
|
1200
|
+
"xs": 12,
|
|
1201
|
+
"sm": 12,
|
|
1202
|
+
"md": 8,
|
|
1203
|
+
"lg": 6,
|
|
1204
|
+
"xl": 4,
|
|
1205
|
+
"newLine": true
|
|
1206
|
+
},
|
|
1207
|
+
"TibberClientSecret": {
|
|
1208
|
+
"type": "password",
|
|
1209
|
+
"label": "LBL_TibberClientSecret",
|
|
1210
|
+
"tooltip": "TTIP_TibberClientSecret",
|
|
1211
|
+
"maxLength": 120,
|
|
1212
|
+
"xs": 12,
|
|
1213
|
+
"sm": 12,
|
|
1214
|
+
"md": 8,
|
|
1215
|
+
"lg": 6,
|
|
1216
|
+
"xl": 4,
|
|
1217
|
+
"newLine": true
|
|
1218
|
+
},
|
|
1219
|
+
"_vehiclesHelp2": {
|
|
1220
|
+
"type": "staticText",
|
|
1221
|
+
"text": "LBL_vehiclesHelp2",
|
|
1222
|
+
"xs": 12,
|
|
1223
|
+
"sm": 12,
|
|
1224
|
+
"md": 12,
|
|
1225
|
+
"lg": 12,
|
|
1226
|
+
"xl": 12,
|
|
1227
|
+
"newLine": true
|
|
1228
|
+
},
|
|
1229
|
+
"_vehiclesHelp2b": {
|
|
1230
|
+
"type": "staticText",
|
|
1231
|
+
"text": "LBL_vehiclesHelp2b",
|
|
1232
|
+
"xs": 12,
|
|
1233
|
+
"sm": 12,
|
|
1234
|
+
"md": 12,
|
|
1235
|
+
"lg": 12,
|
|
1236
|
+
"xl": 12,
|
|
1237
|
+
"newLine": true
|
|
1238
|
+
},
|
|
1239
|
+
"TibberAuthCode": {
|
|
1240
|
+
"type": "text",
|
|
1241
|
+
"label": "LBL_TibberAuthCode",
|
|
1242
|
+
"tooltip": "TTIP_TibberAuthCode",
|
|
1243
|
+
"maxLength": 500,
|
|
1244
|
+
"xs": 12,
|
|
1245
|
+
"sm": 12,
|
|
1246
|
+
"md": 12,
|
|
1247
|
+
"lg": 10,
|
|
1248
|
+
"xl": 8,
|
|
1249
|
+
"newLine": true
|
|
1250
|
+
},
|
|
1251
|
+
"TibberDataApiInterval": {
|
|
1252
|
+
"type": "number",
|
|
1253
|
+
"label": "LBL_TibberDataApiInterval",
|
|
1254
|
+
"tooltip": "TTIP_TibberDataApiInterval",
|
|
1255
|
+
"min": 1,
|
|
1256
|
+
"max": 60,
|
|
1257
|
+
"step": 1,
|
|
1258
|
+
"default": 5,
|
|
1259
|
+
"xs": 12,
|
|
1260
|
+
"sm": 6,
|
|
1261
|
+
"md": 4,
|
|
1262
|
+
"lg": 3,
|
|
1263
|
+
"xl": 2,
|
|
1264
|
+
"newLine": true
|
|
1265
|
+
}
|
|
1266
|
+
}
|
|
1161
1267
|
}
|
|
1162
1268
|
}
|
|
1163
1269
|
}
|