iobroker.knx 2.0.3 → 2.0.4

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 CHANGED
@@ -9,6 +9,7 @@
9
9
  #### Table of content
10
10
 
11
11
  * [Description](#description)
12
+ * [Requirements](#requirements)
12
13
  * [Features](#features)
13
14
  * [Adapter configuration](#adapter-configuration)
14
15
  * [Install the License](#install-the-license)
@@ -36,6 +37,13 @@ It connects to standard KNX/LAN Gateways.
36
37
 
37
38
  Before beginning: Every DPT of com.Objects should be set in your ETS project. Every device should be sorted into your facility structure.
38
39
 
40
+ ## Requirements
41
+
42
+ * node Version >= 14.15.4
43
+ * admin Version >= 5.2.0
44
+ * js-controller Version >=3.3.20
45
+
46
+ Without this requirements, the adapter is not installable or will work not properly.
39
47
 
40
48
  ## License requirements
41
49
  To use this adapter in ioBroker you need to accept the source code license of the adapter. The source code of this adapter is available under the CC-NC-BY license.
@@ -198,6 +206,13 @@ If there are more GA's to change properties, use multiselect. This feature works
198
206
 
199
207
  ## Changelog
200
208
 
209
+ ### 2.0.4
210
+
211
+ * fixed DPT9.xxx calculation
212
+ * implemented date-and-time DPT19.00x
213
+ * fixed confusing "no license error"
214
+ * small bugfixes
215
+
201
216
  ### 2.0.3 (2021-12-04)
202
217
 
203
218
  * fixed counting 1st Datapoint
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "./static/css/main.e2d673ee.chunk.css",
4
- "main.js": "./static/js/main.31e4e05f.chunk.js",
5
- "main.js.map": "./static/js/main.31e4e05f.chunk.js.map",
4
+ "main.js": "./static/js/main.1efda754.chunk.js",
5
+ "main.js.map": "./static/js/main.1efda754.chunk.js.map",
6
6
  "runtime-main.js": "./static/js/runtime-main.ec74a465.js",
7
7
  "runtime-main.js.map": "./static/js/runtime-main.ec74a465.js.map",
8
8
  "static/css/2.67ef5efb.chunk.css": "./static/css/2.67ef5efb.chunk.css",
@@ -18,6 +18,6 @@
18
18
  "static/css/2.67ef5efb.chunk.css",
19
19
  "static/js/2.8ce0c6f9.chunk.js",
20
20
  "static/css/main.e2d673ee.chunk.css",
21
- "static/js/main.31e4e05f.chunk.js"
21
+ "static/js/main.1efda754.chunk.js"
22
22
  ]
23
23
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="./manifest.json"/><script type="text/javascript" onerror="setTimeout(function(){window.location.reload()}, 5000)" src="../../lib/js/socket.io.js"></script><script type="text/javascript" src="./zip/zip.js"></script><script type="text/javascript" src="./zip/zip-ext.js"></script><script type="text/javascript" src="./zip/inflate.js"></script><title>KNX settings</title><link href="./static/css/2.67ef5efb.chunk.css" rel="stylesheet"><link href="./static/css/main.e2d673ee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],f=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./";var l=this["webpackJsonpknx-admin"]=this["webpackJsonpknx-admin"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var f=0;f<l.length;f++)r(l[f]);var p=a;t()}([])</script><script src="./static/js/2.8ce0c6f9.chunk.js"></script><script src="./static/js/main.31e4e05f.chunk.js"></script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="./manifest.json"/><script type="text/javascript" onerror="setTimeout(function(){window.location.reload()}, 5000)" src="../../lib/js/socket.io.js"></script><script type="text/javascript" src="./zip/zip.js"></script><script type="text/javascript" src="./zip/zip-ext.js"></script><script type="text/javascript" src="./zip/inflate.js"></script><title>KNX settings</title><link href="./static/css/2.67ef5efb.chunk.css" rel="stylesheet"><link href="./static/css/main.e2d673ee.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,l=r[0],a=r[1],f=r[2],c=0,s=[];c<l.length;c++)i=l[c],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&s.push(o[i][0]),o[i]=0;for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var a=t[l];0!==o[a]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./";var l=this["webpackJsonpknx-admin"]=this["webpackJsonpknx-admin"]||[],a=l.push.bind(l);l.push=r,l=l.slice();for(var f=0;f<l.length;f++)r(l[f]);var p=a;t()}([])</script><script src="./static/js/2.8ce0c6f9.chunk.js"></script><script src="./static/js/main.1efda754.chunk.js"></script></body></html>
@@ -1,2 +1,2 @@
1
- (this["webpackJsonpknx-admin"]=this["webpackJsonpknx-admin"]||[]).push([[0],{173:function(e){e.exports=JSON.parse('{"a":"2.0.3"}')},239:function(e,t,a){},296:function(e){e.exports=JSON.parse('{"Cancel":"Cancel","Save":"Save","Close":"Close","invalid KNX address":"Invalid KNX Address!","invalid ip address":"Invalid IP Address!","invalid frame interval":"Invalid frame rate, 10 < rate < 300","invalid password":"Invalid password","read":"read","write":"write","update":"update","Multiselection":"multi selection","none selected":"none selected","Choose corresponding GA":"Choose corresponding GA","GA State - Act relation":"GA State - Act relation","modify":"modify","add new relation":"add new relation","Error":"error","This Error occured : ":"This Error occured : ","Available Licenses":"Available Licenses","valid until":"valid until","Datapoints":"Datapoints","Version":"Version","Host ID":"Host ID","Host ID : ":"Host ID : ","Apply":"Apply","Please enter ioBroker.net login and password":"Please enter ioBroker.net login and password","e-mail":"E-Mail","password":"password","add / modify license":"add / modify license","license":"license","Synchronize with iobroker.net":"Synchronize with iobroker.net","GA-structure":"GA-structure","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"The target has already a relation. Delete the target relation first before create a new one. It is connected to ","It is not possible to combine State GA and Act GA with different datapointtypes.":"It is not possible to combine State GA and Act GA with different datapointtypes.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"It is not possible to combine state-state nor act-act GAs. Check the GA Properties.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA","Information":"Information","Changing this GA is not possible, because they have existing Act-State relations.":"Changing this GA is not possible, because they have existing Act-State relations.","GA State - Actuator relation":"GA State - Actuator relation","delete":"delete","Successful imported GAs : ":"Successful imported GAs : ","Import partially or completely failed with error : ":"Import partially or completely failed with error : ","number of max datapoints : ":"number of max datapoints : ","valid until : ":"valid until : ","expired":"expired","version : ":"version : ","KNX Gateway Settings":"KNX Gateway Settings","local iobroker IP":"local iobroker IP","loglevel":"loglevel","Info":"Info","more":"more","all":"all","upload KNX project file":"upload KNX project file","only import new datapoints":"only import new datapoints","license not valid":"license not valid","adapter not running":"adapter not running","License valid.":"License valid.","KNX adapter licensing":"KNX adapter licensing","Failed to fetch":"Failed to fetch","License error : ":"License error : ",". Click here to install a license.":". Click here to install a license.","License server not available.":"License server not available.","KNX packages per second":"KNX packages per second","physical KNX address":"physical KNX address","KNX Gateway Port":"KNX Gateway Port","KNX Gateway IP":"KNX Gateway IP","Drag \'n\' drop knxproj file here, or click to select file":"Drag \'n\' drop knxproj file here, or click to select file"}')},297:function(e){e.exports=JSON.parse('{"Cancel":"Abbrechen","invalid KNX address":"Ung\xfcltige KNX-Adresse!","invalid frame interval":"Ung\xfcltige Bildrate, 10 < Rate < 300","invalid ip address":"Ung\xfcltige IP-Adresse!","invalid password":"Ung\xfcltiges Passwort","Apply":"Anwenden","Available Licenses":"Verf\xfcgbare Lizenzen","Choose corresponding GA":"W\xe4hlen Sie entsprechende GA","Close":"Schliessen","Datapoints":"Datenpunkte","Error":"Fehler","GA State - Act relation":"GA State - Act-Beziehung","GA-structure":"GA-Struktur","Host ID":"Host-ID","Multiselection":"Mehrfachauswahl","Please enter ioBroker.net login and password":"Bitte geben Sie ioBroker.net Login und Passwort ein","Save":"Speichern","Synchronize with iobroker.net":"Mit iobroker.net synchronisieren","This Error occured : ":"Dieser Fehler ist aufgetreten:","Version":"Ausf\xfchrung","add / modify license":"Lizenz hinzuf\xfcgen / \xe4ndern","add new relation":"neue Beziehung hinzuf\xfcgen","e-mail":"Email","license":"Lizenz","modify":"\xe4ndern","none selected":"nichts ausgew\xe4hlt","password":"Passwort","read":"lesen","update":"aktualisieren","valid until":"g\xfcltig bis","write":"schreiben",". Click here to install a license.":". Klicken Sie hier, um eine Lizenz zu installieren.","Changing this GA is not possible, because they have existing Act-State relations.":"Eine \xc4nderung dieser GA ist nicht m\xf6glich, da sie bestehende Act-State-Beziehungen haben.","Failed to fetch":"Fehler beim Abrufen","GA State - Actuator relation":"GA-Zustand - Aktuator-Beziehung","Host ID : ":"Host-ID:","Import partially or completely failed with error : ":"Import teilweise oder vollst\xe4ndig mit Fehler fehlgeschlagen:","Info":"Die Info","Information":"Information","It is not possible to combine State GA and Act GA with different datapointtypes.":"Es ist nicht m\xf6glich, State GA und Act GA mit unterschiedlichen Datenpunkttypen zu kombinieren.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Eine Kombination von State-State- oder Act-Act-GAs ist nicht m\xf6glich. \xdcberpr\xfcfen Sie die GA-Eigenschaften.","KNX Gateway Settings":"KNX-Gateway-Einstellungen","KNX adapter licensing":"KNX-Adapter-Lizenzierung","License error : ":"Lizenzfehler:","License server not available.":"Lizenzserver nicht verf\xfcgbar.","License valid.":"Lizenz g\xfcltig.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Einer von State oder Act (oder beides) ist nicht als lese- oder schreibbar definiert. Diese Eigenschaft f\xfcr Act and State GA festlegen","Successful imported GAs : ":"Erfolgreich importierte GAs:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Das Ziel hat bereits eine Beziehung. L\xf6schen Sie zuerst die Zielbeziehung, bevor Sie eine neue erstellen. Es ist verbunden mit","adapter not running":"Adapter l\xe4uft nicht","all":"alle","delete":"l\xf6schen","expired":"abgelaufen","license not valid":"Lizenz nicht g\xfcltig","local iobroker IP":"lokale iobroker-IP","loglevel":"Loglevel","more":"mehr","number of max datapoints : ":"Anzahl der maximalen Datenpunkte:","only import new datapoints":"nur neue Datenpunkte importieren","upload KNX project file":"KNX Projektdatei hochladen","valid until : ":"g\xfcltig bis :","version : ":"Version :","Drag \'n\' drop knxproj file here, or click to select file":"Ziehen Sie die knxproj-Datei hierher oder legen Sie sie hier ab, oder klicken Sie, um die Datei auszuw\xe4hlen","KNX Gateway IP":"KNX-Gateway-IP","KNX Gateway Port":"KNX-Gateway-Port","KNX packages per second":"KNX-Pakete pro Sekunde","physical KNX address":"physikalische KNX-Adresse"}')},298:function(e){e.exports=JSON.parse('{"Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","invalid KNX address":"\u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 KNX!","invalid frame interval":"\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432, 10 <\u0447\u0430\u0441\u0442\u043e\u0442\u0430 <300","invalid ip address":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441!","invalid password":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c","Apply":"\u041f\u043e\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u0435","Available Licenses":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438","Choose corresponding GA":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e GA","Close":"\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c","Datapoints":"\u0422\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445","Error":"\u043e\u0448\u0438\u0431\u043a\u0430","GA State - Act relation":"\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 GA State - Act","GA-structure":"GA-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430","Host ID":"ID \u0445\u043e\u0441\u0442\u0430","Multiselection":"\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440","Please enter ioBroker.net login and password":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c ioBroker.net","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Synchronize with iobroker.net":"\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 iobroker.net","This Error occured : ":"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430:","Version":"\u0412\u0435\u0440\u0441\u0438\u044f","add / modify license":"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c / \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e","add new relation":"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435","e-mail":"\u042d\u043b. \u043f\u043e\u0447\u0442\u0430","license":"\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f","modify":"\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c","none selected":"\u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e","password":"\u043f\u0430\u0440\u043e\u043b\u044c","read":"\u0447\u0438\u0442\u0430\u0442\u044c","update":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","valid until":"\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u0434\u043e","write":"\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c",". Click here to install a license.":". \u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e.","Changing this GA is not possible, because they have existing Act-State relations.":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 GA \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \xab\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435-\u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e\xbb.","Failed to fetch":"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c","GA State - Actuator relation":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 GA - \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430","Host ID : ":"ID \u0445\u043e\u0441\u0442\u0430:","Import partially or completely failed with error : ":"\u0418\u043c\u043f\u043e\u0440\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439:","Info":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","Information":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","It is not possible to combine State GA and Act GA with different datapointtypes.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c State GA \u0438 Act GA \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0413\u0410. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 GA.","KNX Gateway Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0448\u043b\u044e\u0437\u0430 KNX","KNX adapter licensing":"\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 KNX","License error : ":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438:","License server not available.":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d.","License valid.":"\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"\u041e\u0434\u043d\u043e \u0438\u0437 State \u0438\u043b\u0438 Act (\u0438\u043b\u0438 \u043e\u0431\u043e\u0438\u0445) \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f Act \u0438 State GA","Successful imported GAs : ":"\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0413\u0410:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"\u0423 \u0446\u0435\u043b\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u044c. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441","adapter not running":"\u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442","all":"\u0432\u0441\u0435","delete":"\u0443\u0434\u0430\u043b\u044f\u0442\u044c","expired":"\u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0439","license not valid":"\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430","local iobroker IP":"\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441 iobroker","loglevel":"\u043b\u043e\u0433-\u0443\u0440\u043e\u0432\u0435\u043d\u044c","more":"\u0431\u043e\u043b\u0435\u0435","number of max datapoints : ":"\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445:","only import new datapoints":"\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445","upload KNX project file":"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 KNX","valid until : ":"\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u0434\u043e :","version : ":"\u0432\u0435\u0440\u0441\u0438\u044f:","Drag \'n\' drop knxproj file here, or click to select file":"\u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044e\u0434\u0430 \u0444\u0430\u0439\u043b knxproj \u0438\u043b\u0438 \u0449\u0435\u043b\u043a\u043d\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b","KNX Gateway IP":"IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 KNX","KNX Gateway Port":"\u041f\u043e\u0440\u0442 \u0448\u043b\u044e\u0437\u0430 KNX","KNX packages per second":"\u041f\u0430\u043a\u0435\u0442\u043e\u0432 KNX \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443","physical KNX address":"\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 KNX"}')},299:function(e){e.exports=JSON.parse('{"Cancel":"Cancelar","invalid KNX address":"Endere\xe7o KNX inv\xe1lido!","invalid frame interval":"Taxa de quadros inv\xe1lida, 10 <taxa <300","invalid ip address":"Endere\xe7o IP inv\xe1lido!","invalid password":"Senha inv\xe1lida","Apply":"Aplicar","Available Licenses":"Licen\xe7as Dispon\xedveis","Choose corresponding GA":"Escolha o GA correspondente","Close":"Fechar","Datapoints":"Os pontos de dados","Error":"erro","GA State - Act relation":"Estado GA - rela\xe7\xe3o de ato","GA-structure":"Estrutura GA","Host ID":"ID do host","Multiselection":"sele\xe7\xe3o m\xfaltipla","Please enter ioBroker.net login and password":"Digite o login e a senha do ioBroker.net","Save":"Salve \ue051","Synchronize with iobroker.net":"Sincronizar com iobroker.net","This Error occured : ":"Este erro ocorreu:","Version":"Vers\xe3o","add / modify license":"adicionar / modificar licen\xe7a","add new relation":"adicionar nova rela\xe7\xe3o","e-mail":"O email","license":"licen\xe7a","modify":"modificar","none selected":"nenhum selecionado","password":"senha","read":"leitura","update":"atualizar","valid until":"v\xe1lido at\xe9","write":"escrever",". Click here to install a license.":". Clique aqui para instalar uma licen\xe7a.","Changing this GA is not possible, because they have existing Act-State relations.":"Mudar este GA n\xe3o \xe9 poss\xedvel, porque eles t\xeam rela\xe7\xf5es Act-State existentes.","Failed to fetch":"Falha ao buscar","GA State - Actuator relation":"Estado GA - Rela\xe7\xe3o do atuador","Host ID : ":"ID do host:","Import partially or completely failed with error : ":"A importa\xe7\xe3o falhou parcial ou completamente com erro:","Info":"Informa\xe7\xf5es","Information":"Em forma\xe7\xe3o","It is not possible to combine State GA and Act GA with different datapointtypes.":"N\xe3o \xe9 poss\xedvel combinar State GA e Act GA com diferentes tipos de dados.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"N\xe3o \xe9 poss\xedvel combinar AGs estado-estado nem ato-ato. Verifique as propriedades do GA.","KNX Gateway Settings":"Configura\xe7\xf5es de gateway KNX","KNX adapter licensing":"Licenciamento do adaptador KNX","License error : ":"Erro de licen\xe7a:","License server not available.":"Servidor de licen\xe7a n\xe3o dispon\xedvel.","License valid.":"Licen\xe7a v\xe1lida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Um dos Estados ou Ato (ou ambos) n\xe3o foi definido como lido ou grav\xe1vel. Defina esta propriedade para Act e State GA","Successful imported GAs : ":"GAs importados com sucesso:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"O alvo j\xe1 tem uma rela\xe7\xe3o. Exclua a rela\xe7\xe3o de destino antes de criar uma nova. Est\xe1 conectado a","adapter not running":"adaptador n\xe3o funcionando","all":"tudo","delete":"excluir","expired":"expirado","license not valid":"licen\xe7a inv\xe1lida","local iobroker IP":"IP iobroker local","loglevel":"n\xedvel de log","more":"mais","number of max datapoints : ":"n\xfamero m\xe1ximo de pontos de dados:","only import new datapoints":"apenas importe novos pontos de dados","upload KNX project file":"carregar arquivo de projeto KNX","valid until : ":"v\xe1lido at\xe9 :","version : ":"vers\xe3o:","Drag \'n\' drop knxproj file here, or click to select file":"Arraste e solte o arquivo knxproj aqui ou clique para selecionar o arquivo","KNX Gateway IP":"IP do gateway KNX","KNX Gateway Port":"Porta de gateway KNX","KNX packages per second":"Pacotes KNX por segundo","physical KNX address":"endere\xe7o KNX f\xedsico"}')},300:function(e){e.exports=JSON.parse('{"Cancel":"annuleren","invalid KNX address":"Ongeldig KNX-adres!","invalid frame interval":"Ongeldige framesnelheid, 10 < snelheid < 300","invalid ip address":"Ongeldig IP-adres!","invalid password":"Ongeldig wachtwoord","Apply":"Van toepassing zijn","Available Licenses":"Beschikbare licenties","Choose corresponding GA":"Kies overeenkomstige GA","Close":"Dichtbij","Datapoints":"Data punten","Error":"fout","GA State - Act relation":"GA Staat - Act relatie","GA-structure":"GA-structuur","Host ID":"Host-ID","Multiselection":"meervoudige selectie","Please enter ioBroker.net login and password":"Voer de login en het wachtwoord van ioBroker.net in","Save":"Opslaan","Synchronize with iobroker.net":"Synchroniseren met iobroker.net","This Error occured : ":"Deze fout is opgetreden:","Version":"Versie","add / modify license":"licentie toevoegen / wijzigen","add new relation":"nieuwe relatie toevoegen","e-mail":"E-mail","license":"vergunning","modify":"aanpassen","none selected":"geen geselecteerd","password":"wachtwoord","read":"lezen","update":"update","valid until":"geldig tot","write":"schrijven",". Click here to install a license.":". Klik hier om een licentie te installeren.","Changing this GA is not possible, because they have existing Act-State relations.":"Het wijzigen van deze AV is niet mogelijk, omdat zij bestaande Act-State relaties hebben.","Failed to fetch":"Gefaald om op te halen","GA State - Actuator relation":"GA Status - Actuator relatie","Host ID : ":"Host-ID:","Import partially or completely failed with error : ":"Importeren is gedeeltelijk of volledig mislukt met fout:","Info":"Info","Information":"Informatie","It is not possible to combine State GA and Act GA with different datapointtypes.":"Het is niet mogelijk om Staat GA en Wet GA te combineren met verschillende datapunttypes.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Het is niet mogelijk om staat-staat of act-act GA\'s te combineren. Controleer de GA-eigenschappen.","KNX Gateway Settings":"KNX Gateway-instellingen","KNX adapter licensing":"KNX-adapterlicenties","License error : ":"Licentie fout:","License server not available.":"Licentieserver niet beschikbaar.","License valid.":"Licentie geldig.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Een van State of Act (of beide) is niet gedefinieerd als leesbaar of beschrijfbaar. Stel deze eigenschap in op Act en State GA","Successful imported GAs : ":"Succesvolle ge\xefmporteerde GA\'s:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Het doelwit heeft al een relatie. Verwijder eerst de doelrelatie voordat u een nieuwe maakt. Het is verbonden met","adapter not running":"adapter werkt niet","all":"alle","delete":"verwijderen","expired":"verlopen","license not valid":"licentie niet geldig","local iobroker IP":"lokale iobroker IP","loglevel":"Log niveau","more":"meer","number of max datapoints : ":"aantal max datapunten :","only import new datapoints":"importeer alleen nieuwe datapunten","upload KNX project file":"upload KNX-projectbestand","valid until : ":"geldig tot :","version : ":"versie:","Drag \'n\' drop knxproj file here, or click to select file":"Sleep het knxproj-bestand hierheen, of klik om het bestand te selecteren","KNX Gateway IP":"KNX Gateway IP","KNX Gateway Port":"KNX Gateway-poort","KNX packages per second":"KNX-pakketten per seconde","physical KNX address":"fysiek KNX-adres"}')},301:function(e){e.exports=JSON.parse('{"Cancel":"Annuler","invalid KNX address":"Adresse KNX invalide !","invalid frame interval":"Fr\xe9quence d\'images non valide, 10 < fr\xe9quence < 300","invalid ip address":"Adresse IP invalide\xa0!","invalid password":"Mot de passe incorrect","Apply":"Appliquer","Available Licenses":"Licences disponibles","Choose corresponding GA":"Choisissez l\'AG correspondante","Close":"proche","Datapoints":"Points de donn\xe9es","Error":"Erreur","GA State - Act relation":"GA \xc9tat - Relation d\'acte","GA-structure":"Structure GA","Host ID":"Identifiant d\'h\xf4te","Multiselection":"s\xe9lection multiple","Please enter ioBroker.net login and password":"Veuillez saisir le login et le mot de passe ioBroker.net","Save":"sauvegarder","Synchronize with iobroker.net":"Synchroniser avec iobroker.net","This Error occured : ":"Cette erreur s\'est produite\xa0:","Version":"Version","add / modify license":"ajouter/modifier la licence","add new relation":"ajouter une nouvelle relation","e-mail":"E-mail","license":"Licence","modify":"modifier","none selected":"aucune s\xe9lection","password":"le mot de passe","read":"lire","update":"mettre \xe0 jour","valid until":"valable jusque","write":"\xe9crivez",". Click here to install a license.":". Cliquez ici pour installer une licence.","Changing this GA is not possible, because they have existing Act-State relations.":"Changer cette AG n\'est pas possible, car ils ont des relations Acte-\xc9tat existantes.","Failed to fetch":"\xc9chec de la r\xe9cup\xe9ration","GA State - Actuator relation":"Etat GA - Relation actionneur","Host ID : ":"Identifiant d\'h\xf4te\xa0:","Import partially or completely failed with error : ":"\xc9chec partiel ou total de l\'importation avec erreur\xa0:","Info":"Info","Information":"Informations","It is not possible to combine State GA and Act GA with different datapointtypes.":"Il n\'est pas possible de combiner State GA et Act GA avec diff\xe9rents types de points de donn\xe9es.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Il n\'est pas possible de combiner des AG \xe9tat-\xe9tat ou acte-acte. V\xe9rifiez les propri\xe9t\xe9s GA.","KNX Gateway Settings":"Param\xe8tres de la passerelle KNX","KNX adapter licensing":"Licence d\'adaptateur KNX","License error : ":"Erreur de licence :","License server not available.":"Serveur de licence non disponible.","License valid.":"Licence valide.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Un \xe9tat ou une loi (ou les deux) n\'a pas \xe9t\xe9 d\xe9fini comme lisible ou inscriptible. D\xe9finir cette propri\xe9t\xe9 pour Act et State GA","Successful imported GAs : ":"GAs import\xe9es r\xe9ussies :","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"La cible a d\xe9j\xe0 une relation. Supprimez d\'abord la relation cible avant d\'en cr\xe9er une nouvelle. Il est connect\xe9 \xe0","adapter not running":"adaptateur ne fonctionne pas","all":"tous","delete":"effacer","expired":"expir\xe9","license not valid":"licence non valide","local iobroker IP":"IP iobroker local","loglevel":"niveau de journalisation","more":"Suite","number of max datapoints : ":"nombre de points de donn\xe9es max :","only import new datapoints":"importer uniquement les nouveaux points de donn\xe9es","upload KNX project file":"t\xe9l\xe9charger le fichier de projet KNX","valid until : ":"valable jusque :","version : ":"version :","Drag \'n\' drop knxproj file here, or click to select file":"Faites glisser le fichier knxproj ici, ou cliquez pour s\xe9lectionner le fichier","KNX Gateway IP":"IP de la passerelle KNX","KNX Gateway Port":"Port de passerelle KNX","KNX packages per second":"Paquets KNX par seconde","physical KNX address":"adresse physique KNX"}')},302:function(e){e.exports=JSON.parse('{"Cancel":"Annulla","invalid KNX address":"Indirizzo KNX non valido!","invalid frame interval":"Frequenza fotogrammi non valida, 10 < frequenza < 300","invalid ip address":"Indirizzo IP non valido!","invalid password":"Password non valida","Apply":"Applicare","Available Licenses":"Licenze disponibili","Choose corresponding GA":"Scegli GA . corrispondente","Close":"Chiudere","Datapoints":"Punti dati","Error":"errore","GA State - Act relation":"GA Stato - Atto rapporto","GA-structure":"GA-struttura","Host ID":"ID host","Multiselection":"selezione multipla","Please enter ioBroker.net login and password":"Per favore inserisci login e password di ioBroker.net","Save":"Salva","Synchronize with iobroker.net":"Sincronizza con iobroker.net","This Error occured : ":"Si \xe8 verificato questo errore:","Version":"Versione","add / modify license":"aggiungi/modifica licenza","add new relation":"aggiungi nuova relazione","e-mail":"E-mail","license":"licenza","modify":"modificare","none selected":"Nessuno selezionato","password":"parola d\'ordine","read":"leggere","update":"aggiornare","valid until":"valido fino a","write":"Scrivi",". Click here to install a license.":". Fare clic qui per installare una licenza.","Changing this GA is not possible, because they have existing Act-State relations.":"Non \xe8 possibile modificare questo GA, perch\xe9 hanno relazioni Act-Stato esistenti.","Failed to fetch":"Impossibile recuperare","GA State - Actuator relation":"Stato GA - Relazione attuatore","Host ID : ":"ID ospite:","Import partially or completely failed with error : ":"Importazione parzialmente o completamente fallita con errore:","Info":"Informazioni","Information":"Informazione","It is not possible to combine State GA and Act GA with different datapointtypes.":"Non \xe8 possibile combinare State GA e Act GA con diversi tipi di datapoint.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Non \xe8 possibile combinare GA stato-stato o atto-atto. Controlla le propriet\xe0 GA.","KNX Gateway Settings":"Impostazioni gateway KNX","KNX adapter licensing":"Licenza dell\'adattatore KNX","License error : ":"Errore di licenza:","License server not available.":"Server licenze non disponibile.","License valid.":"Licenza valida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Uno di State o Act (o entrambi) non \xe8 stato definito come leggibile o scrivibile. Imposta questa propriet\xe0 per Act e State GA","Successful imported GAs : ":"GA importati con successo:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Il target ha gi\xe0 una relazione. Eliminare la relazione di destinazione prima di crearne una nuova. \xc8 collegato a","adapter not running":"adattatore non funzionante","all":"Tutti","delete":"Elimina","expired":"scaduto","license not valid":"patente non valida","local iobroker IP":"IP iobroker locale","loglevel":"loglevel","more":"Di pi\xf9","number of max datapoints : ":"numero massimo di punti dati:","only import new datapoints":"importa solo nuovi punti dati","upload KNX project file":"caricare il file di progetto KNX","valid until : ":"valido fino a :","version : ":"versione:","Drag \'n\' drop knxproj file here, or click to select file":"Trascina e rilascia il file knxproj qui o fai clic per selezionare il file","KNX Gateway IP":"KNX Gateway IP","KNX Gateway Port":"Porta gateway KNX","KNX packages per second":"Pacchetti KNX al secondo","physical KNX address":"indirizzo fisico KNX"}')},303:function(e){e.exports=JSON.parse('{"Cancel":"Cancelar","invalid KNX address":"\xa1Direcci\xf3n KNX no v\xe1lida!","invalid frame interval":"Velocidad de fotogramas no v\xe1lida, 10 <velocidad <300","invalid ip address":"\xa1Direcci\xf3n IP inv\xe1lida!","invalid password":"Contrase\xf1a invalida","Apply":"Solicitar","Available Licenses":"Licencias Disponibles","Choose corresponding GA":"Elija GA correspondiente","Close":"Cerrar","Datapoints":"Puntos de datos","Error":"error","GA State - Act relation":"Relaci\xf3n GA Estado - Act","GA-structure":"Estructura GA","Host ID":"ID de host","Multiselection":"selecci\xf3n m\xfaltiple","Please enter ioBroker.net login and password":"Ingrese el nombre de usuario y la contrase\xf1a de ioBroker.net","Save":"Ahorrar","Synchronize with iobroker.net":"Sincronizar con iobroker.net","This Error occured : ":"Este error ocurri\xf3:","Version":"Versi\xf3n","add / modify license":"agregar / modificar licencia","add new relation":"agregar nueva relaci\xf3n","e-mail":"Email","license":"licencia","modify":"modificar","none selected":"ninguna seleccionada","password":"contrase\xf1a","read":"leer","update":"actualizar","valid until":"v\xe1lido hasta","write":"escribir",". Click here to install a license.":". Haga clic aqu\xed para instalar una licencia.","Changing this GA is not possible, because they have existing Act-State relations.":"Cambiar esta AG no es posible, porque tienen relaciones Act-State existentes.","Failed to fetch":"Fallo en recuperar","GA State - Actuator relation":"Estado GA - Relaci\xf3n actuador","Host ID : ":"ID de host:","Import partially or completely failed with error : ":"Importaci\xf3n parcial o totalmente fallida con error:","Info":"Informaci\xf3n","Information":"Informaci\xf3n","It is not possible to combine State GA and Act GA with different datapointtypes.":"No es posible combinar State GA y Act GA con diferentes tipos de puntos de datos.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"No es posible combinar GAs estado-estado ni acto-acto. Compruebe las propiedades de GA.","KNX Gateway Settings":"Configuraci\xf3n de la puerta de enlace KNX","KNX adapter licensing":"Licencia de adaptador KNX","License error : ":"Error de licencia:","License server not available.":"El servidor de licencias no est\xe1 disponible.","License valid.":"Licencia v\xe1lida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Uno de State o Act (o ambos) no se ha definido como le\xeddo o escribible. Establecer esta propiedad para Act y State GA","Successful imported GAs : ":"GA importadas exitosas:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"El objetivo ya tiene una relaci\xf3n. Elimine la relaci\xf3n de destino primero antes de crear una nueva. Est\xe1 conectado a","adapter not running":"adaptador no funciona","all":"todos","delete":"Eliminar","expired":"Caducado","license not valid":"licencia no v\xe1lida","local iobroker IP":"IP local de iobroker","loglevel":"nivel de registro","more":"m\xe1s","number of max datapoints : ":"n\xfamero m\xe1ximo de puntos de datos:","only import new datapoints":"solo importar nuevos puntos de datos","upload KNX project file":"cargar archivo de proyecto KNX","valid until : ":"v\xe1lido hasta :","version : ":"versi\xf3n :","Drag \'n\' drop knxproj file here, or click to select file":"Arrastre y suelte el archivo knxproj aqu\xed, o haga clic para seleccionar el archivo","KNX Gateway IP":"Puerta de enlace KNX IP","KNX Gateway Port":"Puerto de puerta de enlace KNX","KNX packages per second":"Paquetes KNX por segundo","physical KNX address":"direcci\xf3n KNX f\xedsica"}')},304:function(e){e.exports=JSON.parse('{"Cancel":"Anuluj","invalid KNX address":"Nieprawid\u0142owy adres KNX!","invalid frame interval":"Nieprawid\u0142owa liczba klatek na sekund\u0119, 10 < stawka < 300","invalid ip address":"Nieprawid\u0142owy adres IP!","invalid password":"Nieprawid\u0142owe has\u0142o","Apply":"Zastosowa\u0107","Available Licenses":"Dost\u0119pne licencje","Choose corresponding GA":"Wybierz odpowiedni GA","Close":"Blisko","Datapoints":"Punkty danych","Error":"b\u0142\u0105d","GA State - Act relation":"Stan GA \u2013 relacja aktu","GA-structure":"GA-struktura","Host ID":"Identyfikator hosta","Multiselection":"wielokrotny wyb\xf3r","Please enter ioBroker.net login and password":"Wprowad\u017a login i has\u0142o ioBroker.net","Save":"Zapisa\u0107","Synchronize with iobroker.net":"Synchronizuj z iobroker.net","This Error occured : ":"Ten b\u0142\u0105d wyst\u0105pi\u0142:","Version":"Wersja","add / modify license":"dodaj/zmodyfikuj licencj\u0119","add new relation":"dodaj now\u0105 relacj\u0119","e-mail":"E-mail","license":"licencja","modify":"modyfikowa\u0107","none selected":"nie wybrano","password":"has\u0142o","read":"czyta\u0107","update":"aktualizacja","valid until":"wa\u017cne do","write":"pisa\u0107",". Click here to install a license.":". Kliknij tutaj, aby zainstalowa\u0107 licencj\u0119.","Changing this GA is not possible, because they have existing Act-State relations.":"Zmiana tego GA nie jest mo\u017cliwa, poniewa\u017c maj\u0105 istniej\u0105ce relacje Akt-Pa\u0144stwo.","Failed to fetch":"Nie uda\u0142o si\u0119 pobra\u0107","GA State - Actuator relation":"Stan GA - Relacja si\u0142ownika","Host ID : ":"Identyfikator hosta :","Import partially or completely failed with error : ":"Import cz\u0119\u015bciowo lub ca\u0142kowicie nie powi\xf3d\u0142 si\u0119 z powodu b\u0142\u0119du :","Info":"Informacje","Information":"Informacja","It is not possible to combine State GA and Act GA with different datapointtypes.":"Nie jest mo\u017cliwe \u0142\u0105czenie State GA i Act GA z r\xf3\u017cnymi typami punkt\xf3w danych.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Nie jest mo\u017cliwe \u0142\u0105czenie GA pa\u0144stw-stan\xf3w ani akt\xf3w-dzia\u0142a\u0144. Sprawd\u017a w\u0142a\u015bciwo\u015bci GA.","KNX Gateway Settings":"Ustawienia bramy KNX","KNX adapter licensing":"Licencjonowanie adaptera KNX","License error : ":"B\u0142\u0105d licencji :","License server not available.":"Serwer licencji jest niedost\u0119pny.","License valid.":"Licencja wa\u017cna.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Jedno ze stan\xf3w lub akt\xf3w (lub obu) nie zosta\u0142o zdefiniowane jako do odczytu lub do zapisu. Ustaw t\u0119 w\u0142a\u015bciwo\u015b\u0107 dla Act i State GA","Successful imported GAs : ":"Pomy\u015blnie zaimportowane gazy GA:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Cel ma ju\u017c relacj\u0119. Usu\u0144 relacj\u0119 docelow\u0105 przed utworzeniem nowej. Jest pod\u0142\u0105czony do","adapter not running":"adapter nie dzia\u0142a","all":"wszystko","delete":"kasowa\u0107","expired":"wygas\u0142y","license not valid":"licencja niewa\u017cna","local iobroker IP":"lokalny adres IP iobrokera","loglevel":"poziom logu","more":"jeszcze","number of max datapoints : ":"liczba max punkt\xf3w danych :","only import new datapoints":"importuj tylko nowe punkty danych","upload KNX project file":"prze\u015blij plik projektu KNX","valid until : ":"wa\u017cne do :","version : ":"wersja :","Drag \'n\' drop knxproj file here, or click to select file":"Przeci\u0105gnij i upu\u015b\u0107 plik knxproj tutaj lub kliknij, aby wybra\u0107 plik","KNX Gateway IP":"IP bramy KNX","KNX Gateway Port":"Port bramy KNX","KNX packages per second":"Pakiety KNX na sekund\u0119","physical KNX address":"fizyczny adres KNX"}')},305:function(e){e.exports=JSON.parse('{"Cancel":"\u53d6\u6d88","invalid KNX address":"KNX \u5730\u5740\u65e0\u6548\uff01","invalid frame interval":"\u65e0\u6548\u7684\u5e27\u7387\uff0c10 < rate < 300","invalid ip address":"IP \u5730\u5740\u65e0\u6548\uff01","invalid password":"\u65e0\u6548\u7684\u5bc6\u7801","Apply":"\u7533\u8bf7","Available Licenses":"\u53ef\u7528\u8bb8\u53ef\u8bc1","Choose corresponding GA":"\u9009\u62e9\u5bf9\u5e94\u7684\u9057\u4f20\u7b97\u6cd5","Close":"\u5173\u95ed","Datapoints":"\u6570\u636e\u70b9","Error":"\u9519\u8bef","GA State - Act relation":"GA \u5dde - \u6cd5\u6848\u5173\u7cfb","GA-structure":"GA\u7ed3\u6784","Host ID":"\u4e3b\u673a\u7f16\u53f7","Multiselection":"\u591a\u9009","Please enter ioBroker.net login and password":"\u8bf7\u8f93\u5165ioBroker.net\u767b\u5f55\u540d\u548c\u5bc6\u7801","Save":"\u8282\u7701","Synchronize with iobroker.net":"\u4e0e iobroker.net \u540c\u6b65","This Error occured : ":"\u53d1\u751f\u6b64\u9519\u8bef\uff1a","Version":"\u7248\u672c","add / modify license":"\u6dfb\u52a0/\u4fee\u6539\u8bb8\u53ef\u8bc1","add new relation":"\u6dfb\u52a0\u65b0\u5173\u7cfb","e-mail":"\u7535\u5b50\u90ae\u4ef6","license":"\u6267\u7167","modify":"\u8c03\u6574","none selected":"\u672a\u9009\u62e9","password":"\u5bc6\u7801","read":"\u8bfb","update":"\u66f4\u65b0","valid until":"\u6709\u6548\u671f\u81f3","write":"\u5199",". Click here to install a license.":".\u5355\u51fb\u6b64\u5904\u5b89\u88c5\u8bb8\u53ef\u8bc1\u3002","Changing this GA is not possible, because they have existing Act-State relations.":"\u66f4\u6539\u6b64 GA \u662f\u4e0d\u53ef\u80fd\u7684\uff0c\u56e0\u4e3a\u5b83\u4eec\u5177\u6709\u73b0\u6709\u7684 Act-State \u5173\u7cfb\u3002","Failed to fetch":"\u65e0\u6cd5\u83b7\u53d6","GA State - Actuator relation":"GA \u72b6\u6001 - \u6267\u884c\u5668\u5173\u7cfb","Host ID : ":"\u4e3b\u673a ID :","Import partially or completely failed with error : ":"\u5bfc\u5165\u90e8\u5206\u6216\u5b8c\u5168\u5931\u8d25\u5e76\u51fa\u73b0\u9519\u8bef\uff1a","Info":"\u4fe1\u606f","Information":"\u4fe1\u606f","It is not possible to combine State GA and Act GA with different datapointtypes.":"\u4e0d\u53ef\u80fd\u5c06 State GA \u548c Act GA \u4e0e\u4e0d\u540c\u7684\u6570\u636e\u70b9\u7c7b\u578b\u7ed3\u5408\u8d77\u6765\u3002","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"\u4e0d\u53ef\u80fd\u7ed3\u5408 state-state \u6216 act-act GA\u3002\u68c0\u67e5 GA \u5c5e\u6027\u3002","KNX Gateway Settings":"KNX \u7f51\u5173\u8bbe\u7f6e","KNX adapter licensing":"KNX \u9002\u914d\u5668\u8bb8\u53ef","License error : ":"\u8bb8\u53ef\u8bc1\u9519\u8bef\uff1a","License server not available.":"\u8bb8\u53ef\u8bc1\u670d\u52a1\u5668\u4e0d\u53ef\u7528\u3002","License valid.":"\u8bb8\u53ef\u8bc1\u6709\u6548\u3002","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"\u72b6\u6001\u6216\u6cd5\u6848\u4e4b\u4e00\uff08\u6216\u4e24\u8005\uff09\u6ca1\u6709\u5b9a\u4e49\u4e3a\u53ef\u8bfb\u6216\u53ef\u5199\u3002\u4e3a Act \u548c State GA \u8bbe\u7f6e\u6b64\u5c5e\u6027","Successful imported GAs : ":"\u6210\u529f\u5bfc\u5165 GAs :","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"\u76ee\u6807\u5df2\u7ecf\u6709\u4e00\u4e2a\u5173\u7cfb\u3002\u5728\u521b\u5efa\u65b0\u5173\u7cfb\u4e4b\u524d\u5148\u5220\u9664\u76ee\u6807\u5173\u7cfb\u3002\u5b83\u8fde\u63a5\u5230","adapter not running":"\u9002\u914d\u5668\u672a\u8fd0\u884c","all":"\u5168\u90e8","delete":"\u5220\u9664","expired":"\u5df2\u5230\u671f","license not valid":"\u8bb8\u53ef\u8bc1\u65e0\u6548","local iobroker IP":"\u672c\u5730iobroker IP","loglevel":"\u65e5\u5fd7\u7ea7\u522b","more":"\u66f4\u591a\u7684","number of max datapoints : ":"\u6700\u5927\u6570\u636e\u70b9\u6570\uff1a","only import new datapoints":"\u53ea\u5bfc\u5165\u65b0\u7684\u6570\u636e\u70b9","upload KNX project file":"\u4e0a\u4f20 KNX \u9879\u76ee\u6587\u4ef6","valid until : ":"\u6709\u6548\u671f\u81f3\uff1a","version : ":"\u7248\u672c \uff1a","Drag \'n\' drop knxproj file here, or click to select file":"\u5c06 knxproj \u6587\u4ef6\u62d6\u653e\u5230\u6b64\u5904\uff0c\u6216\u5355\u51fb\u4ee5\u9009\u62e9\u6587\u4ef6","KNX Gateway IP":"KNX\u7f51\u5173IP","KNX Gateway Port":"KNX \u7f51\u5173\u7aef\u53e3","KNX packages per second":"\u6bcf\u79d2 KNX \u5305","physical KNX address":"\u7269\u7406 KNX \u5730\u5740"}')},308:function(e,t,a){"use strict";a.r(t);var n=a(0),i=a.n(n),r=a(16),o=a.n(r),s=a(409),c=a(408),l=a(394),d=(a(239),a(49)),u=a(191),p=a(192),h=a(138),b=a(210),m=a(85),f=a(211),g=a(209),j=a(9),v=a(405),A=a(412),w=a(406),O=a(193),x=a.n(O),y=a(166),I=a.n(y),k=a(10),G=a.n(k),S=a(15),N=a(375),C={getEntries:function(e,t,a){return window.zip.createReader(new window.zip.BlobReader(e),(function(e){return e.getEntries(t)}),a)},getEntryFile:function(e,t,a,n){var i;"Blob"===t&&(i=new window.zip.BlobWriter,function(){try{e.getData(i,(function(e){return a(e)}),n)}catch(t){return t}}())}};function P(e){var t=e.match(/(\w+="[^"]*)"/g);if(!t)return{};for(var a={},n=0;n<t.length;n++){var i=t[n].split("=");a[i[0]]=i[1]?i[1].substring(1,i[1].length-1):""}return a}function K(e){var t={},a=e.match(/<ComObjectInstanceRef\s[^>]+\/>/g);if(a)for(var n=0;n<a.length;n++){var i=P(a[n]);t[i.RefId]=i.RefId.replace(/_O-.*/,"")}return t}function X(e){var t={};for(var a in e)if(e.hasOwnProperty(a))if("string"===typeof e[a])t[a]=e[a];else{var n=e[a];if(Object.keys(n).length<1e4)t[a]=n;else{var i={},r=0,o=0;for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s],o<1e4?o++:(t[a+"."+r]=i,o=0,r++,i={}));o&&(t[a+"."+r]=i)}}return t}function z(e,t,a,n,i){var r=Object.keys(a),o=r.indexOf("DeviceId");-1!==o&&0!==o&&(r.splice(o,1),r.unshift("DeviceId")),i=i||a.DeviceId;for(var s=0;s<r.length;s++)if(null!==a[r[s]])return a[r[s]]=null,e.sendTo("knx."+t,"projectDeviceFile",{file:a[r[s]],prop:r[s]}).then((function(r){!r||r.error||(r.DeviceId!==i&&console.error("Warning object was saved under invalid deviceid "+r.DeviceId+" !== "+i),setTimeout((function(){return z(e,t,a,n,i)}),0))}));n()}function D(e,t,a,n){if(!n)return new Promise((function(n){return D(e,t,a,n)}));for(var i in a)if(a.hasOwnProperty(i)&&a[i]){console.log("Device: "+i);var r=X(a[i]);return a[i]=null,z(e,t,r,(function(){return setTimeout((function(){return D(e,t,a,n)}),0)}))}n()}var E=function(e,t,a,n,i){var r=t.socket,o=t.instance,s=void 0!==e&&e[0]?e[0]:null;return s&&null!==s?s.size>1e8?(console.log("File is too big!"),!1):(console.log("fileupload start"),window.zip.useWebWorkers=!1,void C.getEntries(s,(function(e){for(var t,s,c,l=[],d=0,u=!1,p=!1,h=0;h<e.length;h++)"knx_master.xml"===e[h].filename&&(s=e[h],d++),e[h].filename.match(/P-.*\.zip$/)&&(p=!0,console.log("Well Done".concat((console.log("getPassword"),"")," <--")),c=e[h],d++),e[h].filename.match(/\/0\.xml$/)&&(t=e[h],d++),e[h].filename.match(/\/M.*\.xml$/)&&(l.push(e[h]),d++),h===e.length-1&&(u=!0);if(!1===p){var b,m,f={},g=null;!function e(){if(u){c&&C.getEntryFile(c,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){K(b=(e.srcElement||e.target).result),g++}))})),C.getEntryFile(t,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){K(b=(e.srcElement||e.target).result),g++}))})),C.getEntryFile(s,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){m=(e.srcElement||e.target).result,g++}))}));var p=!1;!function e(t){if(p)return void setTimeout(e,1e3);if(void 0!==l&&t<l.length){p=!0;var a=l[t].filename;C.getEntryFile(l[t],"Blob",(function(n){var i=new FileReader,r=new DOMParser;i.readAsText(n),i.addEventListener("load",(function(e){if(a.match(/\/M/))return f[a.replace(/\.xml$/,"")]=function(e){var t=e.match(/<ApplicationProgram\s.*Name="([^"]*)"/);t=t?t[1]:null;var a=e.match(/<ApplicationProgram\s.*Id="([^"]*)"/);a=a?a[1]:null;var n=e.match(/<ComObject\s[^>]+\/>/g),i={};if(n)for(var r=0;r<n.length;r++){var o=P(n[r]);i[o.Id]={Text:o.Text,Name:o.Name,Number:o.Number,FunctionText:o.FunctionText,ObjectSize:o.ObjectSize,read:o.ReadFlag,write:o.WriteFlag,transmit:o.TransmitFlag,communicate:o.CommunicationFlag,update:o.UpdateFlag,readOnInit:o.ReadOnInitFlag,dpt:o.DatapointType}}var s=e.match(/<ComObjectRef\s[^>]+\/>/g),c={};if(s)for(var l=0;l<s.length;l++){var d=P(s[l]);c[d.Id]={Text:d.Text||"",Name:d.Name||"",FunctionText:d.FunctionText||"",RefId:d.RefId,ObjectSize:d.ObjectSize||null,read:d.ReadFlag||null,write:d.WriteFlag||null,transmit:d.TransmitFlag||null,Dpt:d.DatapointType||null}}return{Name:t,DeviceId:a,ComObjectTable:i,ComObjectRefs:c}}((e.srcElement||e.target).result),void g++;var t=r.parseFromString((e.srcElement||e.target).result,"text/xml"),n=t.getElementsByTagName("ApplicationProgram")[0].getAttribute("Id"),i=t.getElementsByTagName("ComObjectTable")[0],o=t.getElementsByTagName("ComObjectRefs")[0],s={},c={};s=i&&"object"===typeof i?i.outerHTML:'<ComObjectTable xmlns="http://knx.org/xml/project/13">\n </ComObjectTable>',c=o&&"object"===typeof o?o.outerHTML:'<ComObjectRefs xmlns="http://knx.org/xml/project/13">\n </ComObjectRefs>',f[n]={Name:t.getElementsByTagName("ApplicationProgram")[0].getAttribute("Name"),DeviceId:n,ComObjectTable:s,ComObjectRefs:c},g++})),e(t+1)})),p=!1}}(0),function e(){if(g<d)return void setTimeout(e,100);return console.log("Please wait while generating Objects.....it could take a while."),r.sendTo("knx."+o,"options",{onlyAddNewObjects:a.onlyAddNewObjects}),n(15),r.sendTo("knx."+o,"projectStart",{name:"test"}).then((function(e){return e.error?(console.error("Projektstart: "+(e?e.error:"Unknown")),Promise.reject(e.error)):(n(33),r.sendTo("knx."+o,"projectXml0",{xml0:b}))})).then((function(e){return!e||e.error?(console.error(e.error),Promise.reject(e.error)):(n(65),r.sendTo("knx."+o,"projectKnxMaster",{knx_master:m}))})).then((function(e){return!e||e.error?(console.error("projectKnxMaster: ".concat(e?e.error:"Unknown")),Promise.reject(e.error)):(n(90),D(r,o,f))})).then((function(){return r.sendTo("knx."+o,"projectFinished",null)})).then((function(e){if(console.log("projectFinished: ".concat(e?e.error:"Unknown")),e&&!e.error)return console.error("Finished ... Extracted: ".concat(e.count)),n(100),i({title:"importresult",numberOfGA:e.count,visible:!0}),r.sendTo("knx."+o,"reload");i({title:"importerror",error:e.error,numberOfGA:e.count,visible:!0})})).catch((function(e){console.error("Cannot parse: "+e),i({title:"importerror",text:"error "+e,visible:!0})}))}()}else setTimeout(e(),100)}()}}),(function(e){return i({title:"importerror",text:"error "+e,visible:!0}),!1}))):(console.warn("invalid file object"),!1)},T=a(196),R=a.n(T),L=a(171),B=a.n(L),F=a(197),_=a(417),V=a(378),H=a(379),W=a(380),U=a(382),M=a(216),q=a(383),$=a(384),J=a(385),Z=a(386),Y=a(387),Q=a(419),ee=a(392),te=a(202),ae=a.n(te),ne=a(203),ie=a.n(ne),re=a(121),oe=a.n(re),se=a(78),ce=a.n(se),le=a(381),de=a(2),ue=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},dialogWindow:{fullWidth:!0,maxWidth:"md"},table:{minWidth:"100%"}}}));function pe(e){var t=ue(),a=e.licensing,r=e.socket,o=e.instance,s=Object(n.useState)(!0),c=Object(S.a)(s,2),l=c[0],d=c[1],u=Object(n.useState)(!1),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)(""),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)(""),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)([]),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)(!1),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)(!1),z=Object(S.a)(X,2),D=z[0],E=z[1],T=Object(n.useState)(""),R=Object(S.a)(T,2),L=R[0],te=R[1],ne=i.a.useRef(),re=function(){e.onChange()};Object(n.useEffect)((function(){L&&L.length>0?E(!0):E(!1)}),[L]);var se=function(e){d(!1),K(!1),Array.isArray(a.licenses)&&(a.licenses[0]=e.json?e.json:e.value)},pe=function(){k([]),fetch("https://iobroker.net/api/v1/licenses?type=sw",{headers:{Authorization:"Basic ".concat(btoa(g+":"+w))}}).then(function(){var e=Object(F.a)(B.a.mark((function e(t){return B.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.json();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).then((function(e){for(var t=I,a=[],n=function(n){a.push(r.sendTo("knx."+o,"verifyLicense",{license:e[n].json}).then((function(a){a.json=e[n].json,t.push(a)})))},i=0;i<e.length;i++)n(i);Promise.all(a).then((function(){k(t),K(!0)})),b(!1)})).catch((function(e){console.log(e.message),te(e.message)}))},he=D?Object(de.jsxs)(_.a,{open:!0,fullWidth:!0,maxWidth:"md",children:[Object(de.jsx)(V.a,{children:G.a.t("Error")}),Object(de.jsxs)(H.a,{children:[G.a.t("This Error occured : "),L]}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return te("")},iconStart:Object(de.jsx)(ce.a,{}),children:G.a.t("Cancel")})})]}):null,be=P?Object(de.jsxs)(_.a,{open:!0,fullWidth:!0,maxWidth:"md",children:[Object(de.jsx)(V.a,{children:G.a.t("Available Licenses")}),Object(de.jsx)(H.a,{children:Object(de.jsx)(U.a,{component:M.a,children:Object(de.jsxs)(q.a,{className:t.table,size:"medium","aria-label":"license table",children:[Object(de.jsx)($.a,{children:Object(de.jsxs)(J.a,{children:[Object(de.jsx)(Z.a,{style:{minWidth:100},children:G.a.t("valid until")}),Object(de.jsx)(Z.a,{align:"right",children:G.a.t("Datapoints")}),Object(de.jsx)(Z.a,{align:"right",children:G.a.t("Version")}),Object(de.jsx)(Z.a,{style:{minWidth:200},align:"right",children:G.a.t("Host ID")})]})}),Object(de.jsx)(Y.a,{children:Array.isArray(I)&&I.length>0?I.map((function(e){return Object(de.jsxs)(J.a,{hover:!0,onClick:function(){return se(e)},children:[Object(de.jsx)(Z.a,{children:new Date(1e3*e.expiration).getDate()+"."+new Date(1e3*e.expiration).getMonth()+"."+new Date(1e3*e.expiration).getFullYear()+" "+new Date(1e3*e.expiration).getHours()+":"+new Date(1e3*e.expiration).getMinutes()+":"+new Date(1e3*e.expiration).getSeconds()}),Object(de.jsx)(Z.a,{align:"right",children:e.datapoints}),Object(de.jsx)(Z.a,{align:"right",children:e.majorVersion}),Object(de.jsx)(Z.a,{align:"right",children:e.sysUUID})]},e.expiration)})):null})]})})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(){return pe()},iconStart:Object(de.jsx)(oe.a,{}),children:G.a.t("Apply")}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return K(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:G.a.t("Cancel")})]})]}):null,me=h?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{children:G.a.t("Please enter ioBroker.net login and password")}),Object(de.jsxs)(H.a,{children:[Object(de.jsx)(Q.a,{autoFocus:!0,fullWidth:!0,value:g,onChange:function(e){return j(e.target.value)},label:G.a.t("e-mail"),onKeyUp:function(e){return 13===e.keyCode&&g&&ne&&ne.current&&ne.current.focus()}}),Object(de.jsx)("br",{}),Object(de.jsx)(Q.a,{fullWidth:!0,inputRef:ne,value:w,onChange:function(e){return O(e.target.value)},type:"password",label:G.a.t("password"),onKeyUp:function(e){return 13===e.keyCode&&g&&w&&pe()}})]}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(){return pe()},iconStart:Object(de.jsx)(oe.a,{}),children:"Ok"}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return b(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})]}),he]}):null;return Object(de.jsxs)("div",{children:[Object(de.jsxs)(_.a,{onClose:re,fullWidth:!0,maxWidth:"md","aria-labelledby":"customized-dialog-title",open:e.visible,children:[Object(de.jsxs)(V.a,{disableTypography:!0,className:t.root,children:[G.a.t("add / modify license"),Object(de.jsx)(ee.a,{"aria-label":"close",className:t.closeButton,onClick:re,children:Object(de.jsx)(ae.a,{})})]}),Object(de.jsx)(H.a,{dividers:!0,children:Object(de.jsx)(Q.a,{id:"standard-multiline-static",fullWidth:!0,label:G.a.t("license"),multiline:!0,rows:10,defaultValue:a&&a.licenses&&Array.isArray(a.licenses)?a.licenses[0]:null,variant:"standard",onChange:function(e){se(e.target)}})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{style:{flex:1},variant:"contained",onClick:function(){return b(!0)},startIcon:Object(de.jsx)(ie.a,{}),children:G.a.t("Synchronize with iobroker.net")}),Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(t){e.onChange(a)},disabled:l,children:G.a.t("Save")}),Object(de.jsx)(le.a,{variant:"contained",autoFocus:!0,onClick:re,children:G.a.t("Close")})]})]}),me,be]})}var he=a(208),be=Object(N.a)((function(e){return{baseStyle:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",padding:"20px",borderWidth:2,borderRadius:2,borderColor:"#eeeeee",borderStyle:"dashed",backgroundColor:"#fafafa",color:"#bdbdbd",outline:"none",transition:"border .24s ease-in-out",width:"100%"}}}));function me(e){var t=be();return Object(de.jsx)(he.a,{onDrop:function(t){e.onDrop(t)},accept:".knxproj",multiple:!1,children:function(e){var a=e.getRootProps,n=e.getInputProps;return Object(de.jsx)("section",{className:"container",children:Object(de.jsxs)("div",Object(d.a)(Object(d.a)({},a({className:"container"})),{},{children:[Object(de.jsx)("input",Object(d.a)({},n())),Object(de.jsx)(le.a,{className:t.baseStyle,children:G.a.t("Drag 'n' drop knxproj file here, or click to select file")})]}))})}})}var fe=a(393),ge=a(415),je=a(395),ve=a(396),Ae=a(397),we=a(390),Oe=a(421),xe=a(411),ye=a(398),Ie=a(410),ke=a(399),Ge=a(104),Se=a(414),Ne=Object(N.a)((function(e){return{textField:{"& > *":{margin:e.spacing(1),width:"27ch"},margin:e.spacing(1)},input:{"& > *":{margin:e.spacing(1),width:"25ch"}},alertBar:{"& > *":{margin:e.spacing(1),width:"100%"}},progress:{height:20},root:{height:10,borderRadius:0},fullWidth:{width:"98%"},tab:{marginRight:"2rem",marginLeft:"0.5rem"},card:{backgroundColor:"dark"===e.palette.type?"#111":"#EEE"},controlElement:{}}}));var Ce=function(e){var t=this,a=Ne(),i=e.instanceAlive,r=Object(n.useState)(!1),o=Object(S.a)(r,2),s=o[0],c=o[1],u=Object(n.useState)(""),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)(0),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)(0),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)([]),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)({onlyAddNewObjects:!0}),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)({name:"",expiration:0,offlineLicense:!1,numberOfInstances:"",majorVersion:"",registeredTo:"",message:"",datapoints:0,sysUUID:"",json:""}),z=Object(S.a)(X,2),D=z[0],T=z[1],L=Object(n.useState)({addLicensePopupVisible:!1,disableSaveButton:!0}),B=Object(S.a)(L,2),F=B[0],U=B[1],M=Object(n.useState)({licenses:[e.native.license||""],valid:!1,permissions:"",error:""}),q=Object(S.a)(M,2),$=q[0],J=q[1],Z=Object(n.useState)({visible:!1,finished:!1,title:"title",text:"test",numberOfDevices:0,numberOfGA:0,devices:[],licenses:[e.native.license||""],attr:""}),Y=Object(S.a)(Z,2),ee=Y[0],te=Y[1];Object(n.useEffect)((function(){e.socket.getUuid().then((function(t){return b(t),e.socket.getForeignObjects(e.adapterName+"."+e.instance+".*").then((function(t){t.hasOwnProperty("knx.0.info.connection")&&delete t["knx.0.info.connection"];var a=Object.entries(t);return j(a.length),e.socket.getHostByIp(e.common.host).then((function(e){e=e.filter((function(e){return"ipv4"===e.family&&"0.0.0.0"!==e.address})),k(e)}))}))}))}),[]),Object(n.useEffect)((function(){oe(e.native.license)}),[h,g,e.instanceAlive]),Object(n.useEffect)((function(){void 0!==i&&(i&&i.hasOwnProperty("val")?c(i.val):!i&&i||c(i||!1))}),[e.instanceAlive]),Object(n.useEffect)((function(){e.onChange("validLicense",$.valid)}),[$.valid]);var ae,ne,ie,re=function(e){return(void 0===e||!e.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))&&G.a.t("invalid ip address")},oe=function(t){t=void 0===t?"":t,e.socket.sendTo("knx."+e.instance,"verifyLicense",{license:t}).then((function(e){""===t?J({valid:!0,error:"",licenses:[t]}):"<2"===e.majorVersion?J({valid:!1,error:"This license is for adapter versions <2",licenses:[t]}):1e3*e.expires>(new Date).getTime()?J({valid:!1,error:"Cannot check license: Expired on "+new Date(1e3*e.expires).toString(),licenses:[t]}):e.sysUUID!==h?J({valid:!1,error:"This license is not valid for this iobroker host",licenses:[t]}):J({valid:!0,error:"",licenses:[t]}),T(e)}))},se=function(t,n,i){var r,o,s;switch(n){case"pass":r=(void 0===(s=e.native[n])||s.length<8||!s.match(/[a-z]/)||!s.match(/[A-Z]/)||!s.match(/\d/))&&G.a.t("invalid password");break;case"gwip":r=re(e.native[n]);break;case"eibadr":r=(void 0===(o=e.native[n])||!o.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))&&G.a.t("invalid KNX address");break;case"gwipport":r=function(e){var t=parseInt(e,10);return!!(void 0===t||isNaN(e)||!Number.isInteger(t)||t<1025||t>65536)&&G.a.t("invalid_Port_warning")}(e.native[n]);break;case"frameInterval":r=function(e){var t=parseInt(e,10);return!!(void 0===t||isNaN(e)||!Number.isInteger(t)||t<10||t>300)&&G.a.t("invalid frame interval")}(e.native[n]);break;case"bind":r=re(e.native[n]);break;default:r=!1}return Object(de.jsx)(Q.a,{label:G.a.t(t),error:!!r,className:e.classes&&e.classes.input?e.classes.input:a.input,value:e.native[n],type:i||"text",helperText:r||"",onChange:function(t){return e.onChange(n,t.target.value)}})},ce=ee.visible?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{children:G.a.t("Importstate")}),Object(de.jsx)(H.a,{children:"importresult"===ee.title?G.a.t("Successful imported GAs : ")+ee.numberOfGA:"importerror"===ee.title?G.a.t("Import partially or completely failed with error : ")+G.a.t(ee.error):""}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",autoFocus:!0,onClick:function(){return te({visible:!1}),void j(ee.numberOfGA)},children:G.a.t("Close")})})]}):null,ue=function(t){var a;U({addLicensePopupVisible:!1}),t&&t.licenses&&Array.isArray(t.licenses)&&(J(t.licenses[0]),oe(t.licenses[0]),a=t.licenses[0],e.socket.sendTo("knx."+e.instance,"verifyLicense",{license:a}).then((function(e){return T(e)})),e.onChange("license",t.licenses[0]||""))};return Object(de.jsx)(l.a,{theme:e.theme,children:Object(de.jsxs)("form",{className:a.tab,children:[Object(de.jsx)("div",{children:Object(de.jsx)(R.a,{instance:e.instance,common:e.common,native:e.native,onError:function(e){return t.setState({errorText:e})},onLoad:e.onLoad,classes:{},className:""})}),Object(de.jsxs)(je.a,{container:!0,spacing:1,justifyContent:"center",children:[Object(de.jsx)(je.a,{item:!0,xs:7,children:Object(de.jsx)(ve.a,{classes:{root:e.classes&&e.classes.card?e.classes.card:a.card},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("KNX Gateway Settings")}),Object(de.jsx)("span",{style:{marginright:"0rem"},children:se("KNX Gateway IP ","gwip","ipAddress")}),Object(de.jsx)("span",{style:{marginright:"1.5rem",marginLeft:"0rem"},children:se("KNX Gateway Port ","gwipport","port")}),Object(de.jsx)("span",{style:{marginright:"1.5rem",marginLeft:"0rem"},children:se("physical KNX address","eibadr","eibAddress")}),Object(de.jsx)("span",{style:{marginLeft:"0rem"},children:se("KNX packages per second","frameInterval","frameInterval")})]})})}),Object(de.jsx)(je.a,{item:!0,xs:3,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("local iobroker IP")}),Object(de.jsxs)(we.a,{className:e.classes&&e.classes.input?e.classes.input:a.input,children:[Object(de.jsx)(Oe.a,{children:G.a.t("local iobroker IP")}),Object(de.jsx)(xe.a,{value:e.native.bind,style:{width:"100%"},onChange:function(t){return e.onChange("bind",t.target.value)},children:I.map((function(e){return Object(de.jsx)(ye.a,{value:e.address,children:e.name},e.address)}))})]})]})})}),Object(de.jsx)(je.a,{item:!0,xs:2,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("loglevel")}),Object(de.jsxs)(we.a,{className:e.classes&&e.classes.input?e.classes.input:a.input,children:[Object(de.jsx)(Oe.a,{children:G.a.t("loglevel")}),Object(de.jsxs)(xe.a,{value:e.native.debugLevel,onChange:function(t){return e.onChange("debugLevel",t.target.value)},children:[Object(de.jsx)(ye.a,{value:0,children:G.a.t("Info")}),Object(de.jsx)(ye.a,{value:2,children:G.a.t("more")}),Object(de.jsx)(ye.a,{value:3,children:G.a.t("all")})]})]})]})})}),Object(de.jsx)(je.a,{item:!0,xs:12,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("upload KNX project file")}),s&&$.valid?Object(de.jsxs)("div",{children:[Object(de.jsx)("div",{children:(ne="only import new datapoints",ie="onlyAddNewObjects",Object(de.jsx)(fe.a,{className:e.classes&&e.classes.controlElement?e.classes.controlElement:a.controlElement,control:Object(de.jsx)(ge.a,{checked:P[ie],onChange:function(e){return K((function(t){return Object(d.a)(Object(d.a)({},t),{},{[ie]:e.target.checked})}))},color:"primary"}),label:G.a.t(ne)},ie))}),Object(de.jsx)("div",{style:{marginTop:"2rem"},children:Object(de.jsx)(me,{onDrop:function(t){E(t,e,P,O,te)}})}),Object(de.jsx)(Ie.a,{sx:{width:"100%"},id:"status",style:{marginTop:"2rem"},children:Object(de.jsx)(ke.a,{variant:"determinate",value:w,className:a.progress})})]}):Object(de.jsx)(Se.a,{severity:"error",children:s?G.a.t("license not valid"):G.a.t("adapter not running")})]})})}),Object(de.jsx)(je.a,{item:!0,xs:12,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsx)(Ae.a,{children:s?Object(de.jsxs)("div",{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("KNX adapter licensing")}),G.a.t("Host ID : ")," ",e.hostUUID,Object(de.jsx)("p",{}),Object(de.jsxs)(Se.a,{onClick:function(){return U({addLicensePopupVisible:!0})},severity:$.valid?"success":"error",children:[$.valid?G.a.t("License valid."):$.error&&"Failed to fetch"===$.error.message?G.a.t("License server not available."):G.a.t("License error : ")+$.error+G.a.t(". Click here to install a license."),$.valid?(ae=D,Object(de.jsxs)("div",{children:[Object(de.jsxs)(Se.a,{severity:ae.datapoints>=g?"success":"error",children:[G.a.t("number of max datapoints : "),g||0," / ",ae.datapoints||0]}),Object(de.jsxs)(Se.a,{severity:1e3*ae.expiration>(new Date).getTime()?"success":"error",children:[G.a.t("valid until : ")," ",1e3*ae.expiration<(new Date).getTime()?new Date(1e3*ae.expiration).toString()||G.a.t("expired"):new Date(1e3*ae.expiration).toString()]}),Object(de.jsxs)(Se.a,{severity:"success",children:[G.a.t("version : ")," ",ae.majorVersion]})]})):null]})]}):Object(de.jsx)(Se.a,{severity:"error",children:G.a.t("adapter not running")})})})})]}),ce,F.addLicensePopupVisible&&Object(de.jsx)(pe,{instance:e.instance,socket:e.socket,props:e,licensing:$,onChange:function(e){return ue(e)},visible:F.addLicensePopupVisible})]})})},Pe=a(8),Ke=a.n(Pe),Xe=a(391),ze=a(323),De=a(400),Ee=a(401);var Te=function(e){var t=e.gaObjArr,a=e.dptObjs,i={write:!1,read:!1,update:!1},r=Object(n.useState)({}),o=Object(S.a)(r,2),s=o[0],c=o[1],l=Object(n.useState)(i),d=Object(S.a)(l,2),u=d[0],p=d[1],h=Object(n.useState)(""),b=Object(S.a)(h,2),m=b[0],f=b[1],g=Object(n.useState)(t),j=Object(S.a)(g,2),v=j[0],A=j[1],w=Object(n.useState)({}),O=Object(S.a)(w,2),x=O[0],y=O[1];Object(n.useEffect)((function(){switch(t.length){case 0:y({_id:!1}),p({write:!1,read:!1,update:!1});break;case 1:y(t[0]),t[0]&&t[0].native&&t[0].native.hasOwnProperty("dpt")&&f(t[0].native.dpt.replace("DPT","")),I({read:!!(t[0]&&t[0].common&&t[0].common.read)&&t[0].common.read,write:!!(t[0]&&t[0].common&&t[0].common.write)&&t[0].common.write});break;default:I({read:!1,write:!1}),f(""),A(t)}}),[t]),Object(n.useEffect)((function(){c(a)}),[a]);var I=function(e){if(e&&e.hasOwnProperty("write")&&e.hasOwnProperty("read")){var t=i;e.write&&e.read&&(t.write=!1,t.read=!0,t.update=!0),e.write&&!e.read&&(t.write=!0,t.read=!1,t.update=!1),!e.write&&e.read&&(t.write=!1,t.read=!0,t.update=!1),e.write||e.read||(t.write=!1,t.read=!1,t.update=!1),p(t)}},k=function(t){if(0===v.length||!1!==x._id){if(x&&x._id&&!1!==x._id){var a={write:x.common.write||!1,read:x.common.read||!0};switch(t.target.id){case"write":a.write=!x.common.write||!1,a.read=!a.write;break;case"read":a.read=!x.common.read||!0,a.write=!a.read;break;case"update":x.common.write&&x.common.read?a.write=!1:!x.common.write&&x.common.read?a.write=!0:x.common.write||x.common.read||(a.write=!0),a.read=!0;break;default:a.write=!1,a.read=!1}x.common.read=a.read,x.common.write=a.write,I(a),e.onClick({id:"gaProps",gaObj:x})}}else{var n={write:!1,read:!0},i=!1,r=!1,o=!1;switch(t.target.id){case"write":n.write=!u.write,n.read=!1,r=!1,o=!u.write,i=!1;break;case"read":n.write=!1,n.read=!u.read,r=!u.read,o=!1,i=u.update;break;case"update":u.write&&u.read?n.write=!1:!u.write&&u.read?n.write=!0:u.write||u.read||(n.write=!0),o=!1,r=u.read,i=!u.update,n.read=!0;break;default:n.write=!1,n.read=!1}p({read:r,write:o,update:i});for(var s=v,c=0;c<v.length;c++)s[c].common.write=n.write,s[c].common.read=n.read;A(s),e.onClick({id:"gaProps",gaObjArr:v})}};return Object(de.jsx)(ve.a,{sx:{minHeight:"100%"},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA properties")}),Object(de.jsx)(Ge.a,{variant:"h5",component:"div",children:t.length>1?G.a.t("muliselection"):x&&x._id&&!1!==x._id?x.common.name:G.a.t("none selected")}),Object(de.jsxs)(Xe.a,{children:[Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"write",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.write,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"write"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"write",secondary:G.a.t("write")})]},"writeBox"),Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"read",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.read,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"read"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"read",secondary:G.a.t("read")})]},"readBox"),Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"update",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.update,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"update"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"update",secondary:G.a.t("update")})]},"updateBox"),Object(de.jsx)(ze.a,{children:Object(de.jsxs)(we.a,{fullWidth:!0,variant:"standard",disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id),children:[Object(de.jsx)(Oe.a,{id:"dptlabel",variant:"standard",htmlFor:"uncontrolled-native",children:"DPT"}),Object(de.jsx)(xe.a,{value:v&&v.length>0||x&&x._id&&!1!==x._id?m:"",onChange:function(t){return function(t){var a=function(e,t){if(void 0!==e&&e.length){var a=e.replace("DPT","");return t[a]?[t[a]]:[{id:e}]}return[{id:""}]}("DPT"+t.target.value,s);if(0===v.length||!1!==x._id)x&&x._id&&!1!==x._id&&(x.native.dpt="DPT"+t.target.value,x.common.unit=a[0].unit,x.common.type=a[0].type,f(t.target.value),e.onClick({id:"gaProps",gaObj:x}));else if(v.length>0){for(var n=0;n<v.length;n++)v[n].native.dpt="DPT"+t.target.value,v[n].common.unit=a[0].unit,v[n].common.type=a[0].type;f(t.target.value),e.onClick({id:"gaProps",gaObjArr:v})}}(t)},children:s&&Object.keys(s).map((function(e){return Object(de.jsxs)(ye.a,{id:e,value:e,children:[e,s[e].DPT_Name?" - "+s[e].DPT_Name.replace("DPT_","").replace(/_/g," "):"",s[e].unit&&"null"!==s[e].unit?" - "+s[e].unit:""]},e)}))})]})},"formControl")]})]})})},Re=a(403),Le=a(404),Be=a(172),Fe=a.n(Be),_e=a(212),Ve=a(205),He=a.n(Ve),We=a(206),Ue=a.n(We),Me=a(123),qe=a.n(Me),$e=a(422),Je=a(402);$e.a.propTypes={bgColor:Ke.a.string,color:Ke.a.string,labelIcon:Ke.a.elementType,labelIconColor:Ke.a.string,labelInfo:Ke.a.string,labelText:Ke.a.string};var Ze=Object(N.a)((function(e){return{root:{color:e.palette.text.secondary,"&:hover > $content":{backgroundColor:e.palette.action.hover},"&:focus > $content, &$selected > $content":{backgroundColor:"var(--tree-view-bg-color, ".concat(e.palette.grey[400],")"),color:"var(--tree-view-color)"},"&:focus > $content $label, &:hover > $content $label, &$selected > $content $label":{backgroundColor:"transparent"}},content:{color:e.palette.text.secondary,borderTopRightRadius:e.spacing(2),borderBottomRightRadius:e.spacing(2),paddingRight:e.spacing(1),fontWeight:e.typography.fontWeightMedium,"$expanded > &":{fontWeight:e.typography.fontWeightRegular}},group:{marginLeft:0,"& $content":{paddingLeft:e.spacing(2)}},expanded:{},selected:{},label:{fontWeight:"inherit",color:"inherit"},labelRoot:{display:"flex",alignItems:"center",padding:e.spacing(.5,0)},labelIcon:{marginRight:e.spacing(1)},labelIconColor:{color:e.labelIconColor},labelText:{fontWeight:"inherit",flexGrow:1}}}));function Ye(e){var t=Ze(),a=e.labelText,n=(e.labelIcon,e.labelIconColor),i=e.labelInfo,r=e.color,o=e.bgColor,s=Object(_e.a)(e,["labelText","labelIcon","labelIconColor","labelInfo","color","bgColor"]);return Object(de.jsx)($e.a,Object(d.a)({label:Object(de.jsxs)("div",{className:t.labelRoot,children:[Object(de.jsx)(qe.a,{style:{color:n}}),Object(de.jsx)(Ge.a,{variant:"body2",className:t.labelText,children:a}),Object(de.jsx)(Ge.a,{variant:"caption",color:"inherit",children:i})]}),style:{"--tree-view-color":r,"--tree-view-bg-color":o},classes:{root:t.root,content:t.content,expanded:t.expanded,selected:t.selected,group:t.group,label:t.label}},s))}var Qe=function(e){var t=e.gaObjects,a=e.multiselect,i=Object(n.useState)([]),r=Object(S.a)(i,2),o=r[0],s=r[1];return Object(n.useEffect)((function(){s(t)}),[t]),Object(de.jsx)(Je.a,{id:"galist","aria-label":"knx",defaultExpanded:["3"],defaultCollapseIcon:Object(de.jsx)(He.a,{}),defaultExpandIcon:Object(de.jsx)(Ue.a,{}),defaultEndIcon:Object(de.jsx)("div",{style:{width:24}}),sx:{height:"100%",flexGrow:1,maxWidth:"100%"},multiSelect:a||!1,onNodeSelect:function(t,a){return function(t,a){e.onClick({id:"gaList",value:a})}(0,a)},children:o&&o.map((function(e){return Object(de.jsx)(Ye,{nodeId:"galist-123hg"+e.hgId+e.hgName,labelIcon:qe.a,labelIconColor:"blue",labelText:e.hgId+" "+e.hgName,children:e.mg.map((function(e){return Object(de.jsx)(Ye,{nodeId:"galist-123mg"+e.mgId+e.mgName,labelIcon:qe.a,labelIconColor:"green",labelText:e.mgId+" "+e.mgName,children:e.ga.map((function(e){return Object(de.jsx)(Ye,{style:{marginLeft:20},nodeId:e.props.g._id,labelIcon:qe.a,labelIconColor:"red",labelText:e.gaId+" "+e.gaName},e.props.g._id)}))},"mg"+e.mgId+e.mgName)}))},"hg"+e.hgId+e.hgName)}))},"galisttree")},et=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)}}}));Te.propTypes={props:Ke.a.object.isRequired,gaObjArray:Ke.a.array,actObject:Ke.a.object,gaObjects:Ke.a.array.isRequired,stateObject:Ke.a.object,onClick:Ke.a.func};var tt=function(e){var t=e.gaObjArr,a=e.gaRefIdMap,i=e.gaObjects,r=e.actObject,o=e.stateObject,s=e.socket,c=et(),l=Object(n.useState)({}),d=Object(S.a)(l,2),u=d[0],p=d[1],h=Object(n.useState)({}),b=Object(S.a)(h,2),m=b[0],f=b[1],g=Object(n.useState)({}),j=Object(S.a)(g,2),v=j[0],A=j[1],w=Object(n.useState)(!1),O=Object(S.a)(w,2),x=O[0],y=O[1],I=Object(n.useState)(!0),k=Object(S.a)(I,2),N=k[0],C=k[1],P=Object(n.useState)(""),K=Object(S.a)(P,2),X=K[0],z=K[1];Object(n.useEffect)((function(){if(t&&1===t.length){var e=t[0];if(e&&e.common&&e.native){var n=e.common,i=e.native;n.read=!!n.hasOwnProperty("read")&&n.read,n.write=!!n.hasOwnProperty("write")&&n.write,(n.read&&n.write||n.read&&!n.write)&&(p({}),f(e)),!n.read&&n.write&&(p(e),f({})),i.actGARefId&&i.actGARefId.length>0&&(p(s.getObject(a[i.actGARefId]).then((function(e){return e}))),f(e)),i.statusGARefId&&i.statusGARefId.length>0&&(p(e),f(s.getObject(a[i.statusGARefId]).then((function(e){return e})))),n.read||n.write||(p({}),f({})),A(e)}}}),[t]),Object(n.useEffect)((function(){p(r)}),[r]),Object(n.useEffect)((function(){f(o)}),[o]),Object(n.useEffect)((function(){X&&X.value&&X.value.indexOf("knx.")>-1&&v._id!==X.value?C(!1):C(!0)}),[X]);var D=x?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{className:c.root,children:G.a.t("Choose corresponding GA")}),Object(de.jsx)(H.a,{children:Object(de.jsx)(Qe,{gaObjects:i,multiselect:!1,onClick:function(e){return z(e)}})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",disabled:N,onClick:function(){v.common.write&&!v.common.read?(e.onClick({id:"gaStateAct",stateId:X.value}),y(!1)):(e.onClick({id:"gaStateAct",actId:X.value}),y(!1))},iconStart:Object(de.jsx)(oe.a,{}),children:"Ok"}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return y(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})]})]}):null;return Object(de.jsxs)(ve.a,{sx:{minHeight:"100%"},children:[Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA State - Actuator relation")}),Object(de.jsx)(Q.a,{id:"standard-read-only-input1",fullWidth:!0,label:"Actuator GA",value:1===t.length&&u&&u.common&&u.common.hasOwnProperty("name")?u.common.name:"",InputProps:{readOnly:!0},variant:"standard"}),Object(de.jsx)(Q.a,{id:"standard-read-only-input2",fullWidth:!0,label:"State GA",value:1===t.length&&m&&m.common&&m.common.hasOwnProperty("name")?m.common.name:"",InputProps:{readOnly:!0},variant:"standard"})]}),Object(de.jsx)(Re.a,{children:Object(de.jsxs)(Le.a,{children:[1===t.length&&u.hasOwnProperty("_id")&&m.hasOwnProperty("_id")&&Object(de.jsx)(le.a,{variant:"contained",onClick:function(){u&&u.native&&m&&m.native&&(u.native.actGARefId="",u.native.statusGARefId="",m.native.actGARefId="",m.native.statusGARefId="",f(m),p(u),e.onClick({id:"gaStateAct",delete:[u,m]}))},iconStart:Object(de.jsx)(Fe.a,{}),children:G.a.t("delete")}),1===t.length&&(!u.hasOwnProperty("_id")&&m.hasOwnProperty("_id")||u.hasOwnProperty("_id")&&!m.hasOwnProperty("_id"))&&Object(de.jsx)(le.a,{variant:"contained",onClick:function(e){return C(!0),void y(!0)},iconStart:Object(de.jsx)(Fe.a,{}),children:G.a.t("add new relation")},"newRelation")]})}),D]})},at=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)}}}));var nt=function(e,t,a){return e.getForeignObjects(t+"."+a+".*").then((function(e){return function(e){var t=Object.entries(e),a=[],n=[],i=[],r=[],o=[],s=[];return t.forEach((function(e){if(e[1]){var t=e[1];if(t&&t.native&&t.native.address){var c=t.native.address.split("/"),l=e[0].split(".");a[c[0]]||(a[c[0]]={hgName:l[2],hgId:c[0],mg:[]}),a[c[0]]&&(a[c[0]].mg[c[1]]||(a[c[0]].mg[c[1]]={mgName:l[3],mgId:c[1],ga:[]})),a[c[0]]&&a[c[0]].mg[c[1]]&&(a[c[0]].mg[c[1]].ga[c[2]]={gaId:c[2],gaName:t.common.name,props:{g:t}},n[t.native.addressRefId]=t._id,i[t._id]=t.native.addressRefId,t.native.actGARefId&&t.native.actGARefId.length>0&&(o[t._id]=t.native.actGARefId),t.native.statusGARefId&&t.native.statusGARefId.length>0&&(r[t._id]=t.native.statusGARefId),t.native.dpt&&0===t.native.dpt.length&&(s[t._id]=t.native.addressRefId),t.common.write&&t.common.read||(s[t._id]=t.native.addressRefId),t.common.read&&0===t.common.read.length&&t.common.write&&0===t.common.write.length&&(s[t._id]=t.native.addressRefId))}}})),{struct:a,gaRefIdMap:n,gaGaIdMap:i,gaActStateMap:r,gaStateActMap:o,gaUndefMap:s}}(e)}))};var it=function(e){var t=at(),a=e.socket,i=e.adapterName,r=e.instance,o=e.instanceAlive,s=Object(n.useState)([]),c=Object(S.a)(s,2),l=c[0],d=c[1],u=Object(n.useState)({}),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)({}),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)({}),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)({id:""}),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)([]),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)([]),z=Object(S.a)(X,2),D=z[0],E=z[1],T=Object(n.useState)(""),R=Object(S.a)(T,2),L=R[0],B=R[1];Object(n.useEffect)((function(){nt(a,i,r).then((function(e){d(e.struct),K(e.gaRefIdMap)})),U()}),[a]),Object(n.useEffect)((function(){1===D.length&&J(D[0])}),[D]),Object(n.useEffect)((function(){}),[h]);var F=function(e){switch(e.id){case"gaList":if(Array.isArray(e.value)){var t=0;E([]);var n=[];e.value.map((function(i){return a.getObject(i).then((function(a){null!==a&&n.push(a),t===e.value.length-1&&E(n),t++})),null}))}break;case"gaProps":if(e.gaObj&&J(e.gaObj),e.actObj,e.stateObj,e.gaObjArr)for(var i=[],r=0;r<e.gaObjArr.length;r++){var o=e.gaObjArr[r];e.gaObjArr.length>1&&o.native&&o.native.hasOwnProperty("actGARefId")&&o.native.actGARefId.length>0&&i.push(o.common.name),e.gaObjArr.length>1&&o.native&&o.native.hasOwnProperty("statusGARefId")&&o.native.statusGARefId.length>0&&i.push(o.common.name),o.native&&o.native.hasOwnProperty("actGARefId")&&0===o.native.actGARefId.length&&o.native.hasOwnProperty("statusGARefId")&&0===o.native.statusGARefId.length&&J(o),i.length>0&&B(G.a.t("Changing this GA is not possible, because they have existing Act-State relations. ")+i.map((function(e,t){return e})))}break;case"gaStateAct":e.actId&&a.getObject(e.actId).then((function(e){q(e)})),e.stateId&&a.getObject(e.stateId).then((function(e){q(e)})),e.delete&&$(e.delete);break;default:return null}},U=function(){(function(e,t,a){return e.sendTo(t+"."+a,"getDPT",null)})(a,i,r).then((function(e){return k(e)}))},q=function(e){D&&D[0]&&D[0].native&&D[0].common&&e&&e.common&&e.native&&(D[0].common.hasOwnProperty("read")&&D[0].common.hasOwnProperty("write")&&e.common.hasOwnProperty("read")&&e.common.hasOwnProperty("write")?!D[0].common.write&&D[0].common.read&&e.common.write&&e.common.read||D[0].common.write&&D[0].common.read&&!e.common.write&&e.common.read||D[0].common.read!==e.common.read&&D[0].common.write!==e.common.write||D[0].common.write&&!D[0].common.read&&e.common.write&&e.common.read||D[0].common.write&&D[0].common.read&&e.common.write&&!e.common.read?D[0].native.hasOwnProperty("dpt")&&e.native.hasOwnProperty("dpt")&&D[0].native.dpt===e.native.dpt?0===D[0].native.statusGARefId.length&&0===D[0].native.actGARefId.length&&0===e.native.actGARefId.length&&0===e.native.statusGARefId.length?(0===D[0].native.statusGARefId.length&&e.common.write&&!e.common.read?(D[0].native.actGARefId=e.native.addressRefId,e.native.statusGARefId=D[0].native.addressRefId):0===D[0].native.actGARefId.length&&(D[0].native.statusGARefId=e.native.addressRefId,e.native.actGARefId=D[0].native.addressRefId),a.setObject(D[0]._id,D[0]),a.setObject(e._id,e),J(D[0])):B(G.a.t("The target has already a relation. Delete the target relation first before create a new one. It is connected to "+D[0].common.name)):B(G.a.t("It is not possible to combine State GA and Act GA with different datapointtypes.")):B(G.a.t("It is not possible to combine state-state nor act-act GAs. Check the GA Properties.")):B(G.a.t("One of State or Act (or both) doesn't have defined as read or writeable. Set this property for Act and State GA")))},$=function(e){a.setObject(e[0]._id,e[0]),a.setObject(e[1]._id,e[1]),e[0]._id===D[0]._id?J(e[0]):J(e[1])},J=function(e){e&&e._id&&e.native&&e.native.hasOwnProperty("actGARefId")&&e.native.hasOwnProperty("statusGARefId")&&e.common.hasOwnProperty("read")&&e.common.hasOwnProperty("write")?!e.common.read&&e.common.write?(e.native.statusGARefId.length>0||e.native.actGARefId.length>0?(e.native.actGARefId.length>0&&(e.native.statusGARefId=e.native.actGARefId,e.native.actGARefId=""),a.getObject(P[e.native.statusGARefId]).then((function(t){return t.common&&t.native&&(t.common.read=!0,t.native.actGARefId=e.native.addressRefId,t.native.statusGARefId=""),t})).then((function(t){a.setObject(t._id,t),j(e),O(t)}))):O({}),b(e),j(e),a.setObject(e._id,e)):(e.common.read&&!e.common.write||e.common.read&&e.common.write)&&(e.native.statusGARefId.length>0||e.native.actGARefId.length>0?(e.native.statusGARefId.length>0&&(e.native.actGARefId=e.native.statusGARefId,e.native.statusGARefId=""),a.getObject(P[e.native.actGARefId]).then((function(t){return t.common&&t.native&&(t.common.read=!1,t.common.write=!0,t.native.statusGARefId=e.native.addressRefId,t.native.actGARefId=""),t})).then((function(t){a.setObject(t._id,t),O(e),j(t)}))):j({}),b(e),O(e),a.setObject(e._id,e)):(j({}),O({}))},Z=L.length>0?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{className:t.root,children:G.a.t("Information")}),Object(de.jsx)(H.a,{children:G.a.t(L)}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return B("")},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})})]}):null;return Object(de.jsxs)(Ie.a,{sx:{p:2,bgcolor:"background.default",display:"grid",gridTemplateColumns:{md:"1.5fr 2fr 1fr"},gap:2,height:"95%"},children:[Object(de.jsx)(M.a,{style:{maxHeight:"100%",overflow:"auto"},children:Object(de.jsx)(ve.a,{sx:{minHeight:"100%"},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA-structure")}),Object(de.jsx)(Qe,{multiselect:!0,gaObjects:l,onClick:function(e){return F(e)}},"galist")]})})}),Object(de.jsx)(M.a,{}),Object(de.jsxs)(M.a,{children:[o&&Object(de.jsx)(Te,{gaObjArr:D,dptObjs:I,onClick:function(e){return F(e)},onChange:function(t){return function(t){t.attr&&t.value&&e.onChange(t.attr,t.value)}(t)}}),o&&Object(de.jsx)(tt,{gaObjArr:D,actObject:g,gaObjects:l,stateObject:w,gaRefIdMap:P,socket:a,onClick:function(e){return F(e)}})]}),Z]})},rt=function(e){Object(f.a)(n,e);var t=Object(g.a)(n);function n(e){var i;Object(u.a)(this,n);var r=Object(d.a)({},e);return r.encryptedFields=["pass"],r.translations={en:a(296),de:a(297),ru:a(298),pt:a(299),nl:a(300),fr:a(301),it:a(302),es:a(303),pl:a(304),"zh-cn":a(305)},(i=t.call(this,e,r)).updateAliveState=i.updateAliveState.bind(Object(h.a)(i)),i}return Object(p.a)(n,[{key:"componentDidMount",value:function(){this.setState({licenseValid:!1,selectedTab:"configuration",socketConnected:!1})}},{key:"componentWillUnmount",value:function(){this.socket.unsubscribeState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive"),this.updateAliveState)}},{key:"updateAliveState",value:function(e,t){t&&t.hasOwnProperty("val")&&e.includes("alive")&&this.setState({instanceAlive:t.val,selectedTab:t.val?this.state.selectedTab:"configuration"})}},{key:"onConnectionReady",value:function(){var e=this;this.setState({socketConnected:!0}),this.socket.getObject("system.meta.uuid").then((function(t){e.setState({hostUUID:t&&t.native&&t.native.uuid&&t.native.uuid.length>0?t.native.uuid:""})})).catch((function(t){e.setState({hostUUID:""})})),this.socket.getState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive")).then((function(t){return e.state.instanceAlive=t,t})).catch((function(e){return!1})),this.socket.subscribeState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive"),!0,this.updateAliveState)}},{key:"updateNativeValue",value:function(e,t,a){"validLicense"===e?this.setState({licenseValid:t}):Object(b.a)(Object(m.a)(n.prototype),"updateNativeValue",this).call(this,e,t,a)}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e&&"configuration"!==e?"gatools"===e?1:void 0:0}},{key:"render",value:function(){var e=this;return this.state.loaded&&this.state.socketConnected?Object(de.jsx)(l.a,{theme:this.state.theme,children:Object(de.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object(de.jsx)(v.a,{position:"static",children:Object(de.jsxs)(A.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(t.target.parentNode.dataset.name,a)},scrollButtons:"auto",children:[Object(de.jsx)(w.a,{label:G.a.t("Configuration"),"data-name":"configuration"}),this.state.licenseValid&&this.state.instanceAlive&&Object(de.jsx)(w.a,{label:G.a.t("GA-Tools"),"data-name":"gatools"})]})}),Object(de.jsxs)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,style:{width:"100%"},children:[("configuration"===this.state.selectedTab||!this.state.selectedTab)&&Object(de.jsx)(Ce,{common:this.common,socket:this.socket,native:this.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},onLoad:function(t){return e.onLoadConfig(t)},instance:this.instance,adapterName:this.adapterName,instanceAlive:this.state.instanceAlive,changed:this.state.changed,theme:this.state.theme,hostUUID:this.state.hostUUID,onChange:function(t,a,n){return e.updateNativeValue(t,a,n)}},"configuration"),"gatools"===this.state.selectedTab&&this.state.licenseValid&&this.state.instanceAlive&&Object(de.jsx)(it,{common:this.common,socket:this.socket,native:this.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},instance:this.instance,instanceAlive:this.state.instanceAlive,adapterName:this.adapterName,onShowError:function(t){return e.showError(t)}},"gatools")]}),this.renderError(),this.renderSaveCloseButtons()]})}):Object(de.jsx)(l.a,{theme:this.state.theme,children:Object(de.jsx)(I.a,{theme:this.state.themeType})})}}]),n}(x.a),ot=Object(j.a)((function(e){return{root:{},tabContent:{padding:10,height:"calc(100% - 64px - 48px - 20px)",overflow:"auto"},tabContentIFrame:{padding:10,height:"calc(100% - 64px - 48px - 20px - 38px)",overflow:"auto"}}}))(rt);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var st=a(173),ct=a(165),lt=a.n(ct),dt=a(167),ut=a.n(dt);window.adapterName="knx";var pt=ut.a.getThemeName();console.log("iobroker."+window.adapterName+"@"+st.a+' using theme "'+pt+'"'),"localhost:3000"!==window.location.host&&s.a({dsn:"https://5ad729dbed504d15aa8bde423cae9a8e@sentry.iobroker.net/57",release:"iobroker."+window.adapterName+"@"+st.a,integrations:[new c.a]}),function e(){return o.a.render(Object(de.jsx)(l.a,{theme:lt()(pt),children:Object(de.jsx)(ot,{onThemeChange:function(t){pt=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[308,1,2]]]);
2
- //# sourceMappingURL=main.31e4e05f.chunk.js.map
1
+ (this["webpackJsonpknx-admin"]=this["webpackJsonpknx-admin"]||[]).push([[0],{173:function(e){e.exports=JSON.parse('{"a":"2.0.4"}')},239:function(e,t,a){},296:function(e){e.exports=JSON.parse('{"Cancel":"Cancel","Save":"Save","Close":"Close","invalid KNX address":"Invalid KNX Address!","invalid ip address":"Invalid IP Address!","invalid frame interval":"Invalid frame rate, 10 < rate < 300","invalid password":"Invalid password","read":"read","write":"write","update":"update","Multiselection":"multi selection","none selected":"none selected","Choose corresponding GA":"Choose corresponding GA","GA State - Act relation":"GA State - Act relation","modify":"modify","add new relation":"add new relation","Error":"error","This Error occured : ":"This Error occured : ","Available Licenses":"Available Licenses","valid until":"valid until","Datapoints":"Datapoints","Version":"Version","Host ID":"Host ID","Host ID : ":"Host ID : ","Apply":"Apply","Please enter ioBroker.net login and password":"Please enter ioBroker.net login and password","e-mail":"E-Mail","password":"password","add / modify license":"add / modify license","license":"license","Synchronize with iobroker.net":"Synchronize with iobroker.net","GA-structure":"GA-structure","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"The target has already a relation. Delete the target relation first before create a new one. It is connected to ","It is not possible to combine State GA and Act GA with different datapointtypes.":"It is not possible to combine State GA and Act GA with different datapointtypes.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"It is not possible to combine state-state nor act-act GAs. Check the GA Properties.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA","Information":"Information","Changing this GA is not possible, because they have existing Act-State relations.":"Changing this GA is not possible, because they have existing Act-State relations.","GA State - Actuator relation":"GA State - Actuator relation","delete":"delete","Successful imported GAs : ":"Successful imported GAs : ","Import partially or completely failed with error : ":"Import partially or completely failed with error : ","number of max datapoints : ":"number of max datapoints : ","valid until : ":"valid until : ","expired":"expired","version : ":"version : ","KNX Gateway Settings":"KNX Gateway Settings","local iobroker IP":"local iobroker IP","loglevel":"loglevel","Info":"Info","more":"more","all":"all","upload KNX project file":"upload KNX project file","only import new datapoints":"only import new datapoints","license not valid":"license not valid","adapter not running":"adapter not running","License valid.":"License valid.","KNX adapter licensing":"KNX adapter licensing","Failed to fetch":"Failed to fetch","License error : ":"License error : ",". Click here to install a license.":". Click here to install a license.","License server not available.":"License server not available.","KNX packages per second":"KNX packages per second","physical KNX address":"physical KNX address","KNX Gateway Port":"KNX Gateway Port","KNX Gateway IP":"KNX Gateway IP","Drag \'n\' drop knxproj file here, or click to select file":"Drag \'n\' drop knxproj file here, or click to select file"}')},297:function(e){e.exports=JSON.parse('{"Cancel":"Abbrechen","invalid KNX address":"Ung\xfcltige KNX-Adresse!","invalid frame interval":"Ung\xfcltige Bildrate, 10 < Rate < 300","invalid ip address":"Ung\xfcltige IP-Adresse!","invalid password":"Ung\xfcltiges Passwort","Apply":"Anwenden","Available Licenses":"Verf\xfcgbare Lizenzen","Choose corresponding GA":"W\xe4hlen Sie entsprechende GA","Close":"Schliessen","Datapoints":"Datenpunkte","Error":"Fehler","GA State - Act relation":"GA State - Act-Beziehung","GA-structure":"GA-Struktur","Host ID":"Host-ID","Multiselection":"Mehrfachauswahl","Please enter ioBroker.net login and password":"Bitte geben Sie ioBroker.net Login und Passwort ein","Save":"Speichern","Synchronize with iobroker.net":"Mit iobroker.net synchronisieren","This Error occured : ":"Dieser Fehler ist aufgetreten:","Version":"Ausf\xfchrung","add / modify license":"Lizenz hinzuf\xfcgen / \xe4ndern","add new relation":"neue Beziehung hinzuf\xfcgen","e-mail":"Email","license":"Lizenz","modify":"\xe4ndern","none selected":"nichts ausgew\xe4hlt","password":"Passwort","read":"lesen","update":"aktualisieren","valid until":"g\xfcltig bis","write":"schreiben",". Click here to install a license.":". Klicken Sie hier, um eine Lizenz zu installieren.","Changing this GA is not possible, because they have existing Act-State relations.":"Eine \xc4nderung dieser GA ist nicht m\xf6glich, da sie bestehende Act-State-Beziehungen haben.","Failed to fetch":"Fehler beim Abrufen","GA State - Actuator relation":"GA-Zustand - Aktuator-Beziehung","Host ID : ":"Host-ID:","Import partially or completely failed with error : ":"Import teilweise oder vollst\xe4ndig mit Fehler fehlgeschlagen:","Info":"Die Info","Information":"Information","It is not possible to combine State GA and Act GA with different datapointtypes.":"Es ist nicht m\xf6glich, State GA und Act GA mit unterschiedlichen Datenpunkttypen zu kombinieren.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Eine Kombination von State-State- oder Act-Act-GAs ist nicht m\xf6glich. \xdcberpr\xfcfen Sie die GA-Eigenschaften.","KNX Gateway Settings":"KNX-Gateway-Einstellungen","KNX adapter licensing":"KNX-Adapter-Lizenzierung","License error : ":"Lizenzfehler:","License server not available.":"Lizenzserver nicht verf\xfcgbar.","License valid.":"Lizenz g\xfcltig.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Einer von State oder Act (oder beides) ist nicht als lese- oder schreibbar definiert. Diese Eigenschaft f\xfcr Act and State GA festlegen","Successful imported GAs : ":"Erfolgreich importierte GAs:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Das Ziel hat bereits eine Beziehung. L\xf6schen Sie zuerst die Zielbeziehung, bevor Sie eine neue erstellen. Es ist verbunden mit","adapter not running":"Adapter l\xe4uft nicht","all":"alle","delete":"l\xf6schen","expired":"abgelaufen","license not valid":"Lizenz nicht g\xfcltig","local iobroker IP":"lokale iobroker-IP","loglevel":"Loglevel","more":"mehr","number of max datapoints : ":"Anzahl der maximalen Datenpunkte:","only import new datapoints":"nur neue Datenpunkte importieren","upload KNX project file":"KNX Projektdatei hochladen","valid until : ":"g\xfcltig bis :","version : ":"Version :","Drag \'n\' drop knxproj file here, or click to select file":"Ziehen Sie die knxproj-Datei hierher oder legen Sie sie hier ab, oder klicken Sie, um die Datei auszuw\xe4hlen","KNX Gateway IP":"KNX-Gateway-IP","KNX Gateway Port":"KNX-Gateway-Port","KNX packages per second":"KNX-Pakete pro Sekunde","physical KNX address":"physikalische KNX-Adresse"}')},298:function(e){e.exports=JSON.parse('{"Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","invalid KNX address":"\u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 KNX!","invalid frame interval":"\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432, 10 <\u0447\u0430\u0441\u0442\u043e\u0442\u0430 <300","invalid ip address":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441!","invalid password":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c","Apply":"\u041f\u043e\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u0435","Available Licenses":"\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438","Choose corresponding GA":"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e GA","Close":"\u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c","Datapoints":"\u0422\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445","Error":"\u043e\u0448\u0438\u0431\u043a\u0430","GA State - Act relation":"\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 GA State - Act","GA-structure":"GA-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430","Host ID":"ID \u0445\u043e\u0441\u0442\u0430","Multiselection":"\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440","Please enter ioBroker.net login and password":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c ioBroker.net","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Synchronize with iobroker.net":"\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 iobroker.net","This Error occured : ":"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u044d\u0442\u0430 \u043e\u0448\u0438\u0431\u043a\u0430:","Version":"\u0412\u0435\u0440\u0441\u0438\u044f","add / modify license":"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c / \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e","add new relation":"\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435","e-mail":"\u042d\u043b. \u043f\u043e\u0447\u0442\u0430","license":"\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f","modify":"\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c","none selected":"\u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e","password":"\u043f\u0430\u0440\u043e\u043b\u044c","read":"\u0447\u0438\u0442\u0430\u0442\u044c","update":"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c","valid until":"\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u0434\u043e","write":"\u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c",". Click here to install a license.":". \u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044e.","Changing this GA is not possible, because they have existing Act-State relations.":"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 GA \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \xab\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435-\u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e\xbb.","Failed to fetch":"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c","GA State - Actuator relation":"\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 GA - \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430","Host ID : ":"ID \u0445\u043e\u0441\u0442\u0430:","Import partially or completely failed with error : ":"\u0418\u043c\u043f\u043e\u0440\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439:","Info":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","Information":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","It is not possible to combine State GA and Act GA with different datapointtypes.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c State GA \u0438 Act GA \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0433\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0413\u0410. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 GA.","KNX Gateway Settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0448\u043b\u044e\u0437\u0430 KNX","KNX adapter licensing":"\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 KNX","License error : ":"\u041e\u0448\u0438\u0431\u043a\u0430 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438:","License server not available.":"\u0421\u0435\u0440\u0432\u0435\u0440 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d.","License valid.":"\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"\u041e\u0434\u043d\u043e \u0438\u0437 State \u0438\u043b\u0438 Act (\u0438\u043b\u0438 \u043e\u0431\u043e\u0438\u0445) \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0438. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u044d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0434\u043b\u044f Act \u0438 State GA","Successful imported GAs : ":"\u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0413\u0410:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"\u0423 \u0446\u0435\u043b\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u0432\u044f\u0437\u044c. \u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u043e\u0435, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441","adapter not running":"\u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442","all":"\u0432\u0441\u0435","delete":"\u0443\u0434\u0430\u043b\u044f\u0442\u044c","expired":"\u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0439","license not valid":"\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430","local iobroker IP":"\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP-\u0430\u0434\u0440\u0435\u0441 iobroker","loglevel":"\u043b\u043e\u0433-\u0443\u0440\u043e\u0432\u0435\u043d\u044c","more":"\u0431\u043e\u043b\u0435\u0435","number of max datapoints : ":"\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u0434\u0430\u043d\u043d\u044b\u0445:","only import new datapoints":"\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445","upload KNX project file":"\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 KNX","valid until : ":"\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430 \u0434\u043e :","version : ":"\u0432\u0435\u0440\u0441\u0438\u044f:","Drag \'n\' drop knxproj file here, or click to select file":"\u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044e\u0434\u0430 \u0444\u0430\u0439\u043b knxproj \u0438\u043b\u0438 \u0449\u0435\u043b\u043a\u043d\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b","KNX Gateway IP":"IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 KNX","KNX Gateway Port":"\u041f\u043e\u0440\u0442 \u0448\u043b\u044e\u0437\u0430 KNX","KNX packages per second":"\u041f\u0430\u043a\u0435\u0442\u043e\u0432 KNX \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443","physical KNX address":"\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 KNX"}')},299:function(e){e.exports=JSON.parse('{"Cancel":"Cancelar","invalid KNX address":"Endere\xe7o KNX inv\xe1lido!","invalid frame interval":"Taxa de quadros inv\xe1lida, 10 <taxa <300","invalid ip address":"Endere\xe7o IP inv\xe1lido!","invalid password":"Senha inv\xe1lida","Apply":"Aplicar","Available Licenses":"Licen\xe7as Dispon\xedveis","Choose corresponding GA":"Escolha o GA correspondente","Close":"Fechar","Datapoints":"Os pontos de dados","Error":"erro","GA State - Act relation":"Estado GA - rela\xe7\xe3o de ato","GA-structure":"Estrutura GA","Host ID":"ID do host","Multiselection":"sele\xe7\xe3o m\xfaltipla","Please enter ioBroker.net login and password":"Digite o login e a senha do ioBroker.net","Save":"Salve \ue051","Synchronize with iobroker.net":"Sincronizar com iobroker.net","This Error occured : ":"Este erro ocorreu:","Version":"Vers\xe3o","add / modify license":"adicionar / modificar licen\xe7a","add new relation":"adicionar nova rela\xe7\xe3o","e-mail":"O email","license":"licen\xe7a","modify":"modificar","none selected":"nenhum selecionado","password":"senha","read":"leitura","update":"atualizar","valid until":"v\xe1lido at\xe9","write":"escrever",". Click here to install a license.":". Clique aqui para instalar uma licen\xe7a.","Changing this GA is not possible, because they have existing Act-State relations.":"Mudar este GA n\xe3o \xe9 poss\xedvel, porque eles t\xeam rela\xe7\xf5es Act-State existentes.","Failed to fetch":"Falha ao buscar","GA State - Actuator relation":"Estado GA - Rela\xe7\xe3o do atuador","Host ID : ":"ID do host:","Import partially or completely failed with error : ":"A importa\xe7\xe3o falhou parcial ou completamente com erro:","Info":"Informa\xe7\xf5es","Information":"Em forma\xe7\xe3o","It is not possible to combine State GA and Act GA with different datapointtypes.":"N\xe3o \xe9 poss\xedvel combinar State GA e Act GA com diferentes tipos de dados.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"N\xe3o \xe9 poss\xedvel combinar AGs estado-estado nem ato-ato. Verifique as propriedades do GA.","KNX Gateway Settings":"Configura\xe7\xf5es de gateway KNX","KNX adapter licensing":"Licenciamento do adaptador KNX","License error : ":"Erro de licen\xe7a:","License server not available.":"Servidor de licen\xe7a n\xe3o dispon\xedvel.","License valid.":"Licen\xe7a v\xe1lida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Um dos Estados ou Ato (ou ambos) n\xe3o foi definido como lido ou grav\xe1vel. Defina esta propriedade para Act e State GA","Successful imported GAs : ":"GAs importados com sucesso:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"O alvo j\xe1 tem uma rela\xe7\xe3o. Exclua a rela\xe7\xe3o de destino antes de criar uma nova. Est\xe1 conectado a","adapter not running":"adaptador n\xe3o funcionando","all":"tudo","delete":"excluir","expired":"expirado","license not valid":"licen\xe7a inv\xe1lida","local iobroker IP":"IP iobroker local","loglevel":"n\xedvel de log","more":"mais","number of max datapoints : ":"n\xfamero m\xe1ximo de pontos de dados:","only import new datapoints":"apenas importe novos pontos de dados","upload KNX project file":"carregar arquivo de projeto KNX","valid until : ":"v\xe1lido at\xe9 :","version : ":"vers\xe3o:","Drag \'n\' drop knxproj file here, or click to select file":"Arraste e solte o arquivo knxproj aqui ou clique para selecionar o arquivo","KNX Gateway IP":"IP do gateway KNX","KNX Gateway Port":"Porta de gateway KNX","KNX packages per second":"Pacotes KNX por segundo","physical KNX address":"endere\xe7o KNX f\xedsico"}')},300:function(e){e.exports=JSON.parse('{"Cancel":"annuleren","invalid KNX address":"Ongeldig KNX-adres!","invalid frame interval":"Ongeldige framesnelheid, 10 < snelheid < 300","invalid ip address":"Ongeldig IP-adres!","invalid password":"Ongeldig wachtwoord","Apply":"Van toepassing zijn","Available Licenses":"Beschikbare licenties","Choose corresponding GA":"Kies overeenkomstige GA","Close":"Dichtbij","Datapoints":"Data punten","Error":"fout","GA State - Act relation":"GA Staat - Act relatie","GA-structure":"GA-structuur","Host ID":"Host-ID","Multiselection":"meervoudige selectie","Please enter ioBroker.net login and password":"Voer de login en het wachtwoord van ioBroker.net in","Save":"Opslaan","Synchronize with iobroker.net":"Synchroniseren met iobroker.net","This Error occured : ":"Deze fout is opgetreden:","Version":"Versie","add / modify license":"licentie toevoegen / wijzigen","add new relation":"nieuwe relatie toevoegen","e-mail":"E-mail","license":"vergunning","modify":"aanpassen","none selected":"geen geselecteerd","password":"wachtwoord","read":"lezen","update":"update","valid until":"geldig tot","write":"schrijven",". Click here to install a license.":". Klik hier om een licentie te installeren.","Changing this GA is not possible, because they have existing Act-State relations.":"Het wijzigen van deze AV is niet mogelijk, omdat zij bestaande Act-State relaties hebben.","Failed to fetch":"Gefaald om op te halen","GA State - Actuator relation":"GA Status - Actuator relatie","Host ID : ":"Host-ID:","Import partially or completely failed with error : ":"Importeren is gedeeltelijk of volledig mislukt met fout:","Info":"Info","Information":"Informatie","It is not possible to combine State GA and Act GA with different datapointtypes.":"Het is niet mogelijk om Staat GA en Wet GA te combineren met verschillende datapunttypes.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Het is niet mogelijk om staat-staat of act-act GA\'s te combineren. Controleer de GA-eigenschappen.","KNX Gateway Settings":"KNX Gateway-instellingen","KNX adapter licensing":"KNX-adapterlicenties","License error : ":"Licentie fout:","License server not available.":"Licentieserver niet beschikbaar.","License valid.":"Licentie geldig.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Een van State of Act (of beide) is niet gedefinieerd als leesbaar of beschrijfbaar. Stel deze eigenschap in op Act en State GA","Successful imported GAs : ":"Succesvolle ge\xefmporteerde GA\'s:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Het doelwit heeft al een relatie. Verwijder eerst de doelrelatie voordat u een nieuwe maakt. Het is verbonden met","adapter not running":"adapter werkt niet","all":"alle","delete":"verwijderen","expired":"verlopen","license not valid":"licentie niet geldig","local iobroker IP":"lokale iobroker IP","loglevel":"Log niveau","more":"meer","number of max datapoints : ":"aantal max datapunten :","only import new datapoints":"importeer alleen nieuwe datapunten","upload KNX project file":"upload KNX-projectbestand","valid until : ":"geldig tot :","version : ":"versie:","Drag \'n\' drop knxproj file here, or click to select file":"Sleep het knxproj-bestand hierheen, of klik om het bestand te selecteren","KNX Gateway IP":"KNX Gateway IP","KNX Gateway Port":"KNX Gateway-poort","KNX packages per second":"KNX-pakketten per seconde","physical KNX address":"fysiek KNX-adres"}')},301:function(e){e.exports=JSON.parse('{"Cancel":"Annuler","invalid KNX address":"Adresse KNX invalide !","invalid frame interval":"Fr\xe9quence d\'images non valide, 10 < fr\xe9quence < 300","invalid ip address":"Adresse IP invalide\xa0!","invalid password":"Mot de passe incorrect","Apply":"Appliquer","Available Licenses":"Licences disponibles","Choose corresponding GA":"Choisissez l\'AG correspondante","Close":"proche","Datapoints":"Points de donn\xe9es","Error":"Erreur","GA State - Act relation":"GA \xc9tat - Relation d\'acte","GA-structure":"Structure GA","Host ID":"Identifiant d\'h\xf4te","Multiselection":"s\xe9lection multiple","Please enter ioBroker.net login and password":"Veuillez saisir le login et le mot de passe ioBroker.net","Save":"sauvegarder","Synchronize with iobroker.net":"Synchroniser avec iobroker.net","This Error occured : ":"Cette erreur s\'est produite\xa0:","Version":"Version","add / modify license":"ajouter/modifier la licence","add new relation":"ajouter une nouvelle relation","e-mail":"E-mail","license":"Licence","modify":"modifier","none selected":"aucune s\xe9lection","password":"le mot de passe","read":"lire","update":"mettre \xe0 jour","valid until":"valable jusque","write":"\xe9crivez",". Click here to install a license.":". Cliquez ici pour installer une licence.","Changing this GA is not possible, because they have existing Act-State relations.":"Changer cette AG n\'est pas possible, car ils ont des relations Acte-\xc9tat existantes.","Failed to fetch":"\xc9chec de la r\xe9cup\xe9ration","GA State - Actuator relation":"Etat GA - Relation actionneur","Host ID : ":"Identifiant d\'h\xf4te\xa0:","Import partially or completely failed with error : ":"\xc9chec partiel ou total de l\'importation avec erreur\xa0:","Info":"Info","Information":"Informations","It is not possible to combine State GA and Act GA with different datapointtypes.":"Il n\'est pas possible de combiner State GA et Act GA avec diff\xe9rents types de points de donn\xe9es.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Il n\'est pas possible de combiner des AG \xe9tat-\xe9tat ou acte-acte. V\xe9rifiez les propri\xe9t\xe9s GA.","KNX Gateway Settings":"Param\xe8tres de la passerelle KNX","KNX adapter licensing":"Licence d\'adaptateur KNX","License error : ":"Erreur de licence :","License server not available.":"Serveur de licence non disponible.","License valid.":"Licence valide.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Un \xe9tat ou une loi (ou les deux) n\'a pas \xe9t\xe9 d\xe9fini comme lisible ou inscriptible. D\xe9finir cette propri\xe9t\xe9 pour Act et State GA","Successful imported GAs : ":"GAs import\xe9es r\xe9ussies :","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"La cible a d\xe9j\xe0 une relation. Supprimez d\'abord la relation cible avant d\'en cr\xe9er une nouvelle. Il est connect\xe9 \xe0","adapter not running":"adaptateur ne fonctionne pas","all":"tous","delete":"effacer","expired":"expir\xe9","license not valid":"licence non valide","local iobroker IP":"IP iobroker local","loglevel":"niveau de journalisation","more":"Suite","number of max datapoints : ":"nombre de points de donn\xe9es max :","only import new datapoints":"importer uniquement les nouveaux points de donn\xe9es","upload KNX project file":"t\xe9l\xe9charger le fichier de projet KNX","valid until : ":"valable jusque :","version : ":"version :","Drag \'n\' drop knxproj file here, or click to select file":"Faites glisser le fichier knxproj ici, ou cliquez pour s\xe9lectionner le fichier","KNX Gateway IP":"IP de la passerelle KNX","KNX Gateway Port":"Port de passerelle KNX","KNX packages per second":"Paquets KNX par seconde","physical KNX address":"adresse physique KNX"}')},302:function(e){e.exports=JSON.parse('{"Cancel":"Annulla","invalid KNX address":"Indirizzo KNX non valido!","invalid frame interval":"Frequenza fotogrammi non valida, 10 < frequenza < 300","invalid ip address":"Indirizzo IP non valido!","invalid password":"Password non valida","Apply":"Applicare","Available Licenses":"Licenze disponibili","Choose corresponding GA":"Scegli GA . corrispondente","Close":"Chiudere","Datapoints":"Punti dati","Error":"errore","GA State - Act relation":"GA Stato - Atto rapporto","GA-structure":"GA-struttura","Host ID":"ID host","Multiselection":"selezione multipla","Please enter ioBroker.net login and password":"Per favore inserisci login e password di ioBroker.net","Save":"Salva","Synchronize with iobroker.net":"Sincronizza con iobroker.net","This Error occured : ":"Si \xe8 verificato questo errore:","Version":"Versione","add / modify license":"aggiungi/modifica licenza","add new relation":"aggiungi nuova relazione","e-mail":"E-mail","license":"licenza","modify":"modificare","none selected":"Nessuno selezionato","password":"parola d\'ordine","read":"leggere","update":"aggiornare","valid until":"valido fino a","write":"Scrivi",". Click here to install a license.":". Fare clic qui per installare una licenza.","Changing this GA is not possible, because they have existing Act-State relations.":"Non \xe8 possibile modificare questo GA, perch\xe9 hanno relazioni Act-Stato esistenti.","Failed to fetch":"Impossibile recuperare","GA State - Actuator relation":"Stato GA - Relazione attuatore","Host ID : ":"ID ospite:","Import partially or completely failed with error : ":"Importazione parzialmente o completamente fallita con errore:","Info":"Informazioni","Information":"Informazione","It is not possible to combine State GA and Act GA with different datapointtypes.":"Non \xe8 possibile combinare State GA e Act GA con diversi tipi di datapoint.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Non \xe8 possibile combinare GA stato-stato o atto-atto. Controlla le propriet\xe0 GA.","KNX Gateway Settings":"Impostazioni gateway KNX","KNX adapter licensing":"Licenza dell\'adattatore KNX","License error : ":"Errore di licenza:","License server not available.":"Server licenze non disponibile.","License valid.":"Licenza valida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Uno di State o Act (o entrambi) non \xe8 stato definito come leggibile o scrivibile. Imposta questa propriet\xe0 per Act e State GA","Successful imported GAs : ":"GA importati con successo:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Il target ha gi\xe0 una relazione. Eliminare la relazione di destinazione prima di crearne una nuova. \xc8 collegato a","adapter not running":"adattatore non funzionante","all":"Tutti","delete":"Elimina","expired":"scaduto","license not valid":"patente non valida","local iobroker IP":"IP iobroker locale","loglevel":"loglevel","more":"Di pi\xf9","number of max datapoints : ":"numero massimo di punti dati:","only import new datapoints":"importa solo nuovi punti dati","upload KNX project file":"caricare il file di progetto KNX","valid until : ":"valido fino a :","version : ":"versione:","Drag \'n\' drop knxproj file here, or click to select file":"Trascina e rilascia il file knxproj qui o fai clic per selezionare il file","KNX Gateway IP":"KNX Gateway IP","KNX Gateway Port":"Porta gateway KNX","KNX packages per second":"Pacchetti KNX al secondo","physical KNX address":"indirizzo fisico KNX"}')},303:function(e){e.exports=JSON.parse('{"Cancel":"Cancelar","invalid KNX address":"\xa1Direcci\xf3n KNX no v\xe1lida!","invalid frame interval":"Velocidad de fotogramas no v\xe1lida, 10 <velocidad <300","invalid ip address":"\xa1Direcci\xf3n IP inv\xe1lida!","invalid password":"Contrase\xf1a invalida","Apply":"Solicitar","Available Licenses":"Licencias Disponibles","Choose corresponding GA":"Elija GA correspondiente","Close":"Cerrar","Datapoints":"Puntos de datos","Error":"error","GA State - Act relation":"Relaci\xf3n GA Estado - Act","GA-structure":"Estructura GA","Host ID":"ID de host","Multiselection":"selecci\xf3n m\xfaltiple","Please enter ioBroker.net login and password":"Ingrese el nombre de usuario y la contrase\xf1a de ioBroker.net","Save":"Ahorrar","Synchronize with iobroker.net":"Sincronizar con iobroker.net","This Error occured : ":"Este error ocurri\xf3:","Version":"Versi\xf3n","add / modify license":"agregar / modificar licencia","add new relation":"agregar nueva relaci\xf3n","e-mail":"Email","license":"licencia","modify":"modificar","none selected":"ninguna seleccionada","password":"contrase\xf1a","read":"leer","update":"actualizar","valid until":"v\xe1lido hasta","write":"escribir",". Click here to install a license.":". Haga clic aqu\xed para instalar una licencia.","Changing this GA is not possible, because they have existing Act-State relations.":"Cambiar esta AG no es posible, porque tienen relaciones Act-State existentes.","Failed to fetch":"Fallo en recuperar","GA State - Actuator relation":"Estado GA - Relaci\xf3n actuador","Host ID : ":"ID de host:","Import partially or completely failed with error : ":"Importaci\xf3n parcial o totalmente fallida con error:","Info":"Informaci\xf3n","Information":"Informaci\xf3n","It is not possible to combine State GA and Act GA with different datapointtypes.":"No es posible combinar State GA y Act GA con diferentes tipos de puntos de datos.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"No es posible combinar GAs estado-estado ni acto-acto. Compruebe las propiedades de GA.","KNX Gateway Settings":"Configuraci\xf3n de la puerta de enlace KNX","KNX adapter licensing":"Licencia de adaptador KNX","License error : ":"Error de licencia:","License server not available.":"El servidor de licencias no est\xe1 disponible.","License valid.":"Licencia v\xe1lida.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Uno de State o Act (o ambos) no se ha definido como le\xeddo o escribible. Establecer esta propiedad para Act y State GA","Successful imported GAs : ":"GA importadas exitosas:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"El objetivo ya tiene una relaci\xf3n. Elimine la relaci\xf3n de destino primero antes de crear una nueva. Est\xe1 conectado a","adapter not running":"adaptador no funciona","all":"todos","delete":"Eliminar","expired":"Caducado","license not valid":"licencia no v\xe1lida","local iobroker IP":"IP local de iobroker","loglevel":"nivel de registro","more":"m\xe1s","number of max datapoints : ":"n\xfamero m\xe1ximo de puntos de datos:","only import new datapoints":"solo importar nuevos puntos de datos","upload KNX project file":"cargar archivo de proyecto KNX","valid until : ":"v\xe1lido hasta :","version : ":"versi\xf3n :","Drag \'n\' drop knxproj file here, or click to select file":"Arrastre y suelte el archivo knxproj aqu\xed, o haga clic para seleccionar el archivo","KNX Gateway IP":"Puerta de enlace KNX IP","KNX Gateway Port":"Puerto de puerta de enlace KNX","KNX packages per second":"Paquetes KNX por segundo","physical KNX address":"direcci\xf3n KNX f\xedsica"}')},304:function(e){e.exports=JSON.parse('{"Cancel":"Anuluj","invalid KNX address":"Nieprawid\u0142owy adres KNX!","invalid frame interval":"Nieprawid\u0142owa liczba klatek na sekund\u0119, 10 < stawka < 300","invalid ip address":"Nieprawid\u0142owy adres IP!","invalid password":"Nieprawid\u0142owe has\u0142o","Apply":"Zastosowa\u0107","Available Licenses":"Dost\u0119pne licencje","Choose corresponding GA":"Wybierz odpowiedni GA","Close":"Blisko","Datapoints":"Punkty danych","Error":"b\u0142\u0105d","GA State - Act relation":"Stan GA \u2013 relacja aktu","GA-structure":"GA-struktura","Host ID":"Identyfikator hosta","Multiselection":"wielokrotny wyb\xf3r","Please enter ioBroker.net login and password":"Wprowad\u017a login i has\u0142o ioBroker.net","Save":"Zapisa\u0107","Synchronize with iobroker.net":"Synchronizuj z iobroker.net","This Error occured : ":"Ten b\u0142\u0105d wyst\u0105pi\u0142:","Version":"Wersja","add / modify license":"dodaj/zmodyfikuj licencj\u0119","add new relation":"dodaj now\u0105 relacj\u0119","e-mail":"E-mail","license":"licencja","modify":"modyfikowa\u0107","none selected":"nie wybrano","password":"has\u0142o","read":"czyta\u0107","update":"aktualizacja","valid until":"wa\u017cne do","write":"pisa\u0107",". Click here to install a license.":". Kliknij tutaj, aby zainstalowa\u0107 licencj\u0119.","Changing this GA is not possible, because they have existing Act-State relations.":"Zmiana tego GA nie jest mo\u017cliwa, poniewa\u017c maj\u0105 istniej\u0105ce relacje Akt-Pa\u0144stwo.","Failed to fetch":"Nie uda\u0142o si\u0119 pobra\u0107","GA State - Actuator relation":"Stan GA - Relacja si\u0142ownika","Host ID : ":"Identyfikator hosta :","Import partially or completely failed with error : ":"Import cz\u0119\u015bciowo lub ca\u0142kowicie nie powi\xf3d\u0142 si\u0119 z powodu b\u0142\u0119du :","Info":"Informacje","Information":"Informacja","It is not possible to combine State GA and Act GA with different datapointtypes.":"Nie jest mo\u017cliwe \u0142\u0105czenie State GA i Act GA z r\xf3\u017cnymi typami punkt\xf3w danych.","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"Nie jest mo\u017cliwe \u0142\u0105czenie GA pa\u0144stw-stan\xf3w ani akt\xf3w-dzia\u0142a\u0144. Sprawd\u017a w\u0142a\u015bciwo\u015bci GA.","KNX Gateway Settings":"Ustawienia bramy KNX","KNX adapter licensing":"Licencjonowanie adaptera KNX","License error : ":"B\u0142\u0105d licencji :","License server not available.":"Serwer licencji jest niedost\u0119pny.","License valid.":"Licencja wa\u017cna.","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"Jedno ze stan\xf3w lub akt\xf3w (lub obu) nie zosta\u0142o zdefiniowane jako do odczytu lub do zapisu. Ustaw t\u0119 w\u0142a\u015bciwo\u015b\u0107 dla Act i State GA","Successful imported GAs : ":"Pomy\u015blnie zaimportowane gazy GA:","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"Cel ma ju\u017c relacj\u0119. Usu\u0144 relacj\u0119 docelow\u0105 przed utworzeniem nowej. Jest pod\u0142\u0105czony do","adapter not running":"adapter nie dzia\u0142a","all":"wszystko","delete":"kasowa\u0107","expired":"wygas\u0142y","license not valid":"licencja niewa\u017cna","local iobroker IP":"lokalny adres IP iobrokera","loglevel":"poziom logu","more":"jeszcze","number of max datapoints : ":"liczba max punkt\xf3w danych :","only import new datapoints":"importuj tylko nowe punkty danych","upload KNX project file":"prze\u015blij plik projektu KNX","valid until : ":"wa\u017cne do :","version : ":"wersja :","Drag \'n\' drop knxproj file here, or click to select file":"Przeci\u0105gnij i upu\u015b\u0107 plik knxproj tutaj lub kliknij, aby wybra\u0107 plik","KNX Gateway IP":"IP bramy KNX","KNX Gateway Port":"Port bramy KNX","KNX packages per second":"Pakiety KNX na sekund\u0119","physical KNX address":"fizyczny adres KNX"}')},305:function(e){e.exports=JSON.parse('{"Cancel":"\u53d6\u6d88","invalid KNX address":"KNX \u5730\u5740\u65e0\u6548\uff01","invalid frame interval":"\u65e0\u6548\u7684\u5e27\u7387\uff0c10 < rate < 300","invalid ip address":"IP \u5730\u5740\u65e0\u6548\uff01","invalid password":"\u65e0\u6548\u7684\u5bc6\u7801","Apply":"\u7533\u8bf7","Available Licenses":"\u53ef\u7528\u8bb8\u53ef\u8bc1","Choose corresponding GA":"\u9009\u62e9\u5bf9\u5e94\u7684\u9057\u4f20\u7b97\u6cd5","Close":"\u5173\u95ed","Datapoints":"\u6570\u636e\u70b9","Error":"\u9519\u8bef","GA State - Act relation":"GA \u5dde - \u6cd5\u6848\u5173\u7cfb","GA-structure":"GA\u7ed3\u6784","Host ID":"\u4e3b\u673a\u7f16\u53f7","Multiselection":"\u591a\u9009","Please enter ioBroker.net login and password":"\u8bf7\u8f93\u5165ioBroker.net\u767b\u5f55\u540d\u548c\u5bc6\u7801","Save":"\u8282\u7701","Synchronize with iobroker.net":"\u4e0e iobroker.net \u540c\u6b65","This Error occured : ":"\u53d1\u751f\u6b64\u9519\u8bef\uff1a","Version":"\u7248\u672c","add / modify license":"\u6dfb\u52a0/\u4fee\u6539\u8bb8\u53ef\u8bc1","add new relation":"\u6dfb\u52a0\u65b0\u5173\u7cfb","e-mail":"\u7535\u5b50\u90ae\u4ef6","license":"\u6267\u7167","modify":"\u8c03\u6574","none selected":"\u672a\u9009\u62e9","password":"\u5bc6\u7801","read":"\u8bfb","update":"\u66f4\u65b0","valid until":"\u6709\u6548\u671f\u81f3","write":"\u5199",". Click here to install a license.":".\u5355\u51fb\u6b64\u5904\u5b89\u88c5\u8bb8\u53ef\u8bc1\u3002","Changing this GA is not possible, because they have existing Act-State relations.":"\u66f4\u6539\u6b64 GA \u662f\u4e0d\u53ef\u80fd\u7684\uff0c\u56e0\u4e3a\u5b83\u4eec\u5177\u6709\u73b0\u6709\u7684 Act-State \u5173\u7cfb\u3002","Failed to fetch":"\u65e0\u6cd5\u83b7\u53d6","GA State - Actuator relation":"GA \u72b6\u6001 - \u6267\u884c\u5668\u5173\u7cfb","Host ID : ":"\u4e3b\u673a ID :","Import partially or completely failed with error : ":"\u5bfc\u5165\u90e8\u5206\u6216\u5b8c\u5168\u5931\u8d25\u5e76\u51fa\u73b0\u9519\u8bef\uff1a","Info":"\u4fe1\u606f","Information":"\u4fe1\u606f","It is not possible to combine State GA and Act GA with different datapointtypes.":"\u4e0d\u53ef\u80fd\u5c06 State GA \u548c Act GA \u4e0e\u4e0d\u540c\u7684\u6570\u636e\u70b9\u7c7b\u578b\u7ed3\u5408\u8d77\u6765\u3002","It is not possible to combine state-state nor act-act GAs. Check the GA Properties.":"\u4e0d\u53ef\u80fd\u7ed3\u5408 state-state \u6216 act-act GA\u3002\u68c0\u67e5 GA \u5c5e\u6027\u3002","KNX Gateway Settings":"KNX \u7f51\u5173\u8bbe\u7f6e","KNX adapter licensing":"KNX \u9002\u914d\u5668\u8bb8\u53ef","License error : ":"\u8bb8\u53ef\u8bc1\u9519\u8bef\uff1a","License server not available.":"\u8bb8\u53ef\u8bc1\u670d\u52a1\u5668\u4e0d\u53ef\u7528\u3002","License valid.":"\u8bb8\u53ef\u8bc1\u6709\u6548\u3002","One of State or Act (or both) doesn\'t have defined as read or writeable. Set this property for Act and State GA":"\u72b6\u6001\u6216\u6cd5\u6848\u4e4b\u4e00\uff08\u6216\u4e24\u8005\uff09\u6ca1\u6709\u5b9a\u4e49\u4e3a\u53ef\u8bfb\u6216\u53ef\u5199\u3002\u4e3a Act \u548c State GA \u8bbe\u7f6e\u6b64\u5c5e\u6027","Successful imported GAs : ":"\u6210\u529f\u5bfc\u5165 GAs :","The target has already a relation. Delete the target relation first before create a new one. It is connected to ":"\u76ee\u6807\u5df2\u7ecf\u6709\u4e00\u4e2a\u5173\u7cfb\u3002\u5728\u521b\u5efa\u65b0\u5173\u7cfb\u4e4b\u524d\u5148\u5220\u9664\u76ee\u6807\u5173\u7cfb\u3002\u5b83\u8fde\u63a5\u5230","adapter not running":"\u9002\u914d\u5668\u672a\u8fd0\u884c","all":"\u5168\u90e8","delete":"\u5220\u9664","expired":"\u5df2\u5230\u671f","license not valid":"\u8bb8\u53ef\u8bc1\u65e0\u6548","local iobroker IP":"\u672c\u5730iobroker IP","loglevel":"\u65e5\u5fd7\u7ea7\u522b","more":"\u66f4\u591a\u7684","number of max datapoints : ":"\u6700\u5927\u6570\u636e\u70b9\u6570\uff1a","only import new datapoints":"\u53ea\u5bfc\u5165\u65b0\u7684\u6570\u636e\u70b9","upload KNX project file":"\u4e0a\u4f20 KNX \u9879\u76ee\u6587\u4ef6","valid until : ":"\u6709\u6548\u671f\u81f3\uff1a","version : ":"\u7248\u672c \uff1a","Drag \'n\' drop knxproj file here, or click to select file":"\u5c06 knxproj \u6587\u4ef6\u62d6\u653e\u5230\u6b64\u5904\uff0c\u6216\u5355\u51fb\u4ee5\u9009\u62e9\u6587\u4ef6","KNX Gateway IP":"KNX\u7f51\u5173IP","KNX Gateway Port":"KNX \u7f51\u5173\u7aef\u53e3","KNX packages per second":"\u6bcf\u79d2 KNX \u5305","physical KNX address":"\u7269\u7406 KNX \u5730\u5740"}')},308:function(e,t,a){"use strict";a.r(t);var n=a(0),i=a.n(n),r=a(16),o=a.n(r),s=a(409),c=a(408),l=a(394),d=(a(239),a(49)),u=a(191),p=a(192),h=a(138),b=a(210),m=a(85),f=a(211),g=a(209),j=a(9),v=a(405),A=a(412),w=a(406),O=a(193),x=a.n(O),y=a(166),I=a.n(y),k=a(10),G=a.n(k),S=a(15),N=a(375),C={getEntries:function(e,t,a){return window.zip.createReader(new window.zip.BlobReader(e),(function(e){return e.getEntries(t)}),a)},getEntryFile:function(e,t,a,n){var i;"Blob"===t&&(i=new window.zip.BlobWriter,function(){try{e.getData(i,(function(e){return a(e)}),n)}catch(t){return t}}())}};function P(e){var t=e.match(/(\w+="[^"]*)"/g);if(!t)return{};for(var a={},n=0;n<t.length;n++){var i=t[n].split("=");a[i[0]]=i[1]?i[1].substring(1,i[1].length-1):""}return a}function K(e){var t={},a=e.match(/<ComObjectInstanceRef\s[^>]+\/>/g);if(a)for(var n=0;n<a.length;n++){var i=P(a[n]);t[i.RefId]=i.RefId.replace(/_O-.*/,"")}return t}function X(e){var t={};for(var a in e)if(e.hasOwnProperty(a))if("string"===typeof e[a])t[a]=e[a];else{var n=e[a];if(Object.keys(n).length<1e4)t[a]=n;else{var i={},r=0,o=0;for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s],o<1e4?o++:(t[a+"."+r]=i,o=0,r++,i={}));o&&(t[a+"."+r]=i)}}return t}function z(e,t,a,n,i){var r=Object.keys(a),o=r.indexOf("DeviceId");-1!==o&&0!==o&&(r.splice(o,1),r.unshift("DeviceId")),i=i||a.DeviceId;for(var s=0;s<r.length;s++)if(null!==a[r[s]])return a[r[s]]=null,e.sendTo("knx."+t,"projectDeviceFile",{file:a[r[s]],prop:r[s]}).then((function(r){!r||r.error||(r.DeviceId!==i&&console.error("Warning object was saved under invalid deviceid "+r.DeviceId+" !== "+i),setTimeout((function(){return z(e,t,a,n,i)}),0))}));n()}function D(e,t,a,n){if(!n)return new Promise((function(n){return D(e,t,a,n)}));for(var i in a)if(a.hasOwnProperty(i)&&a[i]){console.log("Device: "+i);var r=X(a[i]);return a[i]=null,z(e,t,r,(function(){return setTimeout((function(){return D(e,t,a,n)}),0)}))}n()}var E=function(e,t,a,n,i){var r=t.socket,o=t.instance,s=void 0!==e&&e[0]?e[0]:null;return s&&null!==s?s.size>1e8?(console.log("File is too big!"),!1):(console.log("fileupload start"),window.zip.useWebWorkers=!1,void C.getEntries(s,(function(e){for(var t,s,c,l=[],d=0,u=!1,p=!1,h=0;h<e.length;h++)"knx_master.xml"===e[h].filename&&(s=e[h],d++),e[h].filename.match(/P-.*\.zip$/)&&(p=!0,console.log("Well Done".concat((console.log("getPassword"),"")," <--")),c=e[h],d++),e[h].filename.match(/\/0\.xml$/)&&(t=e[h],d++),e[h].filename.match(/\/M.*\.xml$/)&&(l.push(e[h]),d++),h===e.length-1&&(u=!0);if(!1===p){var b,m,f={},g=null;!function e(){if(u){c&&C.getEntryFile(c,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){K(b=(e.srcElement||e.target).result),g++}))})),C.getEntryFile(t,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){K(b=(e.srcElement||e.target).result),g++}))})),C.getEntryFile(s,"Blob",(function(e){var t=new FileReader;t.readAsText(e),t.addEventListener("loadend",(function(e){m=(e.srcElement||e.target).result,g++}))}));var p=!1;!function e(t){if(p)return void setTimeout(e,1e3);if(void 0!==l&&t<l.length){p=!0;var a=l[t].filename;C.getEntryFile(l[t],"Blob",(function(n){var i=new FileReader,r=new DOMParser;i.readAsText(n),i.addEventListener("load",(function(e){if(a.match(/\/M/))return f[a.replace(/\.xml$/,"")]=function(e){var t=e.match(/<ApplicationProgram\s.*Name="([^"]*)"/);t=t?t[1]:null;var a=e.match(/<ApplicationProgram\s.*Id="([^"]*)"/);a=a?a[1]:null;var n=e.match(/<ComObject\s[^>]+\/>/g),i={};if(n)for(var r=0;r<n.length;r++){var o=P(n[r]);i[o.Id]={Text:o.Text,Name:o.Name,Number:o.Number,FunctionText:o.FunctionText,ObjectSize:o.ObjectSize,read:o.ReadFlag,write:o.WriteFlag,transmit:o.TransmitFlag,communicate:o.CommunicationFlag,update:o.UpdateFlag,readOnInit:o.ReadOnInitFlag,dpt:o.DatapointType}}var s=e.match(/<ComObjectRef\s[^>]+\/>/g),c={};if(s)for(var l=0;l<s.length;l++){var d=P(s[l]);c[d.Id]={Text:d.Text||"",Name:d.Name||"",FunctionText:d.FunctionText||"",RefId:d.RefId,ObjectSize:d.ObjectSize||null,read:d.ReadFlag||null,write:d.WriteFlag||null,transmit:d.TransmitFlag||null,Dpt:d.DatapointType||null}}return{Name:t,DeviceId:a,ComObjectTable:i,ComObjectRefs:c}}((e.srcElement||e.target).result),void g++;var t=r.parseFromString((e.srcElement||e.target).result,"text/xml"),n=t.getElementsByTagName("ApplicationProgram")[0].getAttribute("Id"),i=t.getElementsByTagName("ComObjectTable")[0],o=t.getElementsByTagName("ComObjectRefs")[0],s={},c={};s=i&&"object"===typeof i?i.outerHTML:'<ComObjectTable xmlns="http://knx.org/xml/project/13">\n </ComObjectTable>',c=o&&"object"===typeof o?o.outerHTML:'<ComObjectRefs xmlns="http://knx.org/xml/project/13">\n </ComObjectRefs>',f[n]={Name:t.getElementsByTagName("ApplicationProgram")[0].getAttribute("Name"),DeviceId:n,ComObjectTable:s,ComObjectRefs:c},g++})),e(t+1)})),p=!1}}(0),function e(){if(g<d)return void setTimeout(e,100);return console.log("Please wait while generating Objects.....it could take a while."),r.sendTo("knx."+o,"options",{onlyAddNewObjects:a.onlyAddNewObjects}),n(15),r.sendTo("knx."+o,"projectStart",{name:"test"}).then((function(e){return e.error?(console.error("Projektstart: "+(e?e.error:"Unknown")),Promise.reject(e.error)):(n(33),r.sendTo("knx."+o,"projectXml0",{xml0:b}))})).then((function(e){return!e||e.error?(console.error(e.error),Promise.reject(e.error)):(n(65),r.sendTo("knx."+o,"projectKnxMaster",{knx_master:m}))})).then((function(e){return!e||e.error?(console.error("projectKnxMaster: ".concat(e?e.error:"Unknown")),Promise.reject(e.error)):(n(90),D(r,o,f))})).then((function(){return r.sendTo("knx."+o,"projectFinished",null)})).then((function(e){if(console.log("projectFinished: ".concat(e?e.error:"Unknown")),e&&!e.error)return console.error("Finished ... Extracted: ".concat(e.count)),n(100),i({title:"importresult",numberOfGA:e.count,visible:!0}),r.sendTo("knx."+o,"reload");i({title:"importerror",error:e.error,numberOfGA:e.count,visible:!0})})).catch((function(e){console.error("Cannot parse: "+e),i({title:"importerror",text:"error "+e,visible:!0})}))}()}else setTimeout(e(),100)}()}}),(function(e){return i({title:"importerror",text:"error "+e,visible:!0}),!1}))):(console.warn("invalid file object"),!1)},T=a(196),R=a.n(T),L=a(171),B=a.n(L),F=a(197),_=a(417),V=a(378),H=a(379),W=a(380),U=a(382),M=a(216),q=a(383),$=a(384),J=a(385),Z=a(386),Y=a(387),Q=a(419),ee=a(392),te=a(202),ae=a.n(te),ne=a(203),ie=a.n(ne),re=a(121),oe=a.n(re),se=a(78),ce=a.n(se),le=a(381),de=a(2),ue=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)},closeButton:{position:"absolute",right:e.spacing(1),top:e.spacing(1),color:e.palette.grey[500]},dialogWindow:{fullWidth:!0,maxWidth:"md"},table:{minWidth:"100%"}}}));function pe(e){var t=ue(),a=e.licensing,r=e.socket,o=e.instance,s=Object(n.useState)(!0),c=Object(S.a)(s,2),l=c[0],d=c[1],u=Object(n.useState)(!1),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)(""),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)(""),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)([]),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)(!1),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)(!1),z=Object(S.a)(X,2),D=z[0],E=z[1],T=Object(n.useState)(""),R=Object(S.a)(T,2),L=R[0],te=R[1],ne=i.a.useRef(),re=function(){e.onChange()};Object(n.useEffect)((function(){L&&L.length>0?E(!0):E(!1)}),[L]);var se=function(e){d(!1),K(!1),Array.isArray(a.licenses)&&(a.licenses[0]=e.json?e.json:e.value)},pe=function(){k([]),fetch("https://iobroker.net/api/v1/licenses?type=sw",{headers:{Authorization:"Basic ".concat(btoa(g+":"+w))}}).then(function(){var e=Object(F.a)(B.a.mark((function e(t){return B.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.json();case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).then((function(e){for(var t=I,a=[],n=function(n){a.push(r.sendTo("knx."+o,"verifyLicense",{license:e[n].json}).then((function(a){a.json=e[n].json,t.push(a)})))},i=0;i<e.length;i++)n(i);Promise.all(a).then((function(){k(t),K(!0)})),b(!1)})).catch((function(e){console.log(e.message),te(e.message)}))},he=D?Object(de.jsxs)(_.a,{open:!0,fullWidth:!0,maxWidth:"md",children:[Object(de.jsx)(V.a,{children:G.a.t("Error")}),Object(de.jsxs)(H.a,{children:[G.a.t("This Error occured : "),L]}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return te("")},iconStart:Object(de.jsx)(ce.a,{}),children:G.a.t("Cancel")})})]}):null,be=P?Object(de.jsxs)(_.a,{open:!0,fullWidth:!0,maxWidth:"md",children:[Object(de.jsx)(V.a,{children:G.a.t("Available Licenses")}),Object(de.jsx)(H.a,{children:Object(de.jsx)(U.a,{component:M.a,children:Object(de.jsxs)(q.a,{className:t.table,size:"medium","aria-label":"license table",children:[Object(de.jsx)($.a,{children:Object(de.jsxs)(J.a,{children:[Object(de.jsx)(Z.a,{style:{minWidth:100},children:G.a.t("valid until")}),Object(de.jsx)(Z.a,{align:"right",children:G.a.t("Datapoints")}),Object(de.jsx)(Z.a,{align:"right",children:G.a.t("Version")}),Object(de.jsx)(Z.a,{style:{minWidth:200},align:"right",children:G.a.t("Host ID")})]})}),Object(de.jsx)(Y.a,{children:Array.isArray(I)&&I.length>0?I.map((function(e){return Object(de.jsxs)(J.a,{hover:!0,onClick:function(){return se(e)},children:[Object(de.jsx)(Z.a,{children:new Date(1e3*e.expiration).getDate()+"."+new Date(1e3*e.expiration).getMonth()+"."+new Date(1e3*e.expiration).getFullYear()+" "+new Date(1e3*e.expiration).getHours()+":"+new Date(1e3*e.expiration).getMinutes()+":"+new Date(1e3*e.expiration).getSeconds()}),Object(de.jsx)(Z.a,{align:"right",children:e.datapoints}),Object(de.jsx)(Z.a,{align:"right",children:e.majorVersion}),Object(de.jsx)(Z.a,{align:"right",children:e.sysUUID})]},e.expiration)})):null})]})})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(){return pe()},iconStart:Object(de.jsx)(oe.a,{}),children:G.a.t("Apply")}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return K(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:G.a.t("Cancel")})]})]}):null,me=h?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{children:G.a.t("Please enter ioBroker.net login and password")}),Object(de.jsxs)(H.a,{children:[Object(de.jsx)(Q.a,{autoFocus:!0,fullWidth:!0,value:g,onChange:function(e){return j(e.target.value)},label:G.a.t("e-mail"),onKeyUp:function(e){return 13===e.keyCode&&g&&ne&&ne.current&&ne.current.focus()}}),Object(de.jsx)("br",{}),Object(de.jsx)(Q.a,{fullWidth:!0,inputRef:ne,value:w,onChange:function(e){return O(e.target.value)},type:"password",label:G.a.t("password"),onKeyUp:function(e){return 13===e.keyCode&&g&&w&&pe()}})]}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(){return pe()},iconStart:Object(de.jsx)(oe.a,{}),children:"Ok"}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return b(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})]}),he]}):null;return Object(de.jsxs)("div",{children:[Object(de.jsxs)(_.a,{onClose:re,fullWidth:!0,maxWidth:"md","aria-labelledby":"customized-dialog-title",open:e.visible,children:[Object(de.jsxs)(V.a,{disableTypography:!0,className:t.root,children:[G.a.t("add / modify license"),Object(de.jsx)(ee.a,{"aria-label":"close",className:t.closeButton,onClick:re,children:Object(de.jsx)(ae.a,{})})]}),Object(de.jsx)(H.a,{dividers:!0,children:Object(de.jsx)(Q.a,{id:"standard-multiline-static",fullWidth:!0,label:G.a.t("license"),multiline:!0,rows:10,defaultValue:a&&a.licenses&&Array.isArray(a.licenses)?a.licenses[0]:null,variant:"standard",onChange:function(e){se(e.target)}})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{style:{flex:1},variant:"contained",onClick:function(){return b(!0)},startIcon:Object(de.jsx)(ie.a,{}),children:G.a.t("Synchronize with iobroker.net")}),Object(de.jsx)(le.a,{variant:"contained",color:"primary",onClick:function(t){e.onChange(a)},disabled:l,children:G.a.t("Save")}),Object(de.jsx)(le.a,{variant:"contained",autoFocus:!0,onClick:re,children:G.a.t("Close")})]})]}),me,be]})}var he=a(208),be=Object(N.a)((function(e){return{baseStyle:{flex:1,display:"flex",flexDirection:"column",alignItems:"center",padding:"20px",borderWidth:2,borderRadius:2,borderColor:"#eeeeee",borderStyle:"dashed",backgroundColor:"#fafafa",color:"#bdbdbd",outline:"none",transition:"border .24s ease-in-out",width:"100%"}}}));function me(e){var t=be();return Object(de.jsx)(he.a,{onDrop:function(t){e.onDrop(t)},accept:".knxproj",multiple:!1,children:function(e){var a=e.getRootProps,n=e.getInputProps;return Object(de.jsx)("section",{className:"container",children:Object(de.jsxs)("div",Object(d.a)(Object(d.a)({},a({className:"container"})),{},{children:[Object(de.jsx)("input",Object(d.a)({},n())),Object(de.jsx)(le.a,{className:t.baseStyle,children:G.a.t("Drag 'n' drop knxproj file here, or click to select file")})]}))})}})}var fe=a(393),ge=a(415),je=a(395),ve=a(396),Ae=a(397),we=a(390),Oe=a(421),xe=a(411),ye=a(398),Ie=a(410),ke=a(399),Ge=a(104),Se=a(414),Ne=Object(N.a)((function(e){return{textField:{"& > *":{margin:e.spacing(1),width:"27ch"},margin:e.spacing(1)},input:{"& > *":{margin:e.spacing(1),width:"25ch"}},alertBar:{"& > *":{margin:e.spacing(1),width:"100%"}},progress:{height:20},root:{height:10,borderRadius:0},fullWidth:{width:"98%"},tab:{marginRight:"2rem",marginLeft:"0.5rem"},card:{backgroundColor:"dark"===e.palette.type?"#111":"#EEE"},controlElement:{}}}));var Ce=function(e){var t=this,a=Ne(),i=e.instanceAlive,r=Object(n.useState)(!1),o=Object(S.a)(r,2),s=o[0],c=o[1],u=Object(n.useState)(""),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)(0),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)(0),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)([]),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)({onlyAddNewObjects:!0}),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)({name:"",expiration:0,offlineLicense:!1,numberOfInstances:"",majorVersion:"",registeredTo:"",message:"",datapoints:0,sysUUID:"",json:""}),z=Object(S.a)(X,2),D=z[0],T=z[1],L=Object(n.useState)({addLicensePopupVisible:!1,disableSaveButton:!0}),B=Object(S.a)(L,2),F=B[0],U=B[1],M=Object(n.useState)({licenses:[e.native.license||""],valid:!1,permissions:"",error:""}),q=Object(S.a)(M,2),$=q[0],J=q[1],Z=Object(n.useState)({visible:!1,finished:!1,title:"title",text:"test",numberOfDevices:0,numberOfGA:0,devices:[],licenses:[e.native.license||""],attr:""}),Y=Object(S.a)(Z,2),ee=Y[0],te=Y[1];Object(n.useEffect)((function(){e.socket.getUuid().then((function(t){return b(t),e.socket.getForeignObjects(e.adapterName+"."+e.instance+".*").then((function(t){t.hasOwnProperty("knx.0.info.connection")&&delete t["knx.0.info.connection"];var a=Object.entries(t);return j(a.length),e.socket.getHostByIp(e.common.host).then((function(e){e=e.filter((function(e){return"ipv4"===e.family&&"0.0.0.0"!==e.address})),k(e)}))}))}))}),[]),Object(n.useEffect)((function(){oe(e.native.license)}),[h,g,e.instanceAlive]),Object(n.useEffect)((function(){void 0!==i&&(i&&i.hasOwnProperty("val")?c(i.val):!i&&i||c(i||!1))}),[e.instanceAlive]),Object(n.useEffect)((function(){e.onChange("validLicense",$.valid)}),[$.valid]);var ae,ne,ie,re=function(e){return(void 0===e||!e.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))&&G.a.t("invalid ip address")},oe=function(t){t=void 0===t?"":t,e.socket.sendTo("knx."+e.instance,"verifyLicense",{license:t}).then((function(e){""===t?J({valid:!0,error:"",licenses:[t]}):"<2"===e.majorVersion?J({valid:!1,error:"This license is for adapter versions <2",licenses:[t]}):1e3*e.expires>(new Date).getTime()?J({valid:!1,error:"Cannot check license: Expired on "+new Date(1e3*e.expires).toString(),licenses:[t]}):e.sysUUID!==h?J({valid:!1,error:"This license is not valid for this iobroker host",licenses:[t]}):J({valid:!0,error:"",licenses:[t]}),T(e)}))},se=function(t,n,i){var r,o,s;switch(n){case"pass":r=(void 0===(s=e.native[n])||s.length<8||!s.match(/[a-z]/)||!s.match(/[A-Z]/)||!s.match(/\d/))&&G.a.t("invalid password");break;case"gwip":r=re(e.native[n]);break;case"eibadr":r=(void 0===(o=e.native[n])||!o.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/))&&G.a.t("invalid KNX address");break;case"gwipport":r=function(e){var t=parseInt(e,10);return!!(void 0===t||isNaN(e)||!Number.isInteger(t)||t<1025||t>65536)&&G.a.t("invalid_Port_warning")}(e.native[n]);break;case"frameInterval":r=function(e){var t=parseInt(e,10);return!!(void 0===t||isNaN(e)||!Number.isInteger(t)||t<10||t>300)&&G.a.t("invalid frame interval")}(e.native[n]);break;case"bind":r=re(e.native[n]);break;default:r=!1}return Object(de.jsx)(Q.a,{label:G.a.t(t),error:!!r,className:e.classes&&e.classes.input?e.classes.input:a.input,value:e.native[n],type:i||"text",helperText:r||"",onChange:function(t){return e.onChange(n,t.target.value)}})},ce=ee.visible?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{children:G.a.t("Importstate")}),Object(de.jsx)(H.a,{children:"importresult"===ee.title?G.a.t("Successful imported GAs : ")+ee.numberOfGA:"importerror"===ee.title?G.a.t("Import partially or completely failed with error : ")+G.a.t(ee.error):""}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",autoFocus:!0,onClick:function(){return te({visible:!1}),void j(ee.numberOfGA)},children:G.a.t("Close")})})]}):null,ue=function(t){var a;U({addLicensePopupVisible:!1}),t&&t.licenses&&Array.isArray(t.licenses)&&(J(t.licenses[0]),oe(t.licenses[0]),a=t.licenses[0],e.socket.sendTo("knx."+e.instance,"verifyLicense",{license:a}).then((function(e){return T(e)})),e.onChange("license",t.licenses[0]||""))};return Object(de.jsx)(l.a,{theme:e.theme,children:Object(de.jsxs)("form",{className:a.tab,children:[Object(de.jsx)("div",{children:Object(de.jsx)(R.a,{instance:e.instance,common:e.common,native:e.native,onError:function(e){return t.setState({errorText:e})},onLoad:e.onLoad,classes:{},className:""})}),Object(de.jsxs)(je.a,{container:!0,spacing:1,justifyContent:"center",children:[Object(de.jsx)(je.a,{item:!0,xs:7,children:Object(de.jsx)(ve.a,{classes:{root:e.classes&&e.classes.card?e.classes.card:a.card},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("KNX Gateway Settings")}),Object(de.jsx)("span",{style:{marginright:"0rem"},children:se("KNX Gateway IP ","gwip","ipAddress")}),Object(de.jsx)("span",{style:{marginright:"1.5rem",marginLeft:"0rem"},children:se("KNX Gateway Port ","gwipport","port")}),Object(de.jsx)("span",{style:{marginright:"1.5rem",marginLeft:"0rem"},children:se("physical KNX address","eibadr","eibAddress")}),Object(de.jsx)("span",{style:{marginLeft:"0rem"},children:se("KNX packages per second","frameInterval","frameInterval")})]})})}),Object(de.jsx)(je.a,{item:!0,xs:3,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("local iobroker IP")}),Object(de.jsxs)(we.a,{className:e.classes&&e.classes.input?e.classes.input:a.input,children:[Object(de.jsx)(Oe.a,{children:G.a.t("local iobroker IP")}),Object(de.jsx)(xe.a,{value:e.native.bind,style:{width:"100%"},onChange:function(t){return e.onChange("bind",t.target.value)},children:I.map((function(e){return Object(de.jsx)(ye.a,{value:e.address,children:e.name},e.address)}))})]})]})})}),Object(de.jsx)(je.a,{item:!0,xs:2,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("loglevel")}),Object(de.jsxs)(we.a,{className:e.classes&&e.classes.input?e.classes.input:a.input,children:[Object(de.jsx)(Oe.a,{children:G.a.t("loglevel")}),Object(de.jsxs)(xe.a,{value:e.native.debugLevel,onChange:function(t){return e.onChange("debugLevel",t.target.value)},children:[Object(de.jsx)(ye.a,{value:0,children:G.a.t("Info")}),Object(de.jsx)(ye.a,{value:2,children:G.a.t("more")}),Object(de.jsx)(ye.a,{value:3,children:G.a.t("all")})]})]})]})})}),Object(de.jsx)(je.a,{item:!0,xs:12,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("upload KNX project file")}),s&&$.valid?Object(de.jsxs)("div",{children:[Object(de.jsx)("div",{children:(ne="only import new datapoints",ie="onlyAddNewObjects",Object(de.jsx)(fe.a,{className:e.classes&&e.classes.controlElement?e.classes.controlElement:a.controlElement,control:Object(de.jsx)(ge.a,{checked:P[ie],onChange:function(e){return K((function(t){return Object(d.a)(Object(d.a)({},t),{},{[ie]:e.target.checked})}))},color:"primary"}),label:G.a.t(ne)},ie))}),Object(de.jsx)("div",{style:{marginTop:"2rem"},children:Object(de.jsx)(me,{onDrop:function(t){E(t,e,P,O,te)}})}),Object(de.jsx)(Ie.a,{sx:{width:"100%"},id:"status",style:{marginTop:"2rem"},children:Object(de.jsx)(ke.a,{variant:"determinate",value:w,className:a.progress})})]}):Object(de.jsx)(Se.a,{severity:"error",children:s?G.a.t("license not valid"):G.a.t("adapter not running")})]})})}),Object(de.jsx)(je.a,{item:!0,xs:12,children:Object(de.jsx)(ve.a,{className:e.classes&&e.classes.card?e.classes.card:a.card,children:Object(de.jsx)(Ae.a,{children:s?Object(de.jsxs)("div",{children:[Object(de.jsx)(Ge.a,{gutterBottom:!0,variant:"h5",component:"h2",children:G.a.t("KNX adapter licensing")}),G.a.t("Host ID : ")," ",e.hostUUID,Object(de.jsx)("p",{}),Object(de.jsxs)(Se.a,{onClick:function(){return U({addLicensePopupVisible:!0})},severity:$.valid?"success":"error",children:[$.valid?G.a.t("License valid."):$.error&&"Failed to fetch"===$.error.message?G.a.t("License server not available."):G.a.t("License error : ")+$.error+G.a.t(". Click here to install a license."),$.valid?(ae=D,Object(de.jsxs)("div",{children:[Object(de.jsxs)(Se.a,{severity:ae.datapoints>=g?"success":"error",children:[G.a.t("number of max datapoints : "),g||0," / ",ae.datapoints||0]}),Object(de.jsxs)(Se.a,{severity:1e3*ae.expiration>(new Date).getTime()?"success":"error",children:[G.a.t("valid until : ")," ",1e3*ae.expiration<(new Date).getTime()?new Date(1e3*ae.expiration).toString()||G.a.t("expired"):new Date(1e3*ae.expiration).toString()]}),Object(de.jsxs)(Se.a,{severity:"success",children:[G.a.t("version : ")," ",ae.majorVersion]})]})):null]})]}):Object(de.jsx)(Se.a,{severity:"error",children:G.a.t("adapter not running")})})})})]}),ce,F.addLicensePopupVisible&&Object(de.jsx)(pe,{instance:e.instance,socket:e.socket,props:e,licensing:$,onChange:function(e){return ue(e)},visible:F.addLicensePopupVisible})]})})},Pe=a(8),Ke=a.n(Pe),Xe=a(391),ze=a(323),De=a(400),Ee=a(401);var Te=function(e){var t=e.gaObjArr,a=e.dptObjs,i={write:!1,read:!1,update:!1},r=Object(n.useState)({}),o=Object(S.a)(r,2),s=o[0],c=o[1],l=Object(n.useState)(i),d=Object(S.a)(l,2),u=d[0],p=d[1],h=Object(n.useState)(""),b=Object(S.a)(h,2),m=b[0],f=b[1],g=Object(n.useState)(t),j=Object(S.a)(g,2),v=j[0],A=j[1],w=Object(n.useState)({}),O=Object(S.a)(w,2),x=O[0],y=O[1];Object(n.useEffect)((function(){switch(t.length){case 0:y({_id:!1}),p({write:!1,read:!1,update:!1});break;case 1:y(t[0]),t[0]&&t[0].native&&t[0].native.hasOwnProperty("dpt")&&f(t[0].native.dpt.replace("DPT","")),I({read:!!(t[0]&&t[0].common&&t[0].common.read)&&t[0].common.read,write:!!(t[0]&&t[0].common&&t[0].common.write)&&t[0].common.write});break;default:I({read:!1,write:!1}),f(""),A(t)}}),[t]),Object(n.useEffect)((function(){c(a)}),[a]);var I=function(e){if(e&&e.hasOwnProperty("write")&&e.hasOwnProperty("read")){var t=i;e.write&&e.read&&(t.write=!1,t.read=!0,t.update=!0),e.write&&!e.read&&(t.write=!0,t.read=!1,t.update=!1),!e.write&&e.read&&(t.write=!1,t.read=!0,t.update=!1),e.write||e.read||(t.write=!1,t.read=!1,t.update=!1),p(t)}},k=function(t){if(0===v.length||!1!==x._id){if(x&&x._id&&!1!==x._id){var a={write:x.common.write||!1,read:x.common.read||!0};switch(t.target.id){case"write":a.write=!x.common.write||!1,a.read=!a.write;break;case"read":a.read=!x.common.read||!0,a.write=!a.read;break;case"update":x.common.write&&x.common.read?a.write=!1:!x.common.write&&x.common.read?a.write=!0:x.common.write||x.common.read||(a.write=!0),a.read=!0;break;default:a.write=!1,a.read=!1}x.common.read=a.read,x.common.write=a.write,I(a),e.onClick({id:"gaProps",gaObj:x})}}else{var n={write:!1,read:!0},i=!1,r=!1,o=!1;switch(t.target.id){case"write":n.write=!u.write,n.read=!1,r=!1,o=!u.write,i=!1;break;case"read":n.write=!1,n.read=!u.read,r=!u.read,o=!1,i=u.update;break;case"update":u.write&&u.read?n.write=!1:!u.write&&u.read?n.write=!0:u.write||u.read||(n.write=!0),o=!1,r=u.read,i=!u.update,n.read=!0;break;default:n.write=!1,n.read=!1}p({read:r,write:o,update:i});for(var s=v,c=0;c<v.length;c++)s[c].common.write=n.write,s[c].common.read=n.read;A(s),e.onClick({id:"gaProps",gaObjArr:v})}};return Object(de.jsx)(ve.a,{sx:{minHeight:"100%"},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA properties")}),Object(de.jsx)(Ge.a,{variant:"h5",component:"div",children:t.length>1?G.a.t("muliselection"):x&&x._id&&!1!==x._id?x.common.name:G.a.t("none selected")}),Object(de.jsxs)(Xe.a,{children:[Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"write",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.write,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"write"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"write",secondary:G.a.t("write")})]},"writeBox"),Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"read",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.read,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"read"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"read",secondary:G.a.t("read")})]},"readBox"),Object(de.jsxs)(ze.a,{children:[Object(de.jsx)(De.a,{children:Object(de.jsx)(ge.a,{id:"update",edge:"start",checked:(v&&v.length>0||!(!x||!x._id||!1===x._id))&&u.update,tabIndex:-1,disableRipple:!0,inputProps:{"aria-labelledby":"update"},onClick:function(e){return k(e)},disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id)})}),Object(de.jsx)(Ee.a,{id:"update",secondary:G.a.t("update")})]},"updateBox"),Object(de.jsx)(ze.a,{children:Object(de.jsxs)(we.a,{fullWidth:!0,variant:"standard",disabled:!(v&&v.length>0)&&!(x&&x._id&&!1!==x._id),children:[Object(de.jsx)(Oe.a,{id:"dptlabel",variant:"standard",htmlFor:"uncontrolled-native",children:"DPT"}),Object(de.jsx)(xe.a,{value:v&&v.length>0||x&&x._id&&!1!==x._id?m:"",onChange:function(t){return function(t){var a=function(e,t){if(void 0!==e&&e.length){var a=e.replace("DPT","");return t[a]?[t[a]]:[{id:e}]}return[{id:""}]}("DPT"+t.target.value,s);if(0===v.length||!1!==x._id)x&&x._id&&!1!==x._id&&(x.native.dpt="DPT"+t.target.value,x.common.unit=a[0].unit,x.common.type=a[0].type,f(t.target.value),e.onClick({id:"gaProps",gaObj:x}));else if(v.length>0){for(var n=0;n<v.length;n++)v[n].native.dpt="DPT"+t.target.value,v[n].common.unit=a[0].unit,v[n].common.type=a[0].type;f(t.target.value),e.onClick({id:"gaProps",gaObjArr:v})}}(t)},children:s&&Object.keys(s).map((function(e){return Object(de.jsxs)(ye.a,{id:e,value:e,children:[e,s[e].DPT_Name?" - "+s[e].DPT_Name.replace("DPT_","").replace(/_/g," "):"",s[e].unit&&"null"!==s[e].unit?" - "+s[e].unit:""]},e)}))})]})},"formControl")]})]})})},Re=a(403),Le=a(404),Be=a(172),Fe=a.n(Be),_e=a(212),Ve=a(205),He=a.n(Ve),We=a(206),Ue=a.n(We),Me=a(123),qe=a.n(Me),$e=a(422),Je=a(402);$e.a.propTypes={bgColor:Ke.a.string,color:Ke.a.string,labelIcon:Ke.a.elementType,labelIconColor:Ke.a.string,labelInfo:Ke.a.string,labelText:Ke.a.string};var Ze=Object(N.a)((function(e){return{root:{color:e.palette.text.secondary,"&:hover > $content":{backgroundColor:e.palette.action.hover},"&:focus > $content, &$selected > $content":{backgroundColor:"var(--tree-view-bg-color, ".concat(e.palette.grey[400],")"),color:"var(--tree-view-color)"},"&:focus > $content $label, &:hover > $content $label, &$selected > $content $label":{backgroundColor:"transparent"}},content:{color:e.palette.text.secondary,borderTopRightRadius:e.spacing(2),borderBottomRightRadius:e.spacing(2),paddingRight:e.spacing(1),fontWeight:e.typography.fontWeightMedium,"$expanded > &":{fontWeight:e.typography.fontWeightRegular}},group:{marginLeft:0,"& $content":{paddingLeft:e.spacing(2)}},expanded:{},selected:{},label:{fontWeight:"inherit",color:"inherit"},labelRoot:{display:"flex",alignItems:"center",padding:e.spacing(.5,0)},labelIcon:{marginRight:e.spacing(1)},labelIconColor:{color:e.labelIconColor},labelText:{fontWeight:"inherit",flexGrow:1}}}));function Ye(e){var t=Ze(),a=e.labelText,n=(e.labelIcon,e.labelIconColor),i=e.labelInfo,r=e.color,o=e.bgColor,s=Object(_e.a)(e,["labelText","labelIcon","labelIconColor","labelInfo","color","bgColor"]);return Object(de.jsx)($e.a,Object(d.a)({label:Object(de.jsxs)("div",{className:t.labelRoot,children:[Object(de.jsx)(qe.a,{style:{color:n}}),Object(de.jsx)(Ge.a,{variant:"body2",className:t.labelText,children:a}),Object(de.jsx)(Ge.a,{variant:"caption",color:"inherit",children:i})]}),style:{"--tree-view-color":r,"--tree-view-bg-color":o},classes:{root:t.root,content:t.content,expanded:t.expanded,selected:t.selected,group:t.group,label:t.label}},s))}var Qe=function(e){var t=e.gaObjects,a=e.multiselect,i=Object(n.useState)([]),r=Object(S.a)(i,2),o=r[0],s=r[1];return Object(n.useEffect)((function(){s(t)}),[t]),Object(de.jsx)(Je.a,{id:"galist","aria-label":"knx",defaultExpanded:["3"],defaultCollapseIcon:Object(de.jsx)(He.a,{}),defaultExpandIcon:Object(de.jsx)(Ue.a,{}),defaultEndIcon:Object(de.jsx)("div",{style:{width:24}}),sx:{height:"100%",flexGrow:1,maxWidth:"100%"},multiSelect:a||!1,onNodeSelect:function(t,a){return function(t,a){e.onClick({id:"gaList",value:a})}(0,a)},children:o&&o.map((function(e){return Object(de.jsx)(Ye,{nodeId:"galist-123hg"+e.hgId+e.hgName,labelIcon:qe.a,labelIconColor:"blue",labelText:e.hgId+" "+e.hgName,children:e.mg.map((function(e){return Object(de.jsx)(Ye,{nodeId:"galist-123mg"+e.mgId+e.mgName,labelIcon:qe.a,labelIconColor:"green",labelText:e.mgId+" "+e.mgName,children:e.ga.map((function(e){return Object(de.jsx)(Ye,{style:{marginLeft:20},nodeId:e.props.g._id,labelIcon:qe.a,labelIconColor:"red",labelText:e.gaId+" "+e.gaName},e.props.g._id)}))},"mg"+e.mgId+e.mgName)}))},"hg"+e.hgId+e.hgName)}))},"galisttree")},et=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)}}}));Te.propTypes={props:Ke.a.object.isRequired,gaObjArray:Ke.a.array,actObject:Ke.a.object,gaObjects:Ke.a.array.isRequired,stateObject:Ke.a.object,onClick:Ke.a.func};var tt=function(e){var t=e.gaObjArr,a=e.gaRefIdMap,i=e.gaObjects,r=e.actObject,o=e.stateObject,s=e.socket,c=et(),l=Object(n.useState)({}),d=Object(S.a)(l,2),u=d[0],p=d[1],h=Object(n.useState)({}),b=Object(S.a)(h,2),m=b[0],f=b[1],g=Object(n.useState)({}),j=Object(S.a)(g,2),v=j[0],A=j[1],w=Object(n.useState)(!1),O=Object(S.a)(w,2),x=O[0],y=O[1],I=Object(n.useState)(!0),k=Object(S.a)(I,2),N=k[0],C=k[1],P=Object(n.useState)(""),K=Object(S.a)(P,2),X=K[0],z=K[1];Object(n.useEffect)((function(){if(t&&1===t.length){var e=t[0];if(e&&e.common&&e.native){var n=e.common,i=e.native;n.read=!!n.hasOwnProperty("read")&&n.read,n.write=!!n.hasOwnProperty("write")&&n.write,(n.read&&n.write||n.read&&!n.write)&&(p({}),f(e)),!n.read&&n.write&&(p(e),f({})),i.actGARefId&&i.actGARefId.length>0&&(p(s.getObject(a[i.actGARefId]).then((function(e){return e}))),f(e)),i.statusGARefId&&i.statusGARefId.length>0&&(p(e),f(s.getObject(a[i.statusGARefId]).then((function(e){return e})))),n.read||n.write||(p({}),f({})),A(e)}}}),[t]),Object(n.useEffect)((function(){p(r)}),[r]),Object(n.useEffect)((function(){f(o)}),[o]),Object(n.useEffect)((function(){X&&X.value&&X.value.indexOf("knx.")>-1&&v._id!==X.value?C(!1):C(!0)}),[X]);var D=x?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{className:c.root,children:G.a.t("Choose corresponding GA")}),Object(de.jsx)(H.a,{children:Object(de.jsx)(Qe,{gaObjects:i,multiselect:!1,onClick:function(e){return z(e)}})}),Object(de.jsxs)(W.a,{children:[Object(de.jsx)(le.a,{variant:"contained",color:"primary",disabled:N,onClick:function(){v.common.write&&!v.common.read?(e.onClick({id:"gaStateAct",stateId:X.value}),y(!1)):(e.onClick({id:"gaStateAct",actId:X.value}),y(!1))},iconStart:Object(de.jsx)(oe.a,{}),children:"Ok"}),Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return y(!1)},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})]})]}):null;return Object(de.jsxs)(ve.a,{sx:{minHeight:"100%"},children:[Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA State - Actuator relation")}),Object(de.jsx)(Q.a,{id:"standard-read-only-input1",fullWidth:!0,label:"Actuator GA",value:1===t.length&&u&&u.common&&u.common.hasOwnProperty("name")?u.common.name:"",InputProps:{readOnly:!0},variant:"standard"}),Object(de.jsx)(Q.a,{id:"standard-read-only-input2",fullWidth:!0,label:"State GA",value:1===t.length&&m&&m.common&&m.common.hasOwnProperty("name")?m.common.name:"",InputProps:{readOnly:!0},variant:"standard"})]}),Object(de.jsx)(Re.a,{children:Object(de.jsxs)(Le.a,{children:[1===t.length&&u.hasOwnProperty("_id")&&m.hasOwnProperty("_id")&&Object(de.jsx)(le.a,{variant:"contained",onClick:function(){u&&u.native&&m&&m.native&&(u.native.actGARefId="",u.native.statusGARefId="",m.native.actGARefId="",m.native.statusGARefId="",f(m),p(u),e.onClick({id:"gaStateAct",delete:[u,m]}))},iconStart:Object(de.jsx)(Fe.a,{}),children:G.a.t("delete")}),1===t.length&&(!u.hasOwnProperty("_id")&&m.hasOwnProperty("_id")||u.hasOwnProperty("_id")&&!m.hasOwnProperty("_id"))&&Object(de.jsx)(le.a,{variant:"contained",onClick:function(e){return C(!0),void y(!0)},iconStart:Object(de.jsx)(Fe.a,{}),children:G.a.t("add new relation")},"newRelation")]})}),D]})},at=Object(N.a)((function(e){return{root:{margin:0,padding:e.spacing(2)}}}));var nt=function(e,t,a){return e.getForeignObjects(t+"."+a+".*").then((function(e){return function(e){var t=Object.entries(e),a=[],n=[],i=[],r=[],o=[],s=[];return t.forEach((function(e){if(e[1]){var t=e[1];if(t&&t.native&&t.native.address){var c=t.native.address.split("/"),l=e[0].split(".");a[c[0]]||(a[c[0]]={hgName:l[2],hgId:c[0],mg:[]}),a[c[0]]&&(a[c[0]].mg[c[1]]||(a[c[0]].mg[c[1]]={mgName:l[3],mgId:c[1],ga:[]})),a[c[0]]&&a[c[0]].mg[c[1]]&&(a[c[0]].mg[c[1]].ga[c[2]]={gaId:c[2],gaName:t.common.name,props:{g:t}},n[t.native.addressRefId]=t._id,i[t._id]=t.native.addressRefId,t.native.actGARefId&&t.native.actGARefId.length>0&&(o[t._id]=t.native.actGARefId),t.native.statusGARefId&&t.native.statusGARefId.length>0&&(r[t._id]=t.native.statusGARefId),t.native.dpt&&0===t.native.dpt.length&&(s[t._id]=t.native.addressRefId),t.common.write&&t.common.read||(s[t._id]=t.native.addressRefId),t.common.read&&0===t.common.read.length&&t.common.write&&0===t.common.write.length&&(s[t._id]=t.native.addressRefId))}}})),{struct:a,gaRefIdMap:n,gaGaIdMap:i,gaActStateMap:r,gaStateActMap:o,gaUndefMap:s}}(e)}))};var it=function(e){var t=at(),a=e.socket,i=e.adapterName,r=e.instance,o=e.instanceAlive,s=Object(n.useState)([]),c=Object(S.a)(s,2),l=c[0],d=c[1],u=Object(n.useState)({}),p=Object(S.a)(u,2),h=p[0],b=p[1],m=Object(n.useState)({}),f=Object(S.a)(m,2),g=f[0],j=f[1],v=Object(n.useState)({}),A=Object(S.a)(v,2),w=A[0],O=A[1],x=Object(n.useState)({id:""}),y=Object(S.a)(x,2),I=y[0],k=y[1],N=Object(n.useState)([]),C=Object(S.a)(N,2),P=C[0],K=C[1],X=Object(n.useState)([]),z=Object(S.a)(X,2),D=z[0],E=z[1],T=Object(n.useState)(""),R=Object(S.a)(T,2),L=R[0],B=R[1];Object(n.useEffect)((function(){nt(a,i,r).then((function(e){d(e.struct),K(e.gaRefIdMap)})),U()}),[a]),Object(n.useEffect)((function(){1===D.length&&J(D[0])}),[D]),Object(n.useEffect)((function(){}),[h]);var F=function(e){switch(e.id){case"gaList":if(Array.isArray(e.value)){var t=0;E([]);var n=[];e.value.map((function(i){return a.getObject(i).then((function(a){null!==a&&n.push(a),t===e.value.length-1&&E(n),t++})),null}))}break;case"gaProps":if(e.gaObj&&J(e.gaObj),e.actObj,e.stateObj,e.gaObjArr)for(var i=[],r=0;r<e.gaObjArr.length;r++){var o=e.gaObjArr[r];e.gaObjArr.length>1&&o.native&&o.native.hasOwnProperty("actGARefId")&&o.native.actGARefId.length>0&&i.push(o.common.name),e.gaObjArr.length>1&&o.native&&o.native.hasOwnProperty("statusGARefId")&&o.native.statusGARefId.length>0&&i.push(o.common.name),o.native&&o.native.hasOwnProperty("actGARefId")&&0===o.native.actGARefId.length&&o.native.hasOwnProperty("statusGARefId")&&0===o.native.statusGARefId.length&&J(o),i.length>0&&B(G.a.t("Changing this GA is not possible, because they have existing Act-State relations. ")+i.map((function(e,t){return e})))}break;case"gaStateAct":e.actId&&a.getObject(e.actId).then((function(e){q(e)})),e.stateId&&a.getObject(e.stateId).then((function(e){q(e)})),e.delete&&$(e.delete);break;default:return null}},U=function(){(function(e,t,a){return e.sendTo(t+"."+a,"getDPT",null)})(a,i,r).then((function(e){return k(e)}))},q=function(e){D&&D[0]&&D[0].native&&D[0].common&&e&&e.common&&e.native&&(D[0].common.hasOwnProperty("read")&&D[0].common.hasOwnProperty("write")&&e.common.hasOwnProperty("read")&&e.common.hasOwnProperty("write")?!D[0].common.write&&D[0].common.read&&e.common.write&&e.common.read||D[0].common.write&&D[0].common.read&&!e.common.write&&e.common.read||D[0].common.read!==e.common.read&&D[0].common.write!==e.common.write||D[0].common.write&&!D[0].common.read&&e.common.write&&e.common.read||D[0].common.write&&D[0].common.read&&e.common.write&&!e.common.read?D[0].native.hasOwnProperty("dpt")&&e.native.hasOwnProperty("dpt")&&D[0].native.dpt===e.native.dpt?0===D[0].native.statusGARefId.length&&0===D[0].native.actGARefId.length&&0===e.native.actGARefId.length&&0===e.native.statusGARefId.length?(0===D[0].native.statusGARefId.length&&e.common.write&&!e.common.read?(D[0].native.actGARefId=e.native.addressRefId,e.native.statusGARefId=D[0].native.addressRefId):0===D[0].native.actGARefId.length&&(D[0].native.statusGARefId=e.native.addressRefId,e.native.actGARefId=D[0].native.addressRefId),a.setObject(D[0]._id,D[0]),a.setObject(e._id,e),J(D[0])):B(G.a.t("The target has already a relation. Delete the target relation first before create a new one. It is connected to "+D[0].common.name)):B(G.a.t("It is not possible to combine State GA and Act GA with different datapointtypes.")):B(G.a.t("It is not possible to combine state-state nor act-act GAs. Check the GA Properties.")):B(G.a.t("One of State or Act (or both) doesn't have defined as read or writeable. Set this property for Act and State GA")))},$=function(e){a.setObject(e[0]._id,e[0]),a.setObject(e[1]._id,e[1]),e[0]._id===D[0]._id?J(e[0]):J(e[1])},J=function(e){e&&e._id&&e.native&&e.native.hasOwnProperty("actGARefId")&&e.native.hasOwnProperty("statusGARefId")&&e.common.hasOwnProperty("read")&&e.common.hasOwnProperty("write")?!e.common.read&&e.common.write?(e.native.statusGARefId.length>0||e.native.actGARefId.length>0?(e.native.actGARefId.length>0&&(e.native.statusGARefId=e.native.actGARefId,e.native.actGARefId=""),a.getObject(P[e.native.statusGARefId]).then((function(t){return t.common&&t.native&&(t.common.read=!0,t.native.actGARefId=e.native.addressRefId,t.native.statusGARefId=""),t})).then((function(t){a.setObject(t._id,t),j(e),O(t)}))):O({}),b(e),j(e),a.setObject(e._id,e)):(e.common.read&&!e.common.write||e.common.read&&e.common.write)&&(e.native.statusGARefId.length>0||e.native.actGARefId.length>0?(e.native.statusGARefId.length>0&&(e.native.actGARefId=e.native.statusGARefId,e.native.statusGARefId=""),a.getObject(P[e.native.actGARefId]).then((function(t){return t.common&&t.native&&(t.common.read=!1,t.common.write=!0,t.native.statusGARefId=e.native.addressRefId,t.native.actGARefId=""),t})).then((function(t){a.setObject(t._id,t),O(e),j(t)}))):j({}),b(e),O(e),a.setObject(e._id,e)):(j({}),O({}))},Z=L.length>0?Object(de.jsxs)(_.a,{open:!0,children:[Object(de.jsx)(V.a,{className:t.root,children:G.a.t("Information")}),Object(de.jsx)(H.a,{children:G.a.t(L)}),Object(de.jsx)(W.a,{children:Object(de.jsx)(le.a,{variant:"contained",onClick:function(){return B("")},iconStart:Object(de.jsx)(ce.a,{}),children:"Cancel"})})]}):null;return Object(de.jsxs)(Ie.a,{sx:{p:2,bgcolor:"background.default",display:"grid",gridTemplateColumns:{md:"1.5fr 2fr 1fr"},gap:2,height:"95%"},children:[Object(de.jsx)(M.a,{style:{maxHeight:"100%",overflow:"auto"},children:Object(de.jsx)(ve.a,{sx:{minHeight:"100%"},children:Object(de.jsxs)(Ae.a,{children:[Object(de.jsx)(Ge.a,{sx:{fontSize:14},color:"text.secondary",gutterBottom:!0,children:G.a.t("GA-structure")}),Object(de.jsx)(Qe,{multiselect:!0,gaObjects:l,onClick:function(e){return F(e)}},"galist")]})})}),Object(de.jsx)(M.a,{}),Object(de.jsxs)(M.a,{children:[o&&Object(de.jsx)(Te,{gaObjArr:D,dptObjs:I,onClick:function(e){return F(e)},onChange:function(t){return function(t){t.attr&&t.value&&e.onChange(t.attr,t.value)}(t)}}),o&&Object(de.jsx)(tt,{gaObjArr:D,actObject:g,gaObjects:l,stateObject:w,gaRefIdMap:P,socket:a,onClick:function(e){return F(e)}})]}),Z]})},rt=function(e){Object(f.a)(n,e);var t=Object(g.a)(n);function n(e){var i;Object(u.a)(this,n);var r=Object(d.a)({},e);return r.encryptedFields=["pass"],r.translations={en:a(296),de:a(297),ru:a(298),pt:a(299),nl:a(300),fr:a(301),it:a(302),es:a(303),pl:a(304),"zh-cn":a(305)},(i=t.call(this,e,r)).updateAliveState=i.updateAliveState.bind(Object(h.a)(i)),i}return Object(p.a)(n,[{key:"componentDidMount",value:function(){this.setState({licenseValid:!1,selectedTab:"configuration",socketConnected:!1})}},{key:"componentWillUnmount",value:function(){this.socket.unsubscribeState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive"),this.updateAliveState)}},{key:"updateAliveState",value:function(e,t){t&&t.hasOwnProperty("val")&&e.includes("alive")&&this.setState({instanceAlive:t.val,selectedTab:t.val?this.state.selectedTab:"configuration"})}},{key:"onConnectionReady",value:function(){var e=this;this.setState({socketConnected:!0}),this.socket.getObject("system.meta.uuid").then((function(t){e.setState({hostUUID:t&&t.native&&t.native.uuid&&t.native.uuid.length>0?t.native.uuid:""})})).catch((function(t){e.setState({hostUUID:""})})),this.socket.getState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive")).then((function(t){return e.state.instanceAlive=t,t})).catch((function(e){return!1})),this.socket.subscribeState("system.adapter.".concat(this.adapterName,".").concat(this.instance,".alive"),!0,this.updateAliveState)}},{key:"updateNativeValue",value:function(e,t,a){"validLicense"===e?this.setState({licenseValid:t}):Object(b.a)(Object(m.a)(n.prototype),"updateNativeValue",this).call(this,e,t,a)}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e&&"configuration"!==e?"gatools"===e?1:void 0:0}},{key:"render",value:function(){var e=this;return this.state.loaded&&this.state.socketConnected?Object(de.jsx)(l.a,{theme:this.state.theme,children:Object(de.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object(de.jsx)(v.a,{position:"static",children:Object(de.jsxs)(A.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(t.target.parentNode.dataset.name,a)},scrollButtons:"auto",children:[Object(de.jsx)(w.a,{label:G.a.t("Configuration"),"data-name":"configuration"}),this.state.licenseValid&&this.state.instanceAlive&&Object(de.jsx)(w.a,{label:G.a.t("GA-Tools"),"data-name":"gatools"})]})}),Object(de.jsxs)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,style:{width:"100%"},children:[("configuration"===this.state.selectedTab||!this.state.selectedTab)&&Object(de.jsx)(Ce,{common:this.common,socket:this.socket,native:this.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},onLoad:function(t){return e.onLoadConfig(t)},instance:this.instance,adapterName:this.adapterName,instanceAlive:this.state.instanceAlive,changed:this.state.changed,theme:this.state.theme,hostUUID:this.state.hostUUID,onChange:function(t,a,n){return e.updateNativeValue(t,a,n)}},"configuration"),"gatools"===this.state.selectedTab&&this.state.licenseValid&&this.state.instanceAlive&&Object(de.jsx)(it,{common:this.common,socket:this.socket,native:this.state.native,onError:function(t){return e.setState({errorText:!t&&0!==t||"string"===typeof t?t:t.toString()})},instance:this.instance,instanceAlive:this.state.instanceAlive,adapterName:this.adapterName,onShowError:function(t){return e.showError(t)}},"gatools")]}),this.renderError(),this.renderSaveCloseButtons()]})}):Object(de.jsx)(l.a,{theme:this.state.theme,children:Object(de.jsx)(I.a,{theme:this.state.themeType})})}}]),n}(x.a),ot=Object(j.a)((function(e){return{root:{},tabContent:{padding:10,height:"calc(100% - 64px - 48px - 20px)",overflow:"auto"},tabContentIFrame:{padding:10,height:"calc(100% - 64px - 48px - 20px - 38px)",overflow:"auto"}}}))(rt);Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var st=a(173),ct=a(165),lt=a.n(ct),dt=a(167),ut=a.n(dt);window.adapterName="knx";var pt=ut.a.getThemeName();console.log("iobroker."+window.adapterName+"@"+st.a+' using theme "'+pt+'"'),"localhost:3000"!==window.location.host&&s.a({dsn:"https://5ad729dbed504d15aa8bde423cae9a8e@sentry.iobroker.net/57",release:"iobroker."+window.adapterName+"@"+st.a,integrations:[new c.a]}),function e(){return o.a.render(Object(de.jsx)(l.a,{theme:lt()(pt),children:Object(de.jsx)(ot,{onThemeChange:function(t){pt=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[308,1,2]]]);
2
+ //# sourceMappingURL=main.1efda754.chunk.js.map