iobroker.panasonic-comfort-cloud 3.0.3 → 3.2.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/LICENSE +1 -1
- package/README.md +20 -4
- package/admin/i18n/de/translations.json +4 -3
- package/admin/i18n/en/translations.json +4 -3
- package/admin/i18n/es/translations.json +3 -3
- package/admin/i18n/fr/translations.json +3 -3
- package/admin/i18n/it/translations.json +3 -3
- package/admin/i18n/nl/translations.json +3 -3
- package/admin/i18n/pl/translations.json +3 -3
- package/admin/i18n/pt/translations.json +3 -3
- package/admin/i18n/ru/translations.json +3 -3
- package/admin/i18n/uk/translations.json +3 -3
- package/admin/i18n/zh-cn/translations.json +3 -3
- package/admin/jsonConfig.json +41 -11
- package/build/lib/state-definitions.js +181 -0
- package/build/lib/state-definitions.js.map +7 -0
- package/build/main.js +151 -287
- package/build/main.js.map +2 -2
- package/io-package.json +57 -43
- package/package.json +17 -11
- package/admin/words.js +0 -18
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
| :warning: WARNING |
|
|
4
4
|
|:---------------------------|
|
|
5
|
-
| New app version in adapter settings is
|
|
5
|
+
| New app version in adapter settings is 3.0.03 |
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
[](https://www.npmjs.com/package/iobroker.panasonic-comfort-cloud)
|
|
9
|
+
  [](https://www.npmjs.com/package/iobroker.panasonic-comfort-cloud)
|
|
10
10
|
[](https://www.npmjs.com/package/iobroker.panasonic-comfort-cloud)
|
|
11
11
|
[](https://www.npmjs.com/package/iobroker.panasonic-comfort-cloud)
|
|
12
12
|
|
|
13
|
-
[](https://david-dm.org/marc2016/iobroker.panasonic-comfort-cloud)
|
|
14
13
|
[](https://snyk.io/test/github/marc2016/ioBroker.panasonic-comfort-cloud)
|
|
15
14
|
|
|
16
15
|
[](https://nodei.co/npm/iobroker.panasonic-comfort-cloud/)
|
|
@@ -24,6 +23,23 @@ With the method used, only one client can be logged on with the account at a tim
|
|
|
24
23
|
It is recommended that a second account, for which the devices have been shared, is used.
|
|
25
24
|
|
|
26
25
|
## Changelog
|
|
26
|
+
### 3.2.1 (2025-12-21)
|
|
27
|
+
* implement history data fetching (day mode)
|
|
28
|
+
* add historyEnabled configuration
|
|
29
|
+
* add manual history refresh command
|
|
30
|
+
* fix eslint errors (indentation, unused vars)
|
|
31
|
+
|
|
32
|
+
### 3.2.0 (2025-12-21)
|
|
33
|
+
* update library panasonic-comfort-cloud-client to 2.1.4
|
|
34
|
+
* modernize code (remove lodash, use async/await, split state definitions)
|
|
35
|
+
* replace deprecated methods with modern equivalents
|
|
36
|
+
* improve unit tests and remove deprecated test wrapper
|
|
37
|
+
* add mocked client tests to verify connection logic
|
|
38
|
+
|
|
39
|
+
### 3.1.0 (2025-08-09)
|
|
40
|
+
|
|
41
|
+
* read app version from App Store.
|
|
42
|
+
|
|
27
43
|
### 3.0.3 (2024-11-08)
|
|
28
44
|
|
|
29
45
|
* panasonic-comfort-cloud-client updated to new version. CFC generator for header added.
|
|
@@ -149,7 +165,7 @@ It is recommended that a second account, for which the devices have been shared,
|
|
|
149
165
|
|
|
150
166
|
MIT License
|
|
151
167
|
|
|
152
|
-
Copyright (c)
|
|
168
|
+
Copyright (c) 2025 marc <marc@lammers.dev>
|
|
153
169
|
|
|
154
170
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
155
171
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Neue Version der App für API",
|
|
3
|
-
"appVersionFromGithub": "App-Version für API, geladen aus dem GitHub-Repository",
|
|
4
|
-
"useAppVersionFromGithub": "Verwenden Sie die von GitHub geladene App-Version",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Adaptereinstellungen für Panasonic-Comfort-Cloud",
|
|
6
4
|
"password": "Passwort",
|
|
7
5
|
"refreshInterval": "Aktualisierungsintervall (Minuten)",
|
|
8
6
|
"username": "Nutzername",
|
|
9
7
|
"automaticRefreshEnabled": "Automatische Aktualisierung aktiv",
|
|
10
8
|
"adapterCommands": "Befehle zur Steuerung des Adapters",
|
|
11
|
-
"manualRefresh": "Gerätehandbuch aktualisieren"
|
|
9
|
+
"manualRefresh": "Gerätehandbuch aktualisieren",
|
|
10
|
+
"appVersionFromAppStore": "App -Version für API aus dem App Store geladen",
|
|
11
|
+
"useAppVersionFromAppStore": "Verwenden Sie die App -Version, die aus dem App Store geladen wurde",
|
|
12
|
+
"historyEnabled": "Historische Daten abrufen (Verbrauch, Temperatur)"
|
|
12
13
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "New version of the app for API",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"appVersionFromAppStore": "App version for API loaded from App Store",
|
|
4
|
+
"useAppVersionFromAppStore": "Use the app version loaded from App Store",
|
|
5
5
|
"panasonic-comfort-cloud adapter settings": "Adapter settings for panasonic-comfort-cloud",
|
|
6
6
|
"password": "Password",
|
|
7
7
|
"refreshInterval": "Refresh interval (minutes)",
|
|
8
8
|
"username": "Username",
|
|
9
|
-
"automaticRefreshEnabled": "Automatic refresh enabled"
|
|
9
|
+
"automaticRefreshEnabled": "Automatic refresh enabled",
|
|
10
|
+
"historyEnabled": "Fetch history data (consumption, temperature)"
|
|
10
11
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nueva versión de la aplicación para API",
|
|
3
|
-
"appVersionFromGithub": "Versión de la aplicación para API cargada desde el repositorio de GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Utilice la versión de la aplicación cargada desde GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Configuración del adaptador para panasonic-comfort-cloud",
|
|
6
4
|
"password": "Contraseña",
|
|
7
5
|
"refreshInterval": "Intervalo de actualización (minutos)",
|
|
8
6
|
"username": "Nombre de usuario",
|
|
9
7
|
"automaticRefreshEnabled": "Actualización automática habilitada",
|
|
10
8
|
"adapterCommands": "Comandos para controlar el adaptador.",
|
|
11
|
-
"manualRefresh": "Actualizar manual de dispositivos"
|
|
9
|
+
"manualRefresh": "Actualizar manual de dispositivos",
|
|
10
|
+
"appVersionFromAppStore": "Versión de la aplicación para API cargada desde App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Use la versión de la aplicación cargada desde App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nouvelle version de l'application pour API",
|
|
3
|
-
"appVersionFromGithub": "Version de l'application pour l'API chargée à partir du référentiel GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Utilisez la version de l'application chargée depuis GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Paramètres de l'adaptateur pour Panasonic-Comfort-Cloud",
|
|
6
4
|
"password": "Mot de passe",
|
|
7
5
|
"refreshInterval": "Intervalle d'actualisation (minutes)",
|
|
8
6
|
"username": "Nom d'utilisateur",
|
|
9
7
|
"automaticRefreshEnabled": "Actualisation automatique activée",
|
|
10
8
|
"adapterCommands": "Commandes pour contrôler l'adaptateur",
|
|
11
|
-
"manualRefresh": "Actualiser le manuel des appareils"
|
|
9
|
+
"manualRefresh": "Actualiser le manuel des appareils",
|
|
10
|
+
"appVersionFromAppStore": "Version de l'application pour l'API chargée de l'App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Utilisez la version de l'application chargée à partir de l'App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nuova versione dell'app per API",
|
|
3
|
-
"appVersionFromGithub": "Versione dell'app per API caricata dal repository GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Utilizza la versione dell'app caricata da GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Impostazioni dell'adattatore per panasonic-comfort-cloud",
|
|
6
4
|
"password": "Parola d'ordine",
|
|
7
5
|
"refreshInterval": "Intervallo di aggiornamento (minuti)",
|
|
8
6
|
"username": "Nome utente",
|
|
9
7
|
"automaticRefreshEnabled": "Aggiornamento automatico abilitato",
|
|
10
8
|
"adapterCommands": "Comandi per controllare l'adattatore",
|
|
11
|
-
"manualRefresh": "Aggiorna il manuale dei dispositivi"
|
|
9
|
+
"manualRefresh": "Aggiorna il manuale dei dispositivi",
|
|
10
|
+
"appVersionFromAppStore": "Versione app per API caricata dall'App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Utilizzare la versione dell'app caricata dall'App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nieuwe versie van de app voor API",
|
|
3
|
-
"appVersionFromGithub": "App-versie voor API geladen vanuit GitHub-repository",
|
|
4
|
-
"useAppVersionFromGithub": "Gebruik de app-versie die is geladen vanuit GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Adapterinstellingen voor panasonic-comfort-cloud",
|
|
6
4
|
"password": "Wachtwoord",
|
|
7
5
|
"refreshInterval": "Vernieuwingsinterval (minuten)",
|
|
8
6
|
"username": "Gebruikersnaam",
|
|
9
7
|
"automaticRefreshEnabled": "Automatisch vernieuwen ingeschakeld",
|
|
10
8
|
"adapterCommands": "Commando's om de adapter te besturen",
|
|
11
|
-
"manualRefresh": "Handleiding apparaten vernieuwen"
|
|
9
|
+
"manualRefresh": "Handleiding apparaten vernieuwen",
|
|
10
|
+
"appVersionFromAppStore": "App -versie voor API geladen vanuit App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Gebruik de app -versie geladen in App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nowa wersja aplikacji dla API",
|
|
3
|
-
"appVersionFromGithub": "Wersja aplikacji dla API załadowana z repozytorium GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Użyj wersji aplikacji pobranej z GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Ustawienia adaptera dla panasonic-comfort-cloud",
|
|
6
4
|
"password": "Hasło",
|
|
7
5
|
"refreshInterval": "Interwał odświeżania (minuty)",
|
|
8
6
|
"username": "Nazwa użytkownika",
|
|
9
7
|
"automaticRefreshEnabled": "Włączono automatyczne odświeżanie",
|
|
10
8
|
"adapterCommands": "Polecenia sterujące adapterem",
|
|
11
|
-
"manualRefresh": "Odśwież instrukcję obsługi urządzeń"
|
|
9
|
+
"manualRefresh": "Odśwież instrukcję obsługi urządzeń",
|
|
10
|
+
"appVersionFromAppStore": "Wersja aplikacji dla interfejsu API załadowana z App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Użyj wersji aplikacji załadowanej z App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Nova versão do aplicativo para API",
|
|
3
|
-
"appVersionFromGithub": "Versão do aplicativo para API carregada do repositório GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Use a versão do aplicativo carregada do GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Configurações do adaptador para panasonic-comfort-cloud",
|
|
6
4
|
"password": "Senha",
|
|
7
5
|
"refreshInterval": "Intervalo de atualização (minutos)",
|
|
8
6
|
"username": "Nome de usuário",
|
|
9
7
|
"automaticRefreshEnabled": "Atualização automática ativada",
|
|
10
8
|
"adapterCommands": "Comandos para controlar o adaptador",
|
|
11
|
-
"manualRefresh": "Atualizar manual de dispositivos"
|
|
9
|
+
"manualRefresh": "Atualizar manual de dispositivos",
|
|
10
|
+
"appVersionFromAppStore": "Versão do aplicativo para API carregada na App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Use a versão do aplicativo carregada na App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Новая версия приложения для API",
|
|
3
|
-
"appVersionFromGithub": "Версия приложения для API загружена из репозитория GitHub.",
|
|
4
|
-
"useAppVersionFromGithub": "Используйте версию приложения, загруженную с GitHub.",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Настройки адаптера для panasonic-comfort-cloud",
|
|
6
4
|
"password": "Пароль",
|
|
7
5
|
"refreshInterval": "Интервал обновления (минуты)",
|
|
8
6
|
"username": "Имя пользователя",
|
|
9
7
|
"automaticRefreshEnabled": "Автоматическое обновление включено",
|
|
10
8
|
"adapterCommands": "Команды для управления адаптером",
|
|
11
|
-
"manualRefresh": "Обновить руководство по устройствам"
|
|
9
|
+
"manualRefresh": "Обновить руководство по устройствам",
|
|
10
|
+
"appVersionFromAppStore": "Версия приложения для API загружена в App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Используйте версию приложения, загруженную в App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "Нова версія програми для API",
|
|
3
|
-
"appVersionFromGithub": "Версія програми для API, завантажена зі сховища GitHub",
|
|
4
|
-
"useAppVersionFromGithub": "Використовуйте версію програми, завантажену з GitHub",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "Налаштування адаптера для panasonic-comfort-cloud",
|
|
6
4
|
"password": "Пароль",
|
|
7
5
|
"refreshInterval": "Інтервал оновлення (хв.)",
|
|
8
6
|
"username": "Ім'я користувача",
|
|
9
7
|
"automaticRefreshEnabled": "Автоматичне оновлення ввімкнено",
|
|
10
8
|
"adapterCommands": "Команди для керування адаптером",
|
|
11
|
-
"manualRefresh": "Оновити посібник з пристроїв"
|
|
9
|
+
"manualRefresh": "Оновити посібник з пристроїв",
|
|
10
|
+
"appVersionFromAppStore": "Версія додатка для API, завантажена з App Store",
|
|
11
|
+
"useAppVersionFromAppStore": "Використовуйте версію додатка, завантажену з App Store"
|
|
12
12
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"appVersion": "API 应用程序的新版本",
|
|
3
|
-
"appVersionFromGithub": "从 GitHub 存储库加载的 API 的应用程序版本",
|
|
4
|
-
"useAppVersionFromGithub": "使用从 GitHub 加载的应用程序版本",
|
|
5
3
|
"panasonic-comfort-cloud adapter settings": "panasonic-comfort-cloud 的适配器设置",
|
|
6
4
|
"password": "密码",
|
|
7
5
|
"refreshInterval": "刷新间隔(分钟)",
|
|
8
6
|
"username": "用户名",
|
|
9
7
|
"automaticRefreshEnabled": "自动刷新启用",
|
|
10
8
|
"adapterCommands": "控制适配器的命令",
|
|
11
|
-
"manualRefresh": "刷新设备手册"
|
|
9
|
+
"manualRefresh": "刷新设备手册",
|
|
10
|
+
"appVersionFromAppStore": "从App Store加载的API的应用程序版本",
|
|
11
|
+
"useAppVersionFromAppStore": "使用从应用商店加载的应用程序版本"
|
|
12
12
|
}
|
package/admin/jsonConfig.json
CHANGED
|
@@ -5,45 +5,75 @@
|
|
|
5
5
|
"username": {
|
|
6
6
|
"type": "text",
|
|
7
7
|
"label": "username",
|
|
8
|
+
"xs": 12,
|
|
8
9
|
"sm": 12,
|
|
9
|
-
"md":
|
|
10
|
+
"md": 6,
|
|
11
|
+
"lg": 4,
|
|
12
|
+
"xl": 4
|
|
10
13
|
},
|
|
11
14
|
"password": {
|
|
12
15
|
"type": "password",
|
|
13
16
|
"label": "password",
|
|
17
|
+
"xs": 12,
|
|
14
18
|
"sm": 12,
|
|
15
|
-
"md":
|
|
19
|
+
"md": 6,
|
|
20
|
+
"lg": 4,
|
|
21
|
+
"xl": 4
|
|
16
22
|
},
|
|
17
23
|
"pollinterval": {
|
|
18
24
|
"type": "number",
|
|
19
25
|
"label": "refreshInterval",
|
|
26
|
+
"xs": 12,
|
|
20
27
|
"sm": 12,
|
|
21
|
-
"md":
|
|
28
|
+
"md": 6,
|
|
29
|
+
"lg": 4,
|
|
30
|
+
"xl": 4
|
|
22
31
|
},
|
|
23
32
|
"automaticRefreshEnabled": {
|
|
24
33
|
"type": "checkbox",
|
|
25
34
|
"label": "automaticRefreshEnabled",
|
|
35
|
+
"xs": 12,
|
|
26
36
|
"sm": 12,
|
|
27
|
-
"md":
|
|
37
|
+
"md": 6,
|
|
38
|
+
"lg": 4,
|
|
39
|
+
"xl": 4
|
|
28
40
|
},
|
|
29
41
|
"appVersion": {
|
|
30
42
|
"type": "text",
|
|
31
43
|
"label": "appVersion",
|
|
44
|
+
"xs": 12,
|
|
32
45
|
"sm": 12,
|
|
33
|
-
"md":
|
|
46
|
+
"md": 6,
|
|
47
|
+
"lg": 4,
|
|
48
|
+
"xl": 4
|
|
34
49
|
},
|
|
35
|
-
"
|
|
50
|
+
"appVersionFromAppStore": {
|
|
36
51
|
"type": "text",
|
|
37
|
-
"label": "
|
|
52
|
+
"label": "appVersionFromAppStore",
|
|
38
53
|
"readOnly": true,
|
|
54
|
+
"xs": 12,
|
|
39
55
|
"sm": 12,
|
|
40
|
-
"md":
|
|
56
|
+
"md": 6,
|
|
57
|
+
"lg": 4,
|
|
58
|
+
"xl": 4
|
|
41
59
|
},
|
|
42
|
-
"
|
|
60
|
+
"useAppVersionFromAppStore": {
|
|
43
61
|
"type": "checkbox",
|
|
44
|
-
"label": "
|
|
62
|
+
"label": "useAppVersionFromAppStore",
|
|
63
|
+
"xs": 12,
|
|
45
64
|
"sm": 12,
|
|
46
|
-
"md":
|
|
65
|
+
"md": 6,
|
|
66
|
+
"lg": 4,
|
|
67
|
+
"xl": 4
|
|
68
|
+
},
|
|
69
|
+
"historyEnabled": {
|
|
70
|
+
"type": "checkbox",
|
|
71
|
+
"label": "historyEnabled",
|
|
72
|
+
"xs": 12,
|
|
73
|
+
"sm": 12,
|
|
74
|
+
"md": 6,
|
|
75
|
+
"lg": 4,
|
|
76
|
+
"xl": 4
|
|
47
77
|
}
|
|
48
78
|
}
|
|
49
79
|
}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var state_definitions_exports = {};
|
|
20
|
+
__export(state_definitions_exports, {
|
|
21
|
+
deviceStates: () => deviceStates,
|
|
22
|
+
getHistoryStates: () => getHistoryStates,
|
|
23
|
+
readonlyStateNames: () => readonlyStateNames
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(state_definitions_exports);
|
|
26
|
+
var import_panasonic_comfort_cloud_client = require("panasonic-comfort-cloud-client");
|
|
27
|
+
const deviceStates = [
|
|
28
|
+
{
|
|
29
|
+
id: "guid",
|
|
30
|
+
role: "info.address",
|
|
31
|
+
write: false,
|
|
32
|
+
type: "string",
|
|
33
|
+
def: void 0
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: "operate",
|
|
37
|
+
role: "switch.power",
|
|
38
|
+
write: true,
|
|
39
|
+
type: "number",
|
|
40
|
+
states: { 0: import_panasonic_comfort_cloud_client.Power[0], 1: import_panasonic_comfort_cloud_client.Power[1] }
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "temperatureSet",
|
|
44
|
+
role: "level.temperature",
|
|
45
|
+
write: true,
|
|
46
|
+
type: "number"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "insideTemperature",
|
|
50
|
+
role: "level.temperature",
|
|
51
|
+
write: false,
|
|
52
|
+
type: "number"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "outTemperature",
|
|
56
|
+
role: "level.temperature",
|
|
57
|
+
write: false,
|
|
58
|
+
type: "number"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "airSwingLR",
|
|
62
|
+
role: "state",
|
|
63
|
+
write: true,
|
|
64
|
+
type: "number",
|
|
65
|
+
states: {
|
|
66
|
+
0: import_panasonic_comfort_cloud_client.AirSwingLR[0],
|
|
67
|
+
1: import_panasonic_comfort_cloud_client.AirSwingLR[1],
|
|
68
|
+
2: import_panasonic_comfort_cloud_client.AirSwingLR[2],
|
|
69
|
+
3: import_panasonic_comfort_cloud_client.AirSwingLR[3],
|
|
70
|
+
4: import_panasonic_comfort_cloud_client.AirSwingLR[4]
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "airSwingUD",
|
|
75
|
+
role: "state",
|
|
76
|
+
write: true,
|
|
77
|
+
type: "number",
|
|
78
|
+
states: {
|
|
79
|
+
0: import_panasonic_comfort_cloud_client.AirSwingUD[0],
|
|
80
|
+
1: import_panasonic_comfort_cloud_client.AirSwingUD[1],
|
|
81
|
+
2: import_panasonic_comfort_cloud_client.AirSwingUD[2],
|
|
82
|
+
3: import_panasonic_comfort_cloud_client.AirSwingUD[3],
|
|
83
|
+
4: import_panasonic_comfort_cloud_client.AirSwingUD[4]
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
id: "fanAutoMode",
|
|
88
|
+
role: "state",
|
|
89
|
+
write: true,
|
|
90
|
+
type: "number",
|
|
91
|
+
states: {
|
|
92
|
+
0: import_panasonic_comfort_cloud_client.FanAutoMode[0],
|
|
93
|
+
1: import_panasonic_comfort_cloud_client.FanAutoMode[1],
|
|
94
|
+
2: import_panasonic_comfort_cloud_client.FanAutoMode[2],
|
|
95
|
+
3: import_panasonic_comfort_cloud_client.FanAutoMode[3]
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: "ecoMode",
|
|
100
|
+
role: "state",
|
|
101
|
+
write: true,
|
|
102
|
+
type: "number",
|
|
103
|
+
states: { 0: import_panasonic_comfort_cloud_client.EcoMode[0], 1: import_panasonic_comfort_cloud_client.EcoMode[1], 2: import_panasonic_comfort_cloud_client.EcoMode[2] }
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: "operationMode",
|
|
107
|
+
role: "state",
|
|
108
|
+
write: true,
|
|
109
|
+
type: "number",
|
|
110
|
+
states: {
|
|
111
|
+
0: import_panasonic_comfort_cloud_client.OperationMode[0],
|
|
112
|
+
1: import_panasonic_comfort_cloud_client.OperationMode[1],
|
|
113
|
+
2: import_panasonic_comfort_cloud_client.OperationMode[2],
|
|
114
|
+
3: import_panasonic_comfort_cloud_client.OperationMode[3],
|
|
115
|
+
4: import_panasonic_comfort_cloud_client.OperationMode[4]
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: "fanSpeed",
|
|
120
|
+
role: "state",
|
|
121
|
+
write: true,
|
|
122
|
+
type: "number",
|
|
123
|
+
states: {
|
|
124
|
+
0: import_panasonic_comfort_cloud_client.FanSpeed[0],
|
|
125
|
+
1: import_panasonic_comfort_cloud_client.FanSpeed[1],
|
|
126
|
+
2: import_panasonic_comfort_cloud_client.FanSpeed[2],
|
|
127
|
+
3: import_panasonic_comfort_cloud_client.FanSpeed[3],
|
|
128
|
+
4: import_panasonic_comfort_cloud_client.FanSpeed[4],
|
|
129
|
+
5: import_panasonic_comfort_cloud_client.FanSpeed[5]
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: "actualNanoe",
|
|
134
|
+
role: "state",
|
|
135
|
+
write: true,
|
|
136
|
+
type: "number",
|
|
137
|
+
states: {
|
|
138
|
+
0: import_panasonic_comfort_cloud_client.NanoeMode[0],
|
|
139
|
+
1: import_panasonic_comfort_cloud_client.NanoeMode[1],
|
|
140
|
+
2: import_panasonic_comfort_cloud_client.NanoeMode[2],
|
|
141
|
+
3: import_panasonic_comfort_cloud_client.NanoeMode[3],
|
|
142
|
+
4: import_panasonic_comfort_cloud_client.NanoeMode[4]
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: "connected",
|
|
147
|
+
role: "state",
|
|
148
|
+
write: false,
|
|
149
|
+
read: true,
|
|
150
|
+
type: "boolean",
|
|
151
|
+
def: false
|
|
152
|
+
}
|
|
153
|
+
];
|
|
154
|
+
const readonlyStateNames = deviceStates.filter((s) => !s.write).map((s) => s.id);
|
|
155
|
+
function getHistoryStates() {
|
|
156
|
+
const states = {};
|
|
157
|
+
const modes = ["day"];
|
|
158
|
+
const limit = { day: 24 };
|
|
159
|
+
for (const mode of modes) {
|
|
160
|
+
for (let i = 0; i <= limit[mode]; i++) {
|
|
161
|
+
const index = i.toString().padStart(2, "0");
|
|
162
|
+
const prefix = `history.${mode}.${index}`;
|
|
163
|
+
states[`${prefix}.dataTime`] = { role: "value.time", name: "Data Time", type: "string", read: true, write: false, def: "" };
|
|
164
|
+
states[`${prefix}.averageSettingTemp`] = { role: "value.temperature", name: "Average Setting Temp", type: "number", unit: "\xB0C", read: true, write: false, def: 0 };
|
|
165
|
+
states[`${prefix}.averageInsideTemp`] = { role: "value.temperature", name: "Average Inside Temp", type: "number", unit: "\xB0C", read: true, write: false, def: 0 };
|
|
166
|
+
states[`${prefix}.averageOutsideTemp`] = { role: "value.temperature", name: "Average Outside Temp", type: "number", unit: "\xB0C", read: true, write: false, def: 0 };
|
|
167
|
+
states[`${prefix}.consumption`] = { role: "value.power.consumption", name: "Consumption", type: "number", unit: "kWh", read: true, write: false, def: 0 };
|
|
168
|
+
states[`${prefix}.cost`] = { role: "value.cost", name: "Cost", type: "number", read: true, write: false, def: 0 };
|
|
169
|
+
states[`${prefix}.heatConsumptionRate`] = { role: "value", name: "Heat Consumption Rate", type: "number", read: true, write: false, def: 0 };
|
|
170
|
+
states[`${prefix}.coolConsumptionRate`] = { role: "value", name: "Cool Consumption Rate", type: "number", read: true, write: false, def: 0 };
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return states;
|
|
174
|
+
}
|
|
175
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
+
0 && (module.exports = {
|
|
177
|
+
deviceStates,
|
|
178
|
+
getHistoryStates,
|
|
179
|
+
readonlyStateNames
|
|
180
|
+
});
|
|
181
|
+
//# sourceMappingURL=state-definitions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/lib/state-definitions.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n Power,\n AirSwingLR,\n AirSwingUD,\n FanAutoMode,\n EcoMode,\n OperationMode,\n FanSpeed,\n NanoeMode\n} from 'panasonic-comfort-cloud-client'\n\nexport interface StateDefinition {\n id: string;\n role: string;\n write: boolean;\n type: 'number' | 'string' | 'boolean' | 'array' | 'object' | 'mixed' | 'file';\n read?: boolean;\n def?: any;\n states?: Record<number, string>;\n}\n\nexport const deviceStates: StateDefinition[] = [\n {\n id: 'guid',\n role: 'info.address',\n write: false,\n type: 'string',\n def: undefined // Will be set dynamically from device info\n },\n {\n id: 'operate',\n role: 'switch.power',\n write: true,\n type: 'number',\n states: { 0: Power[0], 1: Power[1] }\n },\n {\n id: 'temperatureSet',\n role: 'level.temperature',\n write: true,\n type: 'number'\n },\n {\n id: 'insideTemperature',\n role: 'level.temperature',\n write: false,\n type: 'number'\n },\n {\n id: 'outTemperature',\n role: 'level.temperature',\n write: false,\n type: 'number'\n },\n {\n id: 'airSwingLR',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: AirSwingLR[0],\n 1: AirSwingLR[1],\n 2: AirSwingLR[2],\n 3: AirSwingLR[3],\n 4: AirSwingLR[4],\n }\n },\n {\n id: 'airSwingUD',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: AirSwingUD[0],\n 1: AirSwingUD[1],\n 2: AirSwingUD[2],\n 3: AirSwingUD[3],\n 4: AirSwingUD[4],\n }\n },\n {\n id: 'fanAutoMode',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: FanAutoMode[0],\n 1: FanAutoMode[1],\n 2: FanAutoMode[2],\n 3: FanAutoMode[3],\n }\n },\n {\n id: 'ecoMode',\n role: 'state',\n write: true,\n type: 'number',\n states: { 0: EcoMode[0], 1: EcoMode[1], 2: EcoMode[2] }\n },\n {\n id: 'operationMode',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: OperationMode[0],\n 1: OperationMode[1],\n 2: OperationMode[2],\n 3: OperationMode[3],\n 4: OperationMode[4],\n }\n },\n {\n id: 'fanSpeed',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: FanSpeed[0],\n 1: FanSpeed[1],\n 2: FanSpeed[2],\n 3: FanSpeed[3],\n 4: FanSpeed[4],\n 5: FanSpeed[5],\n }\n },\n {\n id: 'actualNanoe',\n role: 'state',\n write: true,\n type: 'number',\n states: {\n 0: NanoeMode[0],\n 1: NanoeMode[1],\n 2: NanoeMode[2],\n 3: NanoeMode[3],\n 4: NanoeMode[4],\n }\n },\n {\n id: 'connected',\n role: 'state',\n write: false,\n read: true,\n type: 'boolean',\n def: false\n }\n];\n\nexport const readonlyStateNames = deviceStates\n .filter(s => !s.write)\n .map(s => s.id);\n\nexport function getHistoryStates(): Record<string, any> {\n const states: Record<string, any> = {};\n const modes = ['day'];\n const limit: Record<string, number> = { day: 24 };\n\n for (const mode of modes) {\n for (let i = 0; i <= limit[mode]; i++) {\n const index = i.toString().padStart(2, '0');\n const prefix = `history.${mode}.${index}`;\n\n states[`${prefix}.dataTime`] = { role: 'value.time', name: 'Data Time', type: 'string', read: true, write: false, def: '' };\n states[`${prefix}.averageSettingTemp`] = { role: 'value.temperature', name: 'Average Setting Temp', type: 'number', unit: '\u00B0C', read: true, write: false, def: 0 };\n states[`${prefix}.averageInsideTemp`] = { role: 'value.temperature', name: 'Average Inside Temp', type: 'number', unit: '\u00B0C', read: true, write: false, def: 0 };\n states[`${prefix}.averageOutsideTemp`] = { role: 'value.temperature', name: 'Average Outside Temp', type: 'number', unit: '\u00B0C', read: true, write: false, def: 0 };\n states[`${prefix}.consumption`] = { role: 'value.power.consumption', name: 'Consumption', type: 'number', unit: 'kWh', read: true, write: false, def: 0 };\n states[`${prefix}.cost`] = { role: 'value.cost', name: 'Cost', type: 'number', read: true, write: false, def: 0 };\n states[`${prefix}.heatConsumptionRate`] = { role: 'value', name: 'Heat Consumption Rate', type: 'number', read: true, write: false, def: 0 };\n states[`${prefix}.coolConsumptionRate`] = { role: 'value', name: 'Cool Consumption Rate', type: 'number', read: true, write: false, def: 0 };\n }\n }\n return states;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|