iobroker.schlueter-thermostat 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 patricknitsch <patricknitsch@web.de>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,263 @@
1
+ ![Logo](admin/schlueter-thermostat.png)
2
+
3
+ # ioBroker.schlueter-thermostat
4
+
5
+ [![NPM version](https://img.shields.io/npm/v/iobroker.schlueter-thermostat.svg)](https://www.npmjs.com/package/iobroker.schlueter-thermostat)
6
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.schlueter-thermostat.svg)](https://www.npmjs.com/package/iobroker.schlueter-thermostat)
7
+ ![Number of Installations](https://iobroker.live/badges/schlueter-thermostat-installed.svg)
8
+ ![Current version in stable repository](https://iobroker.live/badges/schlueter-thermostat-stable.svg)
9
+
10
+ [![NPM](https://nodei.co/npm/iobroker.schlueter-thermostat.png?downloads=true)](https://nodei.co/npm/iobroker.schlueter-thermostat/)
11
+
12
+ **Tests:** ![Test and Release](https://github.com/patricknitsch/ioBroker.schlueter-thermostat/workflows/Test%20and%20Release/badge.svg)
13
+
14
+ # Schlueter Thermostat
15
+
16
+ Cloud adapter for **Schlüter / OJ Microline OWD5 thermostats**.\
17
+ The adapter connects to the official **OWD5 (read)** and **OCD5
18
+ (write)** cloud APIs to fully integrate thermostats into ioBroker.
19
+
20
+ This adapter is **cloud-only** --- no local gateway or Modbus required.
21
+ The complete API can be tested at: https://ocd5.azurewebsites.net/swagger/ui/index#/
22
+
23
+ ## Attention:
24
+
25
+ I only have one thermostat. So I'm not sure, how it looks like with multiple thermostats.
26
+ I will check it, if I get a second one, especially for energy valuse for each thermostat.
27
+
28
+ ---
29
+
30
+ ## 🧩 Architecture
31
+
32
+ ioBroker
33
+
34
+ │ REST (HTTPS)
35
+
36
+ schlueter-thermostat Adapter
37
+
38
+ ├───────────────► OWD5 Cloud API (READ)
39
+ │ - Groups
40
+ │ - Thermostats
41
+ │ - Schedule
42
+ │ - Energy usage
43
+
44
+ └───────────────► OCD5 Cloud API (WRITE)
45
+ - Setpoints
46
+ - Modes
47
+ - End times
48
+ - Vacation
49
+ - Thermostat name
50
+
51
+
52
+ Schlüter / OJ Microline Thermostats
53
+
54
+ ---
55
+
56
+ ## ⚙ How the Adapter Works
57
+
58
+ 1. **Login** to OWD5 cloud with your credentials.
59
+ 2. **Polling** at configured interval (default 60s):
60
+ - Reads **GroupContents**
61
+ - Creates/updates group & thermostat objects
62
+ - Reads temperatures, modes, setpoints, schedules
63
+ - Reads energy usage per thermostat (via SerialNumber)
64
+ 3. When a writable state changes:
65
+ - Adapter builds full **UpdateThermostat payload**
66
+ - Sends it to **OCD5 cloud**
67
+ 4. Cloud forwards the command to the thermostat.
68
+
69
+ ---
70
+
71
+ ## 👤 Required User Data
72
+
73
+ Setting Description
74
+
75
+ ---
76
+
77
+ Username Your Schlüter/OJ cloud login -> **setted in your APP**
78
+ Password Cloud password -> **setted in your APP**
79
+ API Key Provided API key -> **use Default; It seems to work**
80
+ Customer ID Your cloud customer ID -> **to find in you thermostat information**
81
+ Client SW Version Required by API (numeric) -> **to find in your thermostat information**
82
+ Poll Interval Seconds between cloud polls
83
+
84
+ ---
85
+
86
+ ## 🏠 Object Structure
87
+
88
+ schlueter-thermostat.0
89
+ └─ groups
90
+ └─ <GroupId> (device)
91
+ └─ thermostats
92
+ └─ <ThermostatId> (device)
93
+
94
+ ---
95
+
96
+ ## 🌡 What Can Be Read
97
+
98
+ Category States
99
+
100
+ ---
101
+
102
+ Temperatures Room, Floor
103
+ Setpoints Manual, Comfort
104
+ Modes RegulationMode
105
+ End Times ComfortEndTime, BoostEndTime
106
+ Vacation Enabled, Begin, End, Temperature
107
+ Schedule All days + events
108
+ Energy kWh history values
109
+
110
+ ---
111
+
112
+ ## ✍ What Can Be Written
113
+
114
+ State Description
115
+
116
+ ---
117
+
118
+ setpoint.manualSet Manual temperature
119
+ setpoint.comfortSet Comfort temperature
120
+ regulationModeSet Mode change
121
+ thermostatNameSet Rename thermostat
122
+ endTime.comfortSet Comfort end time
123
+ endTime.boostSet Boost end time
124
+ vacation.enabledSet Enable vacation
125
+ vacation.beginSet Vacation start
126
+ vacation.endSet Vacation end
127
+ vacation.temperatureSet Vacation temperature
128
+
129
+ ---
130
+
131
+ ## 🔥 Reglulation Mode Logic
132
+
133
+ When `regulationModeSet = 1`:
134
+
135
+ - Schedule Plan as defined in APP
136
+
137
+ When `regulationModeSet = 2`:
138
+
139
+ - Comfort Mode is active for setted Time in h
140
+ - Temperature = setted Temperature
141
+
142
+ When `regulationModeSet = 3`:
143
+
144
+ - Manual Mode is active for undefined time
145
+ - Temperature = setted Temperature
146
+
147
+ When `regulationModeSet = 8`:
148
+
149
+ - Boost end time = **now + 1 hour**
150
+ - Temperature = thermostat maximum
151
+
152
+ When `regulationModeSet = 9`:
153
+
154
+ - Eco Mode is active
155
+ - Temperature = 20 degrees
156
+
157
+ There some more......
158
+
159
+ ---
160
+
161
+ ## 🔁 State Flow Diagram
162
+
163
+ ┌──────────┐
164
+ │ AUTO │
165
+ └─────┬────┘
166
+
167
+ comfortSetpoint
168
+
169
+ ┌──────────┐
170
+ │ COMFORT │
171
+ └─────┬────┘
172
+ │ manualSetpoint
173
+
174
+ ┌──────────┐
175
+ │ MANUAL │
176
+ └─────┬────┘
177
+ │ regulationMode=8
178
+
179
+ ┌──────────┐
180
+ │ BOOST │
181
+ │ (1 hour) │
182
+ └─────┬────┘
183
+ │ endTime reached
184
+
185
+ back to previous mode
186
+
187
+ Vacation overrides all heating modes when enabled.
188
+
189
+ ---
190
+
191
+ ## ⚡ Energy
192
+
193
+ Energy values are provided per thermostat:
194
+
195
+ energy.count
196
+ energy.value0
197
+ energy.value1
198
+ ...
199
+
200
+ ## **It starts with the Energy from today.**
201
+
202
+ ## 🛡 Stability
203
+
204
+ - Safe object/state wrappers
205
+ - Graceful shutdown
206
+ - Poll protection
207
+ - Debug logging
208
+
209
+ ---
210
+
211
+ ## 🐛 Debug
212
+
213
+ Enable **debug log level** to see cloud communication.
214
+
215
+ ---
216
+
217
+ ## 📦 Version
218
+
219
+ ### Changelog
220
+
221
+ <!--
222
+ Placeholder for the next version (at the beginning of the line):
223
+ ### **WORK IN PROGRESS**
224
+ -->
225
+ ### 0.2.0 (2026-01-28)
226
+
227
+ - (patricknitsch) add automatic Refresh of Token after Error 403
228
+ - (patricknitsch) fix max Value of Regulation Mode to 9 for error preventing
229
+ - (patricknitsch) improve Handling of Mode Settings
230
+
231
+ ### 0.1.1 (2026-01-28)
232
+
233
+ - (patricknitsch) updated Readme
234
+
235
+ ### 0.1.0 (2026-01-28)
236
+
237
+ - (patricknitsch) initial release
238
+ - (patricknitsch) fetch data and write in Datapoints
239
+ - (patricknitsch) functional version with Energy and settable functions
240
+
241
+ ## License
242
+
243
+ MIT License
244
+
245
+ Copyright (c) 2026 patricknitsch <patricknitsch@web.de>
246
+
247
+ Permission is hereby granted, free of charge, to any person obtaining a copy
248
+ of this software and associated documentation files (the "Software"), to deal
249
+ in the Software without restriction, including without limitation the rights
250
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
251
+ copies of the Software, and to permit persons to whom the Software is
252
+ furnished to do so, subject to the following conditions:
253
+
254
+ The above copyright notice and this permission notice shall be included in all
255
+ copies or substantial portions of the Software.
256
+
257
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
258
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
259
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
260
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
261
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
262
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
263
+ SOFTWARE.
@@ -0,0 +1,13 @@
1
+ {
2
+ "API Key": "API-Schlüssel",
3
+ "Customer ID": "Kunden-ID",
4
+ "Energy History (0=current)": "Energieverlauf (0=aktuell)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Energieansichtstyp (2=Woche, 3=Monat, 4=Jahr)",
6
+ "OCD5 Base URL": "OCD5-Basis-URL",
7
+ "OWD5 Base URL": "OWD5-Basis-URL",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Nur OWD5-Cloud. Geräte werden pro GroupId erstellt. Rückschreiben verwendet Group/UpdateGroup. Energie verwendet EnergyUsage/GetEnergyUsage mit ThermostatID (Thermostaten[].Id).",
9
+ "Password": "Passwort",
10
+ "Poll interval (seconds)": "Abfrageintervall (Sekunden)",
11
+ "Software Version": "Softwareversion",
12
+ "Username": "Benutzername"
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "OWD5 Base URL": "OWD5 Base URL",
3
+ "OCD5 Base URL": "OCD5 Base URL",
4
+ "Username": "Username",
5
+ "Password": "Password",
6
+ "Software Version": "Software Version",
7
+ "Customer ID": "Customer ID",
8
+ "API Key": "API Key",
9
+ "Poll interval (seconds)": "Poll interval (seconds)",
10
+ "Energy History (0=current)": "Energy History (0=current)",
11
+ "Energy ViewType (2=week,3=month,4=year)": "Energy ViewType (2=week,3=month,4=year)",
12
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id)."
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Clave API",
3
+ "Customer ID": "ID de cliente",
4
+ "Energy History (0=current)": "Historial de energía (0=actual)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Tipo de vista de energía (2=semana,3=mes,4=año)",
6
+ "OCD5 Base URL": "URL base de OCD5",
7
+ "OWD5 Base URL": "URL básica de OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Solo nube OWD5. Los dispositivos se crean por GroupId. La reescritura utiliza Grupo/Grupo de actualización. La energía utiliza EnergyUsage/GetEnergyUsage con ThermostatID (Thermostats[].Id).",
9
+ "Password": "Contraseña",
10
+ "Poll interval (seconds)": "Intervalo de encuesta (segundos)",
11
+ "Software Version": "Versión de software",
12
+ "Username": "Nombre de usuario",
13
+ "Username / Email": "Nombre de usuario/correo electrónico"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Clé API",
3
+ "Customer ID": "Numéro client",
4
+ "Energy History (0=current)": "Historique énergétique (0=actuel)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Type de vue énergétique (2=semaine,3=mois,4=année)",
6
+ "OCD5 Base URL": "URL de base OCD5",
7
+ "OWD5 Base URL": "URL de base OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Cloud OWD5 uniquement. Les appareils sont créés par GroupId. La réécriture utilise Group/UpdateGroup. L'énergie utilise EnergyUsage/GetEnergyUsage avec ThermostatID (Thermostats[].Id).",
9
+ "Password": "Mot de passe",
10
+ "Poll interval (seconds)": "Intervalle d'interrogation (secondes)",
11
+ "Software Version": "Version du logiciel",
12
+ "Username": "Nom d'utilisateur",
13
+ "Username / Email": "Nom d'utilisateur / E-mail"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Chiave API",
3
+ "Customer ID": "ID cliente",
4
+ "Energy History (0=current)": "Cronologia energia (0=corrente)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Tipo di visualizzazione energia (2=settimana,3=mese,4=anno)",
6
+ "OCD5 Base URL": "URL di base OCD5",
7
+ "OWD5 Base URL": "URL di base OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Solo cloud OWD5. I dispositivi vengono creati per GroupId. Il writeback utilizza Group/UpdateGroup. Energia utilizza EnergyUsage/GetEnergyUsage con ThermostatID (Thermostats[].Id).",
9
+ "Password": "Password",
10
+ "Poll interval (seconds)": "Intervallo di polling (secondi)",
11
+ "Software Version": "Versione del software",
12
+ "Username": "Nome utente",
13
+ "Username / Email": "Nome utente/e-mail"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "API-sleutel",
3
+ "Customer ID": "Klant-ID",
4
+ "Energy History (0=current)": "Energiegeschiedenis (0=huidig)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Energie ViewType (2=week,3=maand,4=jaar)",
6
+ "OCD5 Base URL": "OCD5-basis-URL",
7
+ "OWD5 Base URL": "OWD5-basis-URL",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Alleen OWD5-cloud. Apparaten worden aangemaakt per GroupId. Terugschrijven maakt gebruik van Group/UpdateGroup. Energie gebruikt EnergyUsage/GetEnergyUsage met ThermostatID (Thermostaten[].Id).",
9
+ "Password": "Wachtwoord",
10
+ "Poll interval (seconds)": "Poll-interval (seconden)",
11
+ "Software Version": "Softwareversie",
12
+ "Username": "Gebruikersnaam",
13
+ "Username / Email": "Gebruikersnaam / E-mailadres"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Klucz API",
3
+ "Customer ID": "Identyfikator klienta",
4
+ "Energy History (0=current)": "Historia energii (0=prąd)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Typ widoku energii (2=tydzień,3=miesiąc,4=rok)",
6
+ "OCD5 Base URL": "Podstawowy adres URL OCD5",
7
+ "OWD5 Base URL": "Podstawowy adres URL OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Tylko chmura OWD5. Urządzenia są tworzone według GroupId. Zapisywanie zwrotne używa grupy/aktualizacji grupy. Energia wykorzystuje EnergyUsage/GetEnergyUsage z ThermostatID (Termostaty[].Id).",
9
+ "Password": "Hasło",
10
+ "Poll interval (seconds)": "Interwał sondowania (sekundy)",
11
+ "Software Version": "Wersja oprogramowania",
12
+ "Username": "Nazwa użytkownika",
13
+ "Username / Email": "Nazwa użytkownika / e-mail"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Chave de API",
3
+ "Customer ID": "ID do cliente",
4
+ "Energy History (0=current)": "Histórico de Energia (0=atual)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Energy ViewType (2=semana,3=mês,4=ano)",
6
+ "OCD5 Base URL": "URL base do OCD5",
7
+ "OWD5 Base URL": "URL base OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Apenas nuvem OWD5. Os dispositivos são criados por GroupId. Writeback usa Grupo/UpdateGroup. A energia usa EnergyUsage/GetEnergyUsage com ThermostatID (Termostatos[].Id).",
9
+ "Password": "Senha",
10
+ "Poll interval (seconds)": "Intervalo de pesquisa (segundos)",
11
+ "Software Version": "Versão do software",
12
+ "Username": "Nome de usuário",
13
+ "Username / Email": "Nome de usuário/e-mail"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "API-ключ",
3
+ "Customer ID": "Идентификатор клиента",
4
+ "Energy History (0=current)": "История энергопотребления (0=текущая)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Energy ViewType (2=неделя, 3=месяц, 4=год)",
6
+ "OCD5 Base URL": "Базовый URL-адрес OCD5",
7
+ "OWD5 Base URL": "Базовый URL-адрес OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Только облако OWD5. Устройства создаются по GroupId. Обратная запись использует Group/UpdateGroup. Energy использует EnergyUsage/GetEnergyUsage с ThermostatID (Thermostats[].Id).",
9
+ "Password": "Пароль",
10
+ "Poll interval (seconds)": "Интервал опроса (секунды)",
11
+ "Software Version": "Версия программного обеспечения",
12
+ "Username": "Имя пользователя",
13
+ "Username / Email": "Имя пользователя / адрес электронной почты"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "Ключ API",
3
+ "Customer ID": "ID клієнта",
4
+ "Energy History (0=current)": "Історія енергоспоживання (0=поточна)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "Energy ViewType (2=тиждень,3=місяць,4=рік)",
6
+ "OCD5 Base URL": "Базова URL-адреса OCD5",
7
+ "OWD5 Base URL": "Базова URL-адреса OWD5",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "Лише хмара OWD5. Пристрої створюються для GroupId. Writeback використовує Group/UpdateGroup. Energy використовує EnergyUsage/GetEnergyUsage з ThermostatID (Thermostats[].Id).",
9
+ "Password": "Пароль",
10
+ "Poll interval (seconds)": "Інтервал опитування (секунди)",
11
+ "Software Version": "Версія програмного забезпечення",
12
+ "Username": "Ім'я користувача",
13
+ "Username / Email": "Ім'я користувача/Електронна пошта"
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "API Key": "API密钥",
3
+ "Customer ID": "客户编号",
4
+ "Energy History (0=current)": "能源历史(0=当前)",
5
+ "Energy ViewType (2=week,3=month,4=year)": "能源视图类型(2=周,3=月,4=年)",
6
+ "OCD5 Base URL": "OCD5 基本 URL",
7
+ "OWD5 Base URL": "OWD5 基本 URL",
8
+ "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id).": "仅限 OWD5 云。设备是根据 GroupId 创建的。 Writeback使用Group/UpdateGroup。能源使用 EnergyUsage/GetEnergyUsage 和 ThermostatID (Thermostats[].Id)。",
9
+ "Password": "密码",
10
+ "Poll interval (seconds)": "轮询间隔(秒)",
11
+ "Software Version": "软件版本",
12
+ "Username": "用户名",
13
+ "Username / Email": "用户名/电子邮件"
14
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "type": "tabs",
3
+ "i18n": true,
4
+ "items": {
5
+ "tabMain": {
6
+ "type": "panel",
7
+ "label": "Main",
8
+ "items": {
9
+ "baseUrlOwd5": {
10
+ "type": "text",
11
+ "label": "OWD5 Base URL",
12
+ "default": "https://owd5-mh015-app.ojelectronics.com",
13
+ "xs": 12,
14
+ "sm": 12,
15
+ "md": 6,
16
+ "lg": 4,
17
+ "xl": 4
18
+ },
19
+ "baseUrlOcd5": {
20
+ "type": "text",
21
+ "label": "OCD5 Base URL",
22
+ "default": "https://ocd5.azurewebsites.net",
23
+ "xs": 12,
24
+ "sm": 12,
25
+ "md": 6,
26
+ "lg": 4,
27
+ "xl": 4
28
+ },
29
+ "username": {
30
+ "type": "text",
31
+ "label": "Username",
32
+ "xs": 12,
33
+ "md": 6,
34
+ "lg": 4,
35
+ "xl": 4,
36
+ "sm": 6
37
+ },
38
+ "password": {
39
+ "type": "password",
40
+ "label": "Password",
41
+ "sm": 6
42
+ },
43
+ "apiKey": {
44
+ "type": "text",
45
+ "label": "API Key",
46
+ "default": "f219aab4-9ac0-4343-8422-b72203e2fac9",
47
+ "xs": 12,
48
+ "md": 6,
49
+ "lg": 4,
50
+ "xl": 4,
51
+ "sm": 8
52
+ },
53
+ "customerId": {
54
+ "type": "number",
55
+ "label": "Customer ID",
56
+ "default": 1,
57
+ "xs": 12,
58
+ "md": 6,
59
+ "lg": 4,
60
+ "xl": 4,
61
+ "sm": 4
62
+ },
63
+ "pollIntervalSec": {
64
+ "type": "number",
65
+ "label": "Poll interval (seconds)",
66
+ "default": 60,
67
+ "xs": 12,
68
+ "md": 6,
69
+ "lg": 4,
70
+ "xl": 4,
71
+ "sm": 4
72
+ },
73
+ "energyHistory": {
74
+ "type": "number",
75
+ "label": "Energy History (0=current)",
76
+ "default": 0,
77
+ "xs": 12,
78
+ "md": 6,
79
+ "lg": 4,
80
+ "xl": 4,
81
+ "sm": 4
82
+ },
83
+ "energyViewType": {
84
+ "type": "number",
85
+ "label": "Energy ViewType (2=week,3=month,4=year)",
86
+ "default": 2,
87
+ "xs": 12,
88
+ "md": 6,
89
+ "lg": 4,
90
+ "xl": 4,
91
+ "sm": 4
92
+ },
93
+ "_help": {
94
+ "type": "staticText",
95
+ "newLine": true,
96
+ "text": "OWD5 cloud only. Devices are created per GroupId. Writeback uses Group/UpdateGroup. Energy uses EnergyUsage/GetEnergyUsage with ThermostatID (Thermostats[].Id)."
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
Binary file