@camstack/addon-provider-bosch 0.1.42 → 0.1.44
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/CHANGELOG.md +12 -0
- package/dist/{account-integration-offline-D2xBMGsR.js → account-integration-offline-CFyuKmsG.js} +65 -122
- package/dist/{account-integration-offline-cC99EePp.mjs → account-integration-offline-IHodWmhD.mjs} +50 -113
- package/dist/{bosch-instances-BmvHlGiY.mjs → bosch-instances-C8FRjQzC.mjs} +19932 -17414
- package/dist/{bosch-instances-CINVxMF_.js → bosch-instances-CXMUquuA.js} +19978 -17478
- package/dist/home-connect/addon.js +20 -99
- package/dist/home-connect/addon.mjs +19 -98
- package/dist/homecom/addon.js +21 -108
- package/dist/homecom/addon.mjs +19 -106
- package/dist/shc/addon.js +8 -2
- package/dist/shc/addon.mjs +8 -2
- package/i18n/en.json +19 -4
- package/i18n/it.json +19 -4
- package/package.json +2 -2
package/dist/homecom/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { a as
|
|
1
|
+
import { A as customAction, B as number, D as waterHeaterCapability, I as rowsDepsOver, J as errMsg, L as _enum, M as defineEntryKind, N as entryBody, O as RecordIntegrationInstances, R as array, U as string, V as object, Y as EventCategory, a as BaseDevice, d as climateControlCapability, i as testBoschInstance, j as defineCustomActions, n as boschRowsPorts, o as BaseDeviceProvider, p as deviceAdoptionCapability, q as DeviceType, r as keepBodyKeys, t as boschRowsMigration, y as integrationInstancesCapability, z as literal } from "../bosch-instances-C8FRjQzC.mjs";
|
|
2
|
+
import { a as loginFailureForAttempt, i as createSignInAttemptStore, n as cascadeRemoveDevicesForIntegration, o as parseOAuthCallback, r as buildSignInGuideFields, s as HOMECOM_REDIRECT_URI, t as setIntegrationDevicesOnline } from "../account-integration-offline-IHodWmhD.mjs";
|
|
3
3
|
import { createHash, randomBytes } from "node:crypto";
|
|
4
4
|
//#region src/homecom/config.ts
|
|
5
5
|
var HOMECOM_BRANDS = ["bosch", "buderus"];
|
|
@@ -45,23 +45,22 @@ var HIDDEN_UNTIL_ADVANCED = {
|
|
|
45
45
|
field: "__hidden__",
|
|
46
46
|
equals: "yes"
|
|
47
47
|
};
|
|
48
|
-
var
|
|
48
|
+
var HOMECOM_SIGN_IN_GUIDE = {
|
|
49
|
+
i18nPrefix: "homecom.s_account",
|
|
50
|
+
keyPrefix: "__homecom",
|
|
51
|
+
providerName: "SingleKey ID",
|
|
52
|
+
redirectStart: `${HOMECOM_REDIRECT_URI}?code=`
|
|
53
|
+
};
|
|
49
54
|
function buildHomeComFormSchema() {
|
|
50
55
|
return { sections: [{
|
|
51
56
|
id: "account",
|
|
52
57
|
title: "HomeCom account",
|
|
53
58
|
titleKey: "provider-bosch:homecom.s_account.title",
|
|
54
|
-
description: "Sign in with your SingleKey ID
|
|
59
|
+
description: "Sign in with your SingleKey ID in your own browser, then paste the address the browser stops on.",
|
|
55
60
|
descriptionKey: "provider-bosch:homecom.s_account.description",
|
|
56
61
|
columns: 1,
|
|
57
62
|
fields: [
|
|
58
|
-
|
|
59
|
-
type: "info",
|
|
60
|
-
key: "__homecom-code-help",
|
|
61
|
-
label: HOMECOM_CODE_HELP,
|
|
62
|
-
labelKey: "provider-bosch:homecom.s_account.__homecom-code-help.label",
|
|
63
|
-
content: ""
|
|
64
|
-
},
|
|
63
|
+
...buildSignInGuideFields(HOMECOM_SIGN_IN_GUIDE),
|
|
65
64
|
{
|
|
66
65
|
type: "account-sign-in",
|
|
67
66
|
addonId: "bosch-homecom",
|
|
@@ -71,7 +70,6 @@ function buildHomeComFormSchema() {
|
|
|
71
70
|
providerLabel: "SingleKey ID",
|
|
72
71
|
beginAction: "beginSignIn",
|
|
73
72
|
completeAction: "finishSignIn",
|
|
74
|
-
claimAction: "claimSignIn",
|
|
75
73
|
signOutAction: "signOut",
|
|
76
74
|
accountKey: "accountLabel",
|
|
77
75
|
countKey: "gatewayCount",
|
|
@@ -214,27 +212,6 @@ var homeComActions = defineCustomActions({
|
|
|
214
212
|
kind: "mutation",
|
|
215
213
|
auth: "admin"
|
|
216
214
|
}),
|
|
217
|
-
/**
|
|
218
|
-
* The form asks while the proxied login page is open: `pending` until the hub captured the
|
|
219
|
-
* app-scheme redirect and finished the exchange, then the same fields `finishSignIn` returns.
|
|
220
|
-
* Claimed once. A failed exchange answers with its operator-facing message as an error.
|
|
221
|
-
*/
|
|
222
|
-
claimSignIn: customAction(object({ attemptId: string().min(1) }), object({
|
|
223
|
-
pending: boolean(),
|
|
224
|
-
token: string().optional().meta({ secret: true }),
|
|
225
|
-
refresh: string().optional().meta({ secret: true }),
|
|
226
|
-
username: string().optional().meta({ secret: true }),
|
|
227
|
-
accountLabel: string().optional(),
|
|
228
|
-
gatewayCount: number().optional(),
|
|
229
|
-
summary: string().optional(),
|
|
230
|
-
gatewayId: string().optional(),
|
|
231
|
-
brand: HomeComBrandSchema.optional(),
|
|
232
|
-
region: HomeComRegionSchema.optional(),
|
|
233
|
-
choices: array(gatewayChoice).optional()
|
|
234
|
-
}), {
|
|
235
|
-
kind: "mutation",
|
|
236
|
-
auth: "admin"
|
|
237
|
-
}),
|
|
238
215
|
signOut: customAction(object({}), object({
|
|
239
216
|
signedOut: literal(true),
|
|
240
217
|
summary: string()
|
|
@@ -301,7 +278,6 @@ function unsupportedDeviceTypeMessage(deviceType) {
|
|
|
301
278
|
* names `pointt.gateway.resource.dashapp`, and the Bosch app sends `style_id=tt_bsch`.
|
|
302
279
|
*/
|
|
303
280
|
var HOMECOM_CLIENT_ID = "762162C0-FA2D-4540-AE66-6489F189FADC";
|
|
304
|
-
var HOMECOM_REDIRECT_URI = "com.bosch.tt.dashtt.pointt://app/login";
|
|
305
281
|
var HOMECOM_AUTHORIZE_URL = "https://singlekey-id.com/auth/connect/authorize";
|
|
306
282
|
var HOMECOM_TOKEN_URL = "https://singlekey-id.com/auth/connect/token";
|
|
307
283
|
var HOMECOM_STYLE_ID = "tt_bsch";
|
|
@@ -1225,42 +1201,6 @@ function finishedFromGateways(tokens, resolved, listFailure) {
|
|
|
1225
1201
|
}
|
|
1226
1202
|
var homeComSignInAttempts = createSignInAttemptStore();
|
|
1227
1203
|
//#endregion
|
|
1228
|
-
//#region src/homecom/homecom-sign-in-proxy.ts
|
|
1229
|
-
/**
|
|
1230
|
-
* SingleKey ID serves the HomeCom login page; its scripts and styles come from `cdn.singlekey-id.com`
|
|
1231
|
-
* as `type=module` + `crossorigin` files, which the CDN does not CORS-enable for another origin —
|
|
1232
|
-
* served from the hub origin through the proxy they load, loaded directly they are refused and the
|
|
1233
|
-
* page has no script (only the email field, no way to continue).
|
|
1234
|
-
*/
|
|
1235
|
-
var HOMECOM_LOGIN_HOSTS = ["singlekey-id.com", "cdn.singlekey-id.com"];
|
|
1236
|
-
var HOMECOM_APP_SCHEME = HOMECOM_REDIRECT_URI.slice(0, HOMECOM_REDIRECT_URI.indexOf("://") + 3);
|
|
1237
|
-
var homeComSignInClaims = createSignInClaims();
|
|
1238
|
-
/** Start an attempt whose `authorizeUrl` is the hub-relative proxied login page. */
|
|
1239
|
-
function beginHomeComProxiedSignIn(deps) {
|
|
1240
|
-
const nowMs = deps.nowMs ?? (() => Date.now());
|
|
1241
|
-
const published = publishHomeComSignIn(homeComSignInAttempts, nowMs());
|
|
1242
|
-
if (deps.proxy === null) return published;
|
|
1243
|
-
const entry = openSignInProxy({
|
|
1244
|
-
proxy: deps.proxy,
|
|
1245
|
-
claims: homeComSignInClaims,
|
|
1246
|
-
addonId: deps.addonId,
|
|
1247
|
-
attemptId: published.attemptId,
|
|
1248
|
-
authorizeUrl: published.authorizeUrl,
|
|
1249
|
-
hosts: HOMECOM_LOGIN_HOSTS,
|
|
1250
|
-
appScheme: HOMECOM_APP_SCHEME,
|
|
1251
|
-
finish: (callback) => finishHomeComSignIn({
|
|
1252
|
-
attemptId: published.attemptId,
|
|
1253
|
-
callback,
|
|
1254
|
-
nowMs: nowMs()
|
|
1255
|
-
}, homeComSignInAttempts, deps.fetchFn !== void 0 ? { fetchFn: deps.fetchFn } : {}),
|
|
1256
|
-
nowMs
|
|
1257
|
-
});
|
|
1258
|
-
return {
|
|
1259
|
-
attemptId: published.attemptId,
|
|
1260
|
-
authorizeUrl: entry
|
|
1261
|
-
};
|
|
1262
|
-
}
|
|
1263
|
-
//#endregion
|
|
1264
1204
|
//#region src/homecom/homecom-token-persist.ts
|
|
1265
1205
|
/**
|
|
1266
1206
|
* Patch the integration's record, one write at a time per integration. Refuses (and says so,
|
|
@@ -1964,7 +1904,13 @@ function buildHomeComInstances(records, deps) {
|
|
|
1964
1904
|
role: "devices",
|
|
1965
1905
|
instanceMode: "multiple",
|
|
1966
1906
|
kind: "account",
|
|
1967
|
-
canTest: true
|
|
1907
|
+
canTest: true,
|
|
1908
|
+
kinds: [{
|
|
1909
|
+
id: "connection",
|
|
1910
|
+
label: "Bosch HomeCom",
|
|
1911
|
+
functionCap: "device-provider",
|
|
1912
|
+
role: "devices"
|
|
1913
|
+
}]
|
|
1968
1914
|
},
|
|
1969
1915
|
formSchema: () => buildHomeComFormSchema(),
|
|
1970
1916
|
initialBody: (name) => ({ name }),
|
|
@@ -2181,8 +2127,6 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2181
2127
|
};
|
|
2182
2128
|
clients = null;
|
|
2183
2129
|
instances = null;
|
|
2184
|
-
loginProxy = null;
|
|
2185
|
-
loginPlane = null;
|
|
2186
2130
|
constructor() {
|
|
2187
2131
|
super({});
|
|
2188
2132
|
}
|
|
@@ -2201,7 +2145,6 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2201
2145
|
tester: this.buildConnectionTestProvider()
|
|
2202
2146
|
});
|
|
2203
2147
|
this.instances = built;
|
|
2204
|
-
await this.serveLoginProxy();
|
|
2205
2148
|
const persistDeps = {
|
|
2206
2149
|
read: (id) => homeComStoredOf(built.instances, id),
|
|
2207
2150
|
patch: (id, patch) => built.handle.patch(id, patch),
|
|
@@ -2236,19 +2179,9 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2236
2179
|
customActions: homeComActions,
|
|
2237
2180
|
actionHandlers: {
|
|
2238
2181
|
beginSignIn: async () => ({
|
|
2239
|
-
...
|
|
2240
|
-
|
|
2241
|
-
addonId: this.ctx.id
|
|
2242
|
-
}),
|
|
2243
|
-
summary: "Open the sign-in page and sign in."
|
|
2182
|
+
...publishHomeComSignIn(homeComSignInAttempts, Date.now()),
|
|
2183
|
+
summary: "Open the sign-in page, sign in, then paste the address the browser stops on."
|
|
2244
2184
|
}),
|
|
2245
|
-
claimSignIn: async (input) => {
|
|
2246
|
-
const claim = homeComSignInClaims.claim(input.attemptId, Date.now());
|
|
2247
|
-
return claim.state === "pending" ? { pending: true } : {
|
|
2248
|
-
pending: false,
|
|
2249
|
-
...claim.result
|
|
2250
|
-
};
|
|
2251
|
-
},
|
|
2252
2185
|
finishSignIn: async (input) => finishHomeComSignIn({
|
|
2253
2186
|
attemptId: input.attemptId,
|
|
2254
2187
|
callback: input.callback,
|
|
@@ -2261,27 +2194,7 @@ var BoschHomeComProviderAddon = class extends BaseDeviceProvider {
|
|
|
2261
2194
|
}
|
|
2262
2195
|
};
|
|
2263
2196
|
}
|
|
2264
|
-
/** The hub's HTTPS face for the vendor's login pages (D955): admin session only. */
|
|
2265
|
-
async serveLoginProxy() {
|
|
2266
|
-
const proxy = new VendorLoginProxy({
|
|
2267
|
-
addonId: this.ctx.id,
|
|
2268
|
-
logger: this.ctx.logger
|
|
2269
|
-
});
|
|
2270
|
-
try {
|
|
2271
|
-
this.loginPlane = await this.ctx.dataPlane?.serve({
|
|
2272
|
-
prefix: "vendor-login",
|
|
2273
|
-
access: "admin",
|
|
2274
|
-
handler: proxy.handler
|
|
2275
|
-
}) ?? null;
|
|
2276
|
-
if (this.loginPlane !== null) this.loginProxy = proxy;
|
|
2277
|
-
} catch (err) {
|
|
2278
|
-
this.ctx.logger.warn("HomeCom login proxy failed to serve — sign-in falls back to paste", { meta: { error: errMsg(err) } });
|
|
2279
|
-
}
|
|
2280
|
-
}
|
|
2281
2197
|
async onShutdown() {
|
|
2282
|
-
await this.loginPlane?.dispose().catch(() => void 0);
|
|
2283
|
-
this.loginPlane = null;
|
|
2284
|
-
this.loginProxy = null;
|
|
2285
2198
|
try {
|
|
2286
2199
|
await this.clients?.shutdown();
|
|
2287
2200
|
} catch (err) {
|
package/dist/shc/addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
//#region \0rolldown/runtime.js
|
|
3
3
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
4
4
|
//#endregion
|
|
5
|
-
const require_bosch_instances = require("../bosch-instances-
|
|
5
|
+
const require_bosch_instances = require("../bosch-instances-CXMUquuA.js");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let node_https = require("node:https");
|
|
8
8
|
let node_child_process = require("node:child_process");
|
|
@@ -279,7 +279,13 @@ function buildShcInstances(records, deps) {
|
|
|
279
279
|
role: "devices",
|
|
280
280
|
instanceMode: "multiple",
|
|
281
281
|
kind: "controller",
|
|
282
|
-
canTest: true
|
|
282
|
+
canTest: true,
|
|
283
|
+
kinds: [{
|
|
284
|
+
id: "connection",
|
|
285
|
+
label: "Bosch Smart Home",
|
|
286
|
+
functionCap: "device-provider",
|
|
287
|
+
role: "devices"
|
|
288
|
+
}]
|
|
283
289
|
},
|
|
284
290
|
formSchema: () => buildConnectionFormSchema(),
|
|
285
291
|
initialBody: (name) => ({ name }),
|
package/dist/shc/addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as customAction, B as number, E as temperatureSensorCapability, I as rowsDepsOver, J as errMsg, L as _enum, M as defineEntryKind, N as entryBody, O as RecordIntegrationInstances, R as array, T as switchCapability, U as string, V as object, Y as EventCategory, _ as heatingValveCapability, a as BaseDevice, d as climateControlCapability, i as testBoschInstance, j as defineCustomActions, l as batteryCapability, n as boschRowsPorts, o as BaseDeviceProvider, p as deviceAdoptionCapability, q as DeviceType, r as keepBodyKeys, t as boschRowsMigration, y as integrationInstancesCapability, z as literal } from "../bosch-instances-C8FRjQzC.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { request } from "node:https";
|
|
@@ -280,7 +280,13 @@ function buildShcInstances(records, deps) {
|
|
|
280
280
|
role: "devices",
|
|
281
281
|
instanceMode: "multiple",
|
|
282
282
|
kind: "controller",
|
|
283
|
-
canTest: true
|
|
283
|
+
canTest: true,
|
|
284
|
+
kinds: [{
|
|
285
|
+
id: "connection",
|
|
286
|
+
label: "Bosch Smart Home",
|
|
287
|
+
functionCap: "device-provider",
|
|
288
|
+
role: "devices"
|
|
289
|
+
}]
|
|
284
290
|
},
|
|
285
291
|
formSchema: () => buildConnectionFormSchema(),
|
|
286
292
|
initialBody: (name) => ({ name }),
|
package/i18n/en.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"bosch-home-connect.name": "Bosch Home Connect",
|
|
4
4
|
"bosch-homecom.name": "Bosch HomeCom",
|
|
5
5
|
"homecom.s_account.title": "HomeCom account",
|
|
6
|
-
"homecom.s_account.description": "Sign in with your SingleKey ID
|
|
6
|
+
"homecom.s_account.description": "Sign in with your SingleKey ID in your own browser, then paste the address the browser stops on.",
|
|
7
7
|
"homecom.s_account.__homecom-sign-in.label": "HomeCom",
|
|
8
8
|
"homecom.s_account.accountLabel.label": "Account",
|
|
9
9
|
"homecom.s_account.gatewayCount.label": "Gateways",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"homecom.s_account.brand.label": "Brand",
|
|
16
16
|
"homecom.s_account.region.label": "Region",
|
|
17
17
|
"home-connect.s_gateway.title": "Home Connect",
|
|
18
|
-
"home-connect.s_gateway.description": "Sign in with your Home Connect account
|
|
18
|
+
"home-connect.s_gateway.description": "Sign in with your Home Connect account in your own browser, then paste the address the browser stops on.",
|
|
19
19
|
"home-connect.s_gateway.__home-connect-sign-in.label": "Home Connect",
|
|
20
20
|
"home-connect.s_gateway.accountLabel.label": "Account",
|
|
21
21
|
"home-connect.s_gateway.appliances.label": "Appliances",
|
|
@@ -32,6 +32,21 @@
|
|
|
32
32
|
"shc.s_connection.token.label": "Controller token",
|
|
33
33
|
"shc.s_connection.sslCertificate.label": "Client certificate (PEM)",
|
|
34
34
|
"shc.s_connection.sslKey.label": "Client private key (PEM)",
|
|
35
|
-
"homecom.s_account.
|
|
36
|
-
"homecom.s_account.
|
|
35
|
+
"homecom.s_account.gatewayId.description": "Filled from the account. Type one only when you need to override the choice.",
|
|
36
|
+
"homecom.s_account.__homecom-guide-open.label": "1. Click “Sign in with SingleKey ID”. The sign-in page opens in a new tab of your own browser (it cannot be shown inside CamStack).",
|
|
37
|
+
"homecom.s_account.__homecom-guide-login.label": "2. Sign in there with your SingleKey ID: email, password and the one-time code if you are asked for one.",
|
|
38
|
+
"homecom.s_account.__homecom-guide-redirect.label": "3. When you finish, the browser tries to open the Bosch app and fails or shows an empty page. That is expected: the address it tried to open is what CamStack needs. It starts with com.bosch.tt.dashtt.pointt://app/login?code=",
|
|
39
|
+
"homecom.s_account.__homecom-guide-chrome.label": "Chrome, Edge, Brave: before you sign in press F12, open Network and tick “Preserve log”. After the failure pick the last request whose address starts with com.bosch.tt.dashtt.pointt://app/login?code= and use right click, Copy, Copy URL (or copy the address from the error line in the Console).",
|
|
40
|
+
"homecom.s_account.__homecom-guide-firefox.label": "Firefox: before you sign in press F12, open Network, open the gear menu and enable “Persist Logs”. After the failure right click the last request, Copy Value, Copy URL.",
|
|
41
|
+
"homecom.s_account.__homecom-guide-safari.label": "Safari: enable the Develop menu (Settings, Advanced), then Develop, Show Web Inspector, Network, and keep “Preserve Log” on. After the failure copy the address of the last request. Safari may also show the address in its “cannot open” message.",
|
|
42
|
+
"homecom.s_account.__homecom-guide-phone.label": "Phone or tablet: the failed address often stays in the address bar; press and hold it to copy. If it does not, repeat the sign-in from a computer.",
|
|
43
|
+
"homecom.s_account.__homecom-guide-paste.label": "4. Paste the whole address (or only the code after “code=”) in the box that appears under the button. The sign-in completes by itself; the code is valid for about ten minutes.",
|
|
44
|
+
"home-connect.s_gateway.__home-connect-guide-open.label": "1. Click “Sign in with Home Connect”. The sign-in page opens in a new tab of your own browser (it cannot be shown inside CamStack).",
|
|
45
|
+
"home-connect.s_gateway.__home-connect-guide-login.label": "2. Sign in there with your SingleKey ID: email, password and the one-time code if you are asked for one.",
|
|
46
|
+
"home-connect.s_gateway.__home-connect-guide-redirect.label": "3. When you finish, the browser tries to open the Bosch app and fails or shows an empty page. That is expected: the address it tried to open is what CamStack needs. It starts with hcauth://auth/prod?code=",
|
|
47
|
+
"home-connect.s_gateway.__home-connect-guide-chrome.label": "Chrome, Edge, Brave: before you sign in press F12, open Network and tick “Preserve log”. After the failure pick the last request whose address starts with hcauth://auth/prod?code= and use right click, Copy, Copy URL (or copy the address from the error line in the Console).",
|
|
48
|
+
"home-connect.s_gateway.__home-connect-guide-firefox.label": "Firefox: before you sign in press F12, open Network, open the gear menu and enable “Persist Logs”. After the failure right click the last request, Copy Value, Copy URL.",
|
|
49
|
+
"home-connect.s_gateway.__home-connect-guide-safari.label": "Safari: enable the Develop menu (Settings, Advanced), then Develop, Show Web Inspector, Network, and keep “Preserve Log” on. After the failure copy the address of the last request. Safari may also show the address in its “cannot open” message.",
|
|
50
|
+
"home-connect.s_gateway.__home-connect-guide-phone.label": "Phone or tablet: the failed address often stays in the address bar; press and hold it to copy. If it does not, repeat the sign-in from a computer.",
|
|
51
|
+
"home-connect.s_gateway.__home-connect-guide-paste.label": "4. Paste the whole address (or only the code after “code=”) in the box that appears under the button. The sign-in completes by itself; the code is valid for about ten minutes."
|
|
37
52
|
}
|
package/i18n/it.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"bosch-home-connect.name": "Bosch Home Connect",
|
|
4
4
|
"bosch-homecom.name": "Bosch HomeCom",
|
|
5
5
|
"homecom.s_account.title": "Account HomeCom",
|
|
6
|
-
"homecom.s_account.description": "Accedi con il tuo SingleKey ID
|
|
6
|
+
"homecom.s_account.description": "Accedi con il tuo SingleKey ID nel tuo browser, poi incolla l'indirizzo su cui il browser si ferma.",
|
|
7
7
|
"homecom.s_account.__homecom-sign-in.label": "HomeCom",
|
|
8
8
|
"homecom.s_account.accountLabel.label": "Account",
|
|
9
9
|
"homecom.s_account.gatewayCount.label": "Gateway",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"homecom.s_account.brand.label": "Marchio",
|
|
16
16
|
"homecom.s_account.region.label": "Regione",
|
|
17
17
|
"home-connect.s_gateway.title": "Home Connect",
|
|
18
|
-
"home-connect.s_gateway.description": "Accedi con il tuo account Home Connect
|
|
18
|
+
"home-connect.s_gateway.description": "Accedi con il tuo account Home Connect nel tuo browser, poi incolla l'indirizzo su cui il browser si ferma.",
|
|
19
19
|
"home-connect.s_gateway.__home-connect-sign-in.label": "Home Connect",
|
|
20
20
|
"home-connect.s_gateway.accountLabel.label": "Account",
|
|
21
21
|
"home-connect.s_gateway.appliances.label": "Elettrodomestici",
|
|
@@ -32,6 +32,21 @@
|
|
|
32
32
|
"shc.s_connection.token.label": "Token del controller",
|
|
33
33
|
"shc.s_connection.sslCertificate.label": "Certificato client (PEM)",
|
|
34
34
|
"shc.s_connection.sslKey.label": "Chiave privata client (PEM)",
|
|
35
|
-
"homecom.s_account.
|
|
36
|
-
"homecom.s_account.
|
|
35
|
+
"homecom.s_account.gatewayId.description": "Compilato dall'account. Scrivilo solo se devi sostituire la scelta.",
|
|
36
|
+
"homecom.s_account.__homecom-guide-open.label": "1. Clicca “Accedi con SingleKey ID”. La pagina di accesso si apre in una nuova scheda del tuo browser (non può essere mostrata dentro CamStack).",
|
|
37
|
+
"homecom.s_account.__homecom-guide-login.label": "2. Accedi lì con il tuo SingleKey ID: email, password e il codice monouso se richiesto.",
|
|
38
|
+
"homecom.s_account.__homecom-guide-redirect.label": "3. Al termine il browser prova ad aprire l'app Bosch e fallisce o mostra una pagina vuota. È normale: l'indirizzo che ha provato ad aprire è quello che serve a CamStack. Inizia con com.bosch.tt.dashtt.pointt://app/login?code=",
|
|
39
|
+
"homecom.s_account.__homecom-guide-chrome.label": "Chrome, Edge, Brave: prima di accedere premi F12, apri Network e spunta “Preserve log”. Dopo il fallimento scegli l'ultima richiesta il cui indirizzo inizia con com.bosch.tt.dashtt.pointt://app/login?code= e usa tasto destro, Copy, Copy URL (oppure copia l'indirizzo dalla riga d'errore nella Console).",
|
|
40
|
+
"homecom.s_account.__homecom-guide-firefox.label": "Firefox: prima di accedere premi F12, apri Network, apri il menu a ingranaggio e attiva “Persist Logs”. Dopo il fallimento fai clic destro sull'ultima richiesta, Copy Value, Copy URL.",
|
|
41
|
+
"homecom.s_account.__homecom-guide-safari.label": "Safari: attiva il menu Sviluppo (Impostazioni, Avanzate), poi Sviluppo, Mostra Web Inspector, Network, e lascia attivo “Preserve Log”. Dopo il fallimento copia l'indirizzo dell'ultima richiesta. Safari può mostrare l'indirizzo anche nel messaggio “impossibile aprire”.",
|
|
42
|
+
"homecom.s_account.__homecom-guide-phone.label": "Telefono o tablet: l'indirizzo che ha fallito spesso resta nella barra degli indirizzi; tienilo premuto per copiarlo. Se non c'è, ripeti l'accesso da un computer.",
|
|
43
|
+
"homecom.s_account.__homecom-guide-paste.label": "4. Incolla l'indirizzo intero (o solo il codice dopo “code=”) nella casella che compare sotto il pulsante. L'accesso si completa da solo; il codice vale circa dieci minuti.",
|
|
44
|
+
"home-connect.s_gateway.__home-connect-guide-open.label": "1. Clicca “Accedi con Home Connect”. La pagina di accesso si apre in una nuova scheda del tuo browser (non può essere mostrata dentro CamStack).",
|
|
45
|
+
"home-connect.s_gateway.__home-connect-guide-login.label": "2. Accedi lì con il tuo SingleKey ID: email, password e il codice monouso se richiesto.",
|
|
46
|
+
"home-connect.s_gateway.__home-connect-guide-redirect.label": "3. Al termine il browser prova ad aprire l'app Bosch e fallisce o mostra una pagina vuota. È normale: l'indirizzo che ha provato ad aprire è quello che serve a CamStack. Inizia con hcauth://auth/prod?code=",
|
|
47
|
+
"home-connect.s_gateway.__home-connect-guide-chrome.label": "Chrome, Edge, Brave: prima di accedere premi F12, apri Network e spunta “Preserve log”. Dopo il fallimento scegli l'ultima richiesta il cui indirizzo inizia con hcauth://auth/prod?code= e usa tasto destro, Copy, Copy URL (oppure copia l'indirizzo dalla riga d'errore nella Console).",
|
|
48
|
+
"home-connect.s_gateway.__home-connect-guide-firefox.label": "Firefox: prima di accedere premi F12, apri Network, apri il menu a ingranaggio e attiva “Persist Logs”. Dopo il fallimento fai clic destro sull'ultima richiesta, Copy Value, Copy URL.",
|
|
49
|
+
"home-connect.s_gateway.__home-connect-guide-safari.label": "Safari: attiva il menu Sviluppo (Impostazioni, Avanzate), poi Sviluppo, Mostra Web Inspector, Network, e lascia attivo “Preserve Log”. Dopo il fallimento copia l'indirizzo dell'ultima richiesta. Safari può mostrare l'indirizzo anche nel messaggio “impossibile aprire”.",
|
|
50
|
+
"home-connect.s_gateway.__home-connect-guide-phone.label": "Telefono o tablet: l'indirizzo che ha fallito spesso resta nella barra degli indirizzi; tienilo premuto per copiarlo. Se non c'è, ripeti l'accesso da un computer.",
|
|
51
|
+
"home-connect.s_gateway.__home-connect-guide-paste.label": "4. Incolla l'indirizzo intero (o solo il codice dopo “code=”) nella casella che compare sotto il pulsante. L'accesso si completa da solo; il codice vale circa dieci minuti."
|
|
37
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-bosch",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"description": "Bosch smart-home device-provider addons for CamStack — SHC, Home Connect, and HomeCom cloud integrations (scaffold)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
}
|
|
133
133
|
],
|
|
134
134
|
"requires": {
|
|
135
|
-
"server": ">=1.2.
|
|
135
|
+
"server": ">=1.2.819"
|
|
136
136
|
}
|
|
137
137
|
},
|
|
138
138
|
"files": [
|