forked from eclipse-ditto/ditto-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
99 lines (91 loc) · 2.89 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
* Copyright (c) 2017 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
class App {
constructor() {
this.config = {
"thingId": "org.eclipse.ditto:smartcoffee",
"thingJson": {
"attributes": {
"manufacturer": "Ditto demo device corp.",
"model": "Speaking coffee machine"
},
"features": {
"water-tank": {
"properties": {
"configuration": {
"smartMode": true,
"brewingTemp": 87,
"tempToHold": 44,
"timeoutSeconds": 6000
},
"status": {
"waterAmount": 731,
"temperature": 44
}
}
},
"coffee-brewer": {
"properties": {
"brewed-coffees": 0
}
}
}
},
"waterTank": {
"feature": "water-tank",
"onSubject": "startHeating",
"onPayload": {
"temperature": 85
},
"offSubject": "stopHeating",
"offPayload": {},
"successResponse": true,
"failureResponse": false
},
"coffeeMachine": {
"makeCoffeeSubject": "makeCoffee",
"makeCoffeePayload": {
"cups": 1,
"strength": 0.8,
"amount": 230,
"captcha": ""
}
}
};
this.frontend = new FrontendApp(this.config, () => this.getConnectionConfig());
this.smartCoffeeApp = new SmartCoffeeApp(this.config, () => this.getConnectionConfig());
}
getConnectionConfig() {
return new ConnectionConfig($('#dittoHost').val(),
$('#dittoUser').val(),
$('#dittoPassword').val());
}
}
class ConnectionConfig {
constructor(host, username, password) {
this.host = host;
this.username = username;
this.password = password;
}
getHost() {
return this.host;
}
getUsername() {
return this.username;
}
getPassword() {
return this.password;
}
}
// Startup
$(document).ready(new App());