From 99629f949bca1ff1da4601c245fe48c08f173ad0 Mon Sep 17 00:00:00 2001 From: GermanBluefox Date: Fri, 14 May 2021 19:03:18 +0200 Subject: [PATCH] chore: release v1.8.19 Only added one debug output --- README.md | 2 +- admin/asset-manifest.json | 6 ++--- admin/index_m.html | 2 +- ...3286f1.chunk.js => main.7fb9782b.chunk.js} | 4 +-- ...hunk.js.map => main.7fb9782b.chunk.js.map} | 2 +- io-package.json | 26 +++++++++---------- lib/alexaSmartHomeV2.js | 2 +- package.json | 2 +- src/package.json | 2 +- 9 files changed, 24 insertions(+), 24 deletions(-) rename admin/static/js/{main.a83286f1.chunk.js => main.7fb9782b.chunk.js} (99%) rename admin/static/js/{main.a83286f1.chunk.js.map => main.7fb9782b.chunk.js.map} (99%) diff --git a/README.md b/README.md index 6219bc39..7180db15 100644 --- a/README.md +++ b/README.md @@ -254,7 +254,7 @@ Following types are supported: --> ## Changelog -### 1.8.18 (2021-05-14) +### 1.8.19 (2021-05-14) * (bluefox) Only added one debug output ### 1.8.16 (2021-03-13) diff --git a/admin/asset-manifest.json b/admin/asset-manifest.json index 5fa6c587..e0b37d67 100644 --- a/admin/asset-manifest.json +++ b/admin/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "./static/css/main.e2d673ee.chunk.css", - "main.js": "./static/js/main.a83286f1.chunk.js", - "main.js.map": "./static/js/main.a83286f1.chunk.js.map", + "main.js": "./static/js/main.7fb9782b.chunk.js", + "main.js.map": "./static/js/main.7fb9782b.chunk.js.map", "runtime-main.js": "./static/js/runtime-main.3886ef11.js", "runtime-main.js.map": "./static/js/runtime-main.3886ef11.js.map", "static/css/2.c04f2d9d.chunk.css": "./static/css/2.c04f2d9d.chunk.css", @@ -18,6 +18,6 @@ "static/css/2.c04f2d9d.chunk.css", "static/js/2.bca41005.chunk.js", "static/css/main.e2d673ee.chunk.css", - "static/js/main.a83286f1.chunk.js" + "static/js/main.7fb9782b.chunk.js" ] } \ No newline at end of file diff --git a/admin/index_m.html b/admin/index_m.html index ce97b704..0e8bee1f 100644 --- a/admin/index_m.html +++ b/admin/index_m.html @@ -1 +1 @@ -IoT Settings
\ No newline at end of file +IoT Settings
\ No newline at end of file diff --git a/admin/static/js/main.a83286f1.chunk.js b/admin/static/js/main.7fb9782b.chunk.js similarity index 99% rename from admin/static/js/main.a83286f1.chunk.js rename to admin/static/js/main.7fb9782b.chunk.js index 406ea8f6..98e20ccd 100644 --- a/admin/static/js/main.a83286f1.chunk.js +++ b/admin/static/js/main.7fb9782b.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonpiot-admin"]=this["webpackJsonpiot-admin"]||[]).push([[0],{176:function(e){e.exports=JSON.parse('{"a":"1.8.18"}')},242:function(e,t,a){},331:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Set to 0 if behavior not desired)","(you can separate names with comma)":"You can enter several names divided by comma","Active":"Active","Add device":"Add device","Add service":"Add service","Addresses":"Addresses","Alexa devices":"Alexa devices","Alisa devices":"Alisa devices","Allow admin access (only pro)":"Allow admin access (only pro)","Allow self-signed certificates":"Allow self-signed certificates","Amazon Alexa":"Amazon Alexa","Are you sure?":"Are you sure?","Attributes has not correct JSON format.":"Attributes is not in the correct JSON format","Authentication must be disabled. You can create second instance extra for cloud.":"Authentication must be disabled. You can create a second instance extra for the cloud.","Cancel":"Cancel","Cannot add this object":"Cannot add this object, because not supported.","Cannot read devices!":"Cannot read devices!","Certificates will be updated after initiated restart":"Certificates will be updated after initiated restart","Certificates will be updated after start":"Certificates will be updated after start","Click now Get new connection certificates to request new temporary password":"Click now \\"Get new connection certificates\\" to request new temporary password","Close":"Close","Cloud URL":"Cloud URL","Cloud adapter settings":"Cloud adapter settings","Commands":"Commands","Concatenate words with":"Concatenate words with","Connection timeout":"Connection timeout(ms)","Debug outputs":"Debug outputs","Decrement color temperature":"Decrement color temperature","Decrement percentage":"Decrement percentage","Decrement target temperature":"Decrement target temperature","Default":"Default","Device %s was not added":"Device %s was not added","Device will be deactivated.":"Device will be deactivated.","Device will be disabled.":"Device %s will be disabled.","Dimmer":"Dimmer","Duplicate name":"Duplicate name","Edit smart name":"Edit smart name","Error":"Error","Extended options":"Extended options","Filter":"Filter","For help use this forum":"For help, visit this forum post","Functions":"Functions","Get actual temperature":"Get actual temperature","Get new connection certificates":"Get new connection certificates","Get new service URL key":"Get new service URL key","Get target temperature":"Get target temperature","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"Increment color temperature","Increment percentage":"Increment percentage","Increment target temperature":"Increment target temperature","Instance":"Instance","Instance does not exists":"Instance does not exists","Instance is not active.":"Instance is not active.","Instance must be enabled":"Instance must be enabled","Instance must run to deliver the data":"The instance must run to deliver the data","Invalid object":"Invalid object","Language":"Language","Load configuration from file":"Load configuration from file","Message":"Message","OFF level for switches":"OFF level for switches","OFF level for switches in %":"OFF level for switches in %","Off":"off","Ok":"Ok","On":"on","On/Off":"On/Off","Options":"Options","Personal settings (only pro)":"Personal settings (only pro)","Ping timeout:":"Ping timeout(ms)","Place function in names first":"Place function in names first","Please add action and trait to complete the Google Home state.":"Please add action and trait to complete the Google Home state.","Please add type and trait to complete the Google Home state.":"Please add type and trait to complete the Google Home state.","Please select object ID...":"Please select object ID...","Please write your email only in lower case letters":"Please write your email only in lower case letters","Read lock state":"Read lock state","Replace in names":"Replace in names","Request email with password one more time":"Request email with password one more time","Restart on disconnect":"Restart on disconnect","Review":"Review","Rooms":"Rooms","Save":"Save","Save and close":"Save and close","Save configuration to file":"Save configuration to file","Save settings and the names will be changed":"Save settings and the names will be changed","Select":"Select","Service names":"Service names","Services and IFTTT":"Services and IFTTT","Set color":"Set color","Set color temperature":"Set color temperature","Set lock state":"Set lock state","Set percentage":"Set percentage","Set target temperature":"Set target temperature","Smart Devices":"Smart Devices","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Smart enums","Smart name":"Smart name","Smart name for %s":"Smart name for %s","To apply this setting, the restart of adapter must be done. Agree?":"To apply this setting, the adapter must be restarted. Agree?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"For automatic detection, under objects assign a channel (device if no channel is available) to a room and function. It is not sufficient to assign the room to a state or device. Rooms/functions can be added under enumeration (indicated by the white arrow at the top right) and must be activated in the IoT adapter under Intelligent enumeration. In order to automatically recognize manual states, the state must be deleted.","Turn off":"Turn off","Turn on":"Turn on","Type":"Type","Types":"Types","Use Nightscout instance":"Use Nightscout instance","Use following link for IFTTT":"Use following link for IFTTT","Use following link for custom service":"Use following link for custom service","Use text2command instance":"Use text2command instance","Value":"Value","White list for services":"White list for services","Write response to":"Write response to","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"You can enter several names divided by comma","amazon link":"If you use the Alexa Skill, please write a review for us here.
Examples can be found here.","by ON":"by ON","clear":"clear","default":"default","disabled":"disabled","help_link_tip1":"Before writing to support be sure you have read and understand the instructions of the web page: https://www.iobroker.net","help_link_tip2":"If you still have issue with the connection to Iot, you can request support im Forum","help_link_tip3":"and only after that you should write an email to support@iobroker.com","help_tip":"No iobroker.pro account? Buy it on https://iobroker.pro for validated access or get for free, but limited access.","info_allowedServices":"divided by comma. Use * to allow all services.","info_iftttKey":"You can find your key here under \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Password","last value":"last value","modified":"Name was modified by user","no type":"no type","tooltip_allowSelfSignedCertificate":"If you use your own cloud, you can allow the use of self-signed certificates for the cloud.","tooltip_apikey":"This key is required to communicate with a cloud. You can get the API-KEY on https://iobroker.net and it looks like nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normally you do not need to change it. Only required if you plan to use your own cloud.","tooltip_concatWord":"Define how to concatenate Room and Function. E.g. with \'in\': Light in living room.","tooltip_deviceOffLevel":"Some groups consist of mixed devices: dimmers and switches. It is allowed to control them with ON and OFF commands and with percents","tooltip_functionFirst":"Normally the names looks like room_function. Here you can switch it to function_room.","tooltip_instance":"Web instance, which will be shown for your connections from cloud.","tooltip_language":"You can define the languages to switch fast between US Alexa Skill and DE Alexa Skill.","tooltip_noCommon":"If enabled, the settings will be stored only for this instance. So in the another instance the other names could be set.","tooltip_responseOID":"For every command the text response will be generated. You can define here the Object ID , where this text must be written to. E.g. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Workaround for missing connection to Alexa after the connection to cloud was lost. With this option you can restart adapter after each disconnection and it will work.","Short answer for blood sugar":"Short answer for blood sugar","cannot_use_password":"You cannot use % in password. We are working on the fix.","invalid_password_warning":"Password must be at least 8 characters long and must have numbers, upper and lower case letters. Please change it in the ioBroker.pro profile\\n","new_certs_tip":"If you made a restore from backup, or moved your instance from one device to other or deleted the IoT instance and added it again you must load the connection security certificates with this button","new_credentials_tip":"If you restored your ioBroker.pro password you can synchronise your password with Alexa/Google/Alisa with this button.","Create IoT credentials anew":"Create IoT credentials anew","forum_tip":"Any questions in any language please ask here in forum: link","Save settings before pressing this button":"Save settings before pressing this button","Auto Mode":"Auto Mode","Manual Mode":"Manual Mode","manualModeHint":"Please select a TYPE and a TRAIT after adding a state. To add multiple traits add a different id and trait but same smart name, type and room. Comma separated for the multiple smart names. To assign a room please use the ioBroker Enums/Aufz\xe4hlungen. With attributes you can for example set a range for the color temperature Infos about Attributes you can find here. Empty attribute is {}","not activated":"not activated","Google devices":"Google devices","Show/Hide help":"Show/Hide help","Show all devices for print out":"Show all devices for print out","Search":"Search","List of devices to print out, e.g. to give all device names to your partner.":"List of devices to print out, e.g. to give all device names to your partner.","Name":"Name","Function":"Function","Room":"Room","Copy to clipboard":"Copy to clipboard","Toggle expert mode":"Toggle expert mode","ID":"ID","Smart names":"Smart names","ioBType":"IoB Type","Function/Trait":"Function/Trait","Attributes":"Attributes","Auto":"Automatically","Conversation to GH":"Convert to GH","Conversation to ioB":"Convert to ioB","Information: The skill linking process was changed!":"Information: The skill linking process was changed!","The linking process has been changed for a few months.":"The linking process has been changed for a few months.","Now there is no temporary password that will be sent by email.":"Now there is no temporary password that will be sent by email.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"The password is equal with ioBroker.pro and with password that was entered here in the settings!","Not understood":"Not understood","Roger that":"Roger that","Read blood sugar from":"Read blood sugar from","Get actual humidity":"Get actual humidity","Get motion":"Get motion","Get contact":"Get contact status"}')},332:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Auf 0 setzten, falls das Verhalten unerw\xfcnscht ist)","(you can separate names with comma)":"Man kann mehrere kommaseparierte Namen eingeben","Active":"aktiv","Add device":"Ger\xe4t hinzuf\xfcgen","Add service":"Dienst hinzuf\xfcgen","Addresses":"Adressen","Alexa devices":"Alexa-Ger\xe4te","Alisa devices":"Alisa Ger\xe4te","Allow admin access (only pro)":"Erlaube Zugriff auf Admin (nur pro)","Allow self-signed certificates":"Erlaube selbst-signierte Zertifikate","Amazon Alexa":"Amazon Alexa","Are you sure?":"Sind Sie sicher?","Attributes has not correct JSON format.":"Attributes ist nicht im korrekten JSON Format","Authentication must be disabled. You can create second instance extra for cloud.":"Die Authentifizierung muss deaktiviert sein. Sie k\xf6nnen zweite Instanz extra f\xfcr Cloud erstellen.","Cancel":"Abbrechen","Cannot add this object":"Dieses Objekt kann nicht hinzugef\xfcgt werden, da es nicht unterst\xfctzt wird.","Cannot read devices!":"Ger\xe4te k\xf6nnen nicht gelesen werden!","Certificates will be updated after initiated restart":"Zertifikate werden nach dem Neustart aktualisiert","Certificates will be updated after start":"Zertifikate werden nach dem Start aktualisiert","Click now Get new connection certificates to request new temporary password":"Klicken Sie jetzt auf \\"Neue Verbindungszertifikate anfordern\\", um ein neues tempor\xe4res Kennwort anzufordern","Close":"Schlie\xdfen","Cloud URL":"Cloud-URL","Cloud adapter settings":"Einstellungen f\xfcr Cloud-Adapter","Commands":"Befehle","Concatenate words with":"Verbinde Raum und Funktion mit","Connection timeout":"Verbindungs-Timeout(ms)","Debug outputs":"Ausgaben debuggen","Decrement color temperature":"Farbtemperatur verringern","Decrement percentage":"Prozentsatz verringern","Decrement target temperature":"Solltemperatur verringern","Default":"Standard","Device %s was not added":"Ger\xe4t %s wurde nicht hinzugef\xfcgt","Device will be deactivated.":"Ger\xe4t wird f\xfcr die Sprachsteuerung deaktiviert.","Device will be disabled.":"Ger\xe4t %s wird aus der Liste entfernt.","Dimmer":"Dimmer","Duplicate name":"Name wurde schon benutzt","Edit smart name":"Smartname editieren","Error":"Fehler","Extended options":"Erweiterte Einstellungen","Filter":"Filter","For help use this forum":"F\xfcr Hilfe besuche diesen Forumbeitrag","Functions":"Funktionen","Get actual temperature":"Aktuelle Temperatur abrufen","Get new connection certificates":"Neue Verbindungszertifikate anfordern","Get new service URL key":"Neuen Service-URL-Schl\xfcssel abrufen","Get target temperature":"Solltemperatur abrufen","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"Die Farbtemperatur erh\xf6hen","Increment percentage":"Prozentsatz erh\xf6hen","Increment target temperature":"Die Zieltemperatur erh\xf6hen","Instance":"Instanz","Instance does not exists":"Instanz existiert nicht","Instance is not active.":"Instanz ist nicht aktiv.","Instance must be enabled":"Instanz muss aktiviert sein","Instance must run to deliver the data":"Die Instanz muss laufen um die Daten zu liefern","Invalid object":"Ung\xfcltiges Objekt","Language":"Sprache","Load configuration from file":"Konfiguration aus Datei laden","Message":"Meldung","OFF level for switches":"OFF level for switches","OFF level for switches in %":"AUS-Pegel f\xfcr Schalter in%","Off":"aus","Ok":"Ok","On":"an","On/Off":"An aus","Options":"Einstellungen","Personal settings (only pro)":"Eigene Einstellungen (nur pro)","Ping timeout:":"Ping-Timeout(ms)","Place function in names first":"Platziere Funktionsnamen vorne","Please add action and trait to complete the Google Home state.":"Bitte f\xfcgen Sie eine Aktion und ein Merkmal hinzu, um den Google Home-Status zu vervollst\xe4ndigen.","Please add type and trait to complete the Google Home state.":"Bitte f\xfcge eine Type und Trait hinzu um den Google Home State zu vervollst\xe4ndigen.","Please select object ID...":"Bitte Objekt ID ausw\xe4hlen ...","Please write your email only in lower case letters":"Bitte E-Mail nur in Kleinbuchstaben schreiben","Read lock state":"Sperrstatus lesen","Replace in names":"Ersetze in Namen","Request email with password one more time":"Noch einmal eine E-Mail mit Passwort anfordern","Restart on disconnect":"Neustart bei Verbindungsabbruch","Review":"Rezension","Rooms":"R\xe4ume","Save":"Speichern","Save and close":"Speichern und schlie\xdfen","Save configuration to file":"Konfiguration in Datei speichern","Save settings and the names will be changed":"Speichere die Einstellungen um die neuen Namen zu sehen","Select":"W\xe4hlen","Service names":"Servicenamen","Services and IFTTT":"Services und IFTTT","Set color":"Farbe einstellen","Set color temperature":"Farbtemperatur einstellen","Set lock state":"Schloss steuern","Set percentage":"Prozent einstellen","Set target temperature":"Solltemperatur einstellen","Smart Devices":"Smart Ger\xe4te","Smart Enums":"Smart Aufz\xe4hlungen","Smart Media":"Smart Media","Smart enums":"Intelligente Aufz\xe4hlungen","Smart name":"Smart-Name","Smart name for %s":"Intelligenter Name f\xfcr %s","To apply this setting, the restart of adapter must be done. Agree?":"Um diese Einstellung zu \xe4ndern, es ist erforderlich diese Instanz neu zu starten. Einverstanden?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"F\xfcr automatische Erkennung, unter Objekte ordne einem Channel (Device wenn kein Channel vorhanden ist) ein Raum und Funktion zu. Es reicht nicht einem State oder Device den Raum zuzuordnen. R\xe4ume/Funktionen k\xf6nnen unter Aufz\xe4hlung (Anzeigen \xfcber den wei\xdfen Pfeil oben rechts) hinzugef\xfcgt werden und m\xfcssen im IoT Adapter unter Intelligente Aufz\xe4hlung aktiviert werden. Um manuelle States wieder automatisch erkennen zu lassen muss der State gel\xf6scht werden.","Turn off":"Abschalten","Turn on":"Anschalten","Type":"Typ","Types":"Typen","Use Nightscout instance":"Benutze Nightscout Instanz","Use following link for IFTTT":"Benutze folgenden Link f\xfcr IFTTT","Use following link for custom service":"Benutze folgende Link f\xfcr einen eigenen Service","Use text2command instance":"Benutze text2command Instanz","Value":"Wert","White list for services":"White list f\xfcr Services","Write response to":"Schreibe Antwort ins","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Man kann mehrere durch Komma getrennte Namen eingeben","amazon link":"Falls du den Alexa Skill benutzt, schreibe doch bitte hier eine Review.
Beispiele kann man hier anschauen.","by ON":"bei AN","clear":"l\xf6schen","default":"Systemsprache","disabled":"deaktiviert","help_link_tip1":"Stellen Sie vor dem Schreiben an den Support sicher, dass Sie die Anweisungen auf der Webseite gelesen und verstanden haben: https://www.iobroker.net","help_link_tip2":"Wenn Sie immer noch Probleme mit der Verbindung zu Iot haben, k\xf6nnen Sie im Forum Support anfordern","help_link_tip3":"und erst danach sollten Sie eine E-Mail an support@iobroker.com schreiben","help_tip":"Kein iobroker.pro-Konto? Kaufen Sie es auf https://iobroker.pro f\xfcr den validierten Zugriff oder erhalten Sie kostenlosen, aber eingeschr\xe4nkten Zugriff.","info_allowedServices":"durch Komma getrennt. Benutze * um alle Services zu erlauben.","info_iftttKey":"Der Schl\xfcssel kann hier unter \'Documentation\' gefunden werden","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Passwort","last value":"letzter Wert","modified":"Der Name wurde vom Anwender ge\xe4ndert","no type":"kein Typ","tooltip_allowSelfSignedCertificate":"Wenn man eine eigene Cloud verwendet, man kann die Benutzung von selbst-signierten Zertifikaten erlauben.","tooltip_apikey":"Dieser Schl\xfcssel wird ben\xf6tigt um mit der Cloud zu kommunizieren. Man kann den Schl\xfcssel unter https://iobroker.net bekommen. Es sieht wie folgt aus nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalerweise muss diese Option nicht ge\xe4ndert werden. Dies ist nur notwendig, wenn man eigenen Cloud verwendet.","tooltip_concatWord":"Damit wird definiert wie Funktion und Raum miteinander verbunden werden; z.B. mit \'im\': Licht im Schlafzimmer","tooltip_deviceOffLevel":"Gruppen k\xf6nnen aus gemischten Ger\xe4ten (Schaltern und Dimmern) bestehen. Sie k\xf6nnen mit ON/OFF sowie Prozentwerten angesteuert werden, hier kann definiert werden welcher Prozentsatz OFF entspricht.","tooltip_functionFirst":"Die automatischen Namen werden im Schema Raum-Funktion generiert. Hiermit kann man es auf Funktion-Raum ge\xe4ndert werden.","tooltip_instance":"Web Instanz, die f\xfcr ihre Anfragen aus dem Cloud angezeigt wird.","tooltip_language":"Man kann hier die Sprache definieren um zwischen US Alexa Skill und DE Alexa Skill umschalten zu k\xf6nnen","tooltip_noCommon":"Wenn diese Option aktiviert wird, so werden die Einstellungen nur f\xfcr diese Instanz gespeichert. So ist es m\xf6glich in einer anderen Instanz andere Namen zu setzen.","tooltip_responseOID":"F\xfcr jedes Kommando wird eine Textantwort generiert. Hier kannst du die Objekt ID angeben, an welche die Textantwort gesendet werden soll, z.B. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Workaround f\xfcr fehlende Kommunikation mit Alexa nach Verbindungsabbruch. Damit kann man zwingen den Adapter neu zu starten und das Problem umgehen.","Short answer for blood sugar":"Kurze Antwort f\xfcr Blutzucker","cannot_use_password":"Sie k\xf6nnen nicht % im Passwort verwenden. Wir arbeiten an der L\xf6sung.","invalid_password_warning":"Das Passwort muss mindestens 8 Zeichen lang sein und Zahlen sowie Gro\xdf- und Kleinbuchstaben enthalten. Bitte \xe4ndern Sie es im ioBroker.pro-Profil\\n","new_certs_tip":"Wenn Sie eine Wiederherstellung aus einer Sicherung durchgef\xfchrt oder Ihre Instanz von einem Ger\xe4t auf ein anderes verschoben oder die IoT-Instanz gel\xf6scht und erneut hinzugef\xfcgt haben, m\xfcssen Sie die Verbindungssicherheitszertifikate mit diesem Knopf herunterladen.","new_credentials_tip":"Wenn Sie Ihr ioBroker.pro-Passwort wiederhergestellt haben, k\xf6nnen Sie Ihr Passwort mit diesem Knopf mit Alexa/Google/Alisa synchronisieren.","Create IoT credentials anew":"IoT-Anmeldeinformationen neu erstellen","forum_tip":"Bei Fragen in einer beliebigen Sprache wenden Sie sich bitte hier im Forum an: Link ","Save settings before pressing this button":"Einstellungen m\xfcssen gespeichert werden, bevor Sie diese Taste dr\xfccken","Auto Mode":"Automatikmodus","Manual Mode":"Manueller Modus","manualModeHint":"Bitte w\xe4hlen Sie einen TYPE und einen TRAIT nach dem Hinzuf\xfcgen eines Status. Um mehrere Merkmale hinzuzuf\xfcgen, f\xfcgen Sie eine andere ID und ein anderes Merkmal hinzu, jedoch denselben intelligenten Namen, Typ und Raum. Komma getrennt f\xfcr die mehreren intelligenten Namen. Um einen Raum zuzuweisen, verwenden Sie bitte die ioBroker Enums/Aufz\xe4hlungen. Mit Attributen k\xf6nnen Sie beispielsweise einen Bereich f\xfcr die Farbtemperatur festlegen. Infos zu Attribute finden Sie hier. Das leere Attribut ist {}","not activated":"nicht aktiviert","Google devices":"Google-Ger\xe4te","Show/Hide help":"Hilfe ein- / ausblenden","Show all devices for print out":"Alle Ger\xe4te zum Ausdrucken anzeigen","Search":"Suche","List of devices to print out, e.g. to give all device names to your partner.":"Liste der auszudruckenden Ger\xe4te, z. um Ihrem Partner/in alle Ger\xe4tenamen zu zeigen.","Name":"Name","Function":"Funktion","Room":"Zimmer","Copy to clipboard":"In die Zwischenablage kopieren","Toggle expert mode":"Expertenmodus umschalten","ID":"ID","Smart names":"Intelligente Namen","ioBType":"IoB-Typ","Function/Trait":"Funktion / Eigenschaft","Attributes":"Attribute","Auto":"Automatisch","Conversation to GH":"In GH konvertieren","Conversation to ioB":"In ioB konvertieren","Information: The skill linking process was changed!":"Information: Der Skill Linking Prozess wurde ge\xe4ndert!","The linking process has been changed for a few months.":"Der Verkn\xfcpfungsprozess wurde vor einigen Monaten ge\xe4ndert.","Now there is no temporary password that will be sent by email.":"Jetzt gibt es kein tempor\xe4res Passwort, das per E-Mail gesendet wird.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Das Passwort ist gleich mit ioBroker.pro und mit dem Passwort, das hier in den Einstellungen eingegeben wurde!","Not understood":"Nicht verstanden","Roger that":"Verstanden","Read blood sugar from":"Blutzucker lesen aus","Get actual humidity":"Holen Sie sich die tats\xe4chliche Luftfeuchtigkeit","Get motion":"Bewegung bekommen","Get contact":"Kontaktstatus abrufen"}')},333:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(\u0434\u043b\u044f \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430 0)","(you can separate names with comma)":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u043e\u0439","Active":"\u0410\u043a\u0442\u0438\u0432\u043d\u043e","Add device":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e","Add service":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443","Addresses":"\u0410\u0434\u0440\u0435\u0441\u0430","Alexa devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Alexa","Alisa devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0410\u043b\u0438\u0441\u044b","Allow admin access (only pro)":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a admin (\u0442\u043e\u043b\u044c\u043a\u043e pro)","Allow self-signed certificates":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b","Amazon Alexa":"Amazon Alexa","Are you sure?":"\u0423\u0432\u0435\u0440\u0435\u043d\u044b?","Attributes has not correct JSON format.":"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0435 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON","Authentication must be disabled. You can create second instance extra for cloud.":"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043b\u044f \u043e\u0431\u043b\u0430\u043a\u0430.","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Cannot add this object":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.","Cannot read devices!":"\u041d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430!","Certificates will be updated after initiated restart":"\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430","Certificates will be updated after start":"\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430","Click now Get new connection certificates to request new temporary password":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \xab\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\xbb, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","Cloud URL":"URL \u043e\u0431\u043b\u0430\u043a\u0430","Cloud adapter settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 Cloud","Commands":"\u041a\u043e\u043c\u0430\u043d\u0434\u044b","Concatenate words with":"\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043b\u043e\u0432\u043e\u043c","Connection timeout":"\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f(\u043c\u0441)","Debug outputs":"\u0412\u044b\u0432\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438","Decrement color temperature":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Decrement percentage":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f","Decrement target temperature":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Default":"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Device %s was not added":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e %s \u043d\u0435 \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e","Device will be deactivated.":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.","Device will be disabled.":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e %s \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430.","Dimmer":"\u0414\u0438\u043c\u043c\u0435\u0440","Duplicate name":"\u0418\u043c\u044f \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f","Edit smart name":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u044f","Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Extended options":"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Filter":"\u0424\u0438\u043b\u044c\u0442\u0440","For help use this forum":"\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043c\u043e\u0449\u044c, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u0443\u043c \u043f\u043e\u0441\u0442","Functions":"\u0424\u0443\u043d\u043a\u0446\u0438\u0438","Get actual temperature":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Get new connection certificates":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f","Get new service URL key":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043b\u0443\u0436\u0431\u044b URL","Get target temperature":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Increment percentage":"\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0430","Increment target temperature":"\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440","Instance does not exists":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442","Instance is not active.":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0435\u043d.","Instance must be enabled":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d","Instance must run to deliver the data":"\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u0447\u0442\u043e \u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435","Invalid object":"\u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442","Language":"\u042f\u0437\u044b\u043a","Load configuration from file":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430","Message":"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435","OFF level for switches":"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439","OFF level for switches in %":"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0432%","Off":"\u0432\u044b\u043a\u043b","Ok":"Ok","On":"\u0432\u043a\u043b","On/Off":"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b","Options":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Personal settings (only pro)":"\u041b\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e pro)","Ping timeout:":"\u041f\u0438\u043d\u0433-\u0422\u0430\u0439\u043c\u0430\u0443\u0442(\u043c\u0441)","Place function in names first":"\u0418\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435","Please add action and trait to complete the Google Home state.":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0447\u0435\u0440\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Google Home.","Please add type and trait to complete the Google Home state.":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0438\u043f \u0438 \u0447\u0435\u0440\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Google Home.","Please select object ID...":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ...","Please write your email only in lower case letters":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u044e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043e\u0447\u0442\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438","Read lock state":"\u0427\u0442\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438","Replace in names":"\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0438\u043c\u0435\u043d\u0430\u0445","Request email with password one more time":"\u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437","Restart on disconnect":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438 \u043f\u043e\u0442\u0435\u0440\u0435 \u0441\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","Review":"\u041e\u0431\u0437\u043e\u0440","Rooms":"\u041a\u043e\u043c\u043d\u0430\u0442\u044b","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Save and close":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044c","Save configuration to file":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b","Save settings and the names will be changed":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0447\u0442\u043e \u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f","Select":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c","Service names":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0431","Services and IFTTT":"\u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 IFTTT","Set color":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0432\u0435\u0442","Set color temperature":"\u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430","Set lock state":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438","Set percentage":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u043d\u0442","Set target temperature":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Smart Devices":"Smart \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430","Smart Enums":"Smart \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438","Smart Media":"Smart Media","Smart enums":"\u0423\u043c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f","Smart name":"Smart \u0438\u043c\u044f","Smart name for %s":"\u0423\u043c\u043d\u043e\u0435 \u0438\u043c\u044f \u0434\u043b\u044f %s","To apply this setting, the restart of adapter must be done. Agree?":"\u0427\u0442\u043e \u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u044e. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u044b?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"\u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u0430\u043d\u0430\u043b (\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0435\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d) \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u0438\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443. \u041a\u043e\u043c\u043d\u0430\u0442\u044b/\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e (\u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0431\u0435\u043b\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443) \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0435 IoT \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435. \u0427\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0440\u0443\u0447\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u044d\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043e.","Turn off":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438","Turn on":"\u0412\u043a\u043b\u044e\u0447\u0438","Type":"\u0422\u0438\u043f","Types":"\u0422\u0438\u043f\u044b","Use Nightscout instance":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Nightscout","Use following link for IFTTT":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 URL \u0434\u043b\u044f IFTTT","Use following link for custom service":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 URL \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430","Use text2command instance":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c text2command","Value":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435","White list for services":"\u0411\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432","Write response to":"\u041f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0432","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u043e\u0439","amazon link":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Alexa, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0439 \u043e\u0442\u0437\u044b\u0432 \u0437\u0434\u0435\u0441\u044c.
\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0442\u0437\u044b\u0432\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c.","by ON":"\u043f\u0440\u0438 \u0412\u041a\u041b","clear":"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","default":"\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439","disabled":"\u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e","help_link_tip1":"\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u043b\u0443\u0436\u0431\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0438 \u043f\u043e\u043d\u044f\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b: https://www.iobroker.net","help_link_tip2":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a Iot, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435","help_link_tip3":"\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 support@iobroker.com","help_tip":"\u041d\u0435\u0442 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 iobroker.pro? \u041a\u0443\u043f\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 https://iobroker.pro \u0434\u043b\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430.","info_allowedServices":"\u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 *, \u0447\u0442\u043e \u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b.","info_iftttKey":"\u0421\u0432\u043e\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c \u0432 \'Documentation\'","ioBroker.pro Login":"\u041b\u043e\u0433\u0438\u043d ioBroker.pro","ioBroker.pro Password":"\u041f\u0430\u0440\u043e\u043b\u044c ioBroker.pro","last value":"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435","modified":"\u0418\u043c\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c","no type":"\u043d\u0435\u0442 \u0442\u0438\u043f\u0430","tooltip_allowSelfSignedCertificate":"\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432","tooltip_apikey":"\u041a\u043b\u044e\u0447 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u043e\u0431\u043b\u0430\u043a\u043e\u043c. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 https://iobroker.net \u0438 \u043e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"\u041e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440. \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e.","tooltip_concatWord":"\u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u041a\u043e\u043c\u043d\u0430\u0442\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \'\u0432\': \u0421\u0432\u0435\u0442 \u0432 \u0437\u0430\u043b\u0435.","tooltip_deviceOffLevel":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432: \u0434\u0438\u043c\u043c\u0435\u0440\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434 ON \u0438 OFF \u0438 \u0441 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u043c\u0438","tooltip_functionFirst":"\u041e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a \u041a\u043e\u043c\u043d\u0430\u0442\u0430-\u0424\u0443\u043d\u043a\u0446\u0438\u044f. \u042d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430 \u0424\u0443\u043d\u043a\u0446\u0438\u044f-\u041a\u043e\u043c\u043d\u0430\u0442\u0430.","tooltip_instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 WEB, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0438\u0437 \u043e\u0431\u043b\u0430\u043a\u0430","tooltip_language":"\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a, \u0447\u0442\u043e \u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 US Alexa Skill \u0438 DE Alexa Skill","tooltip_noCommon":"\u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f, \u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438. \u0427\u0442\u043e \u0431\u044b \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043c\u0435\u043d\u0430.","tooltip_responseOID":"\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c ID \u043e\u0431\u044a\u0435\u043a\u0442\u0430 , \u0433\u0434\u0435 \u044d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 sayit.0.tts.text.","tooltip_restartOnDisconnect":"\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u043f\u0430\u0436\u0435\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 Alexa, \u043f\u043e\u0441\u043b\u0435 \u0432\u043e\u0441\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u043b\u0430\u043a\u043e\u043c. \u042d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.","Short answer for blood sugar":"\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0430\u0445\u0430\u0440\u0430 \u0432 \u043a\u0440\u043e\u0432\u0438","cannot_use_password":"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c% \u0432 \u043f\u0430\u0440\u043e\u043b\u0435. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c.","invalid_password_warning":"\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0446\u0438\u0444\u0440, \u043f\u0440\u043e\u043f\u0438\u0441\u043d\u044b\u0445 \u0438 \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u0431\u0443\u043a\u0432. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 ioBroker.pro\\n","new_certs_tip":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u043b\u0438 \u0441\u0432\u043e\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u043b\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 IoT \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438","new_credentials_tip":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c ioBroker.pro, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 Alexa/Google/Alisa \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438.","Create IoT credentials anew":"\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 IoT \u0437\u0430\u043d\u043e\u0432\u043e","forum_tip":"\u041b\u044e\u0431\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435: \u0441\u0441\u044b\u043b\u043a\u0430 ","Save settings before pressing this button":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438","Auto Mode":"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c","Manual Mode":"\u0420\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c","manualModeHint":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 TYPE \u0438 TRAIT \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0442, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u0447\u0435\u0440\u0442\u0443, \u043d\u043e \u0442\u043e \u0436\u0435 \u0438\u043c\u044f, \u0442\u0438\u043f \u0438 \u043d\u043e\u043c\u0435\u0440. \u0417\u0430\u043f\u044f\u0442\u0430\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u043c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u0443, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 ioBroker Enums/Aufz\xe4hlungen. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c. \u041f\u0443\u0441\u0442\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 - {}","not activated":"\u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d","Google devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Google","Show/Hide help":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c / \u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043c\u043e\u0449\u044c","Show all devices for print out":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438","Search":"\u041f\u043e\u0438\u0441\u043a","List of devices to print out, e.g. to give all device names to your partner.":"\u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0443/\u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0448\u0435.","Name":"\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","Function":"\u0444\u0443\u043d\u043a\u0446\u0438\u044f","Room":"\u041a\u043e\u043c\u043d\u0430\u0442\u0430","Copy to clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","Toggle expert mode":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430","ID":"ID","Smart names":"\u0423\u043c\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430","ioBType":"\u0422\u0438\u043f IoB","Function/Trait":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f / \u0422\u0440","Attributes":"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b","Auto":"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438","Conversation to GH":"\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 GH","Conversation to ioB":"\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 ioB","Information: The skill linking process was changed!":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: \u0418\u0437\u043c\u0435\u043d\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043d\u0430\u0432\u044b\u043a\u043e\u0432!","The linking process has been changed for a few months.":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438.","Now there is no temporary password that will be sent by email.":"\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u043f\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u0435.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\u041f\u0430\u0440\u043e\u043b\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 ioBroker.pro \u0438 \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0432\u0432\u0435\u0434\u0435\u043d \u0437\u0434\u0435\u0441\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445!","Not understood":"\u041d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e","Roger that":"\u041f\u043e\u043d\u044f\u0442\u043d\u043e","Read blood sugar from":"\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0430\u0445\u0430\u0440\u0430 \u0432 \u043a\u0440\u043e\u0432\u0438 \u0438\u0437","Get actual humidity":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c","Get motion":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435","Get contact":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430"}')},334:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Defina para 0 se o comportamento n\xe3o for desejado)","(you can separate names with comma)":"Voc\xea pode inserir v\xe1rios nomes divididos por v\xedrgula","Active":"Ativo","Add device":"Adicionar dispositivo","Add service":"Adicionar servi\xe7o","Addresses":"Endere\xe7os","Alexa devices":"Dispositivos Alexa","Alisa devices":"Dispositivos Alisa","Allow admin access (only pro)":"Permitir acesso de administrador (apenas pro)","Allow self-signed certificates":"Permitir certificados auto-assinados","Amazon Alexa":"Amazon Alexa","Are you sure?":"Voc\xea tem certeza?","Attributes has not correct JSON format.":"Os atributos n\xe3o est\xe3o no formato JSON correto.","Authentication must be disabled. You can create second instance extra for cloud.":"A autentica\xe7\xe3o deve ser desativada. Voc\xea pode criar uma segunda inst\xe2ncia extra para a nuvem.","Cancel":"Cancelar","Cannot add this object":"N\xe3o \xe9 poss\xedvel adicionar este objeto, porque n\xe3o \xe9 suportado.","Cannot read devices!":"N\xe3o \xe9 poss\xedvel ler dispositivos!","Certificates will be updated after initiated restart":"Os certificados ser\xe3o atualizados ap\xf3s a primeira reinicializa\xe7\xe3o","Certificates will be updated after start":"Certificados ser\xe3o atualizados ap\xf3s o in\xedcio","Click now Get new connection certificates to request new temporary password":"Clique agora \\"Obter novos certificados de conex\xe3o\\" para solicitar uma nova senha tempor\xe1ria","Close":"Feixar","Cloud URL":"URL da nuvem","Cloud adapter settings":"Configura\xe7\xf5es do adaptador de nuvem","Commands":"Comandos","Concatenate words with":"Concatenar palavras com","Connection timeout":"Tempo limite de conex\xe3o (ms)","Debug outputs":"Sa\xeddas de depura\xe7\xe3o","Decrement color temperature":"Temperatura de cor decrescente","Decrement percentage":"Percentual de decr\xe9scimo","Decrement target temperature":"Temperatura alvo de descida","Default":"Padr\xe3o","Device %s was not added":"O dispositivo %s n\xe3o foi adicionado","Device will be deactivated.":"O dispositivo ser\xe1 desativado.","Device will be disabled.":"O dispositivo ser\xe1 desabilitado.","Dimmer":"regulador de luz","Duplicate name":"Duplicar nome","Edit smart name":"Edite o nome inteligente","Error":"Erro","Extended options":"Configura\xe7\xe3o avan\xe7ada","Filter":"Filtro","For help use this forum":"Para obter ajuda, visite este f\xf3rum postar","Functions":"Fun\xe7\xf5es","Get actual temperature":"Obter temperatura atual","Get new connection certificates":"Obter novos certificados de conex\xe3o","Get new service URL key":"Obter nova chave do URL de servi\xe7o","Get target temperature":"Obter temperatura desejada","Google Home":"Google Home","IFTTT key":"Chave IFTTT","Increment color temperature":"Incremento da temperatura de cor","Increment percentage":"Percentual de incremento","Increment target temperature":"Incremento da temperatura desejada","Instance":"Inst\xe2ncia","Instance does not exists":"Inst\xe2ncia n\xe3o existe","Instance is not active.":"A inst\xe2ncia n\xe3o est\xe1 ativa.","Instance must be enabled":"A inst\xe2ncia deve estar ativada","Instance must run to deliver the data":"A inst\xe2ncia deve ser executada para obter os dados","Invalid object":"Objeto inv\xe1lido","Language":"L\xedngua","Load configuration from file":"Carregar configura\xe7\xe3o do arquivo","Message":"mensagem","OFF level for switches":"N\xedvel OFF para interruptores","OFF level for switches in %":"N\xedvel OFF para interruptores em%","Off":"desligado","Ok":"Ok","On":"ligado","On/Off":"ligado/desligado","Options":"Op\xe7\xf5es","Personal settings (only pro)":"Configura\xe7\xf5es pessoais (somente pro)","Ping timeout:":"Tempo limite de ping (ms)","Place function in names first":"Coloque a fun\xe7\xe3o na frente dos nomes","Please add action and trait to complete the Google Home state.":"Adicione a\xe7\xe3o e caracter\xedstica para concluir o estado da P\xe1gina inicial do Google.","Please add type and trait to complete the Google Home state.":"Adicione tipo e caracter\xedstica para concluir o estado da P\xe1gina inicial do Google.","Please select object ID...":"Por favor selecione o ID do objeto ...","Please write your email only in lower case letters":"Por favor, escreva seu e-mail apenas em letras min\xfasculas","Read lock state":"Ler estado de bloqueio","Replace in names":"Substitua nos nomes","Request email with password one more time":"Solicite email com senha mais uma vez","Restart on disconnect":"Reiniciar na desconex\xe3o","Review":"Reveja","Rooms":"quartos","Save":"Salve","Save and close":"Salvar e fechar","Save configuration to file":"Salvar configura\xe7\xe3o no arquivo","Save settings and the names will be changed":"Salve as configura\xe7\xf5es e os nomes ser\xe3o alterados","Select":"Selecione","Service names":"Nome do servi\xe7o","Services and IFTTT":"Servi\xe7os e IFTTT","Set color":"Definir cor","Set color temperature":"Definir temperatura de cor","Set lock state":"Definir estado de bloqueio","Set percentage":"Definir porcentagem","Set target temperature":"Definir temperatura desejada","Smart Devices":"Dispositivos inteligentes","Smart Enums":"Enumera\xe7\xe3o inteligentes","Smart Media":"Smart Media","Smart enums":"Enumera\xe7\xe3o inteligentes","Smart name":"Nome inteligente","Smart name for %s":"Nome inteligente para %s","To apply this setting, the restart of adapter must be done. Agree?":"Para aplicar esta configura\xe7\xe3o, o adaptador tem que ser reiniciado. Aceita?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Para detec\xe7\xe3o autom\xe1tica, coloque embaixo dos objetos em um canal (dispositivo se n\xe3o houver canal) uma sala e fun\xe7\xe3o tamb\xe9m. N\xe3o \xe9 suficiente atribuir um estado ou dispositivo. Salas/fun\xe7\xf5es podem ser adicionadas enumeradas e devem ser ativadas no adaptador IoT em Enumera\xe7\xe3o inteligente. Para detectar automaticamente estados manuais novamente, o estado deve ser limpo.","Turn off":"Desligar","Turn on":"Ligar","Type":"Tipo","Types":"Tipos","Use Nightscout instance":"Use a inst\xe2ncia Nightscout","Use following link for IFTTT":"Use o seguinte link para IFTTT","Use following link for custom service":"Use o seguinte link para o outros servi\xe7os","Use text2command instance":"Use a inst\xe2ncia text2command","Value":"Valor","White list for services":"Lista branca para servi\xe7os","Write response to":"Escreva a resposta para","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex Alice","You can enter several names divided by comma":"Voc\xea pode inserir v\xe1rios nomes divididos por v\xedrgula","amazon link":"Se voc\xea usa o ioBroker skill para a Alexa, escreva um coment\xe1rio para n\xf3s aqui.
Exemplos podem ser encontrados aqui.","by ON":"por ON","clear":"limpar","default":"padr\xe3o","disabled":"desativado","help_link_tip1":"Antes de escrever para o suporte, certifique-se de ler e entender as instru\xe7\xf5es da p\xe1gina da Web: https://www.iobroker.net","help_link_tip2":"Se voc\xea ainda tiver problemas com a conex\xe3o com o Iot, poder\xe1 solicitar suporte no F\xf3rum","help_link_tip3":"e somente depois disso, voc\xea deve escrever um email para support@iobroker.com","help_tip":"Nenhuma conta no iobroker.pro? Registe-se gratuamente no https://iobroker.pro , para obter um acesso limitado ou compre um acesso sem limita\xe7\xe3o.","info_allowedServices":"dividido por v\xedrgula. Use * para permitir todos os servi\xe7os.","info_iftttKey":"Voc\xea pode encontrar sua chave aqui, no bot\xe3o \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"Senha do ioBroker.pro","last value":"\xfaltimo valor","modified":"O nome foi modificado pelo usu\xe1rio","no type":"nenhum tipo","tooltip_allowSelfSignedCertificate":"Se voc\xea usa sua pr\xf3pria nuvem, voc\xea pode permitir o uso de certificados auto-assinados para a nuvem.","tooltip_apikey":"Essa chave \xe9 necess\xe1ria para se comunicar com uma nuvem. Voc\xea pode obter a API-KEY em https://iobroker.net. A chave parece tem esse formato: apelido_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente, voc\xea n\xe3o precisa mud\xe1-lo. S\xf3 \xe9 necess\xe1rio se voc\xea planeja usar sua pr\xf3pria nuvem.","tooltip_concatWord":"Defina como concatenar o Quarto e a Fun\xe7\xe3o. Por exemplo com \'na\': luz na sala de estar.","tooltip_deviceOffLevel":"Alguns grupos consistem em dispositivos mistos: regulador de luz e interruptores. \xc9 permitido control\xe1-los com comandos ligar/desligar e com porcentagens","tooltip_functionFirst":"Normalmente, os nomes s\xe3o gerados no esquema quarto_fun\xe7\xe3o. Aqui pode mudar para fun\xe7\xe3o_quarto.","tooltip_instance":"Inst\xe2ncia da Web, que ser\xe1 mostrada para suas conex\xf5es a da nuvem.","tooltip_language":"Voc\xea pode definir os idiomas para mudar rapidamente entre o skill da Alexa do EUA e o da Alem\xe3nha.","tooltip_noCommon":"Se ativado, as configura\xe7\xf5es ser\xe3o armazenadas somente para esta inst\xe2ncia. Ent\xe3o, na outra inst\xe2ncia, outros nomes podem ser definidos.","tooltip_responseOID":"Para cada comando, uma resposta de texto \xe9 gerada. Aqui voc\xea pode especificar o ID do objeto ao qual a resposta de texto deve ser enviada, por exemplo sayit.0.tts.text.","tooltip_restartOnDisconnect":"Solu\xe7\xe3o alternativa para falta de comunica\xe7\xe3o com o Alexa ap\xf3s a desconex\xe3o. Isso pode for\xe7ar voc\xea a reiniciar o adaptador e solucionar o problema.","Short answer for blood sugar":"Resposta curta para a\xe7\xfacar no sangue","cannot_use_password":"Voc\xea n\xe3o pode usar% na senha. Estamos trabalhando na corre\xe7\xe3o.","invalid_password_warning":"A senha deve ter pelo menos 8 caracteres e deve ter n\xfameros, letras mai\xfasculas e min\xfasculas. Altere-o no perfil ioBroker.pro\\n","new_certs_tip":"Se voc\xea fez uma restaura\xe7\xe3o a partir do backup ou moveu sua inst\xe2ncia de um dispositivo para outro ou excluiu a inst\xe2ncia da IoT e a adicionou novamente, carregue os certificados de seguran\xe7a da conex\xe3o com este bot\xe3o","new_credentials_tip":"Se voc\xea restaurou sua senha do ioBroker.pro, pode sincroniz\xe1-la com Alexa/Google/Alisa com este bot\xe3o.","Create IoT credentials anew":"Crie credenciais de IoT novamente","forum_tip":"Qualquer d\xfavida em qualquer idioma, pergunte aqui no f\xf3rum: link ","Save settings before pressing this button":"Salve as configura\xe7\xf5es antes de pressionar este bot\xe3o","Auto Mode":"Modo autom\xe1tico","Manual Mode":"Modo manual","manualModeHint":"Selecione um TYPE e um TRAIT depois de adicionar um estado. Para adicionar v\xe1rios tra\xe7os, adicione um ID e tra\xe7o diferentes, mas o mesmo nome, tipo e sala inteligentes. V\xedrgula separada para os v\xe1rios nomes inteligentes. Para atribuir uma sala, use o ioBroker Enums/Aufz\xe4hlungen. Com os atributos, voc\xea pode, por exemplo, definir um intervalo para a temperatura da cor. Atributos que voc\xea pode encontrar aqui. O atributo vazio \xe9 {}","not activated":"n\xe3o ativado","Google devices":"Dispositivos do Google","Show/Hide help":"Mostrar / ocultar ajuda","Show all devices for print out":"Mostrar todos os dispositivos para impress\xe3o","Search":"Procurar","List of devices to print out, e.g. to give all device names to your partner.":"Lista de dispositivos a serem impressos, p. para dar todos os nomes de dispositivos ao seu parceiro.","Name":"Nome","Function":"Fun\xe7\xe3o","Room":"Quarto","Copy to clipboard":"Copiar para \xe1rea de transfer\xeancia","Toggle expert mode":"Alternar modo especialista","ID":"ID","Smart names":"Nomes inteligentes","ioBType":"Tipo IoB","Function/Trait":"Fun\xe7\xe3o / Tra\xe7o","Attributes":"Atributos","Auto":"Automaticamente","Conversation to GH":"Converta para GH","Conversation to ioB":"Converta para ioB","Information: The skill linking process was changed!":"Informa\xe7\xf5es: O processo de vincula\xe7\xe3o de habilidades foi alterado!","The linking process has been changed for a few months.":"O processo de vincula\xe7\xe3o foi alterado por alguns meses.","Now there is no temporary password that will be sent by email.":"Agora n\xe3o existe uma senha tempor\xe1ria que ser\xe1 enviada por e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"A senha \xe9 igual a ioBroker.pro e com a senha que foi digitada aqui nas configura\xe7\xf5es!","Not understood":"N\xe3o entendido","Roger that":"Entendido","Read blood sugar from":"Leia o a\xe7\xfacar no sangue de","Get actual humidity":"Obtenha a umidade real","Get motion":"Mexa-se","Get contact":"Obter status de contato"}')},335:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Stel in op 0 als gedrag niet gewenst is)","(you can separate names with comma)":"U kunt verschillende namen invoeren, gescheiden door een komma","Active":"Actief","Add device":"Voeg toestel toe","Add service":"Service toevoegen","Addresses":"adressen","Alexa devices":"Alexa-apparaten","Alisa devices":"Alisa-apparaten","Allow admin access (only pro)":"Beheerrechten toestaan \u200b\u200b(alleen pro)","Allow self-signed certificates":"Sta zelf-ondertekende certificaten toe","Amazon Alexa":"Amazon Alexa","Are you sure?":"Weet je het zeker?","Attributes has not correct JSON format.":"Attributen hebben niet de juiste JSON-indeling","Authentication must be disabled. You can create second instance extra for cloud.":"Verificatie moet zijn uitgeschakeld. U kunt een tweede exemplaar extra voor de cloud maken.","Cancel":"Annuleer","Cannot add this object":"Kan dit object niet toevoegen, omdat het niet wordt ondersteund.","Cannot read devices!":"Kan geen apparaten lezen!","Certificates will be updated after initiated restart":"Certificaten worden bijgewerkt na de herstart opnieuw gestart","Certificates will be updated after start":"Certificaten worden na het opstarten bijgewerkt","Click now Get new connection certificates to request new temporary password":"Klik nu op \\"Nieuwe verbindingscertificaten verkrijgen\\" om een \u200b\u200bnieuw tijdelijk wachtwoord aan te vragen","Close":"Dichtbij","Cloud URL":"Cloud URL","Cloud adapter settings":"Cloud adapter-instellingen","Commands":"commando\'s","Concatenate words with":"Woorden samenvoegen met","Connection timeout":"Verbinding time-out (ms)","Debug outputs":"Debug-uitgangen","Decrement color temperature":"Verlaag de kleurtemperatuur","Decrement percentage":"Verlagingspercentage","Decrement target temperature":"Verlaag de doeltemperatuur","Default":"Standaard","Device %s was not added":"Apparaat %s is niet toegevoegd","Device will be deactivated.":"Apparaat wordt gedeactiveerd.","Device will be disabled.":"Apparaat %s zal worden uitgeschakeld.","Dimmer":"dimmer","Duplicate name":"Dubbele naam","Edit smart name":"Bewerk slimme naam","Error":"Fout","Extended options":"Uitgebreide opties","Filter":"Filter","For help use this forum":"Ga voor hulp naar dit forum post","Functions":"functies","Get actual temperature":"Krijg de werkelijke temperatuur","Get new connection certificates":"Ontvang nieuwe verbindingscertificaten","Get new service URL key":"Ontvang nieuwe service URL-sleutel","Get target temperature":"Krijg doeltemperatuur","Google Home":"Google Home","IFTTT key":"IFTTT-sleutel","Increment color temperature":"Verhoog de kleurtemperatuur","Increment percentage":"Verhoging percentage","Increment target temperature":"Verhoog de doeltemperatuur","Instance":"Aanleg","Instance does not exists":"Instantie bestaat niet","Instance is not active.":"Instantie is niet actief.","Instance must be enabled":"Exemplaar moet zijn ingeschakeld","Instance must run to deliver the data":"Het exemplaar moet worden uitgevoerd om de gegevens te bezorgen","Invalid object":"Ongeldig object","Language":"Taal","Load configuration from file":"Laad configuratie vanuit bestand","Message":"Bericht","OFF level for switches":"UIT-niveau voor schakelaars","OFF level for switches in %":"UIT-niveau voor schakelaars in%","Off":"uit","Ok":"OK","On":"op","On/Off":"Aan uit","Options":"opties","Personal settings (only pro)":"Persoonlijke instellingen (alleen pro)","Ping timeout:":"Ping-timeout (ms)","Place function in names first":"Plaats eerst de functie in namen","Please add action and trait to complete the Google Home state.":"Voeg actie en eigenschap toe om de Google Home-status te voltooien.","Please add type and trait to complete the Google Home state.":"Voeg type en kenmerk toe om de Google Home-status te voltooien.","Please select object ID...":"Selecteer een object-ID ...","Please write your email only in lower case letters":"Schrijf uw e-mail alleen in kleine letters","Read lock state":"Lees de vergrendelingsstatus","Replace in names":"Vervangen in namen","Request email with password one more time":"E-mail met wachtwoord nog een keer aanvragen","Restart on disconnect":"Opnieuw opstarten bij verbreken","Review":"Beoordeling","Rooms":"kamers","Save":"Opslaan","Save and close":"Opslaan en sluiten","Save configuration to file":"Sla configuratie op naar bestand","Save settings and the names will be changed":"Sla instellingen op en de namen worden gewijzigd","Select":"kiezen","Service names":"Servicenamen","Services and IFTTT":"Diensten en IFTTT","Set color":"Stel de kleur in","Set color temperature":"Stel de kleurtemperatuur in","Set lock state":"Stel de vergrendelingsstatus in","Set percentage":"Percentage instellen","Set target temperature":"Stel de doeltemperatuur in","Smart Devices":"Slimme apparaten","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Slim enums","Smart name":"Slimme naam","Smart name for %s":"Slimme naam voor %s","To apply this setting, the restart of adapter must be done. Agree?":"Om deze instelling toe te passen, moet de adapter opnieuw worden opgestart. Mee eens?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Voor automatische detectie wijst onder objecten een kanaal (apparaat als er geen kanaal beschikbaar is) toe aan een kamer en functie. Het is niet voldoende om de kamer toe te wijzen aan een staat of apparaat. Kamers/functies kunnen worden toegevoegd onder opsomming (aangegeven door de witte pijl in de rechterbovenhoek) en moeten worden geactiveerd in de IoT-adapter onder Intelligente opsomming. Om handmatige statussen automatisch te herkennen, moet de status worden verwijderd.","Turn off":"Uitschakelen","Turn on":"Aanzetten","Type":"Type","Types":"Soorten","Use Nightscout instance":"Gebruik de Nightscout-instantie","Use following link for IFTTT":"Gebruik de volgende link voor IFTTT","Use following link for custom service":"Gebruik de volgende link voor aangepaste service","Use text2command instance":"Gebruik de text2command-instantie","Value":"Waarde","White list for services":"Witte lijst voor services","Write response to":"Schrijf reactie op","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"U kunt verschillende namen invoeren, gescheiden door een komma","amazon link":"Als je de Alexa Skill gebruikt, schrijf dan een recensie voor ons hier.
Voorbeelden zijn hier te vinden.","by ON":"door ON","clear":"wissen","default":"standaard","disabled":"invalide","help_link_tip1":"Voordat u ter ondersteuning schrijft, moet u ervoor zorgen dat u de instructies van de webpagina hebt gelezen en begrepen: https://www.iobroker.net","help_link_tip2":"Als je nog steeds problemen hebt met de verbinding met Iot, kun je support im Forum aanvragen","help_link_tip3":"en pas daarna moet u een e-mail schrijven naar support@iobroker.com","help_tip":"Geen iobroker.pro-account? Koop het op https://iobroker.pro voor gevalideerde toegang of krijg gratis toegang, maar beperkte toegang.","info_allowedServices":"gedeeld door een komma. Gebruik * om alle services toe te staan.","info_iftttKey":"Je kunt je belangrijkste hier vinden onder \'Documentatie\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Wachtwoord","last value":"laatste waarde","modified":"Naam is gewijzigd door gebruiker","no type":"geen type","tooltip_allowSelfSignedCertificate":"Als u uw eigen cloud gebruikt, kunt u het gebruik van zelfondertekende certificaten voor de cloud toestaan.","tooltip_apikey":"Deze sleutel is vereist om te communiceren met een cloud. Je kunt de API-KEY op https://iobroker.net krijgen en het lijkt op nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normaal gesproken hoeft u dit niet te veranderen. Alleen vereist als u van plan bent uw eigen cloud te gebruiken.","tooltip_concatWord":"Bepaal hoe kamer en functie moeten worden samengevoegd. Bijv. met \'in\': licht in de woonkamer.","tooltip_deviceOffLevel":"Sommige groepen bestaan \u200b\u200buit gemengde apparaten: dimmers en schakelaars. Het is toegestaan \u200b\u200bom ze te besturen met AAN- en UIT-commando\'s en met percentages","tooltip_functionFirst":"Normaal gezien zien de namen eruit als room_function. Hier kun je het omschakelen naar function_room.","tooltip_instance":"Web-instantie, die wordt weergegeven voor uw verbindingen vanuit de cloud.","tooltip_language":"Je kunt de talen defini\xebren om snel te schakelen tussen US Alexa Skill en DE Alexa Skill.","tooltip_noCommon":"Indien ingeschakeld, worden de instellingen alleen voor deze instantie opgeslagen. Dus in het andere geval kunnen de andere namen worden ingesteld.","tooltip_responseOID":"Voor elke opdracht wordt het tekstantwoord gegenereerd. U kunt hier de Object-ID defini\xebren, waar deze tekst naartoe moet worden geschreven. Bijv. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Oplossing voor ontbrekende verbinding met Alexa nadat de verbinding met de cloud verloren was gegaan. Met deze optie kunt u de adapter opnieuw opstarten na elke verbreking en het zal werken.","Short answer for blood sugar":"Kort antwoord voor bloedsuiker","cannot_use_password":"U kunt% in wachtwoord niet gebruiken. We werken aan de oplossing.","invalid_password_warning":"Wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters en kleine letters bevatten. Wijzig dit in het ioBroker.pro-profiel\\n","new_certs_tip":"Als u een herstelbewerking hebt uitgevoerd vanaf een back-up of uw instantie van het ene apparaat naar het andere hebt verplaatst of het IoT-exemplaar hebt verwijderd en opnieuw hebt toegevoegd, moet u de verbindingsbeveiligingscertificaten met deze knop laden","new_credentials_tip":"Als je je ioBroker.pro-wachtwoord hebt hersteld, kun je je wachtwoord synchroniseren met Alexa/Google/Alisa met deze knop.","Create IoT credentials anew":"Maak opnieuw IoT-inloggegevens","forum_tip":"Voor vragen in welke taal dan ook, stel deze hier op het forum: link ","Save settings before pressing this button":"Sla de instellingen op voordat u op deze knop drukt","Auto Mode":"Automatische modus","Manual Mode":"Handmatige modus","manualModeHint":"Selecteer een TYPE en een TRAIT na het toevoegen van een staat. Om meerdere eigenschappen toe te voegen, voegt u een andere id en eigenschap toe, maar dezelfde slimme naam, type en kamer. Door komma\'s gescheiden voor de meerdere slimme namen. Gebruik de ioBroker Enums/Aufz\xe4hlungen om een kamer toe te wijzen. Met attributen kun je bijvoorbeeld een bereik instellen voor de kleurtemperatuur Info over Kenmerken die u hier kunt vinden. Leeg kenmerk is {}","not activated":"niet geactiveerd","Google devices":"Google-apparaten","Show/Hide help":"Help weergeven / verbergen","Show all devices for print out":"Alle apparaten weergeven om af te drukken","Search":"Zoeken","List of devices to print out, e.g. to give all device names to your partner.":"Lijst met af te drukken apparaten, b.v. om alle apparaatnamen aan uw partner te geven.","Name":"Naam","Function":"Functie","Room":"Kamer","Copy to clipboard":"Kopieer naar klembord","Toggle expert mode":"Schakel de expertmodus in","ID":"ID","Smart names":"Slimme namen","ioBType":"IoB-type","Function/Trait":"Functie / eigenschap","Attributes":"Attributen","Auto":"Automatisch","Conversation to GH":"Converteer naar GH","Conversation to ioB":"Converteer naar ioB","Information: The skill linking process was changed!":"Informatie: het proces voor het koppelen van vaardigheden is gewijzigd!","The linking process has been changed for a few months.":"Het koppelingsproces is voor een paar maanden gewijzigd.","Now there is no temporary password that will be sent by email.":"Nu is er geen tijdelijk wachtwoord dat per e-mail wordt verzonden.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Het wachtwoord is gelijk aan ioBroker.pro en met het wachtwoord dat hier in de instellingen is ingevoerd!","Not understood":"Niet begrepen","Roger that":"Begrepen","Read blood sugar from":"Lees de bloedsuikerspiegel van","Get actual humidity":"Verkrijg de werkelijke luchtvochtigheid","Get motion":"Krijg beweging","Get contact":"Krijg contactstatus"}')},336:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Mettre \xe0 0 si le comportement n\'est pas d\xe9sir\xe9)","(you can separate names with comma)":"Vous pouvez entrer plusieurs noms divis\xe9s par une virgule","Active":"actif","Add device":"Ajouter un appareil","Add service":"Ajouter un service","Addresses":"Adresses","Alexa devices":"Appareils Alexa","Alisa devices":"Appareils Alisa","Allow admin access (only pro)":"Autoriser l\'acc\xe8s administrateur (uniquement pro)","Allow self-signed certificates":"Autoriser les certificats auto-sign\xe9s","Amazon Alexa":"Amazon Alexa","Are you sure?":"\xcates-vous s\xfbr?","Attributes has not correct JSON format.":"Les attributs ne sont pas au format JSON correct","Authentication must be disabled. You can create second instance extra for cloud.":"L\'authentification doit \xeatre d\xe9sactiv\xe9e. Vous pouvez cr\xe9er une seconde instance suppl\xe9mentaire pour le cloud.","Cancel":"Annuler","Cannot add this object":"Impossible d\'ajouter cet objet, car non pris en charge.","Cannot read devices!":"Impossible de lire les appareils!","Certificates will be updated after initiated restart":"Les certificats seront mis \xe0 jour apr\xe8s le red\xe9marrage initi\xe9","Certificates will be updated after start":"Les certificats seront mis \xe0 jour apr\xe8s le d\xe9marrage","Click now Get new connection certificates to request new temporary password":"Cliquez maintenant sur \\"Obtenir de nouveaux certificats de connexion\\" pour demander un nouveau mot de passe temporaire.","Close":"Fermer","Cloud URL":"URL de cloud","Cloud adapter settings":"Param\xe8tres de l\'adaptateur cloud","Commands":"Commandes","Concatenate words with":"Concat\xe9ner les mots avec","Connection timeout":"D\xe9lai de connexion (ms)","Debug outputs":"D\xe9boguer les sorties","Decrement color temperature":"D\xe9cr\xe9menter la temp\xe9rature de couleur","Decrement percentage":"Pourcentage de d\xe9cr\xe9mentation","Decrement target temperature":"D\xe9cr\xe9menter la temp\xe9rature cible","Default":"D\xe9faut","Device %s was not added":"Le p\xe9riph\xe9rique %s n\'a pas \xe9t\xe9 ajout\xe9","Device will be deactivated.":"L\'appareil sera d\xe9sactiv\xe9.","Device will be disabled.":"L\'appareil %s sera d\xe9sactiv\xe9.","Dimmer":"Variateur","Duplicate name":"Nom en double","Edit smart name":"Modifier le nom intelligent","Error":"Erreur","Extended options":"Options \xe9tendues","Filter":"Filtre","For help use this forum":"Pour obtenir de l\'aide, visitez ce forum publier","Functions":"Les fonctions","Get actual temperature":"Obtenir la temp\xe9rature r\xe9elle","Get new connection certificates":"Obtenir de nouveaux certificats de connexion","Get new service URL key":"Obtenir une nouvelle cl\xe9 d\'URL de service","Get target temperature":"Obtenir la temp\xe9rature cible","Google Home":"Google Home","IFTTT key":"Touche IFTTT","Increment color temperature":"Incr\xe9ment de temp\xe9rature de couleur","Increment percentage":"Pourcentage d\'incr\xe9ment","Increment target temperature":"Augmenter la temp\xe9rature cible","Instance":"Exemple","Instance does not exists":"L\'instance n\'existe pas","Instance is not active.":"L\'instance n\'est pas active.","Instance must be enabled":"L\'instance doit \xeatre activ\xe9e","Instance must run to deliver the data":"L\'instance doit s\'ex\xe9cuter pour fournir les donn\xe9es","Invalid object":"Objet invalide","Language":"La langue","Load configuration from file":"Charger la configuration du fichier","Message":"Message","OFF level for switches":"Niveau OFF pour les commutateurs","OFF level for switches in %":"Niveau OFF pour les commutateurs en%","Off":"de","Ok":"D\'accord","On":"sur","On/Off":"Allum\xe9 \xe9teint","Options":"Options","Personal settings (only pro)":"Param\xe8tres personnels (uniquement pro)","Ping timeout:":"Ping timeout (ms)","Place function in names first":"Placez la fonction dans les noms en premier","Please add action and trait to complete the Google Home state.":"Veuillez ajouter une action et un trait pour terminer l\'\xe9tat de Google Home.","Please add type and trait to complete the Google Home state.":"Veuillez ajouter un type et un trait pour terminer l\'\xe9tat de Google Home.","Please select object ID...":"Veuillez s\xe9lectionner l\'ID d\'objet ...","Please write your email only in lower case letters":"S\'il vous pla\xeet \xe9crivez votre email uniquement en minuscules","Read lock state":"\xc9tat verrouill\xe9","Replace in names":"Remplacer dans les noms","Request email with password one more time":"Demander l\'email avec le mot de passe une fois de plus","Restart on disconnect":"Red\xe9marrer \xe0 la d\xe9connexion","Review":"La revue","Rooms":"Pi\xe8ces","Save":"sauvegarder","Save and close":"Sauver et fermer","Save configuration to file":"Enregistrer la configuration dans un fichier","Save settings and the names will be changed":"Enregistrer les param\xe8tres et les noms seront modifi\xe9s","Select":"S\xe9lectionner","Service names":"Noms de service","Services and IFTTT":"Services et IFTTT","Set color":"D\xe9finir la couleur","Set color temperature":"R\xe9gler la temp\xe9rature de couleur","Set lock state":"D\xe9finir l\'\xe9tat de verrouillage","Set percentage":"D\xe9finir le pourcentage","Set target temperature":"R\xe9gler la temp\xe9rature cible","Smart Devices":"Smart Devices","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Smart enums","Smart name":"Nom intelligent","Smart name for %s":"Nom intelligent pour %s","To apply this setting, the restart of adapter must be done. Agree?":"Pour appliquer ce param\xe8tre, l\'adaptateur doit \xeatre red\xe9marr\xe9. Se mettre d\'accord?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Pour la d\xe9tection automatique, sous les objets, affectez un canal (appareil si aucun canal n\'est disponible) \xe0 une pi\xe8ce et une fonction. Il ne suffit pas d\'affecter la pi\xe8ce \xe0 un \xe9tat ou \xe0 un appareil. Les salles/fonctions peuvent \xeatre ajout\xe9es sous l\'\xe9num\xe9ration (indiqu\xe9e par la fl\xe8che blanche en haut \xe0 droite) et doivent \xeatre activ\xe9es dans l\'adaptateur IoT sous l\'\xe9num\xe9ration intelligente. Afin de reconna\xeetre automatiquement les \xe9tats manuels, l\'\xe9tat doit \xeatre supprim\xe9.","Turn off":"\xc9teindre","Turn on":"Allumer","Type":"Type","Types":"Les types","Use Nightscout instance":"Utilisez l\'instance Nightscout","Use following link for IFTTT":"Utilisez le lien suivant pour IFTTT","Use following link for custom service":"Utilisez le lien suivant pour un service personnalis\xe9","Use text2command instance":"Utilisez l\'instance text2command","Value":"Valeur","White list for services":"Liste blanche pour les services","Write response to":"\xc9crire une r\xe9ponse \xe0","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Vous pouvez entrer plusieurs noms divis\xe9s par une virgule","amazon link":"Si vous utilisez la comp\xe9tence Alexa, veuillez \xe9crire une critique pour nous ici.
Des exemples peuvent \xeatre trouv\xe9s ici .","by ON":"par le","clear":"nettoyer","default":"d\xe9faut","disabled":"d\xe9sactiv\xe9e","help_link_tip1":"Avant d\'\xe9crire au support, assurez-vous d\'avoir lu et compris les instructions de la page Web: https://www.iobroker.net","help_link_tip2":"Si vous rencontrez toujours des probl\xe8mes avec la connexion \xe0 Iot, vous pouvez demander une assistance dans le forum","help_link_tip3":"et seulement apr\xe8s cela, vous devez \xe9crire un e-mail \xe0 support@iobroker.com","help_tip":"Pas de compte iobroker.pro? Achetez-le sur https://iobroker.pro pour un acc\xe8s valid\xe9 ou obtenez gratuitement un acc\xe8s limit\xe9.","info_allowedServices":"divis\xe9 par virgule. Utilisez * pour autoriser tous les services.","info_iftttKey":"Vous pouvez trouver votre cl\xe9 ici sous \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"Mot de passe ioBroker.pro","last value":"derni\xe8re valeur","modified":"Le nom a \xe9t\xe9 modifi\xe9 par l\'utilisateur","no type":"pas de type","tooltip_allowSelfSignedCertificate":"Si vous utilisez votre propre cloud, vous pouvez autoriser l\'utilisation de certificats autosign\xe9s pour le cloud.","tooltip_apikey":"Cette cl\xe9 est requise pour communiquer avec un nuage. Vous pouvez obtenir l\'API-KEY sur https://iobroker.net et il ressemble \xe0 pseudo_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalement, vous n\'avez pas besoin de le changer. Uniquement n\xe9cessaire si vous pr\xe9voyez d\'utiliser votre propre cloud.","tooltip_concatWord":"D\xe9finir la concat\xe9nation de la pi\xe8ce et de la fonction. Par exemple. avec \'in\': Lumi\xe8re dans le salon.","tooltip_deviceOffLevel":"Certains groupes sont compos\xe9s de dispositifs mixtes: gradateurs et commutateurs. Il est permis de les contr\xf4ler avec des commandes ON et OFF et avec des pourcentages","tooltip_functionFirst":"Normalement, les noms ressemblent \xe0 room_function. Ici vous pouvez passer \xe0 function_room.","tooltip_instance":"Instance Web, qui sera affich\xe9e pour vos connexions depuis le cloud.","tooltip_language":"Vous pouvez d\xe9finir les langues pour passer rapidement entre les comp\xe9tences am\xe9ricaines Alexa et DE Alexa.","tooltip_noCommon":"Si activ\xe9, les param\xe8tres seront stock\xe9s uniquement pour cette instance. Dans un autre cas, les autres noms pourraient \xeatre d\xe9finis.","tooltip_responseOID":"Pour chaque commande, la r\xe9ponse textuelle sera g\xe9n\xe9r\xe9e. Vous pouvez d\xe9finir ici l\'ID de l\'objet, o\xf9 ce texte doit \xeatre \xe9crit. Par exemple. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Solution de contournement pour la connexion manquante \xe0 Alexa apr\xe8s la connexion au cloud a \xe9t\xe9 perdue. Avec cette option, vous pouvez red\xe9marrer l\'adaptateur apr\xe8s chaque d\xe9connexion et cela fonctionnera.","Short answer for blood sugar":"R\xe9ponse courte pour la glyc\xe9mie","cannot_use_password":"Vous ne pouvez pas utiliser% dans le mot de passe. Nous travaillons sur le correctif.","invalid_password_warning":"Le mot de passe doit comporter au moins 8 caract\xe8res et doit comporter des chiffres, des lettres majuscules et minuscules. Veuillez le modifier dans le profil ioBroker.pro\\n","new_certs_tip":"Si vous avez effectu\xe9 une restauration \xe0 partir d\'une sauvegarde, ou d\xe9plac\xe9 votre instance d\'un appareil vers un autre ou supprim\xe9 l\'instance IoT et l\'ajout\xe9e \xe0 nouveau, vous devez charger les certificats de s\xe9curit\xe9 de connexion avec ce bouton","new_credentials_tip":"Si vous avez restaur\xe9 votre mot de passe ioBroker.pro, vous pouvez synchroniser votre mot de passe avec Alexa/Google/Alisa avec ce bouton.","Create IoT credentials anew":"Cr\xe9ez \xe0 nouveau les informations d\'identification IoT","forum_tip":"Si vous avez des questions dans n\'importe quelle langue, posez-les ici dans le forum: lien ","Save settings before pressing this button":"Enregistrez les param\xe8tres avant d\'appuyer sur ce bouton","Auto Mode":"Mode automatique","Manual Mode":"Mode manuel","manualModeHint":"Veuillez s\xe9lectionner un TYPE et un TRAIT apr\xe8s avoir ajout\xe9 un \xe9tat. Pour ajouter plusieurs traits, ajoutez un identifiant et un trait diff\xe9rents, mais le m\xeame nom intelligent, le m\xeame type et la m\xeame pi\xe8ce. S\xe9par\xe9 par des virgules pour les multiples noms intelligents. Pour attribuer une chambre, veuillez utiliser les ioBroker Enums/Aufz\xe4hlungen. Avec les attributs, vous pouvez par exemple d\xe9finir une plage de temp\xe9rature de couleur Infos sur Les attributs que vous pouvez trouver ici. L\'attribut vide est {}","not activated":"non activ\xe9","Google devices":"Appareils Google","Show/Hide help":"Afficher / masquer l\'aide","Show all devices for print out":"Afficher tous les appareils \xe0 imprimer","Search":"Chercher","List of devices to print out, e.g. to give all device names to your partner.":"Liste des p\xe9riph\xe9riques \xe0 imprimer, par ex. pour donner tous les noms d\'appareils \xe0 votre partenaire.","Name":"Nom","Function":"Fonction","Room":"Chambre","Copy to clipboard":"Copier dans le presse-papier","Toggle expert mode":"Basculer en mode expert","ID":"ID","Smart names":"Noms intelligents","ioBType":"Type IoB","Function/Trait":"Fonction / trait","Attributes":"Les attributs","Auto":"Automatiquement","Conversation to GH":"Convertir en GH","Conversation to ioB":"Convertir en ioB","Information: The skill linking process was changed!":"Information: le processus de liaison des comp\xe9tences a \xe9t\xe9 modifi\xe9!","The linking process has been changed for a few months.":"Le processus de mise en relation a \xe9t\xe9 modifi\xe9 depuis quelques mois.","Now there is no temporary password that will be sent by email.":"D\xe9sormais, aucun mot de passe temporaire ne sera envoy\xe9 par e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Le mot de passe est \xe9gal \xe0 ioBroker.pro et au mot de passe qui a \xe9t\xe9 saisi ici dans les param\xe8tres!","Not understood":"Pas compris","Roger that":"Bien re\xe7u","Read blood sugar from":"Lire la glyc\xe9mie \xe0 partir de","Get actual humidity":"Obtenez l\'humidit\xe9 r\xe9elle","Get motion":"Obtenez du mouvement","Get contact":"Obtenir le statut du contact"}')},337:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Impostare su 0 se il comportamento non \xe8 desiderato)","(you can separate names with comma)":"\xc8 possibile inserire diversi nomi divisi per virgola","Active":"Attivo","Add device":"Aggiungi dispositivo","Add service":"Aggiungi servizio","Addresses":"indirizzi","Alexa devices":"Dispositivi Alexa","Alisa devices":"Dispositivi Alisa","Allow admin access (only pro)":"Permetti l\'accesso amministratore (solo pro)","Allow self-signed certificates":"Consenti certificati autofirmati","Amazon Alexa":"Amazon Alexa","Are you sure?":"Sei sicuro?","Attributes has not correct JSON format.":"Gli attributi non sono nel formato JSON corretto","Authentication must be disabled. You can create second instance extra for cloud.":"L\'autenticazione deve essere disabilitata. \xc8 possibile creare un extra di seconda istanza per il cloud.","Cancel":"Annulla","Cannot add this object":"Impossibile aggiungere questo oggetto, perch\xe9 non supportato.","Cannot read devices!":"Impossibile leggere i dispositivi!","Certificates will be updated after initiated restart":"I certificati verranno aggiornati dopo il riavvio avviato","Certificates will be updated after start":"I certificati verranno aggiornati dopo l\'avvio","Click now Get new connection certificates to request new temporary password":"Fare clic su \\"Ottieni nuovi certificati di connessione\\" per richiedere una nuova password temporanea","Close":"Vicino","Cloud URL":"URL del cloud","Cloud adapter settings":"Impostazioni dell\'adattatore cloud","Commands":"comandi","Concatenate words with":"Parole concatenate con","Connection timeout":"Timeout connessione (ms)","Debug outputs":"Uscite di debug","Decrement color temperature":"Ridurre la temperatura del colore","Decrement percentage":"Percentuale di decremento","Decrement target temperature":"Ridurre la temperatura target","Default":"Predefinito","Device %s was not added":"Il dispositivo %s non \xe8 stato aggiunto","Device will be deactivated.":"Il dispositivo sar\xe0 disattivato.","Device will be disabled.":"Il dispositivo sar\xe0 disabilitato.","Dimmer":"oscuratore","Duplicate name":"Nome duplicato","Edit smart name":"Modifica il nome intelligente","Error":"Errore","Extended options":"Opzioni estese","Filter":"Filtro","For help use this forum":"Per assistenza, visita questo forum post","Functions":"funzioni","Get actual temperature":"Ottieni la temperatura effettiva","Get new connection certificates":"Ottieni nuovi certificati di connessione","Get new service URL key":"Ottieni una nuova chiave URL del servizio","Get target temperature":"Ottieni la temperatura target","Google Home":"Google Home","IFTTT key":"Tasto IFTTT","Increment color temperature":"Incrementa la temperatura del colore","Increment percentage":"Percentuale di incremento","Increment target temperature":"Incremento della temperatura target","Instance":"Esempio","Instance does not exists":"L\'istanza non esiste","Instance is not active.":"L\'istanza non \xe8 attiva.","Instance must be enabled":"L\'istanza deve essere abilitata","Instance must run to deliver the data":"L\'istanza deve essere eseguita per consegnare i dati","Invalid object":"Oggetto non valido","Language":"Linguaggio","Load configuration from file":"Carica la configurazione dal file","Message":"Messaggio","OFF level for switches":"Livello OFF per interruttori","OFF level for switches in %":"Livello OFF per gli interruttori in%","Off":"via","Ok":"Ok","On":"sopra","On/Off":"Acceso spento","Options":"Opzioni","Personal settings (only pro)":"Impostazioni personali (solo pro)","Ping timeout:":"Timeout del ping (ms)","Place function in names first":"Inserisci la funzione nei nomi prima","Please add action and trait to complete the Google Home state.":"Aggiungi azione e tratto per completare lo stato di Google Home.","Please add type and trait to complete the Google Home state.":"Aggiungi tipo e tratto per completare lo stato di Google Home.","Please select object ID...":"Si prega di selezionare l\'oggetto ID ...","Please write your email only in lower case letters":"Si prega di scrivere la tua email solo in lettere minuscole","Read lock state":"Leggi lo stato di blocco","Replace in names":"Sostituisci nei nomi","Request email with password one more time":"Richiedi l\'email con la password ancora una volta","Restart on disconnect":"Riavvia alla disconnessione","Review":"Revisione","Rooms":"Camere","Save":"Salvare","Save and close":"Salva e chiudi","Save configuration to file":"Salva la configurazione nel file","Save settings and the names will be changed":"Salva le impostazioni e i nomi saranno cambiati","Select":"Selezionare","Service names":"Nomi di servizio","Services and IFTTT":"Servizi e IFTTT","Set color":"Imposta il colore","Set color temperature":"Imposta la temperatura del colore","Set lock state":"Imposta lo stato di blocco","Set percentage":"Imposta la percentuale","Set target temperature":"Imposta la temperatura target","Smart Devices":"Dispositivi intelligenti","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Enumerazioni intelligenti","Smart name":"Nome intelligente","Smart name for %s":"Nome intelligente per %s","To apply this setting, the restart of adapter must be done. Agree?":"Per applicare questa impostazione, \xe8 necessario riavviare l\'adattatore. Essere d\'accordo?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Per il rilevamento automatico, sotto gli oggetti assegnare un canale (dispositivo se non \xe8 disponibile alcun canale) a una stanza e funzione. Non \xe8 sufficiente assegnare la stanza a uno stato o dispositivo. Le sale/funzioni possono essere aggiunte all\'enumerazione (indicata dalla freccia bianca in alto a destra) e devono essere attivate nell\'adattatore IoT in Enumerazione intelligente. Per riconoscere automaticamente gli stati manuali, \xe8 necessario eliminare lo stato.","Turn off":"Spegni","Turn on":"Accendere","Type":"Genere","Types":"tipi","Use Nightscout instance":"Utilizza l\'istanza Nightscout","Use following link for IFTTT":"Usa il seguente link per IFTTT","Use following link for custom service":"Usa il seguente link per il servizio personalizzato","Use text2command instance":"Utilizza l\'istanza text2command","Value":"Valore","White list for services":"Lista bianca per i servizi","Write response to":"Scrivi risposta a","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\xc8 possibile inserire diversi nomi divisi per virgola","amazon link":"Se usi Alexa Skill, scrivi una recensione per noi here.
Gli esempi possono essere trovati qui .","by ON":"da ON","clear":"cancellare","default":"predefinito","disabled":"Disabilitato","help_link_tip1":"Prima di scrivere per il supporto, assicurarsi di aver letto e compreso le istruzioni della pagina Web: https://www.iobroker.net","help_link_tip2":"Se hai ancora problemi con la connessione a Iot, puoi richiedere supporto a Forum","help_link_tip3":"e solo dopo dovrai scrivere una email a support@iobroker.com","help_tip":"Nessun account iobroker.pro? Compralo su https://iobroker.pro per l\'accesso convalidato o ottieni l\'accesso gratuito, ma limitato.","info_allowedServices":"diviso per virgola. Usa * per consentire tutti i servizi.","info_iftttKey":"Puoi trovare la tua chiave qui in \'Documentazione\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Password","last value":"ultimo valore","modified":"Il nome \xe8 stato modificato dall\'utente","no type":"nessun tipo","tooltip_allowSelfSignedCertificate":"Se si utilizza il proprio cloud, \xe8 possibile consentire l\'uso di certificati autofirmati per il cloud.","tooltip_apikey":"Questa chiave \xe8 necessaria per comunicare con un cloud. Puoi ottenere l\'API-KEY su https://iobroker.net e sembra nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente non \xe8 necessario cambiarlo. Richiesto solo se prevedi di utilizzare il tuo cloud.","tooltip_concatWord":"Definire come concatenare Room e Function. Per esempio. con \'in\': luce nel soggiorno.","tooltip_deviceOffLevel":"Alcuni gruppi sono costituiti da dispositivi misti: dimmer e interruttori. \xc8 consentito controllarli con comandi ON e OFF e con percentuali","tooltip_functionFirst":"Normalmente i nomi assomigliano a room_function. Qui puoi passare a function_room.","tooltip_instance":"Istanza Web, che verr\xe0 mostrata per le connessioni dal cloud.","tooltip_language":"\xc8 possibile definire le lingue per passare velocemente da US Alexa Skill a DE Alexa Skill.","tooltip_noCommon":"Se abilitato, le impostazioni verranno memorizzate solo per questa istanza. Quindi in un\'altra istanza potrebbero essere impostati gli altri nomi.","tooltip_responseOID":"Per ogni comando verr\xe0 generata la risposta testuale. \xc8 possibile definire qui l\'ID oggetto, dove questo testo deve essere scritto. Per esempio. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Soluzione alternativa per la mancata connessione ad Alexa dopo la perdita della connessione al cloud. Con questa opzione \xe8 possibile riavviare l\'adattatore dopo ogni disconnessione e funzioner\xe0.","Short answer for blood sugar":"Risposta breve per zucchero nel sangue","cannot_use_password":"Non \xe8 possibile utilizzare% nella password. Stiamo lavorando alla correzione.","invalid_password_warning":"La password deve contenere almeno 8 caratteri e deve contenere numeri, lettere maiuscole e minuscole. Si prega di cambiarlo nel profilo ioBroker.pro\\n","new_certs_tip":"Se hai effettuato un ripristino dal backup o hai spostato l\'istanza da un dispositivo all\'altro o hai eliminato l\'istanza IoT e l\'hai aggiunta di nuovo, devi caricare i certificati di sicurezza della connessione con questo pulsante","new_credentials_tip":"Se hai ripristinato la tua password ioBroker.pro puoi sincronizzare la tua password con Alexa/Google/Alisa con questo pulsante.","Create IoT credentials anew":"Crea nuovamente le credenziali IoT","forum_tip":"Per qualsiasi domanda in qualsiasi lingua, si prega di porre qui nel forum: link ","Save settings before pressing this button":"Salvare le impostazioni prima di premere questo pulsante","Auto Mode":"Modalit\xe0 automatica","Manual Mode":"Modalit\xe0 manuale","manualModeHint":"Seleziona un TYPE e un TRAIT dopo aver aggiunto uno stato. Per aggiungere pi\xf9 tratti, aggiungi un ID e un tratto diversi ma lo stesso nome, tipo e spazio intelligenti. Virgola separata per pi\xf9 nomi intelligenti. Per assegnare una stanza, utilizzare ioBroker Enums/Aufz\xe4hlungen. Con gli attributi puoi ad esempio impostare un intervallo per la temperatura del colore Informazioni su Gli attributi che puoi trovare qui. L\'attributo vuoto \xe8 {}","not activated":"non attivato","Google devices":"Dispositivi Google","Show/Hide help":"Mostra / Nascondi aiuto","Show all devices for print out":"Mostra tutti i dispositivi per la stampa","Search":"Ricerca","List of devices to print out, e.g. to give all device names to your partner.":"Elenco dei dispositivi da stampare, ad es. per dare tutti i nomi dei dispositivi al tuo partner.","Name":"Nome","Function":"Funzione","Room":"Camera","Copy to clipboard":"Copia negli appunti","Toggle expert mode":"Attiva / disattiva modalit\xe0 esperto","ID":"ID","Smart names":"Nomi intelligenti","ioBType":"Tipo di IoB","Function/Trait":"Funzione / Trait","Attributes":"attributi","Auto":"Automaticamente","Conversation to GH":"Converti in GH","Conversation to ioB":"Converti in ioB","Information: The skill linking process was changed!":"Informazioni: il processo di collegamento delle abilit\xe0 \xe8 stato modificato!","The linking process has been changed for a few months.":"Il processo di collegamento \xe8 stato modificato per alcuni mesi.","Now there is no temporary password that will be sent by email.":"Ora non esiste una password temporanea che verr\xe0 inviata tramite e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"La password \xe8 uguale a ioBroker.pro e alla password che \xe8 stata inserita qui nelle impostazioni!","Not understood":"Non compreso","Roger that":"Ricevuto","Read blood sugar from":"Leggi lo zucchero nel sangue da","Get actual humidity":"Ottieni l\'umidit\xe0 effettiva","Get motion":"Ottieni movimento","Get contact":"Ottieni lo stato del contatto"}')},338:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Se establece en 0 si no se desea el comportamiento)","(you can separate names with comma)":"Puede ingresar varios nombres divididos por coma","Active":"Activo","Add device":"A\xf1adir dispositivo","Add service":"A\xf1adir servicio","Addresses":"Direcciones","Alexa devices":"Dispositivos de Alexa","Alisa devices":"Dispositivos alisa","Allow admin access (only pro)":"Permitir acceso de administrador (solo pro)","Allow self-signed certificates":"Permitir certificados autofirmados","Amazon Alexa":"Amazon Alexa","Are you sure?":"\xbfEst\xe1s seguro?","Attributes has not correct JSON format.":"Los atributos no est\xe1n en el formato JSON correcto","Authentication must be disabled. You can create second instance extra for cloud.":"La autenticaci\xf3n debe estar deshabilitada. Puede crear una segunda instancia extra para la nube.","Cancel":"Cancelar","Cannot add this object":"No se puede agregar este objeto porque no es compatible.","Cannot read devices!":"No se pueden leer los dispositivos!","Certificates will be updated after initiated restart":"Los certificados se actualizar\xe1n despu\xe9s de reiniciarse","Certificates will be updated after start":"Los certificados se actualizar\xe1n despu\xe9s del inicio","Click now Get new connection certificates to request new temporary password":"Haga clic ahora en \\"Obtener nuevos certificados de conexi\xf3n\\" para solicitar una nueva contrase\xf1a temporal","Close":"Cerrar","Cloud URL":"URL en la nube","Cloud adapter settings":"Configuraci\xf3n del adaptador de nube","Commands":"Comandos","Concatenate words with":"Concatenar palabras con","Connection timeout":"Tiempo de espera de conexi\xf3n (ms)","Debug outputs":"Salidas de depuraci\xf3n","Decrement color temperature":"Disminuci\xf3n de la temperatura de color.","Decrement percentage":"Porcentaje de decremento","Decrement target temperature":"Disminuir la temperatura objetivo","Default":"Defecto","Device %s was not added":"El dispositivo %s no fue agregado","Device will be deactivated.":"El dispositivo se desactivar\xe1.","Device will be disabled.":"El dispositivo %s estar\xe1 deshabilitado.","Dimmer":"Regulador de intensidad","Duplicate name":"Nombre duplicado","Edit smart name":"Editar nombre inteligente","Error":"Error","Extended options":"Opciones extendidas","Filter":"Filtrar","For help use this forum":"Para obtener ayuda, visite este foro publicar","Functions":"Funciones","Get actual temperature":"Obtener la temperatura real","Get new connection certificates":"Obtenga nuevos certificados de conexi\xf3n","Get new service URL key":"Obtener nueva clave de servicio URL","Get target temperature":"Obtener temperatura objetivo","Google Home":"Google Home","IFTTT key":"Tecla IFTTT","Increment color temperature":"Temperatura de color incrementada","Increment percentage":"Porcentaje de incremento","Increment target temperature":"Incrementar la temperatura objetivo","Instance":"Ejemplo","Instance does not exists":"La instancia no existe","Instance is not active.":"La instancia no est\xe1 activa.","Instance must be enabled":"La instancia debe estar habilitada","Instance must run to deliver the data":"La instancia debe ejecutarse para entregar los datos","Invalid object":"Objeto inv\xe1lido","Language":"Idioma","Load configuration from file":"Cargar configuraci\xf3n desde archivo","Message":"Mensaje","OFF level for switches":"Nivel de apagado para interruptores","OFF level for switches in %":"Nivel OFF para interruptores en%","Off":"apagado","Ok":"De acuerdo","On":"en","On/Off":"Encendido apagado","Options":"Opciones","Personal settings (only pro)":"Configuraci\xf3n personal (solo pro)","Ping timeout:":"Tiempo de espera de ping (ms)","Place function in names first":"Coloque la funci\xf3n en los nombres primero","Please add action and trait to complete the Google Home state.":"Agregue acci\xf3n y rasgo para completar el estado de Google Home.","Please add type and trait to complete the Google Home state.":"Agregue tipo y rasgo para completar el estado de Google Home.","Please select object ID...":"Por favor seleccione ID de objeto ...","Please write your email only in lower case letters":"Por favor escriba su correo electr\xf3nico s\xf3lo en min\xfasculas","Read lock state":"Estado de bloqueo de lectura","Replace in names":"Reemplazar en nombres","Request email with password one more time":"Solicitar correo electr\xf3nico con contrase\xf1a una vez m\xe1s","Restart on disconnect":"Reiniciar al desconectar","Review":"revisi\xf3n","Rooms":"Habitaciones","Save":"Salvar","Save and close":"Guardar y cerrar","Save configuration to file":"Guardar la configuraci\xf3n en el archivo","Save settings and the names will be changed":"Guarde la configuraci\xf3n y los nombres ser\xe1n cambiados","Select":"Seleccionar","Service names":"Nombres de servicio","Services and IFTTT":"Servicios e IFTTT","Set color":"Establecer color","Set color temperature":"Ajustar la temperatura de color","Set lock state":"Establecer el estado de bloqueo","Set percentage":"Establecer porcentaje","Set target temperature":"Ajustar la temperatura objetivo","Smart Devices":"Dispositivos inteligentes","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Enums inteligentes","Smart name":"Nombre inteligente","Smart name for %s":"Nombre inteligente para %s","To apply this setting, the restart of adapter must be done. Agree?":"Para aplicar esta configuraci\xf3n, el adaptador debe reiniciarse. \xbfDe acuerdo?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Para la detecci\xf3n autom\xe1tica, debajo de los objetos asigne un canal (dispositivo si no hay un canal disponible) a una sala y funci\xf3n. No es suficiente asignar la habitaci\xf3n a un estado o dispositivo. Las habitaciones/funciones se pueden agregar en la enumeraci\xf3n (indicada por la flecha blanca en la parte superior derecha) y se deben activar en el adaptador IoT en la enumeraci\xf3n inteligente. Para reconocer autom\xe1ticamente los estados manuales, el estado debe ser eliminado.","Turn off":"Apagar","Turn on":"Encender","Type":"Tipo","Types":"Tipos","Use Nightscout instance":"Use la instancia del Nightscout","Use following link for IFTTT":"Utilice el siguiente enlace para IFTTT","Use following link for custom service":"Use el siguiente enlace para servicio personalizado","Use text2command instance":"Use la instancia del comando text2","Value":"Valor","White list for services":"Lista blanca de servicios","Write response to":"Escribir respuesta a","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Puede introducir varios nombres divididos por comas","amazon link":"Si usa Alexa Skill, escriba una opini\xf3n para nosotros aqu\xed .
Se pueden encontrar ejemplos aqu\xed .","by ON":"por el","clear":"limpiar","default":"defecto","disabled":"discapacitado","help_link_tip1":"Antes de escribir a soporte, aseg\xfarese de haber le\xeddo y entendido las instrucciones de la p\xe1gina web: https://www.iobroker.net","help_link_tip2":"Si a\xfan tiene problemas con la conexi\xf3n a Iot, puede solicitar asistencia en el foro","help_link_tip3":"y solo despu\xe9s de eso, debe escribir un correo electr\xf3nico a support@iobroker.com","help_tip":"\xbfNo hay una cuenta iobroker.pro? C\xf3mprelo en https://iobroker.pro para obtener acceso validado u obtenga de forma gratuita, pero con acceso limitado.","info_allowedServices":"dividido por coma. Use * para permitir todos los servicios.","info_iftttKey":"Puede encontrar su clave aqu\xed en \'Documentaci\xf3n\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Contrase\xf1a","last value":"\xfaltimo valor","modified":"El nombre fue modificado por el usuario","no type":"Sin tipo","tooltip_allowSelfSignedCertificate":"Si usa su propia nube, puede permitir el uso de certificados autofirmados para la nube.","tooltip_apikey":"Esta clave es necesaria para comunicarse con una nube. Puede obtener la API-KEY en https://iobroker.net y se ve como nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente no es necesario cambiarlo. Solo es obligatorio si planea usar su propia nube.","tooltip_concatWord":"Definir c\xf3mo concatenar Habitaci\xf3n y Funci\xf3n. P.ej. con \'en\': luz en la sala de estar.","tooltip_deviceOffLevel":"Algunos grupos consisten en dispositivos mixtos: atenuadores e interruptores. Se permite controlarlos con comandos ON y OFF y con porcentajes","tooltip_functionFirst":"Normalmente los nombres parecen room_function. Aqu\xed puedes cambiarlo a function_room.","tooltip_instance":"Instancia web, que se mostrar\xe1 para sus conexiones desde la nube.","tooltip_language":"Puede definir los idiomas para cambiar r\xe1pidamente entre US Alexa Skill y DE Alexa Skill.","tooltip_noCommon":"Si est\xe1 habilitado, la configuraci\xf3n se almacenar\xe1 solo para esta instancia. Entonces, en la otra instancia, se podr\xedan establecer los otros nombres.","tooltip_responseOID":"Para cada comando, se generar\xe1 la respuesta de texto. Aqu\xed puede definir la ID del objeto, donde debe escribirse este texto. P.ej. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Soluci\xf3n alternativa para la conexi\xf3n faltante a Alexa despu\xe9s de la conexi\xf3n a la nube se perdi\xf3. Con esta opci\xf3n, puede reiniciar el adaptador despu\xe9s de cada desconexi\xf3n y funcionar\xe1.","Short answer for blood sugar":"Respuesta corta para az\xfacar en la sangre","cannot_use_password":"No puede usar% en la contrase\xf1a. Estamos trabajando en la soluci\xf3n.","invalid_password_warning":"La contrase\xf1a debe tener al menos 8 caracteres y debe tener n\xfameros, letras may\xfasculas y min\xfasculas. Por favor c\xe1mbielo en el perfil ioBroker.pro\\n","new_certs_tip":"Si realiz\xf3 una restauraci\xf3n desde la copia de seguridad, o movi\xf3 su instancia de un dispositivo a otro o elimin\xf3 la instancia de IoT y la agreg\xf3 nuevamente, debe cargar los certificados de seguridad de conexi\xf3n con este bot\xf3n","new_credentials_tip":"Si restaur\xf3 su contrase\xf1a de ioBroker.pro, puede sincronizar su contrase\xf1a con Alexa/Google/Alisa con este bot\xf3n.","Create IoT credentials anew":"Crear nuevas credenciales de IoT","forum_tip":"Cualquier pregunta en cualquier idioma, por favor pregunte aqu\xed en el foro: enlace ","Save settings before pressing this button":"Guarde la configuraci\xf3n antes de presionar este bot\xf3n","Auto Mode":"Modo autom\xe1tico","Manual Mode":"Modo manual","manualModeHint":"Seleccione un TYPE y un TRAIT despu\xe9s de agregar un estado. Para agregar m\xfaltiples rasgos, agregue una identificaci\xf3n y un rasgo diferentes pero el mismo nombre inteligente, tipo y sala. Coma separada para los m\xfaltiples nombres inteligentes. Para asignar una habitaci\xf3n, utilice las Enums/Aufz\xe4hlungen de ioBroker. Con atributos, por ejemplo, puede establecer un rango para la temperatura de color Infos sobre Atributos que puede encontrar aqu\xed. El atributo vac\xedo es {}","not activated":"no esta activado","Google devices":"Dispositivos de Google","Show/Hide help":"Mostrar / Ocultar ayuda","Show all devices for print out":"Mostrar todos los dispositivos para imprimir","Search":"Buscar","List of devices to print out, e.g. to give all device names to your partner.":"Lista de dispositivos para imprimir, p. para dar todos los nombres de dispositivo a su pareja.","Name":"Nombre","Function":"Funci\xf3n","Room":"Habitaci\xf3n","Copy to clipboard":"Copiar al portapapeles","Toggle expert mode":"Alternar modo experto","ID":"ID","Smart names":"Nombres inteligentes","ioBType":"Tipo de IoB","Function/Trait":"Funci\xf3n / rasgo","Attributes":"Atributos","Auto":"Autom\xe1ticamente","Conversation to GH":"Convertir a GH","Conversation to ioB":"Convertir a ioB","Information: The skill linking process was changed!":"Informaci\xf3n: \xa1Se cambi\xf3 el proceso de vinculaci\xf3n de habilidades!","The linking process has been changed for a few months.":"El proceso de vinculaci\xf3n se ha modificado durante unos meses.","Now there is no temporary password that will be sent by email.":"Ahora no hay una contrase\xf1a temporal que se enviar\xe1 por correo electr\xf3nico.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\xa1La contrase\xf1a es igual a ioBroker.pro y con la contrase\xf1a que se ingres\xf3 aqu\xed en la configuraci\xf3n!","Not understood":"No se entiende","Roger that":"Entendido","Read blood sugar from":"Leer az\xfacar en sangre de","Get actual humidity":"Obtenga la humedad real","Get motion":"Obtener movimiento","Get contact":"Obtener estado de contacto"}')},339:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Ustaw na 0, je\u015bli zachowanie nie jest po\u017c\u0105dane)","(you can separate names with comma)":"Mo\u017cesz wprowadzi\u0107 kilka nazw podzielonych przecinkami","Active":"Aktywny","Add device":"Dodaj urz\u0105dzenie","Add service":"Dodaj us\u0142ug\u0119","Addresses":"Adresy","Alexa devices":"Urz\u0105dzenia Alexa","Alisa devices":"Urz\u0105dzenia Alisa","Allow admin access (only pro)":"Zezwalaj na dost\u0119p administratora (tylko pro)","Allow self-signed certificates":"Zezwalaj na certyfikaty z podpisem w\u0142asnym","Amazon Alexa":"Amazon Alexa","Are you sure?":"Jeste\u015b pewny?","Attributes has not correct JSON format.":"Atrybuty maj\u0105 niepoprawny format JSON","Authentication must be disabled. You can create second instance extra for cloud.":"Uwierzytelnianie musi by\u0107 wy\u0142\u0105czone. Mo\u017cesz utworzy\u0107 dodatkow\u0105 instancj\u0119 dodatkow\u0105 dla chmury.","Cancel":"Anuluj","Cannot add this object":"Nie mo\u017cna doda\u0107 tego obiektu, poniewa\u017c nie jest obs\u0142ugiwany.","Cannot read devices!":"Nie mo\u017cna odczyta\u0107 urz\u0105dze\u0144!","Certificates will be updated after initiated restart":"Certyfikaty b\u0119d\u0105 aktualizowane po ponownym uruchomieniu","Certificates will be updated after start":"Certyfikaty b\u0119d\u0105 aktualizowane po starcie","Click now Get new connection certificates to request new temporary password":"Kliknij teraz \\"Pobierz nowe certyfikaty po\u0142\u0105cze\u0144\\", aby poprosi\u0107 o nowe tymczasowe has\u0142o","Close":"Blisko","Cloud URL":"Chmura adresu URL","Cloud adapter settings":"Ustawienia adaptera chmury","Commands":"Polecenia","Concatenate words with":"Po\u0142\u0105cz s\u0142owa z","Connection timeout":"Limit czasu po\u0142\u0105czenia (ms)","Debug outputs":"Wyj\u015bcia debugowania","Decrement color temperature":"Zmniejsz temperatur\u0119 barwow\u0105","Decrement percentage":"Procent zmniejszenia","Decrement target temperature":"Zmniejsz temperatur\u0119 docelow\u0105","Default":"Domy\u015blna","Device %s was not added":"Urz\u0105dzenie %s nie zosta\u0142o dodane","Device will be deactivated.":"Urz\u0105dzenie zostanie dezaktywowane.","Device will be disabled.":"Urz\u0105dzenie zostanie wy\u0142\u0105czone.","Dimmer":"Opornik","Duplicate name":"Zduplikowana nazwa","Edit smart name":"Edytuj inteligentn\u0105 nazw\u0119","Error":"B\u0142\u0105d","Extended options":"Rozszerzone opcje","Filter":"Filtr","For help use this forum":"Aby uzyska\u0107 pomoc, odwied\u017a to forum post","Functions":"Funkcje","Get actual temperature":"Uzyskaj rzeczywist\u0105 temperatur\u0119","Get new connection certificates":"Uzyskaj nowe certyfikaty po\u0142\u0105cze\u0144","Get new service URL key":"Uzyskaj nowy klucz URL us\u0142ugi","Get target temperature":"Uzyskaj docelow\u0105 temperatur\u0119","Google Home":"Google Home","IFTTT key":"Klawisz IFTTT","Increment color temperature":"Przyrost temperatury barwowej","Increment percentage":"Przyrost procentowy","Increment target temperature":"Przyrost temperatury docelowej","Instance":"Instancja","Instance does not exists":"Instancja nie istnieje","Instance is not active.":"Instancja nie jest aktywna.","Instance must be enabled":"Instancja musi by\u0107 w\u0142\u0105czona","Instance must run to deliver the data":"Instancja musi zosta\u0107 uruchomiona w celu dostarczenia danych","Invalid object":"Nieprawid\u0142owy obiekt","Language":"J\u0119zyk","Load configuration from file":"Za\u0142aduj konfiguracj\u0119 z pliku","Message":"Wiadomo\u015b\u0107","OFF level for switches":"Poziom OFF dla prze\u0142\u0105cznik\xf3w","OFF level for switches in %":"Poziom wy\u0142\u0105czenia dla prze\u0142\u0105cznik\xf3w w%","Off":"poza","Ok":"Ok","On":"na","On/Off":"W\u0142\u0105cz/Wy\u0142\u0105cz","Options":"Opcje","Personal settings (only pro)":"Ustawienia osobiste (tylko pro)","Ping timeout:":"Limit czasu pingowania (ms)","Place function in names first":"Najpierw umie\u015b\u0107 funkcj\u0119 w imionach","Please add action and trait to complete the Google Home state.":"Dodaj dzia\u0142anie i cech\u0119, aby uko\u0144czy\u0107 stan Google Home.","Please add type and trait to complete the Google Home state.":"Dodaj typ i cech\u0119, aby uko\u0144czy\u0107 stan Google Home.","Please select object ID...":"Wybierz identyfikator obiektu ...","Please write your email only in lower case letters":"Napisz sw\xf3j e-mail tylko ma\u0142ymi literami","Read lock state":"Czytaj stan blokady","Replace in names":"Zast\u0105p imiona","Request email with password one more time":"Popro\u015b jeszcze raz o e-mail z has\u0142em","Restart on disconnect":"Uruchom ponownie po roz\u0142\u0105czeniu","Review":"Przejrze\u0107","Rooms":"Pokoje","Save":"Zapisa\u0107","Save and close":"Zapisz i zamknij","Save configuration to file":"Zapisz konfiguracj\u0119 do pliku","Save settings and the names will be changed":"Zapisz ustawienia i nazwy zostan\u0105 zmienione","Select":"Wybierz","Service names":"Nazwy us\u0142ug","Services and IFTTT":"Us\u0142ugi i IFTTT","Set color":"Ustaw kolor","Set color temperature":"Ustaw temperatur\u0119 barwow\u0105","Set lock state":"Ustaw stan blokady","Set percentage":"Ustaw procent","Set target temperature":"Ustaw temperatur\u0119 docelow\u0105","Smart Devices":"Inteligentne urz\u0105dzenia","Smart Enums":"Inteligentne wyliczenia","Smart Media":"Smart Media","Smart enums":"Inteligentne enumy","Smart name":"Inteligentna nazwa","Smart name for %s":"Inteligentna nazwa dla %s","To apply this setting, the restart of adapter must be done. Agree?":"Aby zastosowa\u0107 to ustawienie, adapter musi zosta\u0107 zrestartowany. Zgodzi\u0107 si\u0119?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"W celu automatycznego wykrywania pod obiektami przypisz kana\u0142 (urz\u0105dzenie, je\u015bli \u017caden kana\u0142 nie jest dost\u0119pny) do pokoju i funkcji. Nie wystarczy przypisa\u0107 pok\xf3j do stanu lub urz\u0105dzenia. Pomieszczenia/funkcje mo\u017cna dodawa\u0107 w ramach wyliczenia (oznaczonego bia\u0142\u0105 strza\u0142k\u0105 w prawym g\xf3rnym rogu) i nale\u017cy je aktywowa\u0107 w adapterze IoT w obszarze Inteligentne wyliczanie. Aby automatycznie rozpozna\u0107 stany r\u0119czne, nale\u017cy je usun\u0105\u0107.","Turn off":"Wy\u0142\u0105czy\u0107","Turn on":"W\u0142\u0105czy\u0107","Type":"Rodzaj","Types":"Rodzaje","Use Nightscout instance":"U\u017cyj instancji Nightscout","Use following link for IFTTT":"U\u017cyj nast\u0119puj\u0105cego linku dla IFTTT","Use following link for custom service":"U\u017cyj poni\u017cszego linku do niestandardowej us\u0142ugi","Use text2command instance":"U\u017cyj instancji text2command","Value":"Warto\u015b\u0107","White list for services":"Bia\u0142a lista dla us\u0142ug","Write response to":"Napisz odpowied\u017a na","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Mo\u017cesz wprowadzi\u0107 kilka nazw podzielonych przecinkiem","amazon link":"Je\u015bli u\u017cywasz umiej\u0119tno\u015bci Alexa, napisz recenzj\u0119 dla nas here . Przyk\u0142ady mo\u017cna znale\u017a\u0107 tutaj .","by ON":"przez ON","clear":"Oczy\u015bci\u0107","default":"domy\u015blna","disabled":"niepe\u0142nosprawny","help_link_tip1":"Przed napisaniem do wsparcia upewnij si\u0119, \u017ce przeczyta\u0142e\u015b i zrozumia\u0142e\u015b instrukcje strony: https://www.iobroker.net","help_link_tip2":"Je\u015bli nadal masz problem z po\u0142\u0105czeniem z Iot, mo\u017cesz poprosi\u0107 o wsparcie na Forum","help_link_tip3":"i dopiero potem powiniene\u015b napisa\u0107 e-mail na adres support@iobroker.com","help_tip":"Brak konta iobroker.pro? Kup go na https://iobroker.pro w celu zweryfikowania dost\u0119pu lub uzyskaj bezp\u0142atny, ale ograniczony dost\u0119p.","info_allowedServices":"podzielone przecinkiem. U\u017cyj *, aby zezwoli\u0107 na wszystkie us\u0142ugi.","info_iftttKey":"Mo\u017cesz znale\u017a\u0107 klucz tutaj w sekcji \\"Dokumentacja\\"","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Has\u0142o","last value":"ostatnia warto\u015b\u0107","modified":"Nazwa zosta\u0142a zmodyfikowana przez u\u017cytkownika","no type":"bez typu","tooltip_allowSelfSignedCertificate":"Je\u015bli korzystasz z w\u0142asnej chmury, mo\u017cesz zezwoli\u0107 na u\u017cywanie samopodpisanych certyfikat\xf3w dla chmury.","tooltip_apikey":"Ten klucz jest wymagany do komunikacji z chmur\u0105. Mo\u017cesz pobra\u0107 API-KEY na https://iobroker.net i wygl\u0105da jak pseudonim_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Zwykle nie musisz tego zmienia\u0107. Wymagane tylko, je\u015bli masz zamiar korzysta\u0107 z w\u0142asnej chmury.","tooltip_concatWord":"Okre\u015bl, jak po\u0142\u0105czy\u0107 pok\xf3j i funkcj\u0119. Na przyk\u0142ad. z \\"in\\": \u015awiat\u0142o w salonie.","tooltip_deviceOffLevel":"Niekt\xf3re grupy sk\u0142adaj\u0105 si\u0119 z r\xf3\u017cnych urz\u0105dze\u0144: \u015bciemniaczy i prze\u0142\u0105cznik\xf3w. Dozwolone jest sterowanie nimi za pomoc\u0105 polece\u0144 ON i OFF oraz procentami","tooltip_functionFirst":"Normalnie nazwy wygl\u0105daj\u0105 jak room_function. Tutaj mo\u017cesz prze\u0142\u0105czy\u0107 go do function_room.","tooltip_instance":"Instancja internetowa, kt\xf3ra b\u0119dzie wy\u015bwietlana dla twoich po\u0142\u0105cze\u0144 z chmury.","tooltip_language":"Mo\u017cesz zdefiniowa\u0107 j\u0119zyki, aby szybko prze\u0142\u0105cza\u0107 si\u0119 pomi\u0119dzy US Alexa Skill i DE Alexa Skill.","tooltip_noCommon":"Je\u015bli jest w\u0142\u0105czona, ustawienia b\u0119d\u0105 przechowywane tylko dla tej instancji. Tak wi\u0119c w innym przypadku mo\u017cna ustawi\u0107 inne nazwy.","tooltip_responseOID":"Dla ka\u017cdego polecenia zostanie wygenerowana odpowied\u017a tekstowa. Mo\u017cesz tu zdefiniowa\u0107 identyfikator obiektu, do kt\xf3rego nale\u017cy zapisa\u0107 ten tekst. Na przyk\u0142ad. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Rozwi\u0105zano problem braku po\u0142\u0105czenia z Alexa po utracie po\u0142\u0105czenia z chmur\u0105. Dzi\u0119ki tej opcji mo\u017cna ponownie uruchomi\u0107 adapter po ka\u017cdym roz\u0142\u0105czeniu i b\u0119dzie dzia\u0142a\u0107.","Short answer for blood sugar":"Kr\xf3tka odpowied\u017a na cukier we krwi","cannot_use_password":"Nie mo\u017cesz u\u017cy\u0107% w ha\u015ble. Pracujemy nad poprawk\u0105.","invalid_password_warning":"Has\u0142o musi mie\u0107 co najmniej 8 znak\xf3w i musi zawiera\u0107 cyfry, wielkie i ma\u0142e litery. Zmie\u0144 to w profilu ioBroker.pro\\n","new_certs_tip":"Je\u015bli wykona\u0142e\u015b przywracanie z kopii zapasowej, przenios\u0142e\u015b instancj\u0119 z jednego urz\u0105dzenia na drugie lub usun\u0105\u0142e\u015b instancj\u0119 IoT i doda\u0142e\u015b j\u0105 ponownie, musisz za\u0142adowa\u0107 certyfikaty bezpiecze\u0144stwa po\u0142\u0105czenia za pomoc\u0105 tego przycisku","new_credentials_tip":"Je\u015bli przywr\xf3ci\u0142e\u015b has\u0142o ioBroker.pro, mo\u017cesz zsynchronizowa\u0107 swoje has\u0142o z Alexa/Google/Alisa za pomoc\u0105 tego przycisku.","Create IoT credentials anew":"Utw\xf3rz ponownie po\u015bwiadczenia IoT","forum_tip":"Wszelkie pytania w dowolnym j\u0119zyku prosimy zadawa\u0107 tutaj na forum: link ","Save settings before pressing this button":"Zapisz ustawienia przed naci\u015bni\u0119ciem tego przycisku","Auto Mode":"Tryb automatyczny","Manual Mode":"Tryb r\u0119czny","manualModeHint":"Wybierz TYPE i TRAIT po dodaniu stanu. Aby doda\u0107 wiele cech, dodaj inny identyfikator i cech\u0119, ale t\u0119 sam\u0105 inteligentn\u0105 nazw\u0119, typ i pok\xf3j. Oddzielony przecinkami dla wielu inteligentnych nazw. Aby przypisa\u0107 pok\xf3j, u\u017cyj ioBroker Enums/Aufz\xe4hlungen. Za pomoc\u0105 atrybut\xf3w mo\u017cesz na przyk\u0142ad ustawi\u0107 zakres temperatury kolor\xf3w Informacje o Atrybuty mo\u017cna znale\u017a\u0107 tutaj. Pusty atrybut to {}","not activated":"nie aktywowany","Google devices":"Urz\u0105dzenia Google","Show/Hide help":"Poka\u017c / ukryj pomoc","Show all devices for print out":"Poka\u017c wszystkie urz\u0105dzenia do wydrukowania","Search":"Szukaj","List of devices to print out, e.g. to give all device names to your partner.":"Lista urz\u0105dze\u0144 do wydrukowania, np. aby poda\u0107 wszystkie nazwy urz\u0105dze\u0144 swojemu partnerowi.","Name":"Imi\u0119","Function":"Funkcjonowa\u0107","Room":"Pok\xf3j","Copy to clipboard":"Skopiuj do schowka","Toggle expert mode":"Prze\u0142\u0105cz tryb ekspercki","ID":"ID","Smart names":"Inteligentne nazwy","ioBType":"Typ IoB","Function/Trait":"Funkcja / cecha","Attributes":"Atrybuty","Auto":"Automatycznie","Conversation to GH":"Konwertuj na GH","Conversation to ioB":"Konwertuj na ioB","Information: The skill linking process was changed!":"Informacja: Zmieniono proces \u0142\u0105czenia umiej\u0119tno\u015bci!","The linking process has been changed for a few months.":"Od kilku miesi\u0119cy zmieni\u0142 si\u0119 proces \u0142\u0105czenia.","Now there is no temporary password that will be sent by email.":"Teraz nie ma tymczasowego has\u0142a, kt\xf3re zostanie wys\u0142ane e-mailem.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Has\u0142o jest r\xf3wne z ioBroker.pro i has\u0142em, kt\xf3re zosta\u0142o wprowadzone tutaj w ustawieniach!","Not understood":"Nie rozumiem","Roger that":"Przyj\u0105\u0142em","Read blood sugar from":"Odczytaj poziom cukru we krwi","Get actual humidity":"Uzyskaj aktualn\u0105 wilgotno\u015b\u0107","Get motion":"Wpraw si\u0119 w ruch","Get contact":"Uzyskaj status kontaktu"}')},340:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"\uff08\u5982\u679c\u4e0d\u9700\u8981\u884c\u4e3a\uff0c\u5219\u8bbe\u4e3a0\uff09","(you can separate names with comma)":"\u60a8\u53ef\u4ee5\u8f93\u5165\u591a\u4e2a\u540d\u79f0\u9664\u4ee5\u9017\u53f7","Active":"\u6d3b\u6027","Add device":"\u6dfb\u52a0\u8bbe\u5907","Add service":"\u6dfb\u52a0\u670d\u52a1","Addresses":"\u5730\u5740","Alexa devices":"Alexa\u8bbe\u5907","Alisa devices":"Alisa\u8bbe\u5907","Allow admin access (only pro)":"\u5141\u8bb8\u7ba1\u7406\u5458\u8bbf\u95ee\uff08\u4ec5\u9650\u4e13\u4e1a\u7248\uff09","Allow self-signed certificates":"\u5141\u8bb8\u81ea\u7b7e\u540d\u8bc1\u4e66","Amazon Alexa":"\u4e9a\u9a6c\u900aAlexa","Are you sure?":"\u4f60\u786e\u5b9a\u5417\uff1f","Attributes has not correct JSON format.":"\u5c5e\u6027\u7684\u683c\u5f0f\u4e0d\u6b63\u786e","Authentication must be disabled. You can create second instance extra for cloud.":"\u5fc5\u987b\u7981\u7528\u8eab\u4efd\u9a8c\u8bc1\u3002\u60a8\u53ef\u4ee5\u4e3a\u4e91\u521b\u5efa\u989d\u5916\u7684\u7b2c\u4e8c\u4e2a\u5b9e\u4f8b\u3002","Cancel":"\u53d6\u6d88","Cannot add this object":"\u65e0\u6cd5\u6dfb\u52a0\u6b64\u5bf9\u8c61\uff0c\u56e0\u4e3a\u4e0d\u652f\u6301\u3002","Cannot read devices!":"\u65e0\u6cd5\u8bfb\u53d6\u8bbe\u5907\uff01","Certificates will be updated after initiated restart":"\u542f\u52a8\u91cd\u542f\u540e\uff0c\u8bc1\u4e66\u5c06\u66f4\u65b0","Certificates will be updated after start":"\u8bc1\u4e66\u5c06\u5728\u5f00\u59cb\u540e\u66f4\u65b0","Click now Get new connection certificates to request new temporary password":"\u5355\u51fb\u201c\u83b7\u53d6\u65b0\u8fde\u63a5\u8bc1\u4e66\u201d\u4ee5\u8bf7\u6c42\u65b0\u7684\u4e34\u65f6\u5bc6\u7801","Close":"\u5173","Cloud URL":"\u4e91URL","Cloud adapter settings":"\u4e91\u9002\u914d\u5668\u8bbe\u7f6e","Commands":"\u547d\u4ee4","Concatenate words with":"\u8fde\u63a5\u5355\u8bcd","Connection timeout":"\u8fde\u63a5\u8d85\u65f6\uff08ms\uff09","Debug outputs":"\u8c03\u8bd5\u8f93\u51fa","Decrement color temperature":"\u964d\u4f4e\u8272\u6e29","Decrement percentage":"\u51cf\u5c11\u767e\u5206\u6bd4","Decrement target temperature":"\u964d\u4f4e\u76ee\u6807\u6e29\u5ea6","Default":"\u9ed8\u8ba4","Device %s was not added":"\u672a\u6dfb\u52a0\u8bbe\u5907%s","Device will be deactivated.":"\u8bbe\u5907\u5c06\u88ab\u505c\u7528\u3002","Device will be disabled.":"\u8bbe\u5907\u5c06\u88ab\u7981\u7528\u3002","Dimmer":"\u8c03\u5149\u5668","Duplicate name":"\u540d\u79f0\u91cd\u590d","Edit smart name":"\u7f16\u8f91\u667a\u80fd\u540d\u79f0","Error":"\u9519\u8bef","Extended options":"\u6269\u5c55\u9009\u9879","Filter":"\u8fc7\u6ee4","For help use this forum":"\u5982\u9700\u5e2e\u52a9\uff0c\u8bf7\u8bbf\u95ee\u6b64\u8bba\u575b\u53d1\u5e03","Functions":"\u529f\u80fd","Get actual temperature":"\u83b7\u5f97\u5b9e\u9645\u6e29\u5ea6","Get new connection certificates":"\u83b7\u53d6\u65b0\u7684\u8fde\u63a5\u8bc1\u4e66","Get new service URL key":"\u83b7\u53d6\u65b0\u670d\u52a1URL\u5bc6\u94a5","Get target temperature":"\u83b7\u5f97\u76ee\u6807\u6e29\u5ea6","Google Home":"Google Home","IFTTT key":"IFTTT\u5173\u952e","Increment color temperature":"\u589e\u52a0\u8272\u6e29","Increment percentage":"\u589e\u91cf\u767e\u5206\u6bd4","Increment target temperature":"\u589e\u52a0\u76ee\u6807\u6e29\u5ea6","Instance":"\u4f8b","Instance does not exists":"\u5b9e\u4f8b\u4e0d\u5b58\u5728","Instance is not active.":"\u5b9e\u4f8b\u672a\u6fc0\u6d3b\u3002","Instance must be enabled":"\u5fc5\u987b\u542f\u7528\u5b9e\u4f8b","Instance must run to deliver the data":"\u5fc5\u987b\u8fd0\u884c\u5b9e\u4f8b\u624d\u80fd\u4f20\u9012\u6570\u636e","Invalid object":"\u65e0\u6548\u7684\u5bf9\u8c61","Language":"\u8bed\u8a00","Load configuration from file":"\u4ece\u6587\u4ef6\u52a0\u8f7d\u914d\u7f6e","Message":"\u4fe1\u606f","OFF level for switches":"\u5f00\u5173\u7684OFF\u7535\u5e73","OFF level for switches in %":"\u5f00\u5173\u5173\u95ed\u7535\u5e73\uff05","Off":"\u79bb","Ok":"\u597d","On":"\u4e0a","On/Off":"\u5f00\u5173","Options":"\u9009\u9879","Personal settings (only pro)":"\u4e2a\u4eba\u8bbe\u7f6e\uff08\u4ec5\u9650\u4e13\u4e1a\uff09","Ping timeout:":"Ping\u8d85\u65f6\uff08ms\uff09","Place function in names first":"\u9996\u5148\u5c06\u51fd\u6570\u653e\u5728\u540d\u79f0\u4e2d","Please add action and trait to complete the Google Home state.":"\u8bf7\u6dfb\u52a0\u64cd\u4f5c\u548c\u7279\u5f81\u4ee5\u5b8c\u6210Google Home\u72b6\u6001\u3002","Please add type and trait to complete the Google Home state.":"\u8bf7\u6dfb\u52a0\u7c7b\u578b\u548c\u7279\u5f81\u4ee5\u5b8c\u6210Google Home\u72b6\u6001\u3002","Please select object ID...":"\u8bf7\u9009\u62e9\u5bf9\u8c61ID ...","Please write your email only in lower case letters":"\u8bf7\u4ee5\u5c0f\u5199\u5b57\u6bcd\u4e66\u5199\u60a8\u7684\u7535\u5b50\u90ae\u4ef6","Read lock state":"\u8bfb\u9501\u5b9a\u72b6\u6001","Replace in names":"\u66ff\u6362\u540d\u79f0","Request email with password one more time":"\u518d\u6b21\u8bf7\u6c42\u5e26\u5bc6\u7801\u7684\u7535\u5b50\u90ae\u4ef6","Restart on disconnect":"\u65ad\u5f00\u8fde\u63a5\u91cd\u542f","Review":"\u8bc4\u8bba","Rooms":"\u5ba2\u623f","Save":"\u4fdd\u5b58","Save and close":"\u4fdd\u5b58\u5e76\u5173\u95ed","Save configuration to file":"\u5c06\u914d\u7f6e\u4fdd\u5b58\u5230\u6587\u4ef6","Save settings and the names will be changed":"\u4fdd\u5b58\u8bbe\u7f6e\uff0c\u540d\u79f0\u5c06\u88ab\u66f4\u6539","Select":"\u9009\u62e9","Service names":"\u670d\u52a1\u540d\u79f0","Services and IFTTT":"\u670d\u52a1\u548cIFTTT","Set color":"\u8bbe\u7f6e\u989c\u8272","Set color temperature":"\u8bbe\u7f6e\u8272\u6e29","Set lock state":"\u8bbe\u7f6e\u9501\u5b9a\u72b6\u6001","Set percentage":"\u8bbe\u5b9a\u767e\u5206\u6bd4","Set target temperature":"\u8bbe\u5b9a\u76ee\u6807\u6e29\u5ea6","Smart Devices":"\u667a\u80fd\u8bbe\u5907","Smart Enums":"\u667a\u80fd\u679a\u4e3e","Smart Media":"\u667a\u80fd\u5a92\u4f53","Smart enums":"\u667a\u80fd\u679a\u4e3e","Smart name":"\u806a\u660e\u7684\u540d\u5b57","Smart name for %s":"%s\u7684\u667a\u80fd\u540d\u79f0","To apply this setting, the restart of adapter must be done. Agree?":"\u8981\u5e94\u7528\u6b64\u8bbe\u7f6e\uff0c\u5fc5\u987b\u91cd\u65b0\u542f\u52a8\u9002\u914d\u5668\u3002\u540c\u610f\uff1f","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"\u5bf9\u4e8e\u81ea\u52a8\u68c0\u6d4b\uff0c\u5728\u5bf9\u8c61\u4e0b\u65b9\u4e3a\u623f\u95f4\u548c\u529f\u80fd\u5206\u914d\u4e00\u4e2a\u901a\u9053\uff08\u5982\u679c\u6ca1\u6709\u53ef\u7528\u7684\u901a\u9053\uff0c\u5219\u4e3a\u8bbe\u5907\uff09\u3002\u4ec5\u5c06\u623f\u95f4\u5206\u914d\u7ed9\u72b6\u6001\u6216\u8bbe\u5907\u662f\u4e0d\u591f\u7684\u3002\u53ef\u4ee5\u5728\u679a\u4e3e\u4e0b\u6dfb\u52a0\u623f\u95f4/\u529f\u80fd\uff08\u5982\u53f3\u4e0a\u89d2\u7684\u767d\u8272\u7bad\u5934\u6240\u793a\uff09\uff0c\u5e76\u4e14\u5fc5\u987b\u5728IoT\u9002\u914d\u5668\u4e2d\u7684\u201c\u667a\u80fd\u679a\u4e3e\u201d\u4e0b\u5c06\u5176\u6fc0\u6d3b\u3002\u4e3a\u4e86\u81ea\u52a8\u8bc6\u522b\u624b\u52a8\u72b6\u6001\uff0c\u5fc5\u987b\u5220\u9664\u72b6\u6001\u3002","Turn off":"\u5173\u6389","Turn on":"\u6253\u5f00","Type":"\u7c7b\u578b","Types":"\u7c7b\u578b","Use Nightscout instance":"\u4f7f\u7528Nightscout\u5b9e\u4f8b","Use following link for IFTTT":"\u4f7f\u7528\u4ee5\u4e0b\u94fe\u63a5\u8fdb\u884cIFTTT","Use following link for custom service":"\u4f7f\u7528\u4ee5\u4e0b\u94fe\u63a5\u8fdb\u884c\u81ea\u5b9a\u4e49\u670d\u52a1","Use text2command instance":"\u4f7f\u7528text2command\u5b9e\u4f8b","Value":"\u503c","White list for services":"\u670d\u52a1\u767d\u540d\u5355","Write response to":"\u5199\u56de\u590d","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex\u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\u60a8\u53ef\u4ee5\u8f93\u5165\u591a\u4e2a\u540d\u79f0\u9664\u4ee5\u9017\u53f7","amazon link":"\u5982\u679c\u60a8\u4f7f\u7528Alexa\u6280\u80fd\uff0c\u8bf7\u4e3a\u6211\u4eec\u5199\u4e00\u7bc7\u8bc4\u8bba\u6b64\u5904\u3002
\u793a\u4f8b\u53ef\u4ee5\u627e\u5230\u6b64\u5904\u3002","by ON":"\u901a\u8fc7ON","clear":"\u660e\u786e","default":"\u9ed8\u8ba4","disabled":"\u6b8b","help_link_tip1":"\u5728\u5199\u652f\u6301\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u5df2\u9605\u8bfb\u5e76\u7406\u89e3\u7f51\u9875\u7684\u8bf4\u660e\uff1a https : //www.iobroker.net","help_link_tip2":"\u5982\u679c\u4e0eIot\u7684\u8fde\u63a5\u4ecd\u7136\u5b58\u5728\u95ee\u9898\uff0c\u5219\u53ef\u4ee5\u5728\u8bba\u575b\u4e0a\u8bf7\u6c42\u652f\u6301","help_link_tip3":"\u5e76\u4e14\u53ea\u6709\u5728\u90a3\u4e4b\u540e\uff0c\u60a8\u624d\u5e94\u8be5\u5199\u4e00\u5c01\u7535\u5b50\u90ae\u4ef6\u5230support@iobroker.com","help_tip":"\u6ca1\u6709iobroker.pro\u8d26\u53f7\uff1f\u5728 https://iobroker.pro \u4e0a\u8d2d\u4e70\u4ee5\u83b7\u5f97\u6709\u6548\u8bbf\u95ee\u6743\u9650\uff0c\u6216\u514d\u8d39\u83b7\u53d6\uff0c\u4f46\u8bbf\u95ee\u53d7\u9650\u3002","info_allowedServices":"\u9664\u4ee5\u9017\u53f7\u3002\u4f7f\u7528*\u5141\u8bb8\u6240\u6709\u670d\u52a1\u3002","info_iftttKey":"\u60a8\u53ef\u4ee5\u5728\u201c\u6587\u6863\u201d\u4e0b\u627e\u5230\u60a8\u7684\u5bc6\u94a5 ","ioBroker.pro Login":"ioBroker.pro\u767b\u5f55","ioBroker.pro Password":"ioBroker.pro\u5bc6\u7801","last value":"\u6700\u540e\u7684\u4ef7\u503c","modified":"\u540d\u79f0\u5df2\u7531\u7528\u6237\u4fee\u6539","no type":"\u6ca1\u6709\u7c7b\u578b","tooltip_allowSelfSignedCertificate":"\u5982\u679c\u60a8\u4f7f\u7528\u81ea\u5df1\u7684\u4e91\uff0c\u5219\u53ef\u4ee5\u5141\u8bb8\u4e3a\u4e91\u4f7f\u7528\u81ea\u7b7e\u540d\u8bc1\u4e66\u3002","tooltip_apikey":"\u9700\u8981\u6b64\u5bc6\u94a5\u624d\u80fd\u4e0e\u4e91\u901a\u4fe1\u3002\u60a8\u53ef\u4ee5\u5728https://iobroker.net\u4e0a\u83b7\u53d6API-KEY\uff0c\u5b83\u770b\u8d77\u6765\u50cfnickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"\u901a\u5e38\u60a8\u4e0d\u9700\u8981\u66f4\u6539\u5b83\u3002\u4ec5\u5728\u60a8\u8ba1\u5212\u4f7f\u7528\u81ea\u5df1\u7684\u4e91\u65f6\u624d\u9700\u8981\u3002","tooltip_concatWord":"\u5b9a\u4e49\u5982\u4f55\u8fde\u63a5Room\u548cFunction\u3002\u4f8b\u5982\u3002 \'in\'\uff1a\u5ba2\u5385\u91cc\u7684\u706f\u5149\u3002","tooltip_deviceOffLevel":"\u4e00\u4e9b\u7ec4\u7531\u6df7\u5408\u8bbe\u5907\u7ec4\u6210\uff1a\u8c03\u5149\u5668\u548c\u5f00\u5173\u3002\u5141\u8bb8\u4f7f\u7528ON\u548cOFF\u547d\u4ee4\u4ee5\u53ca\u767e\u5206\u6bd4\u6765\u63a7\u5236\u5b83\u4eec","tooltip_functionFirst":"\u901a\u5e38\u540d\u79f0\u770b\u8d77\u6765\u50cfroom_function\u3002\u5728\u8fd9\u91cc\uff0c\u60a8\u53ef\u4ee5\u5c06\u5176\u5207\u6362\u5230function_room\u3002","tooltip_instance":"Web\u5b9e\u4f8b\uff0c\u5c06\u663e\u793a\u60a8\u7684\u4e91\u8fde\u63a5\u3002","tooltip_language":"\u60a8\u53ef\u4ee5\u5b9a\u4e49\u8bed\u8a00\u4ee5\u5728\u7f8e\u56fdAlexa Skill\u548cDE Alexa Skill\u4e4b\u95f4\u5feb\u901f\u5207\u6362\u3002","tooltip_noCommon":"\u5982\u679c\u542f\u7528\uff0c\u5219\u4ec5\u4e3a\u6b64\u5b9e\u4f8b\u5b58\u50a8\u8bbe\u7f6e\u3002\u6240\u4ee5\u5728\u53e6\u4e00\u4e2a\u5b9e\u4f8b\u4e2d\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5176\u4ed6\u540d\u79f0\u3002","tooltip_responseOID":"\u5bf9\u4e8e\u6bcf\u4e2a\u547d\u4ee4\uff0c\u5c06\u751f\u6210\u6587\u672c\u54cd\u5e94\u3002\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u5b9a\u4e49\u5fc5\u987b\u5199\u5165\u6b64\u6587\u672c\u7684\u5bf9\u8c61ID\u3002\u4f8b\u5982\u3002 sayit.0.tts.text\u3002","tooltip_restartOnDisconnect":"\u5728\u4e0e\u4e91\u8fde\u63a5\u4e22\u5931\u540e\u7f3a\u5c11\u4e0eAlexa\u7684\u8fde\u63a5\u7684\u89e3\u51b3\u65b9\u6cd5\u3002\u4f7f\u7528\u6b64\u9009\u9879\uff0c\u60a8\u53ef\u4ee5\u5728\u6bcf\u6b21\u65ad\u5f00\u8fde\u63a5\u540e\u91cd\u65b0\u542f\u52a8\u9002\u914d\u5668\uff0c\u5b83\u5c06\u8d77\u4f5c\u7528\u3002","Short answer for blood sugar":"\u8840\u7cd6\u7684\u7b80\u77ed\u7b54\u6848","cannot_use_password":"\u60a8\u4e0d\u80fd\u5728\u5bc6\u7801\u4e2d\u4f7f\u7528\uff05\u3002\u6211\u4eec\u6b63\u5728\u52aa\u529b\u89e3\u51b3\u3002","invalid_password_warning":"\u5bc6\u7801\u957f\u5ea6\u5fc5\u987b\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\uff0c\u5e76\u4e14\u5fc5\u987b\u5305\u542b\u6570\u5b57\uff0c\u5927\u5c0f\u5199\u5b57\u6bcd\u3002\u8bf7\u5728ioBroker.pro\u914d\u7f6e\u6587\u4ef6\u4e2d\u8fdb\u884c\u66f4\u6539\\n","new_certs_tip":"\u5982\u679c\u60a8\u4ece\u5907\u4efd\u8fd8\u539f\uff0c\u6216\u5c06\u5b9e\u4f8b\u4ece\u4e00\u53f0\u8bbe\u5907\u79fb\u81f3\u53e6\u4e00\u53f0\u8bbe\u5907\uff0c\u6216\u5220\u9664\u4e86IoT\u5b9e\u4f8b\u5e76\u518d\u6b21\u6dfb\u52a0\uff0c\u5219\u5fc5\u987b\u4f7f\u7528\u6b64\u6309\u94ae\u52a0\u8f7d\u8fde\u63a5\u5b89\u5168\u8bc1\u4e66","new_credentials_tip":"\u5982\u679c\u60a8\u6062\u590d\u4e86ioBroker.pro\u5bc6\u7801\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u6b64\u6309\u94ae\u5c06\u5bc6\u7801\u4e0eAlexa/Google/Alisa\u540c\u6b65\u3002","Create IoT credentials anew":"\u91cd\u65b0\u521b\u5efaIoT\u51ed\u636e","forum_tip":"\u4efb\u4f55\u8bed\u8a00\u7684\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u5728\u8bba\u575b\u4e0a\u63d0\u95ee\uff1a\u94fe\u63a5","Save settings before pressing this button":"\u6309\u6b64\u6309\u94ae\u4e4b\u524d\u4fdd\u5b58\u8bbe\u7f6e","Auto Mode":"\u81ea\u52a8\u6a21\u5f0f","Manual Mode":"\u624b\u52a8\u6a21\u5f0f","manualModeHint":"\u8bf7\u9009\u62e9TYPE\u548cTRAIT\u3002\u8981\u6dfb\u52a0\u591a\u4e2a\u7279\u5f81\uff0c\u8bf7\u6dfb\u52a0\u4e0d\u540c\u7684id\u548c\u7279\u5f81\uff0c\u4f46\u8981\u4f7f\u7528\u76f8\u540c\u7684\u667a\u80fd\u540d\u79f0\uff0c\u7c7b\u578b\u548c\u623f\u95f4\u3002\u9017\u53f7\u5206\u9694\u4e3a\u591a\u4e2a\u667a\u80fd\u540d\u79f0\u3002\u8981\u5206\u914d\u623f\u95f4\uff0c\u8bf7\u4f7f\u7528ioBroker Enums/Aufz\xe4hlungen\u3002\u4f8b\u5982\uff0c\u901a\u8fc7\u5c5e\u6027\uff0c\u60a8\u53ef\u4ee5\u8bbe\u7f6e\u8272\u6e29\u7684\u8303\u56f4\u6709\u5173\u7684\u4fe1\u606f\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u627e\u5230\u5c5e\u6027\u3002\u7a7a\u5c5e\u6027\u4e3a{}","not activated":"\u672a\u6fc0\u6d3b","Google devices":"Google\u8bbe\u5907","Show/Hide help":"\u663e\u793a/\u9690\u85cf\u5e2e\u52a9","Show all devices for print out":"\u663e\u793a\u6240\u6709\u8981\u6253\u5370\u7684\u8bbe\u5907","Search":"\u641c\u7d22","List of devices to print out, e.g. to give all device names to your partner.":"\u8981\u6253\u5370\u7684\u8bbe\u5907\u5217\u8868\uff0c\u4f8b\u5982\u5c06\u6240\u6709\u8bbe\u5907\u540d\u79f0\u63d0\u4f9b\u7ed9\u60a8\u7684\u5408\u4f5c\u4f19\u4f34\u3002","Name":"\u540d\u79f0","Function":"\u529f\u80fd","Room":"\u623f\u95f4","Copy to clipboard":"\u590d\u5236\u5230\u526a\u8d34\u677f","Toggle expert mode":"\u5207\u6362\u4e13\u5bb6\u6a21\u5f0f","ID":"ID","Smart names":"\u806a\u660e\u7684\u540d\u5b57","ioBType":"IoB\u7c7b\u578b","Function/Trait":"\u529f\u80fd/\u7279\u8d28","Attributes":"\u5c5e\u6027","Auto":"\u81ea\u52a8\u5730","Conversation to GH":"\u8f6c\u6362\u4e3aGH","Conversation to ioB":"\u8f6c\u6362\u4e3aioB","Information: The skill linking process was changed!":"\u4fe1\u606f\uff1a\u6280\u80fd\u94fe\u63a5\u8fc7\u7a0b\u5df2\u66f4\u6539\uff01","The linking process has been changed for a few months.":"\u94fe\u63a5\u8fc7\u7a0b\u5df2\u66f4\u6539\u4e86\u51e0\u4e2a\u6708\u3002","Now there is no temporary password that will be sent by email.":"\u73b0\u5728\u6ca1\u6709\u5c06\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u53d1\u9001\u7684\u4e34\u65f6\u5bc6\u7801\u3002","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\u5bc6\u7801\u4e0eioBroker.pro\u4ee5\u53ca\u5728\u8bbe\u7f6e\u4e2d\u8f93\u5165\u7684\u5bc6\u7801\u76f8\u540c\uff01","Not understood":"\u4e0d\u660e\u767d","Roger that":"\u6536\u5230","Read blood sugar from":"\u4ece\u8bfb\u53d6\u8840\u7cd6","Get actual humidity":"\u83b7\u53d6\u5b9e\u9645\u6e7f\u5ea6","Get motion":"\u52a8\u8d77\u6765","Get contact":"\u83b7\u53d6\u8054\u7cfb\u72b6\u6001"}')},341:function(e,t,a){"use strict";a.r(t);var n=a(1),o=a.n(n),i=a(24),s=a.n(i),r=a(56),l=a(408),c=a(390),d=(a(242),a(54)),u=a(31),p=a(32),m=a(34),h=a(33),g=a(8),f=a(406),b=a(409),v=a(407),k=a(218),w=a.n(k),j=a(171),y=a.n(j),S=a(214),O=a(192),x=a(193),T=a(194),C=a(195),z=a(191),I=a(5),A=a.n(I),N=a(4),_=a(216),D=a(202),L=a(212),F=a(395),E=a(396),R=a(399),B=a(398),P=a(397),G=a(215),U=a(169),H=a(14),M=a.n(H),W=a(11),q=a(220),V=a.n(q),K=a(2),J=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).onAliveChanged=function(e,t){e==="system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")&&n.setState({isInstanceAlive:t&&t.val})},n.state={inAction:!1,toast:"",isInstanceAlive:!1,errorWithPercent:!1},n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(e){return n.setState({isInstanceAlive:e&&e.val})})),n}return Object(p.a)(a,[{key:"componentDidMount",value:function(){this.props.socket.subscribeState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive"),this.onAliveChanged)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive"),this.onAliveChanged)}},{key:"checkPassword",value:function(e){return(e.length<8||!e.match(/[a-z]/)||!e.match(/[A-Z]/)||!e.match(/\d/))&&A.a.t("invalid_password_warning")}},{key:"renderInput",value:function(e,t,a){var n=this,o="pass"===t&&this.checkPassword(this.props.native[t]);return Object(K.jsx)(_.a,{label:A.a.t(e),error:!!o,className:this.props.classes.input,value:this.props.native[t],type:a||"text",helperText:o||"",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"renderCard",value:function(){return Object(K.jsxs)(F.a,{className:this.props.classes.card,children:[Object(K.jsxs)(E.a,{children:[Object(K.jsx)(P.a,{className:this.props.classes.media,image:"alexalogo.png",title:"Alexa logo"}),Object(K.jsx)(B.a,{children:M.a.renderTextWithA(A.a.t("amazon link"))})]}),Object(K.jsx)(R.a,{style:{textAlign:"center"},children:Object(K.jsx)(z.a,{variant:"outlined",size:"small",color:"primary",style:{textAlign:"center"},onClick:function(){window.open("http://alexa.amazon.de/spa/index.html#skills/dp/B07L66BFF9/reviews","_blank").focus()},children:A.a.t("Review")})})]})}},{key:"resetCerts",value:function(e){var t=this;this.setState({inAction:!0}),this.props.socket.setState("iot."+this.props.instance+".certs.private",{val:"",ack:!0}).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.id",{val:"",ack:!0})})).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.public",{val:"",ack:!0})})).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.certificate",{val:"",ack:!0})})).then((function(){return e?t.props.socket.setState("iot."+t.props.instance+".certs.forceUserCreate",{val:!0,ack:!0}):Promise.resolve()})).then((function(){return t.props.socket.getObject("system.adapter.iot."+t.props.instance)})).then((function(e){return e&&e.common&&e.common.enabled?t.props.socket.setObject("system.adapter.iot."+t.props.instance,e):Promise.resolve()})).then((function(){return t.setState({toast:A.a.t("Certificates will be updated after start")})})).catch((function(e){return t.props.onError(e)})).then((function(){return t.setState({inAction:!1})}))}},{key:"renderToast",value:function(){var e=this;return this.state.toast?Object(K.jsx)(G.a,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:function(){return e.setState({toast:""})},ContentProps:{"aria-describedby":"message-id"},message:Object(K.jsx)("span",{id:"message-id",children:this.state.toast}),action:[Object(K.jsx)(U.a,{"aria-label":"Close",color:"inherit",className:this.props.classes.close,onClick:function(){return e.setState({toast:""})},children:Object(K.jsx)(W.c,{})},"close")]}):null}},{key:"renderCheckbox",value:function(e,t,a){var n=this;return Object(K.jsx)(D.a,{style:Object.assign({paddingTop:5},a),className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{checked:this.props.native[t],onChange:function(){return n.props.onChange(t,!n.props.native[t])},color:"primary"}),label:A.a.t(e)},t)}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsx)(V.a,{instance:this.props.instance,common:this.props.common,native:this.props.native,onError:function(t){return e.setState({errorText:t})},onLoad:this.props.onLoad}),Object(K.jsxs)("div",{className:Object(N.a)(this.props.classes.column,this.props.classes.columnSettings),children:[this.renderInput("ioBroker.pro Login","login"),Object(K.jsx)("br",{}),this.renderInput("ioBroker.pro Password","pass","password"),Object(K.jsx)("br",{}),this.renderCheckbox("Amazon Alexa","amazonAlexa"),Object(K.jsx)(D.a,{className:this.props.classes.controlElement,style:{marginTop:5},control:Object(K.jsx)(L.a,{checked:this.props.native.googleHome,onChange:function(){var t=!e.props.native.googleHome;e.props.onChange("googleHome",t,(function(){return t&&e.props.onChange("amazonAlexa",!0)}))},color:"primary"}),label:A.a.t("Google Home")},"googleHome"),this.renderCheckbox("Yandex \u0410\u043b\u0438\u0441\u0430","yandexAlisa"),Object(K.jsx)("br",{}),Object(K.jsx)("p",{children:A.a.t("new_certs_tip")}),this.props.changed?Object(K.jsx)("div",{className:this.props.classes.hintUnsaved,children:A.a.t("Save settings before pressing this button")}):null,Object(K.jsxs)(z.a,{variant:"outlined",className:this.props.classes.button,disabled:this.props.changed||this.state.inAction||!this.state.isInstanceAlive,title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.resetCerts()},children:[Object(K.jsx)(W.j,{style:{marginRight:8}}),A.a.t("Get new connection certificates")]}),Object(K.jsx)("p",{children:A.a.t("new_credentials_tip")}),this.props.changed?Object(K.jsx)("div",{className:this.props.classes.hintUnsaved,children:A.a.t("Save settings before pressing this button")}):null,Object(K.jsxs)(z.a,{variant:"outlined",className:this.props.classes.button,disabled:this.props.changed||this.state.inAction||!this.state.isInstanceAlive,title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.resetCerts(!0)},children:[Object(K.jsx)(W.j,{style:{marginRight:8}}),A.a.t("Create IoT credentials anew")]}),Object(K.jsx)("p",{children:M.a.renderTextWithA(A.a.t("forum_tip"))}),Object(K.jsx)("p",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("help_tip"))}),Object(K.jsx)("p",{style:{fontWeight:"bold",paddingTop:20},children:M.a.renderTextWithA(A.a.t("help_link_tip1"))}),Object(K.jsx)("p",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("help_link_tip2"))}),Object(K.jsx)("p",{style:{fontWeight:"bold",color:"red"},children:M.a.renderTextWithA(A.a.t("help_link_tip3"))})]}),Object(K.jsx)("div",{className:Object(N.a)(this.props.classes.column,this.props.classes.columnLogo),children:this.renderCard()}),this.renderToast()]})}}]),a}(n.Component),Y=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{minWidth:300},button:{marginRight:20,marginBottom:40},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},cannotUse:{color:"red",fontWeight:"bold"},hintUnsaved:{fontSize:12,color:"red",fontStyle:"italic"}}}))(J),Z=a(199),Q=a(394),X=a(196),$=a(200),ee=a(211),te=a(204),ae=a(60),ne=a.n(ae),oe=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={showSelectId:!1},n}return Object(p.a)(a,[{key:"renderInput",value:function(e,t,a){var n=this;return Object(K.jsx)(_.a,{label:A.a.t(e),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native[t],type:a||"text",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"renderSelect",value:function(e,t,a,n){var o=this;return Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:Object.assign({paddingTop:5},n),children:[Object(K.jsx)(ee.a,{value:this.props.native[t]||"_",onChange:function(e){return o.props.onChange(t,"_"===e.target.value?"":e.target.value)},input:Object(K.jsx)(Z.a,{name:t,id:t+"-helper"}),children:a.map((function(e){return Object(K.jsx)(te.a,{value:e.value||"_",children:A.a.t(e.title)},"key-"+e.value)}))}),Object(K.jsx)(Q.a,{children:A.a.t(e)})]})}},{key:"renderCheckbox",value:function(e,t,a){var n=this;return Object(K.jsx)(D.a,{style:Object.assign({paddingTop:5},a),className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{checked:this.props.native[t],onChange:function(){return n.props.onChange(t,!n.props.native[t])},color:"primary"}),label:A.a.t(e)},t)}},{key:"getSelectIdDialog",value:function(e){var t=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:this.props.native[e],types:["state"],onClose:function(){return t.setState({showSelectId:!1})},onOk:function(a){t.setState({showSelectId:!1}),t.props.onChange(e,a)}},"dialogSelectID2"):null}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[this.renderInput("Cloud URL","cloudUrl"),Object(K.jsx)("br",{}),this.renderSelect("Language","language",[{title:"default",value:""},{title:"english",value:"en"},{title:"Deutsch",value:"de"},{title:"\u0440\u0443\u0441\u0441\u043a\u0438\u0439",value:"ru"}],{marginTop:10}),Object(K.jsx)("br",{}),this.renderCheckbox("Place function in names first","functionFirst",{marginTop:10}),Object(K.jsx)("br",{}),this.renderInput("Concatenate words with","concatWord"),Object(K.jsx)("br",{}),this.renderInput("Replace in names","replaces"),Object(K.jsx)("br",{}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,style:{marginTop:15},children:[this.renderInput("OFF level for switches in %","deviceOffLevel"),Object(K.jsx)(Q.a,{children:A.a.t("(Set to 0 if behavior not desired)")})]}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[this.renderInput("Write response to","responseOID"),Object(K.jsx)(X.a,{size:"small",color:"secondary",onClick:function(){return e.setState({showSelectId:!0})},"aria-label":"Add",style:{marginLeft:5,marginTop:10},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)("br",{})]}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[this.renderCheckbox("Personal settings (only pro)","noCommon"),Object(K.jsx)(Q.a,{children:M.a.renderTextWithA(A.a.t("help_tip"))}),Object(K.jsx)("br",{})]}),this.renderCheckbox("Debug outputs","debug"),this.getSelectIdDialog("responseOID")]})}}]),a}(n.Component),ie=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{marginTop:0,minWidth:400},button:{marginRight:20},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},controlElement:{marginBottom:5}}}))(oe),se=a(41),re=a(411),le=a(151),ce=a.n(le),de=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={running:!1,toast:"",showSelectId:!1,text2commandList:[],nightscoutList:[],addValue:"",isInstanceAlive:!1},n.onKeyChangedBound=n.onKeyChanged.bind(Object(se.a)(n)),n.props.socket.getAdapterInstances("text2command").then((function(e){return n.props.socket.getAdapterInstances("nightscout").then((function(t){return n.setState({nightscoutList:t.map((function(e){return e._id.replace("system.adapter.nightscout.","")})),text2commandList:e.map((function(e){return e._id.replace("system.adapter.text2command.","")}))})}))})),n}return Object(p.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.props.socket.subscribeState("iot."+this.props.instance+".certs.urlKey",this.onKeyChangedBound),this.props.socket.getObject("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance)).then((function(t){return e.props.socket.getState("system.adapter.".concat(e.props.adapterName,".").concat(e.props.instance,".alive")).then((function(a){return e.setState({isInstanceAlive:t&&t.common&&a&&a.val})}))}))}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("iot."+this.props.instance+".certs.urlKey",this.onKeyChangedBound)}},{key:"onKeyChanged",value:function(e,t){t&&this.setState({key:t.val})}},{key:"renderInput",value:function(e,t,a){var n=this;return Object(K.jsx)(_.a,{label:A.a.t(e),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native[t],type:a||"text",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"reissueUrlKey",value:function(){var e=this;return this.setState({running:!0}),this.props.socket.setState("iot."+this.props.instance+".certs.urlKey",{val:"",ack:!0}).then((function(){return e.props.socket.getObject("system.adapter.iot."+e.props.instance)})).then((function(t){if(t&&t.common&&t.common.enabled)return e.props.socket.setObject("system.adapter.iot."+e.props.instance,t);e.setState({running:!1,toast:A.a.t("Key will be updated after start")})})).then((function(){return e.setState({running:!1,toast:A.a.t("Certificates will be updated after initiated restart")})})).catch((function(t){e.setState({running:!1}),e.props.showError(t)}))}},{key:"renderToast",value:function(){var e=this;return this.state.toast?Object(K.jsx)(G.a,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:function(){return e.setState({toast:""})},ContentProps:{"aria-describedby":"message-id"},message:Object(K.jsx)("span",{id:"message-id",children:this.state.toast}),action:[Object(K.jsx)(U.a,{"aria-label":"Close",color:"inherit",className:this.props.classes.close,onClick:function(){return e.setState({toast:""})},children:Object(K.jsx)(W.c,{})},"close")]}):null}},{key:"onChipsDelete",value:function(e,t){var a=(this.props.native[e]||"").split(/[,;\s]/).filter((function(e){return!!e})),n=a.indexOf(t);-1!==n&&(a.splice(n,1),this.props.onChange(e,a.join(" ")))}},{key:"onChipsAdd",value:function(e){var t=this,a=(this.props.native[e]||"").split(/[,;\s]/).filter((function(e){return!!e}));-1===a.indexOf(this.state.addValue)&&(a.push(this.state.addValue),this.setState({addValue:""},(function(){return t.props.onChange(e,a.join(" "))})))}},{key:"calcNightscoutSecret",value:function(){var e=this.props.native.login.replace(/[^\w\d-_]/g,"_"),t=this.props.native.nightscoutPass;return e+(t?"-"+t:"")}},{key:"getSelectIdDialog",value:function(e){var t=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:this.props.native[e],types:["state"],onClose:function(){return t.setState({showSelectId:!1})},onOk:function(a){t.setState({showSelectId:!1}),t.props.onChange(e,a)}},"dialogSelectID3"):null}},{key:"renderChips",value:function(e,t){var a=this;return Object(K.jsxs)("div",{className:this.props.classes.chipsDiv,children:[Object(K.jsx)(Q.a,{children:M.a.renderTextWithA(A.a.t(e))}),Object(K.jsx)(_.a,{label:A.a.t("Add service"),style:{width:150},type:"text",value:this.state.addValue,onKeyUp:function(e){return 13===e.keyCode&&a.onChipsAdd(t)},onChange:function(e){return a.setState({addValue:e.target.value.trim()})},margin:"normal"}),Object(K.jsx)(X.a,{size:"small",color:"secondary",disabled:!this.state.addValue,onClick:function(){return a.onChipsAdd(t)},style:{marginLeft:5,marginTop:-15},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)("div",{className:this.props.classes.chips,children:(this.props.native[t]||"").split(/[,;\s]/).filter((function(e){return!!e})).map((function(e){return Object(K.jsx)(re.a,{size:"small",label:e,onDelete:function(){return a.onChipsDelete(t,e)},className:a.props.classes.chip},e)}))})]})}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsxs)(z.a,{variant:"outlined",disabled:!this.state.isInstanceAlive||this.state.running,color:"primary",title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.reissueUrlKey()},children:[Object(K.jsx)(W.j,{}),A.a.t("Get new service URL key")]}),Object(K.jsx)("br",{}),this.renderInput("IFTTT key","iftttKey"),Object(K.jsx)("br",{}),Object(K.jsx)(_.a,{style:{marginTop:10},label:A.a.t("Use following link for IFTTT"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.fullSize),value:"https://service.iobroker.in/v1/iotService?service=ifttt&key=".concat(this.state.key,"&user=").concat(encodeURIComponent(this.props.native.login)),type:"text",readOnly:!0,margin:"normal"}),Object(K.jsx)(X.a,{size:"small",style:{marginTop:10,marginLeft:5},onClick:function(){return M.a.copyToClipboard("https://service.iobroker.in/v1/iotService?service=ifttt&key=".concat(e.state.key,"&user=").concat(encodeURIComponent(e.props.native.login)))},children:Object(K.jsx)(ce.a,{})}),Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),this.renderChips("White list for services","allowedServices"),Object(K.jsx)("br",{}),Object(K.jsx)(_.a,{style:{marginTop:10},label:A.a.t("Use following link for custom service"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.fullSize),value:"https://service.iobroker.in/v1/iotService?service=custom_&key=".concat(this.state.key,"&user=").concat(encodeURIComponent(this.props.native.login),"&data="),type:"text",readOnly:!0,margin:"normal"}),Object(K.jsx)(X.a,{size:"small",style:{marginTop:10,marginLeft:5},onClick:function(){return M.a.copyToClipboard("https://service.iobroker.in/v1/iotService?service=custom_&key=".concat(e.state.key,"&user=").concat(encodeURIComponent(e.props.native.login),"&data="))},children:Object(K.jsx)(ce.a,{})}),Object(K.jsx)("br",{}),Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:{paddingTop:20},children:[Object(K.jsxs)(ee.a,{value:this.props.native.text2command||"_",onChange:function(t){return e.props.onChange("text2command","_"===t.target.value?"":t.target.value)},input:Object(K.jsx)(Z.a,{name:"text2command",id:"text2command-helper"}),children:[Object(K.jsx)(te.a,{value:"_",children:A.a.t("disabled")},"key-default"),this.state.text2commandList.map((function(e){return Object(K.jsxs)(te.a,{value:e,children:["text2command.",e]},"key-"+e)}))]}),Object(K.jsx)(Q.a,{children:A.a.t("Use text2command instance")})]}),Object(K.jsx)("br",{}),Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:{paddingTop:20},children:[Object(K.jsxs)(ee.a,{value:this.props.native.nightscout||"_",onChange:function(t){return e.props.onChange("nightscout","_"===t.target.value?"":t.target.value)},input:Object(K.jsx)(Z.a,{name:"nightscout",id:"nightscout-helper"}),children:[Object(K.jsx)(te.a,{value:"_",children:A.a.t("disabled")},"key-default"),this.state.nightscoutList.map((function(e){return Object(K.jsxs)(te.a,{value:e,children:["nightscout.",e]},"key-"+e)}))]}),Object(K.jsx)(Q.a,{children:A.a.t("Use Nightscout instance")})]}),this.props.native.nightscout?Object(K.jsx)(_.a,{style:{marginTop:3.5},label:A.a.t("Nightscout password"),onChange:function(t){return e.props.onChange("nightscoutPass",t.target.value.replace(/[^\w\d-_]/g,"_"))},className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.normalSize),value:this.props.native.nightscoutPass,type:"text",margin:"normal"}):null,this.props.native.nightscout?Object(K.jsx)(_.a,{style:{marginTop:3.5},label:A.a.t("Nightscout api-secret"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.normalSize),value:this.calcNightscoutSecret(),type:"text",readOnly:!0,margin:"normal"}):null,Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[Object(K.jsx)(_.a,{label:A.a.t("Read blood sugar from"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native.amazonAlexaBlood||"",type:"text",onChange:function(t){return e.props.onChange("amazonAlexaBlood",t.target.value)},margin:"normal"}),Object(K.jsx)(X.a,{size:"small",color:"secondary",onClick:function(){return e.setState({showSelectId:!0})},"aria-label":"Add",style:{marginLeft:5,marginTop:10},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)(D.a,{className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{style:{paddingLeft:30},checked:this.props.native.amazonAlexaBloodShortAnswer||!1,onChange:function(t){return e.props.onChange("amazonAlexaBloodShortAnswer",t.target.checked)},color:"primary"}),label:A.a.t("Short answer for blood sugar")})]}),Object(K.jsx)("br",{}),this.renderToast(),this.getSelectIdDialog("amazonAlexaBlood")]})}}]),a}(n.Component),ue=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{marginTop:0,minWidth:400},fullSize:{width:"calc(100% - 64px)"},normalSize:{width:"calc(30% - 64px)",marginLeft:10},button:{marginRight:20},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},controlElement:{marginBottom:5},chips:{border:"1px solid #DDD",borderRadius:1,width:"calc(100% - 250px)",display:"inline-block",padding:5,minHeight:32,marginLeft:10,marginTop:20},chip:{marginRight:5}}}))(de),pe=a(209),me=a(85),he=a.n(me),ge=a(203),fe=a(36),be=a.n(fe),ve=a(72),ke=a.n(ve),we=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={inAction:!1,editId:"",editedSmartName:"",funcs:[],rooms:[],changed:[],message:"",loading:!0},n.onEnumUpdateBound=n.onEnumUpdate.bind(Object(se.a)(n)),n.props.socket.getEnums().then((function(e){var t=[],a=[];return Object.keys(e).forEach((function(n){n.match(/^enum\.rooms\./)?a.push(e[n]):n.match(/^enum\.functions\./)&&t.push(e[n])})),n.setState({funcs:t,rooms:a,loading:!1}),n.props.socket.subscribeObject("enum.*",n.onEnumUpdateBound)})),n}return Object(p.a)(a,[{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeObject("enum.*",this.onEnumUpdateBound).then((function(){}))}},{key:"onEnumUpdate",value:function(e,t){this.removeChanged(e),this.updateObjInState(e,t)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed));-1===t.indexOf(e)&&(t.push(e),this.setState({changed:t}))}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"updateObjInState",value:function(e,t){if(e.match(/^enum\.functions\./)){for(var a=this.state.funcs.length-1;a>=0;a--)if(this.state.funcs[a]._id===e){var n=JSON.parse(JSON.stringify(this.state.funcs));t?n[a]=t:n.splice(a,1),this.setState({funcs:n});break}}else if(e.match(/^enum\.rooms\./))for(var o=this.state.rooms.length-1;o>=0;o--)if(this.state.rooms[o]._id===e){var i=JSON.parse(JSON.stringify(this.state.rooms));t?i[o]=t:i.splice(o,1),this.setState({rooms:i});break}}},{key:"onToggleEnum",value:function(e){var t=this,a=this.state.funcs.find((function(t){return t._id===e}))||this.state.rooms.find((function(t){return t._id===e})),n=M.a.getSmartNameFromObj(a);a=JSON.parse(JSON.stringify(a)),!1!==n?M.a.disableSmartName(a,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon):M.a.removeSmartName(a,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon),this.addChanged(e),this.props.socket.setObject(e,a).then((function(){t.updateObjInState(e,a),t.informInstance(e),setTimeout((function(){return t.removeChanged(e)}),500)}))}},{key:"onEdit",value:function(e){var t=this.state.funcs.find((function(t){return t._id===e}))||this.state.rooms.find((function(t){return t._id===e})),a=M.a.getSmartNameFromObj(t,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon);"object"===typeof a&&a&&(a=a[A.a.getLanguage()]||a.en),a=a||M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()}),this.setState({editId:e,editedSmartName:a})}},{key:"renderEnum",value:function(e){var t=this,a=M.a.getSmartNameFromObj(e,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon);a&&"object"===typeof a&&(a=a[A.a.getLanguage()]||a.en||"");var n=M.a.getObjectNameFromObj(e);return Object(K.jsxs)("div",{className:this.props.classes.enumLine,style:{background:-1!==this.state.changed.indexOf(e._id)?"#e7000040":"inherit"},children:[Object(K.jsxs)("span",{className:this.props.classes.enumLineName,style:{opacity:!1===a?.5:1},children:[a||null,a?Object(K.jsxs)("span",{className:this.props.classes.enumLineSubName,children:[" (",n,")"]}):n]}),Object(K.jsx)("span",{className:this.props.classes.enumLineId,style:{opacity:!1===a?.5:1},children:e._id}),Object(K.jsx)(pe.a,{className:this.props.classes.enumLineEnabled,checked:!1!==a,onChange:function(){return t.onToggleEnum(e._id)}}),Object(K.jsx)(U.a,{"aria-label":"Edit",className:this.props.classes.enumLineEdit,onClick:function(){return t.onEdit(e._id)},children:Object(K.jsx)(W.f,{fontSize:"small"})})]},e._id)}},{key:"renderEnums",value:function(e){var t=this;return this.state[e].map((function(e){return t.renderEnum(e)}))}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(){var e=this;if((this.state.editId.startsWith("enum.functions.")?this.state.funcs:this.state.rooms).find((function(t){return e.state.editId!==t._id&&(e.state.editedSmartName===M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})||e.state.editedSmartName===M.a.getSmartNameFromObj(t,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon))})))this.setState({message:A.a.t("Duplicate name")});else{this.addChanged(this.state.editId),setTimeout((function(){return e.removeChanged(e.state.editId)}),500);var t,a=this.state.editId;this.setState({editId:""}),this.props.socket.getObject(a).then((function(n){return M.a.updateSmartName(n,e.state.editedSmartName,void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),t=n,e.props.socket.setObject(a,n)})).then((function(){e.updateObjInState(a,t),e.informInstance(a)})).catch((function(t){return e.props.onError(t)}))}}},{key:"renderEditDialog",value:function(){var e=this;if(this.state.editId){var t=this.state.funcs.find((function(t){return t._id===e.state.editId}))||this.state.rooms.find((function(t){return t._id===e.state.editId}));return Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){return e.setState({editId:""})},"aria-labelledby":"message-dialog-title","aria-describedby":"message-dialog-description",children:[Object(K.jsx)(C.a,{id:"message-dialog-title",children:this.props.title||A.a.t("Smart name for %s",M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()}))}),Object(K.jsx)(x.a,{children:Object(K.jsx)(_.a,{autoFocus:!0,style:{width:"100%"},label:A.a.t("Smart name"),onChange:function(t){return e.setState({editedSmartName:t.target.value})},value:this.state.editedSmartName,helperText:A.a.t("You can enter several names divided by comma"),margin:"normal"})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.changeSmartName()},color:"primary",startIcon:Object(K.jsx)(ke.a,{}),children:A.a.t("Ok")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.setState({editId:""})},startIcon:Object(K.jsx)(be.a,{}),children:A.a.t("Cancel")})]})]})}return null}},{key:"render",value:function(){return this.state.loading?Object(K.jsx)(ge.a,{}):Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsxs)("div",{className:this.props.classes.column,children:[Object(K.jsx)("h5",{className:this.props.classes.columnHeader,children:A.a.t("Rooms")}),Object(K.jsx)("div",{className:this.props.classes.columnDiv,children:this.renderEnums("rooms")})]}),Object(K.jsxs)("div",{className:this.props.classes.column,children:[Object(K.jsx)("h5",{className:this.props.classes.columnHeader,children:A.a.t("Functions")}),Object(K.jsx)("div",{className:this.props.classes.columnDiv,children:this.renderEnums("funcs")})]}),this.renderMessage(),this.renderEditDialog()]})}}]),a}(n.Component),je=Object(g.a)((function(e){return{tab:{width:"100%",height:"100%"},column:{display:"inline-block",verticalAlign:"top",marginRight:20,height:"100%",overflow:"hidden",width:"calc(50% - 20px)",minWidth:300,maxWidth:450},columnDiv:{height:"calc(100% - 60px)",overflow:"auto",minWidth:300},enumLineEnabled:{position:"absolute",right:0,top:0},enumLineEdit:{position:"absolute",top:5,right:50},enumLineName:{},enumLineSubName:{fontStyle:"italic"},enumLine:{height:48,width:"100%",position:"relative"},enumLineId:{display:"block",fontStyle:"italic",fontSize:12},columnHeader:{background:e.palette.primary.light,padding:10,color:e.palette.primary.contrastText}}}))(we),ye=a(205),Se=a(13),Oe=a(106),xe=a.n(Oe),Te=a(105),Ce=a.n(Te),ze="#aba613",Ie="#444",Ae="#00c6ff",Ne="#00bc00",_e="#e7000040",De="#4f4f4f",Le="#e9e9e9",Fe="#5c8f65",Ee="#b4ffbe",Re={turnOn:{color:ze,icon:Se.i,desc:"Turn on"},turnOff:{color:Ie,icon:Se.i,desc:"Turn off"},setTargetTemperature:{color:Ae,icon:Se.k,desc:"Set target temperature"},incrementTargetTemperature:{color:ze,icon:Se.e,desc:"Increment target temperature"},decrementTargetTemperature:{color:Ie,icon:Se.d,desc:"Decrement target temperature"},setPercentage:{color:Ae,icon:Se.h,desc:"Set percentage"},incrementPercentage:{color:ze,icon:Se.e,desc:"Increment percentage"},decrementPercentage:{color:Ie,icon:Se.d,desc:"Decrement percentage"},setColor:{color:Ae,icon:Se.g,desc:"Set color"},setColorTemperature:{color:Ae,icon:Se.a,desc:"Set color temperature"},incrementColorTemperature:{color:ze,icon:Se.e,desc:"Increment color temperature"},decrementColorTemperature:{color:Ie,icon:Se.d,desc:"Decrement color temperature"},getTargetTemperature:{color:Ne,icon:Se.j,desc:"Get target temperature"},getTemperatureReading:{color:Ne,icon:Se.j,desc:"Get actual temperature"},setLockState:{color:Ae,icon:Se.c,desc:"Set lock state"},getLockState:{color:Ne,icon:Se.c,desc:"Read lock state"}},Be=["LIGHT","SWITCH","THERMOSTAT","ACTIVITY_TRIGGER","SCENE_TRIGGER","SMARTPLUG","SMARTLOCK","CAMERA"],Pe=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),n=t.call(this,e),Re.translated||(Object.keys(Re).forEach((function(e){return Re[e].desc=A.a.t(Re[e].desc)})),Re.translated=!0),n.state={editedSmartName:"",editId:"",editedSmartType:null,editObjectName:"",deleteId:"",showListOfDevices:!1,showSelectId:!1,showConfirmation:"",changed:[],devices:[],message:"",filter:"",loading:!0,browse:!1,expanded:[],lastChanged:""},n.timerChanged=null,n.browseTimer=null,n.browseTimerCount=0,n.editedSmartName="",n.waitForUpdateID=null,n.onReadyUpdateBound=n.onReadyUpdate.bind(Object(se.a)(n)),n.onResultUpdateBound=n.onResultUpdate.bind(Object(se.a)(n)),n.props.socket.getObject("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance)).then((function(e){n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(t){e&&e.common&&(e.common.enabled||t&&t.val)?n.browse():n.setState({message:A.a.t("Instance must be enabled"),loading:!1,devices:[]})}))})),n}return Object(p.a)(a,[{key:"browse",value:function(e){var t=this;Date.now()-this.lastBrowse<500||(this.lastBrowse=Date.now(),e?this.setState({loading:!0,browse:!0}):this.setState({browse:!0}),console.log("Send BROWSE!"),this.browseTimer=setTimeout((function(){console.log("Browse timeout!"),t.browseTimer=null,t.browseTimerCount++,t.browseTimerCount<5?t.browse(e):t.setState({message:A.a.t("Cannot read devices!")})}),1e4),this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"browse",null).then((function(e){t.browseTimer&&clearTimeout(t.browseTimer),t.browseTimerCount=0,t.browseTimer=null,e&&e.error?t.setState({message:A.a.t(e.error)}):(t.waitForUpdateID&&(t.onEdit(t.waitForUpdateID,e)||t.setState({message:A.a.t("Device %s was not added",t.waitForUpdateID)}),t.waitForUpdateID=null),console.log("BROWSE received."),t.setState({devices:e,loading:!1,changed:[],browse:!1}))})).catch((function(e){return t.setState({message:A.a.t("Error %s",e)})})))}},{key:"onReadyUpdate",value:function(e,t){var a=this;console.log("Update ".concat(e," ").concat(t?"".concat(t.val,"/").concat(t.ack):"null")),t&&!0===t.ack&&!0===t.val&&(this.devTimer&&clearTimeout(this.devTimer),this.devTimer=setTimeout((function(){a.devTimer=null,a.browse()}),300))}},{key:"onResultUpdate",value:function(e,t){t&&!0===t.ack&&t.val&&this.setState({message:t.val})}},{key:"componentDidMount",value:function(){this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updates"),this.onReadyUpdateBound),this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updates"),this.onReadyUpdateBound),this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound),this.timerChanged&&(clearTimeout(this.timerChanged),this.timerChanged=null)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e,t){var a=JSON.parse(JSON.stringify(this.state.changed));-1===a.indexOf(e)?(a.push(e),this.setState({changed:a},(function(){return t&&t()}))):t&&t()}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"onEdit",value:function(e,t){var a=this,n=(t=t||this.state.devices).find((function(t){return t.additionalApplianceDetails.id===e}));return!!n&&(this.props.socket.getObject(e).then((function(t){var o=n.additionalApplianceDetails.friendlyNames?n.additionalApplianceDetails.friendlyNames:n.friendlyName;"object"===typeof o&&o&&(o=o[A.a.getLanguage()]||o.en),a.editedSmartName=o;var i=null;n.additionalApplianceDetails.group||(i=n.additionalApplianceDetails.smartType),a.setState({editId:e,editedSmartType:i,editedSmartName:o,editObjectName:M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})})})),!0)}},{key:"onAskDelete",value:function(e){this.setState({deleteId:e,showConfirmation:!0})}},{key:"onDelete",value:function(){var e=this,t=this.state.deleteId;this.addChanged(t,(function(){e.props.socket.getObject(t).then((function(a){return M.a.disableSmartName(a,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.props.socket.setObject(t,a)})).then((function(){e.setState({deleteId:"",showConfirmation:!1,lastChanged:t}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4),e.informInstance(t)})).catch((function(t){return e.props.onError(t)}))}))}},{key:"renderActions",value:function(e){var t=this,a=[];if(!e.actions)return console.log("Something went wrong"),null;e.actions.sort((function(e,t){return e===t?0:"turnOn"===e?-1:"turnOn"===t?1:"turnOff"===e?-1:"turnOff"===t?1:0})),Object.keys(Re).forEach((function(n){if(-1!==e.actions.indexOf(n)){var o=Re[n].icon;a.push(Object(K.jsx)("span",{title:Re[n].desc,children:Object(K.jsx)(o,{className:t.props.classes.actionIcon,style:{color:Re[n].color}})},n))}}));for(var n=0;n1?Object(K.jsx)(ye.a,{badgeContent:i,color:"primary",children:r?Object(K.jsx)(W.e,{}):Object(K.jsx)(W.g,{})}):r?Object(K.jsx)(W.e,{}):Object(K.jsx)(W.g,{})}),Object(K.jsxs)("div",{className:this.props.classes.devLineNameBlock,style:{display:"inline-block",position:"relative"},children:[Object(K.jsx)("span",{className:this.props.classes.devLineName,children:a}),Object(K.jsx)("span",{className:this.props.classes.devLineDescription,children:e.friendlyDescription}),d?Object(K.jsx)(ge.a,{className:this.props.classes.devLineProgress,size:20}):null]}),Object(K.jsx)("span",{className:this.props.classes.devLineActions,children:this.renderActions(e)}),e.additionalApplianceDetails.group?null:Object(K.jsx)(U.a,{"aria-label":"Edit",className:this.props.classes.devLineEdit,onClick:function(){return n.onEdit(l)},children:Object(K.jsx)(W.f,{fontSize:"middle"})}),e.additionalApplianceDetails.group?null:Object(K.jsx)(U.a,{"aria-label":"Delete",className:this.props.classes.devLineDelete,onClick:function(){return n.onAskDelete(l)},children:Object(K.jsx)(W.d,{fontSize:"middle"})})]},"line"+t),r?this.renderChannels(e,t):null]}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(e){var t=this;e&&e.preventDefault(),this.addChanged(this.state.editId,(function(){var e=t.state.editId,a=t.state.editedSmartType;t.setState({editId:"",editObjectName:"",lastChanged:e,editedSmartType:null}),t.timerChanged&&clearTimeout(t.timerChanged),t.timerChanged=setTimeout((function(){t.setState({lastChanged:""}),t.timerChanged=null}),3e4),t.props.socket.getObject(e).then((function(n){return M.a.updateSmartName(n,t.editedSmartName,void 0,null===a?void 0:a,t.props.adapterName+"."+t.props.instance,t.props.native.noCommon),t.props.socket.setObject(e,n)})).then((function(){t.informInstance(e)})).catch((function(e){return t.props.onError(e)}))}))}},{key:"renderEditDialog",value:function(){var e=this;return this.state.editId?Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){e.editedSmartName=null,e.setState({editId:"",editedSmartName:""})},"aria-labelledby":"message-dialog-title","aria-describedby":"message-dialog-description",children:[Object(K.jsx)(C.a,{id:"message-dialog-title",children:this.props.title||A.a.t("Smart name for %s",this.state.editObjectName)}),Object(K.jsxs)(x.a,{children:[Object(K.jsxs)("p",{children:[Object(K.jsx)("span",{children:"ID:"})," ",Object(K.jsx)("span",{className:this.props.classes.editedId,children:this.state.editId})]}),Object(K.jsx)(_.a,{style:{width:"100%"},label:A.a.t("Smart name"),autoFocus:!0,onKeyDown:function(t){return 13===t.keyCode&&e.changeSmartName(t)},onChange:function(t){return e.editedSmartName=t.target.value},defaultValue:this.state.editedSmartName,helperText:A.a.t("You can enter several names divided by comma"),margin:"normal"}),null!==this.state.editedSmartType?this.renderSelectTypeSelector(this.state.editedSmartType,(function(t){return e.setState({editedSmartType:t})})):null]}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.changeSmartName()},color:"primary",startIcon:Object(K.jsx)(ke.a,{}),children:A.a.t("Ok")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){e.editedSmartName=null,e.setState({editId:"",editedSmartName:""})},startIcon:Object(K.jsx)(be.a,{}),children:A.a.t("Cancel")})]})]}):null}},{key:"renderConfirmDialog",value:function(){var e=this;return this.state.showConfirmation?Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){return e.setState({showConfirmation:""})},"aria-labelledby":"confirmation-dialog-title","aria-describedby":"confirmation-dialog-description",children:[Object(K.jsx)(C.a,{id:"confirmation-dialog-title",children:this.props.title||A.a.t("Device %s will be disabled.",this.state.deleteId)}),Object(K.jsx)(x.a,{children:Object(K.jsx)("p",{children:A.a.t("Are you sure?")})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.onDelete()},color:"primary",autoFocus:!0,startIcon:Object(K.jsx)(W.d,{}),children:A.a.t("Delete")}),Object(K.jsx)(z.a,{variant:"contained",startIcon:Object(K.jsx)(be.a,{}),onClick:function(){return e.setState({showConfirmation:""})},children:A.a.t("Cancel")})]})]}):null}},{key:"getSelectIdDialog",value:function(){var e=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:"",types:["state"],onClose:function(){return e.setState({showSelectId:!1})},onOk:function(t,a){e.setState({showSelectId:!1}),e.props.socket.getObject(t).then((function(t){if(t){var a=M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()});M.a.updateSmartName(t,(a||A.a.t("Device name")).replace(/[-_.]+/g," "),void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.addChanged(t._id),e.waitForUpdateID=t._id,e.state.lastChanged!==t._id&&(e.setState({lastChanged:t._id}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4)),e.props.socket.setObject(t._id,t).then((function(){return e.informInstance(t._id)})).catch((function(t){return e.setState({message:t})}))}else e.setState({message:A.a.t("Invalid ID")})}))}},"dialogSelectID1"):null}},{key:"renderDevices",value:function(){for(var e=this.state.filter.toLowerCase(),t=[],a=0;ao?1:0}var bt,vt=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;Object(u.a)(this,a),n=t.call(this,e);var o=window.localStorage.getItem("iot.ghome.opened")||"[]";try{o=JSON.parse(o)||[]}catch(i){o=[]}return Array.isArray(o)||(o=[]),n.state={opened:o,editMode:!1,deleteMode:!1,editData:null,order:"asc",orderBy:n.props.columns[0].field},n}return Object(p.a)(a,[{key:"renderCell",value:function(e,t,a,n){var o=this;if(this.state.editMode===n&&"never"!==t.editable){var i=ht(e,t.field);return Array.isArray(i)&&(i=i[0]),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,a&&this.props.classes.cellSecondary),style:t.cellStyle,component:"th",children:t.lookup?Object(K.jsx)(ee.a,{onChange:function(e){var a=o.state.editData?Object(d.a)({},o.state.editData):{};e.target.value===i?delete a[t.field]:a[t.field]=e.target.value,o.setState({editData:a})},value:this.state.editData&&this.state.editData[t.field]||i,children:Object.keys(t.lookup).map((function(e){return Object(K.jsx)(te.a,{value:e,children:t.lookup[e]})}))}):Object(K.jsx)(_.a,{value:this.state.editData&&void 0!==this.state.editData[t.field]?this.state.editData[t.field]:i,onChange:function(e){var a=o.state.editData?Object(d.a)({},o.state.editData):{};e.target.value===i?delete a[t.field]:a[t.field]=e.target.value,o.setState({editData:a})}})},t.field)}return Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,a&&this.props.classes.cellSecondary),style:t.cellStyle,component:"th",children:ht(e,t.field,t.lookup)},t.field)}},{key:"renderLine",value:function(e,t){var a=this;t=t||0;var n=this.props.data.indexOf(e);if(!e)return null;if(!t&&e.parentId)return null;if(t&&!e.parentId)return null;var o=this.props.data.filter((function(t){return t.parentId===e.id})),i=this.state.opened.includes(e.id);return[Object(K.jsxs)(ot.a,{className:Object(N.a)(this.props.classes.row,t&&this.props.classes.rowSecondary,!t&&o.length&&this.props.classes.rowMainWithChildren,!t&&!o.length&&this.props.classes.rowMainWithoutChildren,!1!==this.state.editMode&&this.state.editMode!==n&&this.props.classes.rowNoEdit,!1!==this.state.deleteMode&&this.state.deleteMode!==n&&this.props.classes.rowNoEdit),children:[Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellExpand,t&&this.props.classes.cellSecondary),children:o.length?Object(K.jsx)(U.a,{onClick:function(){var t=Object(Ye.a)(a.state.opened),n=t.indexOf(e.id);-1===n?(t.push(e.id),t.sort()):t.splice(n,1),a.setState({opened:t})},children:i?Object(K.jsx)(mt.a,{}):Object(K.jsx)(ut.a,{})}):null}),Object(K.jsx)(at.a,{scope:"row",className:Object(N.a)(this.props.classes.cell,t&&this.props.classes.cellSecondary),style:this.props.columns[0].cellStyle,children:ht(e,this.props.columns[0].field,this.props.columns[0].lookup)}),this.props.columns.map((function(o,i){return i?a.renderCell(e,o,t,n):null})),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellButton),children:this.state.editMode===n||this.state.deleteMode===n?Object(K.jsx)(U.a,{disabled:!1!==this.state.editMode&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:function(){if(!1!==a.state.editMode){var t=JSON.parse(JSON.stringify(e));Object.keys(a.state.editData).forEach((function(e){return gt(t,e,a.state.editData[e])})),a.setState({editMode:!1},(function(){return a.props.onUpdate(t,e)}))}else a.setState({deleteMode:!1},(function(){return a.props.onDelete(e)}))},children:Object(K.jsx)(ke.a,{})}):Object(K.jsx)(U.a,{disabled:!1!==this.state.editMode,onClick:function(){return a.setState({editMode:n,editData:null})},children:Object(K.jsx)(rt.a,{})})}),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellButton),children:this.state.editMode===n||this.state.deleteMode===n?Object(K.jsx)(U.a,{onClick:function(){return a.setState({editMode:!1,deleteMode:!1})},children:Object(K.jsx)(be.a,{})}):Object(K.jsx)(U.a,{disabled:!1!==this.state.deleteMode,onClick:function(){return a.setState({deleteMode:n})},children:Object(K.jsx)(ct.a,{})})})]},e.id),!t&&this.state.opened.includes(e.id)?o.map((function(e){return a.renderLine(e,t+1)})):null]}},{key:"handleRequestSort",value:function(e){var t=this.state.orderBy===e&&"asc"===this.state.order;this.setState({order:t?"desc":"asc",orderBy:e})}},{key:"renderHead",value:function(){var e=this;return Object(K.jsx)(nt.a,{children:Object(K.jsxs)(ot.a,{children:[Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellExpand)}),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes["width_"+this.props.columns[0].field.replace(/\./g,"_")]),style:this.props.columns[0].cellStyle,sortDirection:this.state.orderBy===this.props.columns[0].field&&this.state.order,children:Object(K.jsxs)(it.a,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:function(){return e.handleRequestSort(e.props.columns[0].field)},children:[this.props.columns[0].title,this.state.orderBy===this.props.columns[0].field?Object(K.jsx)("span",{className:this.props.classes.visuallyHidden,children:"desc"===this.state.order?"sorted descending":"sorted ascending"}):null]})}),this.props.columns.map((function(t,a){return a?Object(K.jsx)(at.a,{className:Object(N.a)(e.props.classes.cell,e.props.classes.cellHeader,e.props.classes["width_"+t.field.replace(/\./g,"_")]),style:t.cellStyle,component:"th",children:Object(K.jsxs)(it.a,{active:e.state.orderBy===t.field,direction:e.state.orderBy===t.field?e.state.order:"asc",onClick:function(){return e.handleRequestSort(t.field)},children:[t.title,e.state.orderBy===t.field?Object(K.jsx)("span",{className:e.props.classes.visuallyHidden,children:"desc"===e.state.order?"sorted descending":"sorted ascending"}):null]})},t.field):null})),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)}),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)})]})})}},{key:"render",value:function(){var e=this,t=this.props.columns?this.props.columns.find((function(t){return t.field===e.state.orderBy})).lookup:"",a=function(e,t){var a=e.map((function(e,t){return[e,t]}));return a.sort((function(e,a){return t(e[0],a[0])||e[1]-a[1]})),a.map((function(e){return e[0]}))}(this.props.data,function(e,t,a){return"desc"===e?function(e,n){return ft(e,n,t,a)}:function(e,n){return-ft(e,n,t,a)}}(this.state.order,this.state.orderBy,t));return Object(K.jsx)("div",{className:Object(N.a)(this.props.classes.tableContainer,this.props.className),children:Object(K.jsxs)(et.a,{className:this.props.classes.table,"aria-label":"simple table",size:"small",stickyHeader:!0,children:[this.renderHead(),Object(K.jsx)(tt.a,{children:a.map((function(t){return e.renderLine(t)}))})]})})}}]),a}(o.a.Component),kt=Object(g.a)((function(e){return{tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:(e.palette.type,"#888"),color:"dark"===e.palette.type?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1}}}))(vt),wt=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).myTableRef=o.a.createRef(),n.state={editedSmartName:"",editId:"",editObjectName:"",deleteId:"",expertMode:"true"!==window.localStorage.getItem("App.expertMode"),helpHidden:"true"===window.localStorage.getItem("App.helpHidden"),showSelectId:!1,searchText:"",showConfirmation:"",changed:[],devices:[],message:"",filter:"",loading:!0,browse:!1,expanded:[],lastChanged:"",helpHeight:0},n.columns=[{title:A.a.t("ID"),field:"id",editable:"never",cellStyle:{maxWidth:"12rem",overflow:"hidden",wordBreak:"break-word"}},{title:A.a.t("Smart names"),field:"name.nicknames"},{title:A.a.t("ioBType"),field:"ioType",editable:"never",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"}},{title:A.a.t("Type"),field:"type",lookup:{"action.devices.types.AC_UNIT":"Air conditioning unit","action.devices.types.AIRFRESHENER":"Air Freshener","action.devices.types.AIRPURIFIER":"Air purifier","action.devices.types.AWNING":"Awning","action.devices.types.BLINDS":"Blinds","action.devices.types.BOILER":"Boiler","action.devices.types.CAMERA":"Camera","action.devices.types.COFFEE_MAKER":"Coffee maker","action.devices.types.CURTAIN":"Curtain","action.devices.types.DISHWASHER":"Dishwasher","action.devices.types.DOOR":"Door","action.devices.types.DRYER":"Dryer","action.devices.types.FAN":"Fan","action.devices.types.FIREPLACE":"Fireplace","action.devices.types.GARAGE":"Garage","action.devices.types.GATE":"Gate","action.devices.types.HEATER":"Heater","action.devices.types.HOOD":"Hood","action.devices.types.KETTLE":"Kettle","action.devices.types.LIGHT":"Light","action.devices.types.LOCK":"Lock","action.devices.types.MOP":"Mop","action.devices.types.MICROWAVE":"Microwave","action.devices.types.OUTLET":"Outlet","action.devices.types.OVEN":"Oven","action.devices.types.PERGOLA":"Pergola","action.devices.types.REFRIGERATOR":"Refrigerator","action.devices.types.SCENE":"Scene","action.devices.types.SECURITYSYSTEM":"Security System","action.devices.types.SENSOR":"Sensor","action.devices.types.SHUTTER":"Shutter","action.devices.types.SHOWER":"Shower","action.devices.types.SPEAKER":"Speaker","action.devices.types.SPRINKLER":"Sprinkler","action.devices.types.SWITCH":"Switch","action.devices.types.THERMOSTAT":"Thermostat","action.devices.types.VACUUM":"Vacuum","action.devices.types.VALVE":"Valve","action.devices.types.WASHER":"Washer","action.devices.types.WATERHEATER":"Water heater","action.devices.types.WINDOW":"Window"}},{title:A.a.t("Function/Trait"),field:"displayTraits",lookup:{"action.devices.traits.Brightness":"Brightness","action.devices.traits.ColorSetting_temperature":"ColorSetting_Temperature","action.devices.traits.ColorSetting_spectrumRGB":"ColorSetting_RGB","action.devices.traits.FanSpeed":"FanSpeed","action.devices.traits.LockUnlock":"LockUnlock","action.devices.traits.Modes":"Modes","action.devices.traits.OnOff":"OnOff","action.devices.traits.OpenClose":"OpenClose","action.devices.traits.Scene":"Scene","action.devices.traits.StartStop":"StartStop","action.devices.traits.TemperatureControl_temperatureSetpointCelsius":"Oven_SetTemp","action.devices.traits.TemperatureControl_temperatureAmbientCelsius":"Oven_StatusTemp","action.devices.traits.TemperatureSetting_thermostatMode":"Thermostat_Mode","action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint":"Thermostat_SetTemp","action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient":"Thermostat_StatusTemp","action.devices.traits.TemperatureSetting_thermostatHumidityAmbient":"Thermostat_StatusHumidity","action.devices.traits.Toggles":"Toggles","action.devices.traits.Volume":"Volume"}},{title:A.a.t("Attributes"),field:"displayAttributes",cellStyle:{maxWidth:"12rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}})}},{title:A.a.t("Room"),field:"roomHint",editable:"never"},{title:A.a.t("Auto"),field:"smartEnum",editable:"never",cellStyle:{maxWidth:"3rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0},{title:A.a.t("Conversation to GH"),field:"displayConv2GH",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsxs)("div",{children:["Conversation to Google Home = function(value){ ",Object(K.jsx)("br",{}),Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}}),"}"]})}},{title:A.a.t("Conversation to ioB"),field:"displayConv2iob",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsxs)("div",{children:["Conversation to ioBroker = function(value){ ",Object(K.jsx)("br",{}),Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}}),"}"]})}}],n.timerChanged=null,n.browseTimer=null,n.browseTimerCount=0,n.editedSmartName="",n.waitForUpdateID=null,n.onReadyUpdateBound=n.onReadyUpdate.bind(Object(se.a)(n)),n.onResultUpdateBound=n.onResultUpdate.bind(Object(se.a)(n)),n.helpRef=o.a.createRef(),n.props.socket.getObject("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance)).then((function(e){n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(t){e&&e.common&&(e.common.enabled||t&&t.val)?n.browse():n.setState({message:A.a.t("Instance must be enabled"),loading:!1,devices:[]})}))})),n}return Object(p.a)(a,[{key:"browse",value:function(e){var t=this;Date.now()-this.lastBrowse<500||(this.lastBrowse=Date.now(),e?this.setState({loading:!0,browse:!0}):this.setState({browse:!0}),this.browseTimer=setTimeout((function(){console.log("Browse timeout!"),t.browseTimer=null,t.browseTimerCount++,t.browseTimerCount<5?t.browse(e):t.setState({message:A.a.t("Cannot read devices!")})}),1e4),this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"browseGH",null).then((function(e){t.browseTimer&&clearTimeout(t.browseTimer),t.browseTimerCount=0,t.browseTimer=null,e&&e.error?t.setState({message:A.a.t(e.error)}):(t.waitForUpdateID&&(t.onEdit(t.waitForUpdateID,e)||t.setState({message:A.a.t("Device %s was not added",t.waitForUpdateID)}),t.waitForUpdateID=null),t.setState({devices:e,loading:!1,changed:[],browse:!1}))})).catch((function(e){t.setState({message:A.a.t(e)})})))}},{key:"onReadyUpdate",value:function(e,t){var a=this;console.log("Update ".concat(e," ").concat(t?t.val+"/"+t.ack:"null")),t&&!0===t.ack&&!0===t.val&&(this.devTimer&&clearTimeout(this.devTimer),this.devTimer=setTimeout((function(){a.devTimer=null,a.browse()}),10))}},{key:"onResultUpdate",value:function(e){e&&!0===e.ack&&e.val&&this.setState({message:e.val})}},{key:"componentDidMount",value:function(){this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesGH"),this.onReadyUpdateBound),this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesGH"),this.onReadyUpdateBound),this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound),this.timerChanged&&(clearTimeout(this.timerChanged),this.timerChanged=null)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e,t){var a=JSON.parse(JSON.stringify(this.state.changed));-1===a.indexOf(e)?(a.push(e),this.setState({changed:a},(function(){return t&&t()}))):t&&t()}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"onEdit",value:function(e,t){var a=this,n=(t=t||this.state.devices).find((function(t){return t.id===e}));return!!n&&(this.props.socket.getObject(e).then((function(t){var o=n.common&&n.common.smartName?n.common.smartName:n._id;"object"===typeof o&&o&&(o=o[A.a.getLanguage()]||o.en),a.editedSmartName=o,a.setState({editId:e,editedSmartName:o,editObjectName:M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})})})),!0)}},{key:"onDelete",value:function(){var e=this,t=this.state.deleteId;this.addChanged(t,(function(){e.props.socket.getObject(t).then((function(a){return M.a.disableSmartName(a,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.props.socket.setObject(t,a)})).then((function(){e.setState({deleteId:"",showConfirmation:!1,lastChanged:t}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4),e.informInstance(t)})).catch((function(t){return e.props.onError(t)}))}))}},{key:"renderSelectByOn",value:function(e,t){var a=this;if(!1!==t){for(var n=[Object(K.jsx)(te.a,{value:"",children:Object(K.jsx)("em",{children:A.a.t("Default")})},"_"),Object(K.jsx)(te.a,{value:"stored",children:A.a.t("last value")},"last")],o=5;o<=100;o+=5)n.push(Object(K.jsxs)(te.a,{value:o.toString(),children:[o,"%"]},o.toString()));return Object(K.jsxs)($.a,{className:this.props.classes.devSubLineByOn,children:[Object(K.jsx)(ee.a,{className:this.props.classes.devSubLineByOnSelect,value:(t||"").toString(),onChange:function(t){return a.onParamsChange(e,t.target.value)},children:n}),Object(K.jsx)(Q.a,{className:this.props.classes.devSubLineTypeTitle,children:A.a.t("by ON")})]})}return null}},{key:"onParamsChange",value:function(e,t,a){var n=this;this.addChanged(e,(function(){n.props.socket.getObject(e).then((function(o){return M.a.updateSmartName(o,void 0,t,a,n.props.adapterName+"."+n.props.instance,n.props.native.noCommon),n.state.lastChanged!==e&&(n.setState({lastChanged:e}),n.timerChanged&&clearTimeout(n.timerChanged),n.timerChanged=setTimeout((function(){n.setState({lastChanged:""}),n.timerChanged=null}),3e4)),n.props.socket.setObject(e,o)})).then((function(){n.informInstance(e)})).catch((function(e){return n.props.onError(e)}))}))}},{key:"onGHParamsChange",value:function(e,t){var a=this;this.addChanged(e.id,(function(){a.props.socket.getObject(e.id).then((function(n){if(!n||!n.common)return a.setState({message:A.a.t("Object %s is invalid. No common found.",e.id)});if(M.a.updateSmartName(n,a.editedSmartName,void 0,void 0,a.props.adapterName+"."+a.props.instance,a.props.native.noCommon),JSON.stringify(e.displayTraits)!==JSON.stringify(t.displayTraits)&&(Array.isArray(e.displayTraits)||(e.displayTraits=[e.displayTraits]),n.common.smartName.ghTraits=e.displayTraits),e.type!==t.type&&(n.common.smartName.ghType=e.type),e.displayAttributes!==t.displayAttributes){n.common.smartName.ghAttributes=e.displayAttributes;try{n.common.smartName.ghAttributes&&JSON.parse(n.common.smartName.ghAttributes)}catch(o){a.setState({message:A.a.t("Attributes has not correct JSON format.")})}}return e.conv2GH&&(n.common.smartName.ghConv2GH=e.displayConv2GH),e.conv2iob&&(n.common.smartName.ghConv2iob=e.displayConv2iob),a.props.socket.setObject(e.id,n)})).then((function(){a.informInstance(e.id)})).catch((function(e){return a.props.onError(e)}))}))}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(e){var t=this;e&&e.preventDefault(),this.addChanged(this.state.editId,(function(){var e=t.state.editId;t.setState({editId:"",editObjectName:"",lastChanged:e}),t.timerChanged&&clearTimeout(t.timerChanged),t.timerChanged=setTimeout((function(){t.setState({lastChanged:""}),t.timerChanged=null}),3e4),t.props.socket.getObject(e).then((function(a){return M.a.updateSmartName(a,t.editedSmartName,void 0,void 0,t.props.adapterName+"."+t.props.instance,t.props.native.noCommon),t.props.socket.setObject(e,a)})).then((function(){t.informInstance(e)})).catch((function(e){return t.props.onError(e)}))}))}},{key:"getSelectIdDialog",value:function(){var e=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:"",types:["state"],onClose:function(){return e.setState({showSelectId:!1})},onOk:function(t){e.setState({showSelectId:!1}),e.props.socket.getObject(t).then((function(a){if(a){if(!a.common)return e.setState({message:A.a.t("Object %s is invalid. No common found.",t)});var n=M.a.getObjectNameFromObj(a,null,{language:A.a.getLanguage()});M.a.updateSmartName(a,(n||A.a.t("Device name")).replace(/[-_.]+/g," "),void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.addChanged(a._id),e.waitForUpdateID=a._id,e.state.lastChanged!==a._id&&(e.setState({lastChanged:a._id}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4)),a.common.smartName?(a.common.smartName.ghType="action.devices.types.LIGHT",a.common.smartName.ghTraits=["action.devices.traits.OnOff"]):(a.common.smartName={ghType:"action.devices.types.LIGHT"},a.common.smartName={ghTraits:["action.devices.traits.OnOff"]}),e.props.socket.setObject(a._id,a).then((function(){e.informInstance(a._id),e.setState({message:A.a.t("Please add type and trait to complete the Google Home state.")})})).catch((function(t){return e.setState({message:t})}))}else e.setState({message:A.a.t("Invalid ID")})}))}},"dialogSelectGoogle"):null}},{key:"renderListOfDevices",value:function(){var e=this;if(!this.state.showListOfDevices)return null;var t=this.props.classes;return Object(K.jsxs)(S.a,{open:!0,maxWidth:"xl",fullWidth:!0,onClose:function(){return e.setState({showListOfDevices:!1})},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(K.jsxs)(C.a,{id:"alert-dialog-title",children:[A.a.t("List of devices to print out, e.g. to give all device names to your partner.")," ",Object(K.jsx)("span",{role:"img","aria-label":"smile",children:"\ud83d\ude04"})]}),Object(K.jsxs)(x.a,{children:[Object(K.jsxs)("div",{className:t.headerRow,children:[Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Name")}),Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Function")}),Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Room")})]}),Object(K.jsx)("div",{className:this.props.classes.tableDiv,children:this.state.devices.map((function(e,a){return Object(K.jsxs)("div",{children:[Object(K.jsx)("div",{className:t.tableCell,children:e.name.nicknames.join(", ")}),Object(K.jsx)("div",{className:t.tableCell,children:e.displayTraits.map((function(e){return e.replace("action.devices.traits.","")})).join(", ")}),Object(K.jsx)("div",{className:t.tableCell,children:e.roomHint})]},a)}))})]}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"outlined",onClick:function(){e.setState({showListOfDevices:!1});var t=e.state.devices.map((function(e){return e.name.nicknames.join(", ")+"\t"+e.displayTraits+"\t"+e.roomHint}));Ce()(t.join("\n"))},color:"primary",startIcon:Object(K.jsx)(xe.a,{}),children:A.a.t("Copy to clipboard")}),Object(K.jsx)(z.a,{startIcon:Object(K.jsx)(be.a,{}),variant:"contained",onClick:function(){return e.setState({showListOfDevices:!1})},autoFocus:!0,children:A.a.t("Close")})]})]})}},{key:"renderInstructions",value:function(){var e=window.innerHeight>400&&window.innerWidth>400;if(this.state.helpHidden||this.props.smallDisplay||!e)return null;var t=A.a.t("manualModeHint");return Object(K.jsxs)("div",{style:{width:"100%"},ref:this.helpRef,children:[Object(K.jsxs)("div",{style:{marginTop:"4rem",display:"flex"},children:[Object(K.jsxs)("div",{style:{flex:"50%"},children:[Object(K.jsx)("div",{style:{fontWeight:"bold"},children:A.a.t("Auto Mode")}),Object(K.jsx)("div",{style:{marginTop:"0.8rem",marginRight:"0.8rem"},children:A.a.t("To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung")})]}),Object(K.jsxs)("div",{style:{flex:"50%"},children:[Object(K.jsx)("div",{style:{fontWeight:"bold"},children:A.a.t("Manual Mode")}),Object(K.jsx)("span",{children:M.a.renderTextWithA(t)})]})]}),Object(K.jsx)("br",{}),Object(K.jsx)("div",{style:{flex:"100%"},children:Object(K.jsx)("div",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("For help use this forum"))})})]})}},{key:"renderToolbar",value:function(){var e=this,t=window.innerHeight>400&&window.innerWidth>400;return Object(K.jsxs)(Qe.a,{variant:"dense",children:[Object(K.jsx)(X.a,{size:"small",color:"secondary","aria-label":"Add",className:this.props.classes.button,onClick:function(){return e.setState({showSelectId:!0})},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:"primary","aria-label":"Refresh",className:this.props.classes.button,onClick:function(){return e.browse(!0)},disabled:this.state.browse,children:this.state.browse?Object(K.jsx)(ge.a,{size:20}):Object(K.jsx)(W.j,{})}),t&&!this.state.hideHelp?Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:this.state.helpHidden?"default":"primary","aria-label":"Help",className:this.props.classes.button,title:A.a.t("Show/Hide help"),onClick:function(){window.localStorage.setItem("App.helpHidden",e.state.helpHidden?"false":"true"),e.setState({helpHidden:!e.state.helpHidden})},disabled:this.state.browse,children:Object(K.jsx)(W.h,{})}):null,Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:this.state.expertMode?"primary":"default","aria-label":"Help",className:this.props.classes.button,title:A.a.t("Toggle expert mode"),onClick:function(){window.localStorage.setItem("App.expertMode",e.state.expertMode?"false":"true"),e.setState({expertMode:!e.state.expertMode})},disabled:this.state.browse,children:Object(K.jsx)($e.a,{})}),Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},title:A.a.t("Show all devices for print out"),size:"small","aria-label":"List of devices",className:this.props.classes.button,onClick:function(){return e.setState({showListOfDevices:!0})},disabled:this.state.browse,children:Object(K.jsx)(W.i,{})}),this.props.smallDisplay?null:Object(K.jsx)(_.a,{className:this.props.classes.searchText,label:A.a.t("Filter"),value:this.state.searchText,onChange:function(t){return e.setState({searchText:t.target.value})},InputProps:{endAdornment:this.state.searchText?Object(K.jsx)(U.a,{onClick:function(){return e.setState({searchText:""})},children:Object(K.jsx)(W.b,{})}):void 0}})]})}},{key:"componentDidUpdate",value:function(e,t,a){var n=this;if(this.helpRef.current){var o=this.helpRef.current.clientHeight;this.state.helpHeight!==o&&(!this.state.helpHidden&&o+64+48+200>window.innerHeight?setTimeout((function(){return n.setState({helpHeight:o,helpHidden:!0,hideHelp:!0})}),50):setTimeout((function(){return n.setState({helpHeight:o})}),50))}else this.state.helpHeight&&setTimeout((function(){return n.setState({helpHeight:0})}),50)}},{key:"render",value:function(){var e=this;if(this.state.loading)return Object(K.jsx)(ge.a,{},"alexaProgress");var t=this.state.searchText.toLowerCase(),a=this.state.searchText?this.state.devices.filter((function(e){var a,n,o,i,s,r;return(null===(a=e.name)||void 0===a||null===(n=a.name)||void 0===n?void 0:n.toLowerCase().includes(t))||(null===(o=e.name)||void 0===o||null===(i=o.defaultNames)||void 0===i?void 0:i.find((function(e){return e.toLowerCase().includes(t)})))||(null===(s=e.name)||void 0===s||null===(r=s.nicknames)||void 0===r?void 0:r.find((function(e){return e.toLowerCase().includes(t)})))})):this.state.devices;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[this.renderToolbar(),this.renderInstructions(),Object(K.jsx)("div",{className:this.props.classes.tableDiv,style:{height:"calc(100% - ".concat(48+(this.state.helpHeight?this.state.helpHeight+64:0),"px)")},children:Object(K.jsx)(kt,{columns:this.state.expertMode?this.columns:this.columns.filter((function(e){return!e.expertMode})),data:a,onUpdate:function(t,a){t.name.nicknames&&Array.isArray(t.name.nicknames)&&(t.name.nicknames=t.name.nicknames.join(",")),e.editedSmartName=t.name.nicknames,e.setState({editId:t.id},(function(){t.type&&t.displayTraits?e.setState({browse:!0}):e.setState({browse:!0,message:A.a.t("Please add action and trait to complete the Google Home state.")}),e.onGHParamsChange(t,a);var n=Object(Ye.a)(e.state.devices);n[n.indexOf(a)]=t,e.setState(Object(d.a)(Object(d.a)({},e.state),{},{devices:n}))}))},onDelete:function(t){return"X"===t.smartEnum?e.setState({deleteId:t.id}):e.props.socket.getObject(t.id).then((function(a){return a&&a.common&&a.common.smartName&&(delete a.common.smartName.ghTraits,delete a.common.smartName.ghType,delete a.common.smartName.ghAttributes),e.props.socket.setObject(t.id,a)})),new Promise((function(a){setTimeout((function(){e.state.deleteId?e.onDelete():e.informInstance(t.id),a();var n=Object(Ye.a)(e.state.devices);n.splice(n.indexOf(t),1),e.setState(Object(d.a)(Object(d.a)({},e.state),{},{devices:n}))}),600)}))}})}),this.renderMessage(),this.getSelectIdDialog(),this.renderListOfDevices()]},"gh")}}]),a}(n.Component),jt=Object(g.a)((function(e){return{tab:{height:"100%",overflow:"hidden"},tableDiv:{width:"100%",overflow:"hidden",height:"calc(100% - 48px)"},searchText:{width:150,marginLeft:e.spacing(1),verticalAlign:"middle"},headerRow:{paddingLeft:e.spacing(1),background:e.palette.primary.main},headerCell:{display:"inline-block",verticalAlign:"top",width:"30%"},tableCell:{display:"inline-block",verticalAlign:"top",width:"30%"}}}))((bt=wt,function(e){return Object(K.jsx)(bt,Object(d.a)({smallDisplay:Object(Ze.a)("(max-width:600px)")},e))})),yt=function(e){Object(m.a)(n,e);var t=Object(h.a)(n);function n(e){Object(u.a)(this,n);var o=Object(d.a)({},e);return o.encryptedFields=["pass"],o.translations={en:a(331),de:a(332),ru:a(333),pt:a(334),nl:a(335),fr:a(336),it:a(337),es:a(338),pl:a(339),"zh-cn":a(340)},t.call(this,e,o)}return Object(p.a)(n,[{key:"onConnectionReady",value:function(){var e=this;this.socket.getState("".concat(this.adapterName,".").concat(this.instance,".info.ackTempPassword")).then((function(t){t&&t.val||e.setState({showAckTempPasswordDialog:!0})}))}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e&&"options"!==e?"enums"===e?1:"alexa"===e?2:"google"===e?2+(this.state.native.amazonAlexa?1:0):"alisa"===e?2+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)):"extended"===e?2+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)+(this.state.native.yandexAlisa?1:0)):"services"===e?3+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)+(this.state.native.yandexAlisa?1:0)):void 0:0}},{key:"renderAckTempPasswordDialog",value:function(){var e=this;return this.state.showAckTempPasswordDialog?Object(K.jsxs)(S.a,{open:!0,onClose:function(){return e.setState({showAckTempPasswordDialog:!1},(function(){return setTimeout((function(){return e.setState({showAckTempPasswordDialog:!0})}),1e3)}))},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(K.jsx)(C.a,{id:"alert-dialog-title",children:A.a.t("Information: The skill linking process was changed!")}),Object(K.jsx)(x.a,{children:Object(K.jsxs)(T.a,{id:"alert-dialog-description",children:[A.a.t("The linking process has been changed for a few months."),A.a.t("Now there is no temporary password that will be sent by email."),Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),Object(K.jsx)("b",{children:A.a.t("The password is equal with ioBroker.pro and with password that was entered here in the settings!")})]})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.setState({showAckTempPasswordDialog:!1},(function(){return setTimeout((function(){return e.setState({showAckTempPasswordDialog:!0})}),1e3)}))},autoFocus:!0,children:A.a.t("Not understood")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.socket.setState("".concat(e.adapterName,".").concat(e.instance,".info.ackTempPassword"),!0,!0).then((function(){return e.setState({showAckTempPasswordDialog:!1})}))},color:"primary",autoFocus:!0,children:A.a.t("Roger that")})]})]}):null}},{key:"render",value:function(){var e=this;return this.state.loaded?Object(K.jsx)(c.a,{theme:this.state.theme,children:Object(K.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object(K.jsx)(f.a,{position:"static",children:Object(K.jsxs)(b.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(t.target.parentNode.dataset.name,a)},scrollButtons:"auto",children:[Object(K.jsx)(v.a,{label:A.a.t("Options"),"data-name":"options"}),Object(K.jsx)(v.a,{label:A.a.t("Smart enums"),"data-name":"enums"}),this.state.native.amazonAlexa&&Object(K.jsx)(v.a,{selected:"alexa"===this.state.selectedTab,label:A.a.t("Alexa devices"),"data-name":"alexa"}),this.state.native.googleHome&&Object(K.jsx)(v.a,{selected:"google"===this.state.selectedTab,label:A.a.t("Google devices"),"data-name":"google"}),this.state.native.yandexAlisa&&Object(K.jsx)(v.a,{selected:"alisa"===this.state.selectedTab,label:A.a.t("Alisa devices"),"data-name":"alisa"}),Object(K.jsx)(v.a,{label:A.a.t("Extended options"),"data-name":"extended"}),Object(K.jsx)(v.a,{label:A.a.t("Services and IFTTT"),"data-name":"services"})]})}),Object(K.jsxs)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,children:[("options"===this.state.selectedTab||!this.state.selectedTab)&&Object(K.jsx)(Y,{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,changed:this.state.changed,onChange:function(t,a,n){return e.updateNativeValue(t,a,n)}},"options"),"enums"===this.state.selectedTab&&Object(K.jsx)(je,{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,adapterName:this.adapterName},"enums"),"alexa"===this.state.selectedTab&&Object(K.jsx)(Ge,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"alexa"),"google"===this.state.selectedTab&&Object(K.jsx)(jt,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"google"),"alisa"===this.state.selectedTab&&Object(K.jsx)(Je,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"alisa"),"extended"===this.state.selectedTab&&Object(K.jsx)(ie,{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,adapterName:this.adapterName,onChange:function(t,a){return e.updateNativeValue(t,a)}},"extended"),"services"===this.state.selectedTab&&Object(K.jsx)(ue,{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,adapterName:this.adapterName,onShowError:function(t){return e.showError(t)},onChange:function(t,a){return e.updateNativeValue(t,a)}},"services")]}),this.renderError(),this.renderSaveCloseButtons(),this.renderAckTempPasswordDialog()]})}):Object(K.jsx)(c.a,{theme:this.state.theme,children:Object(K.jsx)(y.a,{theme:this.state.themeType})})}}]),n}(w.a),St=Object(g.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"}}}))(yt);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 Ot=a(176),xt=a(170),Tt=a.n(xt);window.adapterName="iot";var Ct=M.a.getThemeName();console.log("iobroker."+window.adapterName+"@"+Ot.a+' using theme "'+Ct+'"'),"localhost:3000"!==window.location.host&&r.e({dsn:"https://5ad729dbed504d15aa8bde423cae9a8e@sentry.iobroker.net/57",release:"iobroker."+window.adapterName+"@"+Ot.a,integrations:[new l.a]}),function e(){return s.a.render(Object(K.jsx)(c.a,{theme:Tt()(Ct),children:Object(K.jsx)(St,{onThemeChange:function(t){Ct=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[341,1,2]]]); -//# sourceMappingURL=main.a83286f1.chunk.js.map \ No newline at end of file +(this["webpackJsonpiot-admin"]=this["webpackJsonpiot-admin"]||[]).push([[0],{176:function(e){e.exports=JSON.parse('{"a":"1.8.19"}')},242:function(e,t,a){},331:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Set to 0 if behavior not desired)","(you can separate names with comma)":"You can enter several names divided by comma","Active":"Active","Add device":"Add device","Add service":"Add service","Addresses":"Addresses","Alexa devices":"Alexa devices","Alisa devices":"Alisa devices","Allow admin access (only pro)":"Allow admin access (only pro)","Allow self-signed certificates":"Allow self-signed certificates","Amazon Alexa":"Amazon Alexa","Are you sure?":"Are you sure?","Attributes has not correct JSON format.":"Attributes is not in the correct JSON format","Authentication must be disabled. You can create second instance extra for cloud.":"Authentication must be disabled. You can create a second instance extra for the cloud.","Cancel":"Cancel","Cannot add this object":"Cannot add this object, because not supported.","Cannot read devices!":"Cannot read devices!","Certificates will be updated after initiated restart":"Certificates will be updated after initiated restart","Certificates will be updated after start":"Certificates will be updated after start","Click now Get new connection certificates to request new temporary password":"Click now \\"Get new connection certificates\\" to request new temporary password","Close":"Close","Cloud URL":"Cloud URL","Cloud adapter settings":"Cloud adapter settings","Commands":"Commands","Concatenate words with":"Concatenate words with","Connection timeout":"Connection timeout(ms)","Debug outputs":"Debug outputs","Decrement color temperature":"Decrement color temperature","Decrement percentage":"Decrement percentage","Decrement target temperature":"Decrement target temperature","Default":"Default","Device %s was not added":"Device %s was not added","Device will be deactivated.":"Device will be deactivated.","Device will be disabled.":"Device %s will be disabled.","Dimmer":"Dimmer","Duplicate name":"Duplicate name","Edit smart name":"Edit smart name","Error":"Error","Extended options":"Extended options","Filter":"Filter","For help use this forum":"For help, visit this forum post","Functions":"Functions","Get actual temperature":"Get actual temperature","Get new connection certificates":"Get new connection certificates","Get new service URL key":"Get new service URL key","Get target temperature":"Get target temperature","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"Increment color temperature","Increment percentage":"Increment percentage","Increment target temperature":"Increment target temperature","Instance":"Instance","Instance does not exists":"Instance does not exists","Instance is not active.":"Instance is not active.","Instance must be enabled":"Instance must be enabled","Instance must run to deliver the data":"The instance must run to deliver the data","Invalid object":"Invalid object","Language":"Language","Load configuration from file":"Load configuration from file","Message":"Message","OFF level for switches":"OFF level for switches","OFF level for switches in %":"OFF level for switches in %","Off":"off","Ok":"Ok","On":"on","On/Off":"On/Off","Options":"Options","Personal settings (only pro)":"Personal settings (only pro)","Ping timeout:":"Ping timeout(ms)","Place function in names first":"Place function in names first","Please add action and trait to complete the Google Home state.":"Please add action and trait to complete the Google Home state.","Please add type and trait to complete the Google Home state.":"Please add type and trait to complete the Google Home state.","Please select object ID...":"Please select object ID...","Please write your email only in lower case letters":"Please write your email only in lower case letters","Read lock state":"Read lock state","Replace in names":"Replace in names","Request email with password one more time":"Request email with password one more time","Restart on disconnect":"Restart on disconnect","Review":"Review","Rooms":"Rooms","Save":"Save","Save and close":"Save and close","Save configuration to file":"Save configuration to file","Save settings and the names will be changed":"Save settings and the names will be changed","Select":"Select","Service names":"Service names","Services and IFTTT":"Services and IFTTT","Set color":"Set color","Set color temperature":"Set color temperature","Set lock state":"Set lock state","Set percentage":"Set percentage","Set target temperature":"Set target temperature","Smart Devices":"Smart Devices","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Smart enums","Smart name":"Smart name","Smart name for %s":"Smart name for %s","To apply this setting, the restart of adapter must be done. Agree?":"To apply this setting, the adapter must be restarted. Agree?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"For automatic detection, under objects assign a channel (device if no channel is available) to a room and function. It is not sufficient to assign the room to a state or device. Rooms/functions can be added under enumeration (indicated by the white arrow at the top right) and must be activated in the IoT adapter under Intelligent enumeration. In order to automatically recognize manual states, the state must be deleted.","Turn off":"Turn off","Turn on":"Turn on","Type":"Type","Types":"Types","Use Nightscout instance":"Use Nightscout instance","Use following link for IFTTT":"Use following link for IFTTT","Use following link for custom service":"Use following link for custom service","Use text2command instance":"Use text2command instance","Value":"Value","White list for services":"White list for services","Write response to":"Write response to","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"You can enter several names divided by comma","amazon link":"If you use the Alexa Skill, please write a review for us here.
Examples can be found here.","by ON":"by ON","clear":"clear","default":"default","disabled":"disabled","help_link_tip1":"Before writing to support be sure you have read and understand the instructions of the web page: https://www.iobroker.net","help_link_tip2":"If you still have issue with the connection to Iot, you can request support im Forum","help_link_tip3":"and only after that you should write an email to support@iobroker.com","help_tip":"No iobroker.pro account? Buy it on https://iobroker.pro for validated access or get for free, but limited access.","info_allowedServices":"divided by comma. Use * to allow all services.","info_iftttKey":"You can find your key here under \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Password","last value":"last value","modified":"Name was modified by user","no type":"no type","tooltip_allowSelfSignedCertificate":"If you use your own cloud, you can allow the use of self-signed certificates for the cloud.","tooltip_apikey":"This key is required to communicate with a cloud. You can get the API-KEY on https://iobroker.net and it looks like nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normally you do not need to change it. Only required if you plan to use your own cloud.","tooltip_concatWord":"Define how to concatenate Room and Function. E.g. with \'in\': Light in living room.","tooltip_deviceOffLevel":"Some groups consist of mixed devices: dimmers and switches. It is allowed to control them with ON and OFF commands and with percents","tooltip_functionFirst":"Normally the names looks like room_function. Here you can switch it to function_room.","tooltip_instance":"Web instance, which will be shown for your connections from cloud.","tooltip_language":"You can define the languages to switch fast between US Alexa Skill and DE Alexa Skill.","tooltip_noCommon":"If enabled, the settings will be stored only for this instance. So in the another instance the other names could be set.","tooltip_responseOID":"For every command the text response will be generated. You can define here the Object ID , where this text must be written to. E.g. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Workaround for missing connection to Alexa after the connection to cloud was lost. With this option you can restart adapter after each disconnection and it will work.","Short answer for blood sugar":"Short answer for blood sugar","cannot_use_password":"You cannot use % in password. We are working on the fix.","invalid_password_warning":"Password must be at least 8 characters long and must have numbers, upper and lower case letters. Please change it in the ioBroker.pro profile\\n","new_certs_tip":"If you made a restore from backup, or moved your instance from one device to other or deleted the IoT instance and added it again you must load the connection security certificates with this button","new_credentials_tip":"If you restored your ioBroker.pro password you can synchronise your password with Alexa/Google/Alisa with this button.","Create IoT credentials anew":"Create IoT credentials anew","forum_tip":"Any questions in any language please ask here in forum: link","Save settings before pressing this button":"Save settings before pressing this button","Auto Mode":"Auto Mode","Manual Mode":"Manual Mode","manualModeHint":"Please select a TYPE and a TRAIT after adding a state. To add multiple traits add a different id and trait but same smart name, type and room. Comma separated for the multiple smart names. To assign a room please use the ioBroker Enums/Aufz\xe4hlungen. With attributes you can for example set a range for the color temperature Infos about Attributes you can find here. Empty attribute is {}","not activated":"not activated","Google devices":"Google devices","Show/Hide help":"Show/Hide help","Show all devices for print out":"Show all devices for print out","Search":"Search","List of devices to print out, e.g. to give all device names to your partner.":"List of devices to print out, e.g. to give all device names to your partner.","Name":"Name","Function":"Function","Room":"Room","Copy to clipboard":"Copy to clipboard","Toggle expert mode":"Toggle expert mode","ID":"ID","Smart names":"Smart names","ioBType":"IoB Type","Function/Trait":"Function/Trait","Attributes":"Attributes","Auto":"Automatically","Conversation to GH":"Convert to GH","Conversation to ioB":"Convert to ioB","Information: The skill linking process was changed!":"Information: The skill linking process was changed!","The linking process has been changed for a few months.":"The linking process has been changed for a few months.","Now there is no temporary password that will be sent by email.":"Now there is no temporary password that will be sent by email.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"The password is equal with ioBroker.pro and with password that was entered here in the settings!","Not understood":"Not understood","Roger that":"Roger that","Read blood sugar from":"Read blood sugar from","Get actual humidity":"Get actual humidity","Get motion":"Get motion","Get contact":"Get contact status"}')},332:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Auf 0 setzten, falls das Verhalten unerw\xfcnscht ist)","(you can separate names with comma)":"Man kann mehrere kommaseparierte Namen eingeben","Active":"aktiv","Add device":"Ger\xe4t hinzuf\xfcgen","Add service":"Dienst hinzuf\xfcgen","Addresses":"Adressen","Alexa devices":"Alexa-Ger\xe4te","Alisa devices":"Alisa Ger\xe4te","Allow admin access (only pro)":"Erlaube Zugriff auf Admin (nur pro)","Allow self-signed certificates":"Erlaube selbst-signierte Zertifikate","Amazon Alexa":"Amazon Alexa","Are you sure?":"Sind Sie sicher?","Attributes has not correct JSON format.":"Attributes ist nicht im korrekten JSON Format","Authentication must be disabled. You can create second instance extra for cloud.":"Die Authentifizierung muss deaktiviert sein. Sie k\xf6nnen zweite Instanz extra f\xfcr Cloud erstellen.","Cancel":"Abbrechen","Cannot add this object":"Dieses Objekt kann nicht hinzugef\xfcgt werden, da es nicht unterst\xfctzt wird.","Cannot read devices!":"Ger\xe4te k\xf6nnen nicht gelesen werden!","Certificates will be updated after initiated restart":"Zertifikate werden nach dem Neustart aktualisiert","Certificates will be updated after start":"Zertifikate werden nach dem Start aktualisiert","Click now Get new connection certificates to request new temporary password":"Klicken Sie jetzt auf \\"Neue Verbindungszertifikate anfordern\\", um ein neues tempor\xe4res Kennwort anzufordern","Close":"Schlie\xdfen","Cloud URL":"Cloud-URL","Cloud adapter settings":"Einstellungen f\xfcr Cloud-Adapter","Commands":"Befehle","Concatenate words with":"Verbinde Raum und Funktion mit","Connection timeout":"Verbindungs-Timeout(ms)","Debug outputs":"Ausgaben debuggen","Decrement color temperature":"Farbtemperatur verringern","Decrement percentage":"Prozentsatz verringern","Decrement target temperature":"Solltemperatur verringern","Default":"Standard","Device %s was not added":"Ger\xe4t %s wurde nicht hinzugef\xfcgt","Device will be deactivated.":"Ger\xe4t wird f\xfcr die Sprachsteuerung deaktiviert.","Device will be disabled.":"Ger\xe4t %s wird aus der Liste entfernt.","Dimmer":"Dimmer","Duplicate name":"Name wurde schon benutzt","Edit smart name":"Smartname editieren","Error":"Fehler","Extended options":"Erweiterte Einstellungen","Filter":"Filter","For help use this forum":"F\xfcr Hilfe besuche diesen Forumbeitrag","Functions":"Funktionen","Get actual temperature":"Aktuelle Temperatur abrufen","Get new connection certificates":"Neue Verbindungszertifikate anfordern","Get new service URL key":"Neuen Service-URL-Schl\xfcssel abrufen","Get target temperature":"Solltemperatur abrufen","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"Die Farbtemperatur erh\xf6hen","Increment percentage":"Prozentsatz erh\xf6hen","Increment target temperature":"Die Zieltemperatur erh\xf6hen","Instance":"Instanz","Instance does not exists":"Instanz existiert nicht","Instance is not active.":"Instanz ist nicht aktiv.","Instance must be enabled":"Instanz muss aktiviert sein","Instance must run to deliver the data":"Die Instanz muss laufen um die Daten zu liefern","Invalid object":"Ung\xfcltiges Objekt","Language":"Sprache","Load configuration from file":"Konfiguration aus Datei laden","Message":"Meldung","OFF level for switches":"OFF level for switches","OFF level for switches in %":"AUS-Pegel f\xfcr Schalter in%","Off":"aus","Ok":"Ok","On":"an","On/Off":"An aus","Options":"Einstellungen","Personal settings (only pro)":"Eigene Einstellungen (nur pro)","Ping timeout:":"Ping-Timeout(ms)","Place function in names first":"Platziere Funktionsnamen vorne","Please add action and trait to complete the Google Home state.":"Bitte f\xfcgen Sie eine Aktion und ein Merkmal hinzu, um den Google Home-Status zu vervollst\xe4ndigen.","Please add type and trait to complete the Google Home state.":"Bitte f\xfcge eine Type und Trait hinzu um den Google Home State zu vervollst\xe4ndigen.","Please select object ID...":"Bitte Objekt ID ausw\xe4hlen ...","Please write your email only in lower case letters":"Bitte E-Mail nur in Kleinbuchstaben schreiben","Read lock state":"Sperrstatus lesen","Replace in names":"Ersetze in Namen","Request email with password one more time":"Noch einmal eine E-Mail mit Passwort anfordern","Restart on disconnect":"Neustart bei Verbindungsabbruch","Review":"Rezension","Rooms":"R\xe4ume","Save":"Speichern","Save and close":"Speichern und schlie\xdfen","Save configuration to file":"Konfiguration in Datei speichern","Save settings and the names will be changed":"Speichere die Einstellungen um die neuen Namen zu sehen","Select":"W\xe4hlen","Service names":"Servicenamen","Services and IFTTT":"Services und IFTTT","Set color":"Farbe einstellen","Set color temperature":"Farbtemperatur einstellen","Set lock state":"Schloss steuern","Set percentage":"Prozent einstellen","Set target temperature":"Solltemperatur einstellen","Smart Devices":"Smart Ger\xe4te","Smart Enums":"Smart Aufz\xe4hlungen","Smart Media":"Smart Media","Smart enums":"Intelligente Aufz\xe4hlungen","Smart name":"Smart-Name","Smart name for %s":"Intelligenter Name f\xfcr %s","To apply this setting, the restart of adapter must be done. Agree?":"Um diese Einstellung zu \xe4ndern, es ist erforderlich diese Instanz neu zu starten. Einverstanden?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"F\xfcr automatische Erkennung, unter Objekte ordne einem Channel (Device wenn kein Channel vorhanden ist) ein Raum und Funktion zu. Es reicht nicht einem State oder Device den Raum zuzuordnen. R\xe4ume/Funktionen k\xf6nnen unter Aufz\xe4hlung (Anzeigen \xfcber den wei\xdfen Pfeil oben rechts) hinzugef\xfcgt werden und m\xfcssen im IoT Adapter unter Intelligente Aufz\xe4hlung aktiviert werden. Um manuelle States wieder automatisch erkennen zu lassen muss der State gel\xf6scht werden.","Turn off":"Abschalten","Turn on":"Anschalten","Type":"Typ","Types":"Typen","Use Nightscout instance":"Benutze Nightscout Instanz","Use following link for IFTTT":"Benutze folgenden Link f\xfcr IFTTT","Use following link for custom service":"Benutze folgende Link f\xfcr einen eigenen Service","Use text2command instance":"Benutze text2command Instanz","Value":"Wert","White list for services":"White list f\xfcr Services","Write response to":"Schreibe Antwort ins","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Man kann mehrere durch Komma getrennte Namen eingeben","amazon link":"Falls du den Alexa Skill benutzt, schreibe doch bitte hier eine Review.
Beispiele kann man hier anschauen.","by ON":"bei AN","clear":"l\xf6schen","default":"Systemsprache","disabled":"deaktiviert","help_link_tip1":"Stellen Sie vor dem Schreiben an den Support sicher, dass Sie die Anweisungen auf der Webseite gelesen und verstanden haben: https://www.iobroker.net","help_link_tip2":"Wenn Sie immer noch Probleme mit der Verbindung zu Iot haben, k\xf6nnen Sie im Forum Support anfordern","help_link_tip3":"und erst danach sollten Sie eine E-Mail an support@iobroker.com schreiben","help_tip":"Kein iobroker.pro-Konto? Kaufen Sie es auf https://iobroker.pro f\xfcr den validierten Zugriff oder erhalten Sie kostenlosen, aber eingeschr\xe4nkten Zugriff.","info_allowedServices":"durch Komma getrennt. Benutze * um alle Services zu erlauben.","info_iftttKey":"Der Schl\xfcssel kann hier unter \'Documentation\' gefunden werden","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Passwort","last value":"letzter Wert","modified":"Der Name wurde vom Anwender ge\xe4ndert","no type":"kein Typ","tooltip_allowSelfSignedCertificate":"Wenn man eine eigene Cloud verwendet, man kann die Benutzung von selbst-signierten Zertifikaten erlauben.","tooltip_apikey":"Dieser Schl\xfcssel wird ben\xf6tigt um mit der Cloud zu kommunizieren. Man kann den Schl\xfcssel unter https://iobroker.net bekommen. Es sieht wie folgt aus nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalerweise muss diese Option nicht ge\xe4ndert werden. Dies ist nur notwendig, wenn man eigenen Cloud verwendet.","tooltip_concatWord":"Damit wird definiert wie Funktion und Raum miteinander verbunden werden; z.B. mit \'im\': Licht im Schlafzimmer","tooltip_deviceOffLevel":"Gruppen k\xf6nnen aus gemischten Ger\xe4ten (Schaltern und Dimmern) bestehen. Sie k\xf6nnen mit ON/OFF sowie Prozentwerten angesteuert werden, hier kann definiert werden welcher Prozentsatz OFF entspricht.","tooltip_functionFirst":"Die automatischen Namen werden im Schema Raum-Funktion generiert. Hiermit kann man es auf Funktion-Raum ge\xe4ndert werden.","tooltip_instance":"Web Instanz, die f\xfcr ihre Anfragen aus dem Cloud angezeigt wird.","tooltip_language":"Man kann hier die Sprache definieren um zwischen US Alexa Skill und DE Alexa Skill umschalten zu k\xf6nnen","tooltip_noCommon":"Wenn diese Option aktiviert wird, so werden die Einstellungen nur f\xfcr diese Instanz gespeichert. So ist es m\xf6glich in einer anderen Instanz andere Namen zu setzen.","tooltip_responseOID":"F\xfcr jedes Kommando wird eine Textantwort generiert. Hier kannst du die Objekt ID angeben, an welche die Textantwort gesendet werden soll, z.B. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Workaround f\xfcr fehlende Kommunikation mit Alexa nach Verbindungsabbruch. Damit kann man zwingen den Adapter neu zu starten und das Problem umgehen.","Short answer for blood sugar":"Kurze Antwort f\xfcr Blutzucker","cannot_use_password":"Sie k\xf6nnen nicht % im Passwort verwenden. Wir arbeiten an der L\xf6sung.","invalid_password_warning":"Das Passwort muss mindestens 8 Zeichen lang sein und Zahlen sowie Gro\xdf- und Kleinbuchstaben enthalten. Bitte \xe4ndern Sie es im ioBroker.pro-Profil\\n","new_certs_tip":"Wenn Sie eine Wiederherstellung aus einer Sicherung durchgef\xfchrt oder Ihre Instanz von einem Ger\xe4t auf ein anderes verschoben oder die IoT-Instanz gel\xf6scht und erneut hinzugef\xfcgt haben, m\xfcssen Sie die Verbindungssicherheitszertifikate mit diesem Knopf herunterladen.","new_credentials_tip":"Wenn Sie Ihr ioBroker.pro-Passwort wiederhergestellt haben, k\xf6nnen Sie Ihr Passwort mit diesem Knopf mit Alexa/Google/Alisa synchronisieren.","Create IoT credentials anew":"IoT-Anmeldeinformationen neu erstellen","forum_tip":"Bei Fragen in einer beliebigen Sprache wenden Sie sich bitte hier im Forum an: Link ","Save settings before pressing this button":"Einstellungen m\xfcssen gespeichert werden, bevor Sie diese Taste dr\xfccken","Auto Mode":"Automatikmodus","Manual Mode":"Manueller Modus","manualModeHint":"Bitte w\xe4hlen Sie einen TYPE und einen TRAIT nach dem Hinzuf\xfcgen eines Status. Um mehrere Merkmale hinzuzuf\xfcgen, f\xfcgen Sie eine andere ID und ein anderes Merkmal hinzu, jedoch denselben intelligenten Namen, Typ und Raum. Komma getrennt f\xfcr die mehreren intelligenten Namen. Um einen Raum zuzuweisen, verwenden Sie bitte die ioBroker Enums/Aufz\xe4hlungen. Mit Attributen k\xf6nnen Sie beispielsweise einen Bereich f\xfcr die Farbtemperatur festlegen. Infos zu Attribute finden Sie hier. Das leere Attribut ist {}","not activated":"nicht aktiviert","Google devices":"Google-Ger\xe4te","Show/Hide help":"Hilfe ein- / ausblenden","Show all devices for print out":"Alle Ger\xe4te zum Ausdrucken anzeigen","Search":"Suche","List of devices to print out, e.g. to give all device names to your partner.":"Liste der auszudruckenden Ger\xe4te, z. um Ihrem Partner/in alle Ger\xe4tenamen zu zeigen.","Name":"Name","Function":"Funktion","Room":"Zimmer","Copy to clipboard":"In die Zwischenablage kopieren","Toggle expert mode":"Expertenmodus umschalten","ID":"ID","Smart names":"Intelligente Namen","ioBType":"IoB-Typ","Function/Trait":"Funktion / Eigenschaft","Attributes":"Attribute","Auto":"Automatisch","Conversation to GH":"In GH konvertieren","Conversation to ioB":"In ioB konvertieren","Information: The skill linking process was changed!":"Information: Der Skill Linking Prozess wurde ge\xe4ndert!","The linking process has been changed for a few months.":"Der Verkn\xfcpfungsprozess wurde vor einigen Monaten ge\xe4ndert.","Now there is no temporary password that will be sent by email.":"Jetzt gibt es kein tempor\xe4res Passwort, das per E-Mail gesendet wird.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Das Passwort ist gleich mit ioBroker.pro und mit dem Passwort, das hier in den Einstellungen eingegeben wurde!","Not understood":"Nicht verstanden","Roger that":"Verstanden","Read blood sugar from":"Blutzucker lesen aus","Get actual humidity":"Holen Sie sich die tats\xe4chliche Luftfeuchtigkeit","Get motion":"Bewegung bekommen","Get contact":"Kontaktstatus abrufen"}')},333:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(\u0434\u043b\u044f \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0430 0)","(you can separate names with comma)":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u043e\u0439","Active":"\u0410\u043a\u0442\u0438\u0432\u043d\u043e","Add device":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e","Add service":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u043b\u0443\u0433\u0443","Addresses":"\u0410\u0434\u0440\u0435\u0441\u0430","Alexa devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Alexa","Alisa devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0410\u043b\u0438\u0441\u044b","Allow admin access (only pro)":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a admin (\u0442\u043e\u043b\u044c\u043a\u043e pro)","Allow self-signed certificates":"\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b","Amazon Alexa":"Amazon Alexa","Are you sure?":"\u0423\u0432\u0435\u0440\u0435\u043d\u044b?","Attributes has not correct JSON format.":"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0435 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 JSON","Authentication must be disabled. You can create second instance extra for cloud.":"\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043b\u044f \u043e\u0431\u043b\u0430\u043a\u0430.","Cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","Cannot add this object":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.","Cannot read devices!":"\u041d\u0435 \u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430!","Certificates will be updated after initiated restart":"\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430","Certificates will be updated after start":"\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430","Click now Get new connection certificates to request new temporary password":"\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \xab\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\xbb, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c.","Close":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","Cloud URL":"URL \u043e\u0431\u043b\u0430\u043a\u0430","Cloud adapter settings":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 Cloud","Commands":"\u041a\u043e\u043c\u0430\u043d\u0434\u044b","Concatenate words with":"\u0421\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u043b\u043e\u0432\u043e\u043c","Connection timeout":"\u0422\u0430\u0439\u043c\u0430\u0443\u0442 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f(\u043c\u0441)","Debug outputs":"\u0412\u044b\u0432\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438","Decrement color temperature":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Decrement percentage":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f","Decrement target temperature":"\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Default":"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e","Device %s was not added":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e %s \u043d\u0435 \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e","Device will be deactivated.":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.","Device will be disabled.":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e %s \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430.","Dimmer":"\u0414\u0438\u043c\u043c\u0435\u0440","Duplicate name":"\u0418\u043c\u044f \u0443\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f","Edit smart name":"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u044f","Error":"\u041e\u0448\u0438\u0431\u043a\u0430","Extended options":"\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Filter":"\u0424\u0438\u043b\u044c\u0442\u0440","For help use this forum":"\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043c\u043e\u0449\u044c, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u0443\u043c \u043f\u043e\u0441\u0442","Functions":"\u0424\u0443\u043d\u043a\u0446\u0438\u0438","Get actual temperature":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Get new connection certificates":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f","Get new service URL key":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043b\u0443\u0436\u0431\u044b URL","Get target temperature":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Google Home":"Google Home","IFTTT key":"IFTTT key","Increment color temperature":"\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Increment percentage":"\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0430","Increment target temperature":"\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b","Instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440","Instance does not exists":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442","Instance is not active.":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0435\u043d.","Instance must be enabled":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d","Instance must run to deliver the data":"\u0414\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d, \u0447\u0442\u043e \u0431\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435","Invalid object":"\u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442","Language":"\u042f\u0437\u044b\u043a","Load configuration from file":"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0438\u0437 \u0444\u0430\u0439\u043b\u0430","Message":"\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435","OFF level for switches":"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439","OFF level for switches in %":"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439 \u0432%","Off":"\u0432\u044b\u043a\u043b","Ok":"Ok","On":"\u0432\u043a\u043b","On/Off":"\u0412\u043a\u043b/\u0432\u044b\u043a\u043b","Options":"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438","Personal settings (only pro)":"\u041b\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 (\u0442\u043e\u043b\u044c\u043a\u043e pro)","Ping timeout:":"\u041f\u0438\u043d\u0433-\u0422\u0430\u0439\u043c\u0430\u0443\u0442(\u043c\u0441)","Place function in names first":"\u0418\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435","Please add action and trait to complete the Google Home state.":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438 \u0447\u0435\u0440\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Google Home.","Please add type and trait to complete the Google Home state.":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0442\u0438\u043f \u0438 \u0447\u0435\u0440\u0442\u0443, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Google Home.","Please select object ID...":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 ...","Please write your email only in lower case letters":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u044e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043e\u0447\u0442\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u043c\u0438 \u0431\u0443\u043a\u0432\u0430\u043c\u0438","Read lock state":"\u0427\u0442\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438","Replace in names":"\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0438\u043c\u0435\u043d\u0430\u0445","Request email with password one more time":"\u0417\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0435\u0449\u0435 \u0440\u0430\u0437","Restart on disconnect":"\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u0438 \u043f\u043e\u0442\u0435\u0440\u0435 \u0441\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f","Review":"\u041e\u0431\u0437\u043e\u0440","Rooms":"\u041a\u043e\u043c\u043d\u0430\u0442\u044b","Save":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c","Save and close":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u044c","Save configuration to file":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b","Save settings and the names will be changed":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0447\u0442\u043e \u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f","Select":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c","Service names":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0431","Services and IFTTT":"\u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0438 IFTTT","Set color":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0446\u0432\u0435\u0442","Set color temperature":"\u0426\u0432\u0435\u0442\u043e\u0432\u0430\u044f \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0430","Set lock state":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438","Set percentage":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u043d\u0442","Set target temperature":"\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u0443","Smart Devices":"Smart \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430","Smart Enums":"Smart \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438","Smart Media":"Smart Media","Smart enums":"\u0423\u043c\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f","Smart name":"Smart \u0438\u043c\u044f","Smart name for %s":"\u0423\u043c\u043d\u043e\u0435 \u0438\u043c\u044f \u0434\u043b\u044f %s","To apply this setting, the restart of adapter must be done. Agree?":"\u0427\u0442\u043e \u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u0443 \u043e\u043f\u0446\u0438\u044e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u044e. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u044b?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"\u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u044e\u0442 \u043a\u0430\u043d\u0430\u043b (\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u0435\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d) \u043a\u043e\u043c\u043d\u0430\u0442\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u0438\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443. \u041a\u043e\u043c\u043d\u0430\u0442\u044b/\u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e (\u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0431\u0435\u043b\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u043e\u0439 \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443) \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0435 IoT \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435. \u0427\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0440\u0443\u0447\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u044d\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u043e.","Turn off":"\u0412\u044b\u043a\u043b\u044e\u0447\u0438","Turn on":"\u0412\u043a\u043b\u044e\u0447\u0438","Type":"\u0422\u0438\u043f","Types":"\u0422\u0438\u043f\u044b","Use Nightscout instance":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Nightscout","Use following link for IFTTT":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 URL \u0434\u043b\u044f IFTTT","Use following link for custom service":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 URL \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430","Use text2command instance":"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c text2command","Value":"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435","White list for services":"\u0411\u0435\u043b\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432","Write response to":"\u041f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0432","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u043d, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u044f\u0442\u043e\u0439","amazon link":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Alexa, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0439 \u043e\u0442\u0437\u044b\u0432 \u0437\u0434\u0435\u0441\u044c.
\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0442\u0437\u044b\u0432\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0434\u0435\u0441\u044c.","by ON":"\u043f\u0440\u0438 \u0412\u041a\u041b","clear":"\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c","default":"\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439","disabled":"\u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e","help_link_tip1":"\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u043b\u0443\u0436\u0431\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u044b \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0438 \u043f\u043e\u043d\u044f\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b: https://www.iobroker.net","help_link_tip2":"\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a Iot, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435","help_link_tip3":"\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 support@iobroker.com","help_tip":"\u041d\u0435\u0442 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 iobroker.pro? \u041a\u0443\u043f\u0438\u0442\u0435 \u0435\u0433\u043e \u043d\u0430 https://iobroker.pro \u0434\u043b\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0433\u043e, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430.","info_allowedServices":"\u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 *, \u0447\u0442\u043e \u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b.","info_iftttKey":"\u0421\u0432\u043e\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c \u0432 \'Documentation\'","ioBroker.pro Login":"\u041b\u043e\u0433\u0438\u043d ioBroker.pro","ioBroker.pro Password":"\u041f\u0430\u0440\u043e\u043b\u044c ioBroker.pro","last value":"\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435","modified":"\u0418\u043c\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c","no type":"\u043d\u0435\u0442 \u0442\u0438\u043f\u0430","tooltip_allowSelfSignedCertificate":"\u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432","tooltip_apikey":"\u041a\u043b\u044e\u0447 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u043e\u0431\u043b\u0430\u043a\u043e\u043c. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 https://iobroker.net \u0438 \u043e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"\u041e\u0431\u044b\u0447\u043d\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440. \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e.","tooltip_concatWord":"\u041c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0424\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u041a\u043e\u043c\u043d\u0430\u0442\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441 \'\u0432\': \u0421\u0432\u0435\u0442 \u0432 \u0437\u0430\u043b\u0435.","tooltip_deviceOffLevel":"\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432: \u0434\u0438\u043c\u043c\u0435\u0440\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0435\u0439. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434 ON \u0438 OFF \u0438 \u0441 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u043c\u0438","tooltip_functionFirst":"\u041e\u0431\u044b\u0447\u043d\u043e \u0438\u043c\u0435\u043d\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a \u041a\u043e\u043c\u043d\u0430\u0442\u0430-\u0424\u0443\u043d\u043a\u0446\u0438\u044f. \u042d\u0442\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430 \u0424\u0443\u043d\u043a\u0446\u0438\u044f-\u041a\u043e\u043c\u043d\u0430\u0442\u0430.","tooltip_instance":"\u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 WEB, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0438\u0437 \u043e\u0431\u043b\u0430\u043a\u0430","tooltip_language":"\u041c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a, \u0447\u0442\u043e \u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 US Alexa Skill \u0438 DE Alexa Skill","tooltip_noCommon":"\u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f, \u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438. \u0427\u0442\u043e \u0431\u044b \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043c\u0435\u043d\u0430.","tooltip_responseOID":"\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u0434\u0435\u0441\u044c ID \u043e\u0431\u044a\u0435\u043a\u0442\u0430 , \u0433\u0434\u0435 \u044d\u0442\u043e\u0442 \u0442\u0435\u043a\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 sayit.0.tts.text.","tooltip_restartOnDisconnect":"\u0412\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u043f\u0430\u0436\u0435\u0439 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 Alexa, \u043f\u043e\u0441\u043b\u0435 \u0432\u043e\u0441\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0441 \u043e\u0431\u043b\u0430\u043a\u043e\u043c. \u042d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.","Short answer for blood sugar":"\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0430\u0445\u0430\u0440\u0430 \u0432 \u043a\u0440\u043e\u0432\u0438","cannot_use_password":"\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c% \u0432 \u043f\u0430\u0440\u043e\u043b\u0435. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043d\u0430\u0434 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c.","invalid_password_warning":"\u041f\u0430\u0440\u043e\u043b\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 8 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u0446\u0438\u0444\u0440, \u043f\u0440\u043e\u043f\u0438\u0441\u043d\u044b\u0445 \u0438 \u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0445 \u0431\u0443\u043a\u0432. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0435\u0433\u043e \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 ioBroker.pro\\n","new_certs_tip":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0438, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u043b\u0438 \u0441\u0432\u043e\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u043b\u0438 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 IoT \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0435\u0433\u043e \u0441\u043d\u043e\u0432\u0430, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438","new_credentials_tip":"\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c ioBroker.pro, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 Alexa/Google/Alisa \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438.","Create IoT credentials anew":"\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 IoT \u0437\u0430\u043d\u043e\u0432\u043e","forum_tip":"\u041b\u044e\u0431\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u044f\u0437\u044b\u043a\u0435, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435: \u0441\u0441\u044b\u043b\u043a\u0430 ","Save settings before pressing this button":"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u0438","Auto Mode":"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0436\u0438\u043c","Manual Mode":"\u0420\u0443\u0447\u043d\u043e\u0439 \u0440\u0435\u0436\u0438\u043c","manualModeHint":"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 TYPE \u0438 TRAIT \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0442, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438 \u0447\u0435\u0440\u0442\u0443, \u043d\u043e \u0442\u043e \u0436\u0435 \u0438\u043c\u044f, \u0442\u0438\u043f \u0438 \u043d\u043e\u043c\u0435\u0440. \u0417\u0430\u043f\u044f\u0442\u0430\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0443\u043c\u043d\u044b\u0445 \u0438\u043c\u0435\u043d. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u043d\u0430\u0442\u0443, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 ioBroker Enums/Aufz\xe4hlungen. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c. \u041f\u0443\u0441\u0442\u043e\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 - {}","not activated":"\u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d","Google devices":"\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 Google","Show/Hide help":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c / \u0421\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u043c\u043e\u0449\u044c","Show all devices for print out":"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438","Search":"\u041f\u043e\u0438\u0441\u043a","List of devices to print out, e.g. to give all device names to your partner.":"\u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0430\u0440\u0442\u043d\u0435\u0440\u0443/\u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0448\u0435.","Name":"\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","Function":"\u0444\u0443\u043d\u043a\u0446\u0438\u044f","Room":"\u041a\u043e\u043c\u043d\u0430\u0442\u0430","Copy to clipboard":"\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430","Toggle expert mode":"\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430","ID":"ID","Smart names":"\u0423\u043c\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430","ioBType":"\u0422\u0438\u043f IoB","Function/Trait":"\u0424\u0443\u043d\u043a\u0446\u0438\u044f / \u0422\u0440","Attributes":"\u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b","Auto":"\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438","Conversation to GH":"\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 GH","Conversation to ioB":"\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 ioB","Information: The skill linking process was changed!":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: \u0418\u0437\u043c\u0435\u043d\u0435\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043d\u0430\u0432\u044b\u043a\u043e\u0432!","The linking process has been changed for a few months.":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438.","Now there is no temporary password that will be sent by email.":"\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u043f\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u0435.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\u041f\u0430\u0440\u043e\u043b\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 ioBroker.pro \u0438 \u0441 \u043f\u0430\u0440\u043e\u043b\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0432\u0432\u0435\u0434\u0435\u043d \u0437\u0434\u0435\u0441\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445!","Not understood":"\u041d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e","Roger that":"\u041f\u043e\u043d\u044f\u0442\u043d\u043e","Read blood sugar from":"\u0421\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0430\u0445\u0430\u0440\u0430 \u0432 \u043a\u0440\u043e\u0432\u0438 \u0438\u0437","Get actual humidity":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0432\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c","Get motion":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435","Get contact":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0430"}')},334:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Defina para 0 se o comportamento n\xe3o for desejado)","(you can separate names with comma)":"Voc\xea pode inserir v\xe1rios nomes divididos por v\xedrgula","Active":"Ativo","Add device":"Adicionar dispositivo","Add service":"Adicionar servi\xe7o","Addresses":"Endere\xe7os","Alexa devices":"Dispositivos Alexa","Alisa devices":"Dispositivos Alisa","Allow admin access (only pro)":"Permitir acesso de administrador (apenas pro)","Allow self-signed certificates":"Permitir certificados auto-assinados","Amazon Alexa":"Amazon Alexa","Are you sure?":"Voc\xea tem certeza?","Attributes has not correct JSON format.":"Os atributos n\xe3o est\xe3o no formato JSON correto.","Authentication must be disabled. You can create second instance extra for cloud.":"A autentica\xe7\xe3o deve ser desativada. Voc\xea pode criar uma segunda inst\xe2ncia extra para a nuvem.","Cancel":"Cancelar","Cannot add this object":"N\xe3o \xe9 poss\xedvel adicionar este objeto, porque n\xe3o \xe9 suportado.","Cannot read devices!":"N\xe3o \xe9 poss\xedvel ler dispositivos!","Certificates will be updated after initiated restart":"Os certificados ser\xe3o atualizados ap\xf3s a primeira reinicializa\xe7\xe3o","Certificates will be updated after start":"Certificados ser\xe3o atualizados ap\xf3s o in\xedcio","Click now Get new connection certificates to request new temporary password":"Clique agora \\"Obter novos certificados de conex\xe3o\\" para solicitar uma nova senha tempor\xe1ria","Close":"Feixar","Cloud URL":"URL da nuvem","Cloud adapter settings":"Configura\xe7\xf5es do adaptador de nuvem","Commands":"Comandos","Concatenate words with":"Concatenar palavras com","Connection timeout":"Tempo limite de conex\xe3o (ms)","Debug outputs":"Sa\xeddas de depura\xe7\xe3o","Decrement color temperature":"Temperatura de cor decrescente","Decrement percentage":"Percentual de decr\xe9scimo","Decrement target temperature":"Temperatura alvo de descida","Default":"Padr\xe3o","Device %s was not added":"O dispositivo %s n\xe3o foi adicionado","Device will be deactivated.":"O dispositivo ser\xe1 desativado.","Device will be disabled.":"O dispositivo ser\xe1 desabilitado.","Dimmer":"regulador de luz","Duplicate name":"Duplicar nome","Edit smart name":"Edite o nome inteligente","Error":"Erro","Extended options":"Configura\xe7\xe3o avan\xe7ada","Filter":"Filtro","For help use this forum":"Para obter ajuda, visite este f\xf3rum postar","Functions":"Fun\xe7\xf5es","Get actual temperature":"Obter temperatura atual","Get new connection certificates":"Obter novos certificados de conex\xe3o","Get new service URL key":"Obter nova chave do URL de servi\xe7o","Get target temperature":"Obter temperatura desejada","Google Home":"Google Home","IFTTT key":"Chave IFTTT","Increment color temperature":"Incremento da temperatura de cor","Increment percentage":"Percentual de incremento","Increment target temperature":"Incremento da temperatura desejada","Instance":"Inst\xe2ncia","Instance does not exists":"Inst\xe2ncia n\xe3o existe","Instance is not active.":"A inst\xe2ncia n\xe3o est\xe1 ativa.","Instance must be enabled":"A inst\xe2ncia deve estar ativada","Instance must run to deliver the data":"A inst\xe2ncia deve ser executada para obter os dados","Invalid object":"Objeto inv\xe1lido","Language":"L\xedngua","Load configuration from file":"Carregar configura\xe7\xe3o do arquivo","Message":"mensagem","OFF level for switches":"N\xedvel OFF para interruptores","OFF level for switches in %":"N\xedvel OFF para interruptores em%","Off":"desligado","Ok":"Ok","On":"ligado","On/Off":"ligado/desligado","Options":"Op\xe7\xf5es","Personal settings (only pro)":"Configura\xe7\xf5es pessoais (somente pro)","Ping timeout:":"Tempo limite de ping (ms)","Place function in names first":"Coloque a fun\xe7\xe3o na frente dos nomes","Please add action and trait to complete the Google Home state.":"Adicione a\xe7\xe3o e caracter\xedstica para concluir o estado da P\xe1gina inicial do Google.","Please add type and trait to complete the Google Home state.":"Adicione tipo e caracter\xedstica para concluir o estado da P\xe1gina inicial do Google.","Please select object ID...":"Por favor selecione o ID do objeto ...","Please write your email only in lower case letters":"Por favor, escreva seu e-mail apenas em letras min\xfasculas","Read lock state":"Ler estado de bloqueio","Replace in names":"Substitua nos nomes","Request email with password one more time":"Solicite email com senha mais uma vez","Restart on disconnect":"Reiniciar na desconex\xe3o","Review":"Reveja","Rooms":"quartos","Save":"Salve","Save and close":"Salvar e fechar","Save configuration to file":"Salvar configura\xe7\xe3o no arquivo","Save settings and the names will be changed":"Salve as configura\xe7\xf5es e os nomes ser\xe3o alterados","Select":"Selecione","Service names":"Nome do servi\xe7o","Services and IFTTT":"Servi\xe7os e IFTTT","Set color":"Definir cor","Set color temperature":"Definir temperatura de cor","Set lock state":"Definir estado de bloqueio","Set percentage":"Definir porcentagem","Set target temperature":"Definir temperatura desejada","Smart Devices":"Dispositivos inteligentes","Smart Enums":"Enumera\xe7\xe3o inteligentes","Smart Media":"Smart Media","Smart enums":"Enumera\xe7\xe3o inteligentes","Smart name":"Nome inteligente","Smart name for %s":"Nome inteligente para %s","To apply this setting, the restart of adapter must be done. Agree?":"Para aplicar esta configura\xe7\xe3o, o adaptador tem que ser reiniciado. Aceita?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Para detec\xe7\xe3o autom\xe1tica, coloque embaixo dos objetos em um canal (dispositivo se n\xe3o houver canal) uma sala e fun\xe7\xe3o tamb\xe9m. N\xe3o \xe9 suficiente atribuir um estado ou dispositivo. Salas/fun\xe7\xf5es podem ser adicionadas enumeradas e devem ser ativadas no adaptador IoT em Enumera\xe7\xe3o inteligente. Para detectar automaticamente estados manuais novamente, o estado deve ser limpo.","Turn off":"Desligar","Turn on":"Ligar","Type":"Tipo","Types":"Tipos","Use Nightscout instance":"Use a inst\xe2ncia Nightscout","Use following link for IFTTT":"Use o seguinte link para IFTTT","Use following link for custom service":"Use o seguinte link para o outros servi\xe7os","Use text2command instance":"Use a inst\xe2ncia text2command","Value":"Valor","White list for services":"Lista branca para servi\xe7os","Write response to":"Escreva a resposta para","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex Alice","You can enter several names divided by comma":"Voc\xea pode inserir v\xe1rios nomes divididos por v\xedrgula","amazon link":"Se voc\xea usa o ioBroker skill para a Alexa, escreva um coment\xe1rio para n\xf3s aqui.
Exemplos podem ser encontrados aqui.","by ON":"por ON","clear":"limpar","default":"padr\xe3o","disabled":"desativado","help_link_tip1":"Antes de escrever para o suporte, certifique-se de ler e entender as instru\xe7\xf5es da p\xe1gina da Web: https://www.iobroker.net","help_link_tip2":"Se voc\xea ainda tiver problemas com a conex\xe3o com o Iot, poder\xe1 solicitar suporte no F\xf3rum","help_link_tip3":"e somente depois disso, voc\xea deve escrever um email para support@iobroker.com","help_tip":"Nenhuma conta no iobroker.pro? Registe-se gratuamente no https://iobroker.pro , para obter um acesso limitado ou compre um acesso sem limita\xe7\xe3o.","info_allowedServices":"dividido por v\xedrgula. Use * para permitir todos os servi\xe7os.","info_iftttKey":"Voc\xea pode encontrar sua chave aqui, no bot\xe3o \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"Senha do ioBroker.pro","last value":"\xfaltimo valor","modified":"O nome foi modificado pelo usu\xe1rio","no type":"nenhum tipo","tooltip_allowSelfSignedCertificate":"Se voc\xea usa sua pr\xf3pria nuvem, voc\xea pode permitir o uso de certificados auto-assinados para a nuvem.","tooltip_apikey":"Essa chave \xe9 necess\xe1ria para se comunicar com uma nuvem. Voc\xea pode obter a API-KEY em https://iobroker.net. A chave parece tem esse formato: apelido_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente, voc\xea n\xe3o precisa mud\xe1-lo. S\xf3 \xe9 necess\xe1rio se voc\xea planeja usar sua pr\xf3pria nuvem.","tooltip_concatWord":"Defina como concatenar o Quarto e a Fun\xe7\xe3o. Por exemplo com \'na\': luz na sala de estar.","tooltip_deviceOffLevel":"Alguns grupos consistem em dispositivos mistos: regulador de luz e interruptores. \xc9 permitido control\xe1-los com comandos ligar/desligar e com porcentagens","tooltip_functionFirst":"Normalmente, os nomes s\xe3o gerados no esquema quarto_fun\xe7\xe3o. Aqui pode mudar para fun\xe7\xe3o_quarto.","tooltip_instance":"Inst\xe2ncia da Web, que ser\xe1 mostrada para suas conex\xf5es a da nuvem.","tooltip_language":"Voc\xea pode definir os idiomas para mudar rapidamente entre o skill da Alexa do EUA e o da Alem\xe3nha.","tooltip_noCommon":"Se ativado, as configura\xe7\xf5es ser\xe3o armazenadas somente para esta inst\xe2ncia. Ent\xe3o, na outra inst\xe2ncia, outros nomes podem ser definidos.","tooltip_responseOID":"Para cada comando, uma resposta de texto \xe9 gerada. Aqui voc\xea pode especificar o ID do objeto ao qual a resposta de texto deve ser enviada, por exemplo sayit.0.tts.text.","tooltip_restartOnDisconnect":"Solu\xe7\xe3o alternativa para falta de comunica\xe7\xe3o com o Alexa ap\xf3s a desconex\xe3o. Isso pode for\xe7ar voc\xea a reiniciar o adaptador e solucionar o problema.","Short answer for blood sugar":"Resposta curta para a\xe7\xfacar no sangue","cannot_use_password":"Voc\xea n\xe3o pode usar% na senha. Estamos trabalhando na corre\xe7\xe3o.","invalid_password_warning":"A senha deve ter pelo menos 8 caracteres e deve ter n\xfameros, letras mai\xfasculas e min\xfasculas. Altere-o no perfil ioBroker.pro\\n","new_certs_tip":"Se voc\xea fez uma restaura\xe7\xe3o a partir do backup ou moveu sua inst\xe2ncia de um dispositivo para outro ou excluiu a inst\xe2ncia da IoT e a adicionou novamente, carregue os certificados de seguran\xe7a da conex\xe3o com este bot\xe3o","new_credentials_tip":"Se voc\xea restaurou sua senha do ioBroker.pro, pode sincroniz\xe1-la com Alexa/Google/Alisa com este bot\xe3o.","Create IoT credentials anew":"Crie credenciais de IoT novamente","forum_tip":"Qualquer d\xfavida em qualquer idioma, pergunte aqui no f\xf3rum: link ","Save settings before pressing this button":"Salve as configura\xe7\xf5es antes de pressionar este bot\xe3o","Auto Mode":"Modo autom\xe1tico","Manual Mode":"Modo manual","manualModeHint":"Selecione um TYPE e um TRAIT depois de adicionar um estado. Para adicionar v\xe1rios tra\xe7os, adicione um ID e tra\xe7o diferentes, mas o mesmo nome, tipo e sala inteligentes. V\xedrgula separada para os v\xe1rios nomes inteligentes. Para atribuir uma sala, use o ioBroker Enums/Aufz\xe4hlungen. Com os atributos, voc\xea pode, por exemplo, definir um intervalo para a temperatura da cor. Atributos que voc\xea pode encontrar aqui. O atributo vazio \xe9 {}","not activated":"n\xe3o ativado","Google devices":"Dispositivos do Google","Show/Hide help":"Mostrar / ocultar ajuda","Show all devices for print out":"Mostrar todos os dispositivos para impress\xe3o","Search":"Procurar","List of devices to print out, e.g. to give all device names to your partner.":"Lista de dispositivos a serem impressos, p. para dar todos os nomes de dispositivos ao seu parceiro.","Name":"Nome","Function":"Fun\xe7\xe3o","Room":"Quarto","Copy to clipboard":"Copiar para \xe1rea de transfer\xeancia","Toggle expert mode":"Alternar modo especialista","ID":"ID","Smart names":"Nomes inteligentes","ioBType":"Tipo IoB","Function/Trait":"Fun\xe7\xe3o / Tra\xe7o","Attributes":"Atributos","Auto":"Automaticamente","Conversation to GH":"Converta para GH","Conversation to ioB":"Converta para ioB","Information: The skill linking process was changed!":"Informa\xe7\xf5es: O processo de vincula\xe7\xe3o de habilidades foi alterado!","The linking process has been changed for a few months.":"O processo de vincula\xe7\xe3o foi alterado por alguns meses.","Now there is no temporary password that will be sent by email.":"Agora n\xe3o existe uma senha tempor\xe1ria que ser\xe1 enviada por e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"A senha \xe9 igual a ioBroker.pro e com a senha que foi digitada aqui nas configura\xe7\xf5es!","Not understood":"N\xe3o entendido","Roger that":"Entendido","Read blood sugar from":"Leia o a\xe7\xfacar no sangue de","Get actual humidity":"Obtenha a umidade real","Get motion":"Mexa-se","Get contact":"Obter status de contato"}')},335:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Stel in op 0 als gedrag niet gewenst is)","(you can separate names with comma)":"U kunt verschillende namen invoeren, gescheiden door een komma","Active":"Actief","Add device":"Voeg toestel toe","Add service":"Service toevoegen","Addresses":"adressen","Alexa devices":"Alexa-apparaten","Alisa devices":"Alisa-apparaten","Allow admin access (only pro)":"Beheerrechten toestaan \u200b\u200b(alleen pro)","Allow self-signed certificates":"Sta zelf-ondertekende certificaten toe","Amazon Alexa":"Amazon Alexa","Are you sure?":"Weet je het zeker?","Attributes has not correct JSON format.":"Attributen hebben niet de juiste JSON-indeling","Authentication must be disabled. You can create second instance extra for cloud.":"Verificatie moet zijn uitgeschakeld. U kunt een tweede exemplaar extra voor de cloud maken.","Cancel":"Annuleer","Cannot add this object":"Kan dit object niet toevoegen, omdat het niet wordt ondersteund.","Cannot read devices!":"Kan geen apparaten lezen!","Certificates will be updated after initiated restart":"Certificaten worden bijgewerkt na de herstart opnieuw gestart","Certificates will be updated after start":"Certificaten worden na het opstarten bijgewerkt","Click now Get new connection certificates to request new temporary password":"Klik nu op \\"Nieuwe verbindingscertificaten verkrijgen\\" om een \u200b\u200bnieuw tijdelijk wachtwoord aan te vragen","Close":"Dichtbij","Cloud URL":"Cloud URL","Cloud adapter settings":"Cloud adapter-instellingen","Commands":"commando\'s","Concatenate words with":"Woorden samenvoegen met","Connection timeout":"Verbinding time-out (ms)","Debug outputs":"Debug-uitgangen","Decrement color temperature":"Verlaag de kleurtemperatuur","Decrement percentage":"Verlagingspercentage","Decrement target temperature":"Verlaag de doeltemperatuur","Default":"Standaard","Device %s was not added":"Apparaat %s is niet toegevoegd","Device will be deactivated.":"Apparaat wordt gedeactiveerd.","Device will be disabled.":"Apparaat %s zal worden uitgeschakeld.","Dimmer":"dimmer","Duplicate name":"Dubbele naam","Edit smart name":"Bewerk slimme naam","Error":"Fout","Extended options":"Uitgebreide opties","Filter":"Filter","For help use this forum":"Ga voor hulp naar dit forum post","Functions":"functies","Get actual temperature":"Krijg de werkelijke temperatuur","Get new connection certificates":"Ontvang nieuwe verbindingscertificaten","Get new service URL key":"Ontvang nieuwe service URL-sleutel","Get target temperature":"Krijg doeltemperatuur","Google Home":"Google Home","IFTTT key":"IFTTT-sleutel","Increment color temperature":"Verhoog de kleurtemperatuur","Increment percentage":"Verhoging percentage","Increment target temperature":"Verhoog de doeltemperatuur","Instance":"Aanleg","Instance does not exists":"Instantie bestaat niet","Instance is not active.":"Instantie is niet actief.","Instance must be enabled":"Exemplaar moet zijn ingeschakeld","Instance must run to deliver the data":"Het exemplaar moet worden uitgevoerd om de gegevens te bezorgen","Invalid object":"Ongeldig object","Language":"Taal","Load configuration from file":"Laad configuratie vanuit bestand","Message":"Bericht","OFF level for switches":"UIT-niveau voor schakelaars","OFF level for switches in %":"UIT-niveau voor schakelaars in%","Off":"uit","Ok":"OK","On":"op","On/Off":"Aan uit","Options":"opties","Personal settings (only pro)":"Persoonlijke instellingen (alleen pro)","Ping timeout:":"Ping-timeout (ms)","Place function in names first":"Plaats eerst de functie in namen","Please add action and trait to complete the Google Home state.":"Voeg actie en eigenschap toe om de Google Home-status te voltooien.","Please add type and trait to complete the Google Home state.":"Voeg type en kenmerk toe om de Google Home-status te voltooien.","Please select object ID...":"Selecteer een object-ID ...","Please write your email only in lower case letters":"Schrijf uw e-mail alleen in kleine letters","Read lock state":"Lees de vergrendelingsstatus","Replace in names":"Vervangen in namen","Request email with password one more time":"E-mail met wachtwoord nog een keer aanvragen","Restart on disconnect":"Opnieuw opstarten bij verbreken","Review":"Beoordeling","Rooms":"kamers","Save":"Opslaan","Save and close":"Opslaan en sluiten","Save configuration to file":"Sla configuratie op naar bestand","Save settings and the names will be changed":"Sla instellingen op en de namen worden gewijzigd","Select":"kiezen","Service names":"Servicenamen","Services and IFTTT":"Diensten en IFTTT","Set color":"Stel de kleur in","Set color temperature":"Stel de kleurtemperatuur in","Set lock state":"Stel de vergrendelingsstatus in","Set percentage":"Percentage instellen","Set target temperature":"Stel de doeltemperatuur in","Smart Devices":"Slimme apparaten","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Slim enums","Smart name":"Slimme naam","Smart name for %s":"Slimme naam voor %s","To apply this setting, the restart of adapter must be done. Agree?":"Om deze instelling toe te passen, moet de adapter opnieuw worden opgestart. Mee eens?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Voor automatische detectie wijst onder objecten een kanaal (apparaat als er geen kanaal beschikbaar is) toe aan een kamer en functie. Het is niet voldoende om de kamer toe te wijzen aan een staat of apparaat. Kamers/functies kunnen worden toegevoegd onder opsomming (aangegeven door de witte pijl in de rechterbovenhoek) en moeten worden geactiveerd in de IoT-adapter onder Intelligente opsomming. Om handmatige statussen automatisch te herkennen, moet de status worden verwijderd.","Turn off":"Uitschakelen","Turn on":"Aanzetten","Type":"Type","Types":"Soorten","Use Nightscout instance":"Gebruik de Nightscout-instantie","Use following link for IFTTT":"Gebruik de volgende link voor IFTTT","Use following link for custom service":"Gebruik de volgende link voor aangepaste service","Use text2command instance":"Gebruik de text2command-instantie","Value":"Waarde","White list for services":"Witte lijst voor services","Write response to":"Schrijf reactie op","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"U kunt verschillende namen invoeren, gescheiden door een komma","amazon link":"Als je de Alexa Skill gebruikt, schrijf dan een recensie voor ons hier.
Voorbeelden zijn hier te vinden.","by ON":"door ON","clear":"wissen","default":"standaard","disabled":"invalide","help_link_tip1":"Voordat u ter ondersteuning schrijft, moet u ervoor zorgen dat u de instructies van de webpagina hebt gelezen en begrepen: https://www.iobroker.net","help_link_tip2":"Als je nog steeds problemen hebt met de verbinding met Iot, kun je support im Forum aanvragen","help_link_tip3":"en pas daarna moet u een e-mail schrijven naar support@iobroker.com","help_tip":"Geen iobroker.pro-account? Koop het op https://iobroker.pro voor gevalideerde toegang of krijg gratis toegang, maar beperkte toegang.","info_allowedServices":"gedeeld door een komma. Gebruik * om alle services toe te staan.","info_iftttKey":"Je kunt je belangrijkste hier vinden onder \'Documentatie\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Wachtwoord","last value":"laatste waarde","modified":"Naam is gewijzigd door gebruiker","no type":"geen type","tooltip_allowSelfSignedCertificate":"Als u uw eigen cloud gebruikt, kunt u het gebruik van zelfondertekende certificaten voor de cloud toestaan.","tooltip_apikey":"Deze sleutel is vereist om te communiceren met een cloud. Je kunt de API-KEY op https://iobroker.net krijgen en het lijkt op nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normaal gesproken hoeft u dit niet te veranderen. Alleen vereist als u van plan bent uw eigen cloud te gebruiken.","tooltip_concatWord":"Bepaal hoe kamer en functie moeten worden samengevoegd. Bijv. met \'in\': licht in de woonkamer.","tooltip_deviceOffLevel":"Sommige groepen bestaan \u200b\u200buit gemengde apparaten: dimmers en schakelaars. Het is toegestaan \u200b\u200bom ze te besturen met AAN- en UIT-commando\'s en met percentages","tooltip_functionFirst":"Normaal gezien zien de namen eruit als room_function. Hier kun je het omschakelen naar function_room.","tooltip_instance":"Web-instantie, die wordt weergegeven voor uw verbindingen vanuit de cloud.","tooltip_language":"Je kunt de talen defini\xebren om snel te schakelen tussen US Alexa Skill en DE Alexa Skill.","tooltip_noCommon":"Indien ingeschakeld, worden de instellingen alleen voor deze instantie opgeslagen. Dus in het andere geval kunnen de andere namen worden ingesteld.","tooltip_responseOID":"Voor elke opdracht wordt het tekstantwoord gegenereerd. U kunt hier de Object-ID defini\xebren, waar deze tekst naartoe moet worden geschreven. Bijv. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Oplossing voor ontbrekende verbinding met Alexa nadat de verbinding met de cloud verloren was gegaan. Met deze optie kunt u de adapter opnieuw opstarten na elke verbreking en het zal werken.","Short answer for blood sugar":"Kort antwoord voor bloedsuiker","cannot_use_password":"U kunt% in wachtwoord niet gebruiken. We werken aan de oplossing.","invalid_password_warning":"Wachtwoord moet minimaal 8 tekens lang zijn en moet cijfers, hoofdletters en kleine letters bevatten. Wijzig dit in het ioBroker.pro-profiel\\n","new_certs_tip":"Als u een herstelbewerking hebt uitgevoerd vanaf een back-up of uw instantie van het ene apparaat naar het andere hebt verplaatst of het IoT-exemplaar hebt verwijderd en opnieuw hebt toegevoegd, moet u de verbindingsbeveiligingscertificaten met deze knop laden","new_credentials_tip":"Als je je ioBroker.pro-wachtwoord hebt hersteld, kun je je wachtwoord synchroniseren met Alexa/Google/Alisa met deze knop.","Create IoT credentials anew":"Maak opnieuw IoT-inloggegevens","forum_tip":"Voor vragen in welke taal dan ook, stel deze hier op het forum: link ","Save settings before pressing this button":"Sla de instellingen op voordat u op deze knop drukt","Auto Mode":"Automatische modus","Manual Mode":"Handmatige modus","manualModeHint":"Selecteer een TYPE en een TRAIT na het toevoegen van een staat. Om meerdere eigenschappen toe te voegen, voegt u een andere id en eigenschap toe, maar dezelfde slimme naam, type en kamer. Door komma\'s gescheiden voor de meerdere slimme namen. Gebruik de ioBroker Enums/Aufz\xe4hlungen om een kamer toe te wijzen. Met attributen kun je bijvoorbeeld een bereik instellen voor de kleurtemperatuur Info over Kenmerken die u hier kunt vinden. Leeg kenmerk is {}","not activated":"niet geactiveerd","Google devices":"Google-apparaten","Show/Hide help":"Help weergeven / verbergen","Show all devices for print out":"Alle apparaten weergeven om af te drukken","Search":"Zoeken","List of devices to print out, e.g. to give all device names to your partner.":"Lijst met af te drukken apparaten, b.v. om alle apparaatnamen aan uw partner te geven.","Name":"Naam","Function":"Functie","Room":"Kamer","Copy to clipboard":"Kopieer naar klembord","Toggle expert mode":"Schakel de expertmodus in","ID":"ID","Smart names":"Slimme namen","ioBType":"IoB-type","Function/Trait":"Functie / eigenschap","Attributes":"Attributen","Auto":"Automatisch","Conversation to GH":"Converteer naar GH","Conversation to ioB":"Converteer naar ioB","Information: The skill linking process was changed!":"Informatie: het proces voor het koppelen van vaardigheden is gewijzigd!","The linking process has been changed for a few months.":"Het koppelingsproces is voor een paar maanden gewijzigd.","Now there is no temporary password that will be sent by email.":"Nu is er geen tijdelijk wachtwoord dat per e-mail wordt verzonden.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Het wachtwoord is gelijk aan ioBroker.pro en met het wachtwoord dat hier in de instellingen is ingevoerd!","Not understood":"Niet begrepen","Roger that":"Begrepen","Read blood sugar from":"Lees de bloedsuikerspiegel van","Get actual humidity":"Verkrijg de werkelijke luchtvochtigheid","Get motion":"Krijg beweging","Get contact":"Krijg contactstatus"}')},336:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Mettre \xe0 0 si le comportement n\'est pas d\xe9sir\xe9)","(you can separate names with comma)":"Vous pouvez entrer plusieurs noms divis\xe9s par une virgule","Active":"actif","Add device":"Ajouter un appareil","Add service":"Ajouter un service","Addresses":"Adresses","Alexa devices":"Appareils Alexa","Alisa devices":"Appareils Alisa","Allow admin access (only pro)":"Autoriser l\'acc\xe8s administrateur (uniquement pro)","Allow self-signed certificates":"Autoriser les certificats auto-sign\xe9s","Amazon Alexa":"Amazon Alexa","Are you sure?":"\xcates-vous s\xfbr?","Attributes has not correct JSON format.":"Les attributs ne sont pas au format JSON correct","Authentication must be disabled. You can create second instance extra for cloud.":"L\'authentification doit \xeatre d\xe9sactiv\xe9e. Vous pouvez cr\xe9er une seconde instance suppl\xe9mentaire pour le cloud.","Cancel":"Annuler","Cannot add this object":"Impossible d\'ajouter cet objet, car non pris en charge.","Cannot read devices!":"Impossible de lire les appareils!","Certificates will be updated after initiated restart":"Les certificats seront mis \xe0 jour apr\xe8s le red\xe9marrage initi\xe9","Certificates will be updated after start":"Les certificats seront mis \xe0 jour apr\xe8s le d\xe9marrage","Click now Get new connection certificates to request new temporary password":"Cliquez maintenant sur \\"Obtenir de nouveaux certificats de connexion\\" pour demander un nouveau mot de passe temporaire.","Close":"Fermer","Cloud URL":"URL de cloud","Cloud adapter settings":"Param\xe8tres de l\'adaptateur cloud","Commands":"Commandes","Concatenate words with":"Concat\xe9ner les mots avec","Connection timeout":"D\xe9lai de connexion (ms)","Debug outputs":"D\xe9boguer les sorties","Decrement color temperature":"D\xe9cr\xe9menter la temp\xe9rature de couleur","Decrement percentage":"Pourcentage de d\xe9cr\xe9mentation","Decrement target temperature":"D\xe9cr\xe9menter la temp\xe9rature cible","Default":"D\xe9faut","Device %s was not added":"Le p\xe9riph\xe9rique %s n\'a pas \xe9t\xe9 ajout\xe9","Device will be deactivated.":"L\'appareil sera d\xe9sactiv\xe9.","Device will be disabled.":"L\'appareil %s sera d\xe9sactiv\xe9.","Dimmer":"Variateur","Duplicate name":"Nom en double","Edit smart name":"Modifier le nom intelligent","Error":"Erreur","Extended options":"Options \xe9tendues","Filter":"Filtre","For help use this forum":"Pour obtenir de l\'aide, visitez ce forum publier","Functions":"Les fonctions","Get actual temperature":"Obtenir la temp\xe9rature r\xe9elle","Get new connection certificates":"Obtenir de nouveaux certificats de connexion","Get new service URL key":"Obtenir une nouvelle cl\xe9 d\'URL de service","Get target temperature":"Obtenir la temp\xe9rature cible","Google Home":"Google Home","IFTTT key":"Touche IFTTT","Increment color temperature":"Incr\xe9ment de temp\xe9rature de couleur","Increment percentage":"Pourcentage d\'incr\xe9ment","Increment target temperature":"Augmenter la temp\xe9rature cible","Instance":"Exemple","Instance does not exists":"L\'instance n\'existe pas","Instance is not active.":"L\'instance n\'est pas active.","Instance must be enabled":"L\'instance doit \xeatre activ\xe9e","Instance must run to deliver the data":"L\'instance doit s\'ex\xe9cuter pour fournir les donn\xe9es","Invalid object":"Objet invalide","Language":"La langue","Load configuration from file":"Charger la configuration du fichier","Message":"Message","OFF level for switches":"Niveau OFF pour les commutateurs","OFF level for switches in %":"Niveau OFF pour les commutateurs en%","Off":"de","Ok":"D\'accord","On":"sur","On/Off":"Allum\xe9 \xe9teint","Options":"Options","Personal settings (only pro)":"Param\xe8tres personnels (uniquement pro)","Ping timeout:":"Ping timeout (ms)","Place function in names first":"Placez la fonction dans les noms en premier","Please add action and trait to complete the Google Home state.":"Veuillez ajouter une action et un trait pour terminer l\'\xe9tat de Google Home.","Please add type and trait to complete the Google Home state.":"Veuillez ajouter un type et un trait pour terminer l\'\xe9tat de Google Home.","Please select object ID...":"Veuillez s\xe9lectionner l\'ID d\'objet ...","Please write your email only in lower case letters":"S\'il vous pla\xeet \xe9crivez votre email uniquement en minuscules","Read lock state":"\xc9tat verrouill\xe9","Replace in names":"Remplacer dans les noms","Request email with password one more time":"Demander l\'email avec le mot de passe une fois de plus","Restart on disconnect":"Red\xe9marrer \xe0 la d\xe9connexion","Review":"La revue","Rooms":"Pi\xe8ces","Save":"sauvegarder","Save and close":"Sauver et fermer","Save configuration to file":"Enregistrer la configuration dans un fichier","Save settings and the names will be changed":"Enregistrer les param\xe8tres et les noms seront modifi\xe9s","Select":"S\xe9lectionner","Service names":"Noms de service","Services and IFTTT":"Services et IFTTT","Set color":"D\xe9finir la couleur","Set color temperature":"R\xe9gler la temp\xe9rature de couleur","Set lock state":"D\xe9finir l\'\xe9tat de verrouillage","Set percentage":"D\xe9finir le pourcentage","Set target temperature":"R\xe9gler la temp\xe9rature cible","Smart Devices":"Smart Devices","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Smart enums","Smart name":"Nom intelligent","Smart name for %s":"Nom intelligent pour %s","To apply this setting, the restart of adapter must be done. Agree?":"Pour appliquer ce param\xe8tre, l\'adaptateur doit \xeatre red\xe9marr\xe9. Se mettre d\'accord?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Pour la d\xe9tection automatique, sous les objets, affectez un canal (appareil si aucun canal n\'est disponible) \xe0 une pi\xe8ce et une fonction. Il ne suffit pas d\'affecter la pi\xe8ce \xe0 un \xe9tat ou \xe0 un appareil. Les salles/fonctions peuvent \xeatre ajout\xe9es sous l\'\xe9num\xe9ration (indiqu\xe9e par la fl\xe8che blanche en haut \xe0 droite) et doivent \xeatre activ\xe9es dans l\'adaptateur IoT sous l\'\xe9num\xe9ration intelligente. Afin de reconna\xeetre automatiquement les \xe9tats manuels, l\'\xe9tat doit \xeatre supprim\xe9.","Turn off":"\xc9teindre","Turn on":"Allumer","Type":"Type","Types":"Les types","Use Nightscout instance":"Utilisez l\'instance Nightscout","Use following link for IFTTT":"Utilisez le lien suivant pour IFTTT","Use following link for custom service":"Utilisez le lien suivant pour un service personnalis\xe9","Use text2command instance":"Utilisez l\'instance text2command","Value":"Valeur","White list for services":"Liste blanche pour les services","Write response to":"\xc9crire une r\xe9ponse \xe0","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Vous pouvez entrer plusieurs noms divis\xe9s par une virgule","amazon link":"Si vous utilisez la comp\xe9tence Alexa, veuillez \xe9crire une critique pour nous ici.
Des exemples peuvent \xeatre trouv\xe9s ici .","by ON":"par le","clear":"nettoyer","default":"d\xe9faut","disabled":"d\xe9sactiv\xe9e","help_link_tip1":"Avant d\'\xe9crire au support, assurez-vous d\'avoir lu et compris les instructions de la page Web: https://www.iobroker.net","help_link_tip2":"Si vous rencontrez toujours des probl\xe8mes avec la connexion \xe0 Iot, vous pouvez demander une assistance dans le forum","help_link_tip3":"et seulement apr\xe8s cela, vous devez \xe9crire un e-mail \xe0 support@iobroker.com","help_tip":"Pas de compte iobroker.pro? Achetez-le sur https://iobroker.pro pour un acc\xe8s valid\xe9 ou obtenez gratuitement un acc\xe8s limit\xe9.","info_allowedServices":"divis\xe9 par virgule. Utilisez * pour autoriser tous les services.","info_iftttKey":"Vous pouvez trouver votre cl\xe9 ici sous \'Documentation\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"Mot de passe ioBroker.pro","last value":"derni\xe8re valeur","modified":"Le nom a \xe9t\xe9 modifi\xe9 par l\'utilisateur","no type":"pas de type","tooltip_allowSelfSignedCertificate":"Si vous utilisez votre propre cloud, vous pouvez autoriser l\'utilisation de certificats autosign\xe9s pour le cloud.","tooltip_apikey":"Cette cl\xe9 est requise pour communiquer avec un nuage. Vous pouvez obtenir l\'API-KEY sur https://iobroker.net et il ressemble \xe0 pseudo_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalement, vous n\'avez pas besoin de le changer. Uniquement n\xe9cessaire si vous pr\xe9voyez d\'utiliser votre propre cloud.","tooltip_concatWord":"D\xe9finir la concat\xe9nation de la pi\xe8ce et de la fonction. Par exemple. avec \'in\': Lumi\xe8re dans le salon.","tooltip_deviceOffLevel":"Certains groupes sont compos\xe9s de dispositifs mixtes: gradateurs et commutateurs. Il est permis de les contr\xf4ler avec des commandes ON et OFF et avec des pourcentages","tooltip_functionFirst":"Normalement, les noms ressemblent \xe0 room_function. Ici vous pouvez passer \xe0 function_room.","tooltip_instance":"Instance Web, qui sera affich\xe9e pour vos connexions depuis le cloud.","tooltip_language":"Vous pouvez d\xe9finir les langues pour passer rapidement entre les comp\xe9tences am\xe9ricaines Alexa et DE Alexa.","tooltip_noCommon":"Si activ\xe9, les param\xe8tres seront stock\xe9s uniquement pour cette instance. Dans un autre cas, les autres noms pourraient \xeatre d\xe9finis.","tooltip_responseOID":"Pour chaque commande, la r\xe9ponse textuelle sera g\xe9n\xe9r\xe9e. Vous pouvez d\xe9finir ici l\'ID de l\'objet, o\xf9 ce texte doit \xeatre \xe9crit. Par exemple. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Solution de contournement pour la connexion manquante \xe0 Alexa apr\xe8s la connexion au cloud a \xe9t\xe9 perdue. Avec cette option, vous pouvez red\xe9marrer l\'adaptateur apr\xe8s chaque d\xe9connexion et cela fonctionnera.","Short answer for blood sugar":"R\xe9ponse courte pour la glyc\xe9mie","cannot_use_password":"Vous ne pouvez pas utiliser% dans le mot de passe. Nous travaillons sur le correctif.","invalid_password_warning":"Le mot de passe doit comporter au moins 8 caract\xe8res et doit comporter des chiffres, des lettres majuscules et minuscules. Veuillez le modifier dans le profil ioBroker.pro\\n","new_certs_tip":"Si vous avez effectu\xe9 une restauration \xe0 partir d\'une sauvegarde, ou d\xe9plac\xe9 votre instance d\'un appareil vers un autre ou supprim\xe9 l\'instance IoT et l\'ajout\xe9e \xe0 nouveau, vous devez charger les certificats de s\xe9curit\xe9 de connexion avec ce bouton","new_credentials_tip":"Si vous avez restaur\xe9 votre mot de passe ioBroker.pro, vous pouvez synchroniser votre mot de passe avec Alexa/Google/Alisa avec ce bouton.","Create IoT credentials anew":"Cr\xe9ez \xe0 nouveau les informations d\'identification IoT","forum_tip":"Si vous avez des questions dans n\'importe quelle langue, posez-les ici dans le forum: lien ","Save settings before pressing this button":"Enregistrez les param\xe8tres avant d\'appuyer sur ce bouton","Auto Mode":"Mode automatique","Manual Mode":"Mode manuel","manualModeHint":"Veuillez s\xe9lectionner un TYPE et un TRAIT apr\xe8s avoir ajout\xe9 un \xe9tat. Pour ajouter plusieurs traits, ajoutez un identifiant et un trait diff\xe9rents, mais le m\xeame nom intelligent, le m\xeame type et la m\xeame pi\xe8ce. S\xe9par\xe9 par des virgules pour les multiples noms intelligents. Pour attribuer une chambre, veuillez utiliser les ioBroker Enums/Aufz\xe4hlungen. Avec les attributs, vous pouvez par exemple d\xe9finir une plage de temp\xe9rature de couleur Infos sur Les attributs que vous pouvez trouver ici. L\'attribut vide est {}","not activated":"non activ\xe9","Google devices":"Appareils Google","Show/Hide help":"Afficher / masquer l\'aide","Show all devices for print out":"Afficher tous les appareils \xe0 imprimer","Search":"Chercher","List of devices to print out, e.g. to give all device names to your partner.":"Liste des p\xe9riph\xe9riques \xe0 imprimer, par ex. pour donner tous les noms d\'appareils \xe0 votre partenaire.","Name":"Nom","Function":"Fonction","Room":"Chambre","Copy to clipboard":"Copier dans le presse-papier","Toggle expert mode":"Basculer en mode expert","ID":"ID","Smart names":"Noms intelligents","ioBType":"Type IoB","Function/Trait":"Fonction / trait","Attributes":"Les attributs","Auto":"Automatiquement","Conversation to GH":"Convertir en GH","Conversation to ioB":"Convertir en ioB","Information: The skill linking process was changed!":"Information: le processus de liaison des comp\xe9tences a \xe9t\xe9 modifi\xe9!","The linking process has been changed for a few months.":"Le processus de mise en relation a \xe9t\xe9 modifi\xe9 depuis quelques mois.","Now there is no temporary password that will be sent by email.":"D\xe9sormais, aucun mot de passe temporaire ne sera envoy\xe9 par e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Le mot de passe est \xe9gal \xe0 ioBroker.pro et au mot de passe qui a \xe9t\xe9 saisi ici dans les param\xe8tres!","Not understood":"Pas compris","Roger that":"Bien re\xe7u","Read blood sugar from":"Lire la glyc\xe9mie \xe0 partir de","Get actual humidity":"Obtenez l\'humidit\xe9 r\xe9elle","Get motion":"Obtenez du mouvement","Get contact":"Obtenir le statut du contact"}')},337:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Impostare su 0 se il comportamento non \xe8 desiderato)","(you can separate names with comma)":"\xc8 possibile inserire diversi nomi divisi per virgola","Active":"Attivo","Add device":"Aggiungi dispositivo","Add service":"Aggiungi servizio","Addresses":"indirizzi","Alexa devices":"Dispositivi Alexa","Alisa devices":"Dispositivi Alisa","Allow admin access (only pro)":"Permetti l\'accesso amministratore (solo pro)","Allow self-signed certificates":"Consenti certificati autofirmati","Amazon Alexa":"Amazon Alexa","Are you sure?":"Sei sicuro?","Attributes has not correct JSON format.":"Gli attributi non sono nel formato JSON corretto","Authentication must be disabled. You can create second instance extra for cloud.":"L\'autenticazione deve essere disabilitata. \xc8 possibile creare un extra di seconda istanza per il cloud.","Cancel":"Annulla","Cannot add this object":"Impossibile aggiungere questo oggetto, perch\xe9 non supportato.","Cannot read devices!":"Impossibile leggere i dispositivi!","Certificates will be updated after initiated restart":"I certificati verranno aggiornati dopo il riavvio avviato","Certificates will be updated after start":"I certificati verranno aggiornati dopo l\'avvio","Click now Get new connection certificates to request new temporary password":"Fare clic su \\"Ottieni nuovi certificati di connessione\\" per richiedere una nuova password temporanea","Close":"Vicino","Cloud URL":"URL del cloud","Cloud adapter settings":"Impostazioni dell\'adattatore cloud","Commands":"comandi","Concatenate words with":"Parole concatenate con","Connection timeout":"Timeout connessione (ms)","Debug outputs":"Uscite di debug","Decrement color temperature":"Ridurre la temperatura del colore","Decrement percentage":"Percentuale di decremento","Decrement target temperature":"Ridurre la temperatura target","Default":"Predefinito","Device %s was not added":"Il dispositivo %s non \xe8 stato aggiunto","Device will be deactivated.":"Il dispositivo sar\xe0 disattivato.","Device will be disabled.":"Il dispositivo sar\xe0 disabilitato.","Dimmer":"oscuratore","Duplicate name":"Nome duplicato","Edit smart name":"Modifica il nome intelligente","Error":"Errore","Extended options":"Opzioni estese","Filter":"Filtro","For help use this forum":"Per assistenza, visita questo forum post","Functions":"funzioni","Get actual temperature":"Ottieni la temperatura effettiva","Get new connection certificates":"Ottieni nuovi certificati di connessione","Get new service URL key":"Ottieni una nuova chiave URL del servizio","Get target temperature":"Ottieni la temperatura target","Google Home":"Google Home","IFTTT key":"Tasto IFTTT","Increment color temperature":"Incrementa la temperatura del colore","Increment percentage":"Percentuale di incremento","Increment target temperature":"Incremento della temperatura target","Instance":"Esempio","Instance does not exists":"L\'istanza non esiste","Instance is not active.":"L\'istanza non \xe8 attiva.","Instance must be enabled":"L\'istanza deve essere abilitata","Instance must run to deliver the data":"L\'istanza deve essere eseguita per consegnare i dati","Invalid object":"Oggetto non valido","Language":"Linguaggio","Load configuration from file":"Carica la configurazione dal file","Message":"Messaggio","OFF level for switches":"Livello OFF per interruttori","OFF level for switches in %":"Livello OFF per gli interruttori in%","Off":"via","Ok":"Ok","On":"sopra","On/Off":"Acceso spento","Options":"Opzioni","Personal settings (only pro)":"Impostazioni personali (solo pro)","Ping timeout:":"Timeout del ping (ms)","Place function in names first":"Inserisci la funzione nei nomi prima","Please add action and trait to complete the Google Home state.":"Aggiungi azione e tratto per completare lo stato di Google Home.","Please add type and trait to complete the Google Home state.":"Aggiungi tipo e tratto per completare lo stato di Google Home.","Please select object ID...":"Si prega di selezionare l\'oggetto ID ...","Please write your email only in lower case letters":"Si prega di scrivere la tua email solo in lettere minuscole","Read lock state":"Leggi lo stato di blocco","Replace in names":"Sostituisci nei nomi","Request email with password one more time":"Richiedi l\'email con la password ancora una volta","Restart on disconnect":"Riavvia alla disconnessione","Review":"Revisione","Rooms":"Camere","Save":"Salvare","Save and close":"Salva e chiudi","Save configuration to file":"Salva la configurazione nel file","Save settings and the names will be changed":"Salva le impostazioni e i nomi saranno cambiati","Select":"Selezionare","Service names":"Nomi di servizio","Services and IFTTT":"Servizi e IFTTT","Set color":"Imposta il colore","Set color temperature":"Imposta la temperatura del colore","Set lock state":"Imposta lo stato di blocco","Set percentage":"Imposta la percentuale","Set target temperature":"Imposta la temperatura target","Smart Devices":"Dispositivi intelligenti","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Enumerazioni intelligenti","Smart name":"Nome intelligente","Smart name for %s":"Nome intelligente per %s","To apply this setting, the restart of adapter must be done. Agree?":"Per applicare questa impostazione, \xe8 necessario riavviare l\'adattatore. Essere d\'accordo?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Per il rilevamento automatico, sotto gli oggetti assegnare un canale (dispositivo se non \xe8 disponibile alcun canale) a una stanza e funzione. Non \xe8 sufficiente assegnare la stanza a uno stato o dispositivo. Le sale/funzioni possono essere aggiunte all\'enumerazione (indicata dalla freccia bianca in alto a destra) e devono essere attivate nell\'adattatore IoT in Enumerazione intelligente. Per riconoscere automaticamente gli stati manuali, \xe8 necessario eliminare lo stato.","Turn off":"Spegni","Turn on":"Accendere","Type":"Genere","Types":"tipi","Use Nightscout instance":"Utilizza l\'istanza Nightscout","Use following link for IFTTT":"Usa il seguente link per IFTTT","Use following link for custom service":"Usa il seguente link per il servizio personalizzato","Use text2command instance":"Utilizza l\'istanza text2command","Value":"Valore","White list for services":"Lista bianca per i servizi","Write response to":"Scrivi risposta a","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\xc8 possibile inserire diversi nomi divisi per virgola","amazon link":"Se usi Alexa Skill, scrivi una recensione per noi here.
Gli esempi possono essere trovati qui .","by ON":"da ON","clear":"cancellare","default":"predefinito","disabled":"Disabilitato","help_link_tip1":"Prima di scrivere per il supporto, assicurarsi di aver letto e compreso le istruzioni della pagina Web: https://www.iobroker.net","help_link_tip2":"Se hai ancora problemi con la connessione a Iot, puoi richiedere supporto a Forum","help_link_tip3":"e solo dopo dovrai scrivere una email a support@iobroker.com","help_tip":"Nessun account iobroker.pro? Compralo su https://iobroker.pro per l\'accesso convalidato o ottieni l\'accesso gratuito, ma limitato.","info_allowedServices":"diviso per virgola. Usa * per consentire tutti i servizi.","info_iftttKey":"Puoi trovare la tua chiave qui in \'Documentazione\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Password","last value":"ultimo valore","modified":"Il nome \xe8 stato modificato dall\'utente","no type":"nessun tipo","tooltip_allowSelfSignedCertificate":"Se si utilizza il proprio cloud, \xe8 possibile consentire l\'uso di certificati autofirmati per il cloud.","tooltip_apikey":"Questa chiave \xe8 necessaria per comunicare con un cloud. Puoi ottenere l\'API-KEY su https://iobroker.net e sembra nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente non \xe8 necessario cambiarlo. Richiesto solo se prevedi di utilizzare il tuo cloud.","tooltip_concatWord":"Definire come concatenare Room e Function. Per esempio. con \'in\': luce nel soggiorno.","tooltip_deviceOffLevel":"Alcuni gruppi sono costituiti da dispositivi misti: dimmer e interruttori. \xc8 consentito controllarli con comandi ON e OFF e con percentuali","tooltip_functionFirst":"Normalmente i nomi assomigliano a room_function. Qui puoi passare a function_room.","tooltip_instance":"Istanza Web, che verr\xe0 mostrata per le connessioni dal cloud.","tooltip_language":"\xc8 possibile definire le lingue per passare velocemente da US Alexa Skill a DE Alexa Skill.","tooltip_noCommon":"Se abilitato, le impostazioni verranno memorizzate solo per questa istanza. Quindi in un\'altra istanza potrebbero essere impostati gli altri nomi.","tooltip_responseOID":"Per ogni comando verr\xe0 generata la risposta testuale. \xc8 possibile definire qui l\'ID oggetto, dove questo testo deve essere scritto. Per esempio. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Soluzione alternativa per la mancata connessione ad Alexa dopo la perdita della connessione al cloud. Con questa opzione \xe8 possibile riavviare l\'adattatore dopo ogni disconnessione e funzioner\xe0.","Short answer for blood sugar":"Risposta breve per zucchero nel sangue","cannot_use_password":"Non \xe8 possibile utilizzare% nella password. Stiamo lavorando alla correzione.","invalid_password_warning":"La password deve contenere almeno 8 caratteri e deve contenere numeri, lettere maiuscole e minuscole. Si prega di cambiarlo nel profilo ioBroker.pro\\n","new_certs_tip":"Se hai effettuato un ripristino dal backup o hai spostato l\'istanza da un dispositivo all\'altro o hai eliminato l\'istanza IoT e l\'hai aggiunta di nuovo, devi caricare i certificati di sicurezza della connessione con questo pulsante","new_credentials_tip":"Se hai ripristinato la tua password ioBroker.pro puoi sincronizzare la tua password con Alexa/Google/Alisa con questo pulsante.","Create IoT credentials anew":"Crea nuovamente le credenziali IoT","forum_tip":"Per qualsiasi domanda in qualsiasi lingua, si prega di porre qui nel forum: link ","Save settings before pressing this button":"Salvare le impostazioni prima di premere questo pulsante","Auto Mode":"Modalit\xe0 automatica","Manual Mode":"Modalit\xe0 manuale","manualModeHint":"Seleziona un TYPE e un TRAIT dopo aver aggiunto uno stato. Per aggiungere pi\xf9 tratti, aggiungi un ID e un tratto diversi ma lo stesso nome, tipo e spazio intelligenti. Virgola separata per pi\xf9 nomi intelligenti. Per assegnare una stanza, utilizzare ioBroker Enums/Aufz\xe4hlungen. Con gli attributi puoi ad esempio impostare un intervallo per la temperatura del colore Informazioni su Gli attributi che puoi trovare qui. L\'attributo vuoto \xe8 {}","not activated":"non attivato","Google devices":"Dispositivi Google","Show/Hide help":"Mostra / Nascondi aiuto","Show all devices for print out":"Mostra tutti i dispositivi per la stampa","Search":"Ricerca","List of devices to print out, e.g. to give all device names to your partner.":"Elenco dei dispositivi da stampare, ad es. per dare tutti i nomi dei dispositivi al tuo partner.","Name":"Nome","Function":"Funzione","Room":"Camera","Copy to clipboard":"Copia negli appunti","Toggle expert mode":"Attiva / disattiva modalit\xe0 esperto","ID":"ID","Smart names":"Nomi intelligenti","ioBType":"Tipo di IoB","Function/Trait":"Funzione / Trait","Attributes":"attributi","Auto":"Automaticamente","Conversation to GH":"Converti in GH","Conversation to ioB":"Converti in ioB","Information: The skill linking process was changed!":"Informazioni: il processo di collegamento delle abilit\xe0 \xe8 stato modificato!","The linking process has been changed for a few months.":"Il processo di collegamento \xe8 stato modificato per alcuni mesi.","Now there is no temporary password that will be sent by email.":"Ora non esiste una password temporanea che verr\xe0 inviata tramite e-mail.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"La password \xe8 uguale a ioBroker.pro e alla password che \xe8 stata inserita qui nelle impostazioni!","Not understood":"Non compreso","Roger that":"Ricevuto","Read blood sugar from":"Leggi lo zucchero nel sangue da","Get actual humidity":"Ottieni l\'umidit\xe0 effettiva","Get motion":"Ottieni movimento","Get contact":"Ottieni lo stato del contatto"}')},338:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Se establece en 0 si no se desea el comportamiento)","(you can separate names with comma)":"Puede ingresar varios nombres divididos por coma","Active":"Activo","Add device":"A\xf1adir dispositivo","Add service":"A\xf1adir servicio","Addresses":"Direcciones","Alexa devices":"Dispositivos de Alexa","Alisa devices":"Dispositivos alisa","Allow admin access (only pro)":"Permitir acceso de administrador (solo pro)","Allow self-signed certificates":"Permitir certificados autofirmados","Amazon Alexa":"Amazon Alexa","Are you sure?":"\xbfEst\xe1s seguro?","Attributes has not correct JSON format.":"Los atributos no est\xe1n en el formato JSON correcto","Authentication must be disabled. You can create second instance extra for cloud.":"La autenticaci\xf3n debe estar deshabilitada. Puede crear una segunda instancia extra para la nube.","Cancel":"Cancelar","Cannot add this object":"No se puede agregar este objeto porque no es compatible.","Cannot read devices!":"No se pueden leer los dispositivos!","Certificates will be updated after initiated restart":"Los certificados se actualizar\xe1n despu\xe9s de reiniciarse","Certificates will be updated after start":"Los certificados se actualizar\xe1n despu\xe9s del inicio","Click now Get new connection certificates to request new temporary password":"Haga clic ahora en \\"Obtener nuevos certificados de conexi\xf3n\\" para solicitar una nueva contrase\xf1a temporal","Close":"Cerrar","Cloud URL":"URL en la nube","Cloud adapter settings":"Configuraci\xf3n del adaptador de nube","Commands":"Comandos","Concatenate words with":"Concatenar palabras con","Connection timeout":"Tiempo de espera de conexi\xf3n (ms)","Debug outputs":"Salidas de depuraci\xf3n","Decrement color temperature":"Disminuci\xf3n de la temperatura de color.","Decrement percentage":"Porcentaje de decremento","Decrement target temperature":"Disminuir la temperatura objetivo","Default":"Defecto","Device %s was not added":"El dispositivo %s no fue agregado","Device will be deactivated.":"El dispositivo se desactivar\xe1.","Device will be disabled.":"El dispositivo %s estar\xe1 deshabilitado.","Dimmer":"Regulador de intensidad","Duplicate name":"Nombre duplicado","Edit smart name":"Editar nombre inteligente","Error":"Error","Extended options":"Opciones extendidas","Filter":"Filtrar","For help use this forum":"Para obtener ayuda, visite este foro publicar","Functions":"Funciones","Get actual temperature":"Obtener la temperatura real","Get new connection certificates":"Obtenga nuevos certificados de conexi\xf3n","Get new service URL key":"Obtener nueva clave de servicio URL","Get target temperature":"Obtener temperatura objetivo","Google Home":"Google Home","IFTTT key":"Tecla IFTTT","Increment color temperature":"Temperatura de color incrementada","Increment percentage":"Porcentaje de incremento","Increment target temperature":"Incrementar la temperatura objetivo","Instance":"Ejemplo","Instance does not exists":"La instancia no existe","Instance is not active.":"La instancia no est\xe1 activa.","Instance must be enabled":"La instancia debe estar habilitada","Instance must run to deliver the data":"La instancia debe ejecutarse para entregar los datos","Invalid object":"Objeto inv\xe1lido","Language":"Idioma","Load configuration from file":"Cargar configuraci\xf3n desde archivo","Message":"Mensaje","OFF level for switches":"Nivel de apagado para interruptores","OFF level for switches in %":"Nivel OFF para interruptores en%","Off":"apagado","Ok":"De acuerdo","On":"en","On/Off":"Encendido apagado","Options":"Opciones","Personal settings (only pro)":"Configuraci\xf3n personal (solo pro)","Ping timeout:":"Tiempo de espera de ping (ms)","Place function in names first":"Coloque la funci\xf3n en los nombres primero","Please add action and trait to complete the Google Home state.":"Agregue acci\xf3n y rasgo para completar el estado de Google Home.","Please add type and trait to complete the Google Home state.":"Agregue tipo y rasgo para completar el estado de Google Home.","Please select object ID...":"Por favor seleccione ID de objeto ...","Please write your email only in lower case letters":"Por favor escriba su correo electr\xf3nico s\xf3lo en min\xfasculas","Read lock state":"Estado de bloqueo de lectura","Replace in names":"Reemplazar en nombres","Request email with password one more time":"Solicitar correo electr\xf3nico con contrase\xf1a una vez m\xe1s","Restart on disconnect":"Reiniciar al desconectar","Review":"revisi\xf3n","Rooms":"Habitaciones","Save":"Salvar","Save and close":"Guardar y cerrar","Save configuration to file":"Guardar la configuraci\xf3n en el archivo","Save settings and the names will be changed":"Guarde la configuraci\xf3n y los nombres ser\xe1n cambiados","Select":"Seleccionar","Service names":"Nombres de servicio","Services and IFTTT":"Servicios e IFTTT","Set color":"Establecer color","Set color temperature":"Ajustar la temperatura de color","Set lock state":"Establecer el estado de bloqueo","Set percentage":"Establecer porcentaje","Set target temperature":"Ajustar la temperatura objetivo","Smart Devices":"Dispositivos inteligentes","Smart Enums":"Smart Enums","Smart Media":"Smart Media","Smart enums":"Enums inteligentes","Smart name":"Nombre inteligente","Smart name for %s":"Nombre inteligente para %s","To apply this setting, the restart of adapter must be done. Agree?":"Para aplicar esta configuraci\xf3n, el adaptador debe reiniciarse. \xbfDe acuerdo?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"Para la detecci\xf3n autom\xe1tica, debajo de los objetos asigne un canal (dispositivo si no hay un canal disponible) a una sala y funci\xf3n. No es suficiente asignar la habitaci\xf3n a un estado o dispositivo. Las habitaciones/funciones se pueden agregar en la enumeraci\xf3n (indicada por la flecha blanca en la parte superior derecha) y se deben activar en el adaptador IoT en la enumeraci\xf3n inteligente. Para reconocer autom\xe1ticamente los estados manuales, el estado debe ser eliminado.","Turn off":"Apagar","Turn on":"Encender","Type":"Tipo","Types":"Tipos","Use Nightscout instance":"Use la instancia del Nightscout","Use following link for IFTTT":"Utilice el siguiente enlace para IFTTT","Use following link for custom service":"Use el siguiente enlace para servicio personalizado","Use text2command instance":"Use la instancia del comando text2","Value":"Valor","White list for services":"Lista blanca de servicios","Write response to":"Escribir respuesta a","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Puede introducir varios nombres divididos por comas","amazon link":"Si usa Alexa Skill, escriba una opini\xf3n para nosotros aqu\xed .
Se pueden encontrar ejemplos aqu\xed .","by ON":"por el","clear":"limpiar","default":"defecto","disabled":"discapacitado","help_link_tip1":"Antes de escribir a soporte, aseg\xfarese de haber le\xeddo y entendido las instrucciones de la p\xe1gina web: https://www.iobroker.net","help_link_tip2":"Si a\xfan tiene problemas con la conexi\xf3n a Iot, puede solicitar asistencia en el foro","help_link_tip3":"y solo despu\xe9s de eso, debe escribir un correo electr\xf3nico a support@iobroker.com","help_tip":"\xbfNo hay una cuenta iobroker.pro? C\xf3mprelo en https://iobroker.pro para obtener acceso validado u obtenga de forma gratuita, pero con acceso limitado.","info_allowedServices":"dividido por coma. Use * para permitir todos los servicios.","info_iftttKey":"Puede encontrar su clave aqu\xed en \'Documentaci\xf3n\'","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Contrase\xf1a","last value":"\xfaltimo valor","modified":"El nombre fue modificado por el usuario","no type":"Sin tipo","tooltip_allowSelfSignedCertificate":"Si usa su propia nube, puede permitir el uso de certificados autofirmados para la nube.","tooltip_apikey":"Esta clave es necesaria para comunicarse con una nube. Puede obtener la API-KEY en https://iobroker.net y se ve como nickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Normalmente no es necesario cambiarlo. Solo es obligatorio si planea usar su propia nube.","tooltip_concatWord":"Definir c\xf3mo concatenar Habitaci\xf3n y Funci\xf3n. P.ej. con \'en\': luz en la sala de estar.","tooltip_deviceOffLevel":"Algunos grupos consisten en dispositivos mixtos: atenuadores e interruptores. Se permite controlarlos con comandos ON y OFF y con porcentajes","tooltip_functionFirst":"Normalmente los nombres parecen room_function. Aqu\xed puedes cambiarlo a function_room.","tooltip_instance":"Instancia web, que se mostrar\xe1 para sus conexiones desde la nube.","tooltip_language":"Puede definir los idiomas para cambiar r\xe1pidamente entre US Alexa Skill y DE Alexa Skill.","tooltip_noCommon":"Si est\xe1 habilitado, la configuraci\xf3n se almacenar\xe1 solo para esta instancia. Entonces, en la otra instancia, se podr\xedan establecer los otros nombres.","tooltip_responseOID":"Para cada comando, se generar\xe1 la respuesta de texto. Aqu\xed puede definir la ID del objeto, donde debe escribirse este texto. P.ej. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Soluci\xf3n alternativa para la conexi\xf3n faltante a Alexa despu\xe9s de la conexi\xf3n a la nube se perdi\xf3. Con esta opci\xf3n, puede reiniciar el adaptador despu\xe9s de cada desconexi\xf3n y funcionar\xe1.","Short answer for blood sugar":"Respuesta corta para az\xfacar en la sangre","cannot_use_password":"No puede usar% en la contrase\xf1a. Estamos trabajando en la soluci\xf3n.","invalid_password_warning":"La contrase\xf1a debe tener al menos 8 caracteres y debe tener n\xfameros, letras may\xfasculas y min\xfasculas. Por favor c\xe1mbielo en el perfil ioBroker.pro\\n","new_certs_tip":"Si realiz\xf3 una restauraci\xf3n desde la copia de seguridad, o movi\xf3 su instancia de un dispositivo a otro o elimin\xf3 la instancia de IoT y la agreg\xf3 nuevamente, debe cargar los certificados de seguridad de conexi\xf3n con este bot\xf3n","new_credentials_tip":"Si restaur\xf3 su contrase\xf1a de ioBroker.pro, puede sincronizar su contrase\xf1a con Alexa/Google/Alisa con este bot\xf3n.","Create IoT credentials anew":"Crear nuevas credenciales de IoT","forum_tip":"Cualquier pregunta en cualquier idioma, por favor pregunte aqu\xed en el foro: enlace ","Save settings before pressing this button":"Guarde la configuraci\xf3n antes de presionar este bot\xf3n","Auto Mode":"Modo autom\xe1tico","Manual Mode":"Modo manual","manualModeHint":"Seleccione un TYPE y un TRAIT despu\xe9s de agregar un estado. Para agregar m\xfaltiples rasgos, agregue una identificaci\xf3n y un rasgo diferentes pero el mismo nombre inteligente, tipo y sala. Coma separada para los m\xfaltiples nombres inteligentes. Para asignar una habitaci\xf3n, utilice las Enums/Aufz\xe4hlungen de ioBroker. Con atributos, por ejemplo, puede establecer un rango para la temperatura de color Infos sobre Atributos que puede encontrar aqu\xed. El atributo vac\xedo es {}","not activated":"no esta activado","Google devices":"Dispositivos de Google","Show/Hide help":"Mostrar / Ocultar ayuda","Show all devices for print out":"Mostrar todos los dispositivos para imprimir","Search":"Buscar","List of devices to print out, e.g. to give all device names to your partner.":"Lista de dispositivos para imprimir, p. para dar todos los nombres de dispositivo a su pareja.","Name":"Nombre","Function":"Funci\xf3n","Room":"Habitaci\xf3n","Copy to clipboard":"Copiar al portapapeles","Toggle expert mode":"Alternar modo experto","ID":"ID","Smart names":"Nombres inteligentes","ioBType":"Tipo de IoB","Function/Trait":"Funci\xf3n / rasgo","Attributes":"Atributos","Auto":"Autom\xe1ticamente","Conversation to GH":"Convertir a GH","Conversation to ioB":"Convertir a ioB","Information: The skill linking process was changed!":"Informaci\xf3n: \xa1Se cambi\xf3 el proceso de vinculaci\xf3n de habilidades!","The linking process has been changed for a few months.":"El proceso de vinculaci\xf3n se ha modificado durante unos meses.","Now there is no temporary password that will be sent by email.":"Ahora no hay una contrase\xf1a temporal que se enviar\xe1 por correo electr\xf3nico.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\xa1La contrase\xf1a es igual a ioBroker.pro y con la contrase\xf1a que se ingres\xf3 aqu\xed en la configuraci\xf3n!","Not understood":"No se entiende","Roger that":"Entendido","Read blood sugar from":"Leer az\xfacar en sangre de","Get actual humidity":"Obtenga la humedad real","Get motion":"Obtener movimiento","Get contact":"Obtener estado de contacto"}')},339:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"(Ustaw na 0, je\u015bli zachowanie nie jest po\u017c\u0105dane)","(you can separate names with comma)":"Mo\u017cesz wprowadzi\u0107 kilka nazw podzielonych przecinkami","Active":"Aktywny","Add device":"Dodaj urz\u0105dzenie","Add service":"Dodaj us\u0142ug\u0119","Addresses":"Adresy","Alexa devices":"Urz\u0105dzenia Alexa","Alisa devices":"Urz\u0105dzenia Alisa","Allow admin access (only pro)":"Zezwalaj na dost\u0119p administratora (tylko pro)","Allow self-signed certificates":"Zezwalaj na certyfikaty z podpisem w\u0142asnym","Amazon Alexa":"Amazon Alexa","Are you sure?":"Jeste\u015b pewny?","Attributes has not correct JSON format.":"Atrybuty maj\u0105 niepoprawny format JSON","Authentication must be disabled. You can create second instance extra for cloud.":"Uwierzytelnianie musi by\u0107 wy\u0142\u0105czone. Mo\u017cesz utworzy\u0107 dodatkow\u0105 instancj\u0119 dodatkow\u0105 dla chmury.","Cancel":"Anuluj","Cannot add this object":"Nie mo\u017cna doda\u0107 tego obiektu, poniewa\u017c nie jest obs\u0142ugiwany.","Cannot read devices!":"Nie mo\u017cna odczyta\u0107 urz\u0105dze\u0144!","Certificates will be updated after initiated restart":"Certyfikaty b\u0119d\u0105 aktualizowane po ponownym uruchomieniu","Certificates will be updated after start":"Certyfikaty b\u0119d\u0105 aktualizowane po starcie","Click now Get new connection certificates to request new temporary password":"Kliknij teraz \\"Pobierz nowe certyfikaty po\u0142\u0105cze\u0144\\", aby poprosi\u0107 o nowe tymczasowe has\u0142o","Close":"Blisko","Cloud URL":"Chmura adresu URL","Cloud adapter settings":"Ustawienia adaptera chmury","Commands":"Polecenia","Concatenate words with":"Po\u0142\u0105cz s\u0142owa z","Connection timeout":"Limit czasu po\u0142\u0105czenia (ms)","Debug outputs":"Wyj\u015bcia debugowania","Decrement color temperature":"Zmniejsz temperatur\u0119 barwow\u0105","Decrement percentage":"Procent zmniejszenia","Decrement target temperature":"Zmniejsz temperatur\u0119 docelow\u0105","Default":"Domy\u015blna","Device %s was not added":"Urz\u0105dzenie %s nie zosta\u0142o dodane","Device will be deactivated.":"Urz\u0105dzenie zostanie dezaktywowane.","Device will be disabled.":"Urz\u0105dzenie zostanie wy\u0142\u0105czone.","Dimmer":"Opornik","Duplicate name":"Zduplikowana nazwa","Edit smart name":"Edytuj inteligentn\u0105 nazw\u0119","Error":"B\u0142\u0105d","Extended options":"Rozszerzone opcje","Filter":"Filtr","For help use this forum":"Aby uzyska\u0107 pomoc, odwied\u017a to forum post","Functions":"Funkcje","Get actual temperature":"Uzyskaj rzeczywist\u0105 temperatur\u0119","Get new connection certificates":"Uzyskaj nowe certyfikaty po\u0142\u0105cze\u0144","Get new service URL key":"Uzyskaj nowy klucz URL us\u0142ugi","Get target temperature":"Uzyskaj docelow\u0105 temperatur\u0119","Google Home":"Google Home","IFTTT key":"Klawisz IFTTT","Increment color temperature":"Przyrost temperatury barwowej","Increment percentage":"Przyrost procentowy","Increment target temperature":"Przyrost temperatury docelowej","Instance":"Instancja","Instance does not exists":"Instancja nie istnieje","Instance is not active.":"Instancja nie jest aktywna.","Instance must be enabled":"Instancja musi by\u0107 w\u0142\u0105czona","Instance must run to deliver the data":"Instancja musi zosta\u0107 uruchomiona w celu dostarczenia danych","Invalid object":"Nieprawid\u0142owy obiekt","Language":"J\u0119zyk","Load configuration from file":"Za\u0142aduj konfiguracj\u0119 z pliku","Message":"Wiadomo\u015b\u0107","OFF level for switches":"Poziom OFF dla prze\u0142\u0105cznik\xf3w","OFF level for switches in %":"Poziom wy\u0142\u0105czenia dla prze\u0142\u0105cznik\xf3w w%","Off":"poza","Ok":"Ok","On":"na","On/Off":"W\u0142\u0105cz/Wy\u0142\u0105cz","Options":"Opcje","Personal settings (only pro)":"Ustawienia osobiste (tylko pro)","Ping timeout:":"Limit czasu pingowania (ms)","Place function in names first":"Najpierw umie\u015b\u0107 funkcj\u0119 w imionach","Please add action and trait to complete the Google Home state.":"Dodaj dzia\u0142anie i cech\u0119, aby uko\u0144czy\u0107 stan Google Home.","Please add type and trait to complete the Google Home state.":"Dodaj typ i cech\u0119, aby uko\u0144czy\u0107 stan Google Home.","Please select object ID...":"Wybierz identyfikator obiektu ...","Please write your email only in lower case letters":"Napisz sw\xf3j e-mail tylko ma\u0142ymi literami","Read lock state":"Czytaj stan blokady","Replace in names":"Zast\u0105p imiona","Request email with password one more time":"Popro\u015b jeszcze raz o e-mail z has\u0142em","Restart on disconnect":"Uruchom ponownie po roz\u0142\u0105czeniu","Review":"Przejrze\u0107","Rooms":"Pokoje","Save":"Zapisa\u0107","Save and close":"Zapisz i zamknij","Save configuration to file":"Zapisz konfiguracj\u0119 do pliku","Save settings and the names will be changed":"Zapisz ustawienia i nazwy zostan\u0105 zmienione","Select":"Wybierz","Service names":"Nazwy us\u0142ug","Services and IFTTT":"Us\u0142ugi i IFTTT","Set color":"Ustaw kolor","Set color temperature":"Ustaw temperatur\u0119 barwow\u0105","Set lock state":"Ustaw stan blokady","Set percentage":"Ustaw procent","Set target temperature":"Ustaw temperatur\u0119 docelow\u0105","Smart Devices":"Inteligentne urz\u0105dzenia","Smart Enums":"Inteligentne wyliczenia","Smart Media":"Smart Media","Smart enums":"Inteligentne enumy","Smart name":"Inteligentna nazwa","Smart name for %s":"Inteligentna nazwa dla %s","To apply this setting, the restart of adapter must be done. Agree?":"Aby zastosowa\u0107 to ustawienie, adapter musi zosta\u0107 zrestartowany. Zgodzi\u0107 si\u0119?","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"W celu automatycznego wykrywania pod obiektami przypisz kana\u0142 (urz\u0105dzenie, je\u015bli \u017caden kana\u0142 nie jest dost\u0119pny) do pokoju i funkcji. Nie wystarczy przypisa\u0107 pok\xf3j do stanu lub urz\u0105dzenia. Pomieszczenia/funkcje mo\u017cna dodawa\u0107 w ramach wyliczenia (oznaczonego bia\u0142\u0105 strza\u0142k\u0105 w prawym g\xf3rnym rogu) i nale\u017cy je aktywowa\u0107 w adapterze IoT w obszarze Inteligentne wyliczanie. Aby automatycznie rozpozna\u0107 stany r\u0119czne, nale\u017cy je usun\u0105\u0107.","Turn off":"Wy\u0142\u0105czy\u0107","Turn on":"W\u0142\u0105czy\u0107","Type":"Rodzaj","Types":"Rodzaje","Use Nightscout instance":"U\u017cyj instancji Nightscout","Use following link for IFTTT":"U\u017cyj nast\u0119puj\u0105cego linku dla IFTTT","Use following link for custom service":"U\u017cyj poni\u017cszego linku do niestandardowej us\u0142ugi","Use text2command instance":"U\u017cyj instancji text2command","Value":"Warto\u015b\u0107","White list for services":"Bia\u0142a lista dla us\u0142ug","Write response to":"Napisz odpowied\u017a na","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex \u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"Mo\u017cesz wprowadzi\u0107 kilka nazw podzielonych przecinkiem","amazon link":"Je\u015bli u\u017cywasz umiej\u0119tno\u015bci Alexa, napisz recenzj\u0119 dla nas here . Przyk\u0142ady mo\u017cna znale\u017a\u0107 tutaj .","by ON":"przez ON","clear":"Oczy\u015bci\u0107","default":"domy\u015blna","disabled":"niepe\u0142nosprawny","help_link_tip1":"Przed napisaniem do wsparcia upewnij si\u0119, \u017ce przeczyta\u0142e\u015b i zrozumia\u0142e\u015b instrukcje strony: https://www.iobroker.net","help_link_tip2":"Je\u015bli nadal masz problem z po\u0142\u0105czeniem z Iot, mo\u017cesz poprosi\u0107 o wsparcie na Forum","help_link_tip3":"i dopiero potem powiniene\u015b napisa\u0107 e-mail na adres support@iobroker.com","help_tip":"Brak konta iobroker.pro? Kup go na https://iobroker.pro w celu zweryfikowania dost\u0119pu lub uzyskaj bezp\u0142atny, ale ograniczony dost\u0119p.","info_allowedServices":"podzielone przecinkiem. U\u017cyj *, aby zezwoli\u0107 na wszystkie us\u0142ugi.","info_iftttKey":"Mo\u017cesz znale\u017a\u0107 klucz tutaj w sekcji \\"Dokumentacja\\"","ioBroker.pro Login":"ioBroker.pro Login","ioBroker.pro Password":"ioBroker.pro Has\u0142o","last value":"ostatnia warto\u015b\u0107","modified":"Nazwa zosta\u0142a zmodyfikowana przez u\u017cytkownika","no type":"bez typu","tooltip_allowSelfSignedCertificate":"Je\u015bli korzystasz z w\u0142asnej chmury, mo\u017cesz zezwoli\u0107 na u\u017cywanie samopodpisanych certyfikat\xf3w dla chmury.","tooltip_apikey":"Ten klucz jest wymagany do komunikacji z chmur\u0105. Mo\u017cesz pobra\u0107 API-KEY na https://iobroker.net i wygl\u0105da jak pseudonim_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"Zwykle nie musisz tego zmienia\u0107. Wymagane tylko, je\u015bli masz zamiar korzysta\u0107 z w\u0142asnej chmury.","tooltip_concatWord":"Okre\u015bl, jak po\u0142\u0105czy\u0107 pok\xf3j i funkcj\u0119. Na przyk\u0142ad. z \\"in\\": \u015awiat\u0142o w salonie.","tooltip_deviceOffLevel":"Niekt\xf3re grupy sk\u0142adaj\u0105 si\u0119 z r\xf3\u017cnych urz\u0105dze\u0144: \u015bciemniaczy i prze\u0142\u0105cznik\xf3w. Dozwolone jest sterowanie nimi za pomoc\u0105 polece\u0144 ON i OFF oraz procentami","tooltip_functionFirst":"Normalnie nazwy wygl\u0105daj\u0105 jak room_function. Tutaj mo\u017cesz prze\u0142\u0105czy\u0107 go do function_room.","tooltip_instance":"Instancja internetowa, kt\xf3ra b\u0119dzie wy\u015bwietlana dla twoich po\u0142\u0105cze\u0144 z chmury.","tooltip_language":"Mo\u017cesz zdefiniowa\u0107 j\u0119zyki, aby szybko prze\u0142\u0105cza\u0107 si\u0119 pomi\u0119dzy US Alexa Skill i DE Alexa Skill.","tooltip_noCommon":"Je\u015bli jest w\u0142\u0105czona, ustawienia b\u0119d\u0105 przechowywane tylko dla tej instancji. Tak wi\u0119c w innym przypadku mo\u017cna ustawi\u0107 inne nazwy.","tooltip_responseOID":"Dla ka\u017cdego polecenia zostanie wygenerowana odpowied\u017a tekstowa. Mo\u017cesz tu zdefiniowa\u0107 identyfikator obiektu, do kt\xf3rego nale\u017cy zapisa\u0107 ten tekst. Na przyk\u0142ad. sayit.0.tts.text.","tooltip_restartOnDisconnect":"Rozwi\u0105zano problem braku po\u0142\u0105czenia z Alexa po utracie po\u0142\u0105czenia z chmur\u0105. Dzi\u0119ki tej opcji mo\u017cna ponownie uruchomi\u0107 adapter po ka\u017cdym roz\u0142\u0105czeniu i b\u0119dzie dzia\u0142a\u0107.","Short answer for blood sugar":"Kr\xf3tka odpowied\u017a na cukier we krwi","cannot_use_password":"Nie mo\u017cesz u\u017cy\u0107% w ha\u015ble. Pracujemy nad poprawk\u0105.","invalid_password_warning":"Has\u0142o musi mie\u0107 co najmniej 8 znak\xf3w i musi zawiera\u0107 cyfry, wielkie i ma\u0142e litery. Zmie\u0144 to w profilu ioBroker.pro\\n","new_certs_tip":"Je\u015bli wykona\u0142e\u015b przywracanie z kopii zapasowej, przenios\u0142e\u015b instancj\u0119 z jednego urz\u0105dzenia na drugie lub usun\u0105\u0142e\u015b instancj\u0119 IoT i doda\u0142e\u015b j\u0105 ponownie, musisz za\u0142adowa\u0107 certyfikaty bezpiecze\u0144stwa po\u0142\u0105czenia za pomoc\u0105 tego przycisku","new_credentials_tip":"Je\u015bli przywr\xf3ci\u0142e\u015b has\u0142o ioBroker.pro, mo\u017cesz zsynchronizowa\u0107 swoje has\u0142o z Alexa/Google/Alisa za pomoc\u0105 tego przycisku.","Create IoT credentials anew":"Utw\xf3rz ponownie po\u015bwiadczenia IoT","forum_tip":"Wszelkie pytania w dowolnym j\u0119zyku prosimy zadawa\u0107 tutaj na forum: link ","Save settings before pressing this button":"Zapisz ustawienia przed naci\u015bni\u0119ciem tego przycisku","Auto Mode":"Tryb automatyczny","Manual Mode":"Tryb r\u0119czny","manualModeHint":"Wybierz TYPE i TRAIT po dodaniu stanu. Aby doda\u0107 wiele cech, dodaj inny identyfikator i cech\u0119, ale t\u0119 sam\u0105 inteligentn\u0105 nazw\u0119, typ i pok\xf3j. Oddzielony przecinkami dla wielu inteligentnych nazw. Aby przypisa\u0107 pok\xf3j, u\u017cyj ioBroker Enums/Aufz\xe4hlungen. Za pomoc\u0105 atrybut\xf3w mo\u017cesz na przyk\u0142ad ustawi\u0107 zakres temperatury kolor\xf3w Informacje o Atrybuty mo\u017cna znale\u017a\u0107 tutaj. Pusty atrybut to {}","not activated":"nie aktywowany","Google devices":"Urz\u0105dzenia Google","Show/Hide help":"Poka\u017c / ukryj pomoc","Show all devices for print out":"Poka\u017c wszystkie urz\u0105dzenia do wydrukowania","Search":"Szukaj","List of devices to print out, e.g. to give all device names to your partner.":"Lista urz\u0105dze\u0144 do wydrukowania, np. aby poda\u0107 wszystkie nazwy urz\u0105dze\u0144 swojemu partnerowi.","Name":"Imi\u0119","Function":"Funkcjonowa\u0107","Room":"Pok\xf3j","Copy to clipboard":"Skopiuj do schowka","Toggle expert mode":"Prze\u0142\u0105cz tryb ekspercki","ID":"ID","Smart names":"Inteligentne nazwy","ioBType":"Typ IoB","Function/Trait":"Funkcja / cecha","Attributes":"Atrybuty","Auto":"Automatycznie","Conversation to GH":"Konwertuj na GH","Conversation to ioB":"Konwertuj na ioB","Information: The skill linking process was changed!":"Informacja: Zmieniono proces \u0142\u0105czenia umiej\u0119tno\u015bci!","The linking process has been changed for a few months.":"Od kilku miesi\u0119cy zmieni\u0142 si\u0119 proces \u0142\u0105czenia.","Now there is no temporary password that will be sent by email.":"Teraz nie ma tymczasowego has\u0142a, kt\xf3re zostanie wys\u0142ane e-mailem.","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"Has\u0142o jest r\xf3wne z ioBroker.pro i has\u0142em, kt\xf3re zosta\u0142o wprowadzone tutaj w ustawieniach!","Not understood":"Nie rozumiem","Roger that":"Przyj\u0105\u0142em","Read blood sugar from":"Odczytaj poziom cukru we krwi","Get actual humidity":"Uzyskaj aktualn\u0105 wilgotno\u015b\u0107","Get motion":"Wpraw si\u0119 w ruch","Get contact":"Uzyskaj status kontaktu"}')},340:function(e){e.exports=JSON.parse('{"(Set to 0 if behavior not desired)":"\uff08\u5982\u679c\u4e0d\u9700\u8981\u884c\u4e3a\uff0c\u5219\u8bbe\u4e3a0\uff09","(you can separate names with comma)":"\u60a8\u53ef\u4ee5\u8f93\u5165\u591a\u4e2a\u540d\u79f0\u9664\u4ee5\u9017\u53f7","Active":"\u6d3b\u6027","Add device":"\u6dfb\u52a0\u8bbe\u5907","Add service":"\u6dfb\u52a0\u670d\u52a1","Addresses":"\u5730\u5740","Alexa devices":"Alexa\u8bbe\u5907","Alisa devices":"Alisa\u8bbe\u5907","Allow admin access (only pro)":"\u5141\u8bb8\u7ba1\u7406\u5458\u8bbf\u95ee\uff08\u4ec5\u9650\u4e13\u4e1a\u7248\uff09","Allow self-signed certificates":"\u5141\u8bb8\u81ea\u7b7e\u540d\u8bc1\u4e66","Amazon Alexa":"\u4e9a\u9a6c\u900aAlexa","Are you sure?":"\u4f60\u786e\u5b9a\u5417\uff1f","Attributes has not correct JSON format.":"\u5c5e\u6027\u7684\u683c\u5f0f\u4e0d\u6b63\u786e","Authentication must be disabled. You can create second instance extra for cloud.":"\u5fc5\u987b\u7981\u7528\u8eab\u4efd\u9a8c\u8bc1\u3002\u60a8\u53ef\u4ee5\u4e3a\u4e91\u521b\u5efa\u989d\u5916\u7684\u7b2c\u4e8c\u4e2a\u5b9e\u4f8b\u3002","Cancel":"\u53d6\u6d88","Cannot add this object":"\u65e0\u6cd5\u6dfb\u52a0\u6b64\u5bf9\u8c61\uff0c\u56e0\u4e3a\u4e0d\u652f\u6301\u3002","Cannot read devices!":"\u65e0\u6cd5\u8bfb\u53d6\u8bbe\u5907\uff01","Certificates will be updated after initiated restart":"\u542f\u52a8\u91cd\u542f\u540e\uff0c\u8bc1\u4e66\u5c06\u66f4\u65b0","Certificates will be updated after start":"\u8bc1\u4e66\u5c06\u5728\u5f00\u59cb\u540e\u66f4\u65b0","Click now Get new connection certificates to request new temporary password":"\u5355\u51fb\u201c\u83b7\u53d6\u65b0\u8fde\u63a5\u8bc1\u4e66\u201d\u4ee5\u8bf7\u6c42\u65b0\u7684\u4e34\u65f6\u5bc6\u7801","Close":"\u5173","Cloud URL":"\u4e91URL","Cloud adapter settings":"\u4e91\u9002\u914d\u5668\u8bbe\u7f6e","Commands":"\u547d\u4ee4","Concatenate words with":"\u8fde\u63a5\u5355\u8bcd","Connection timeout":"\u8fde\u63a5\u8d85\u65f6\uff08ms\uff09","Debug outputs":"\u8c03\u8bd5\u8f93\u51fa","Decrement color temperature":"\u964d\u4f4e\u8272\u6e29","Decrement percentage":"\u51cf\u5c11\u767e\u5206\u6bd4","Decrement target temperature":"\u964d\u4f4e\u76ee\u6807\u6e29\u5ea6","Default":"\u9ed8\u8ba4","Device %s was not added":"\u672a\u6dfb\u52a0\u8bbe\u5907%s","Device will be deactivated.":"\u8bbe\u5907\u5c06\u88ab\u505c\u7528\u3002","Device will be disabled.":"\u8bbe\u5907\u5c06\u88ab\u7981\u7528\u3002","Dimmer":"\u8c03\u5149\u5668","Duplicate name":"\u540d\u79f0\u91cd\u590d","Edit smart name":"\u7f16\u8f91\u667a\u80fd\u540d\u79f0","Error":"\u9519\u8bef","Extended options":"\u6269\u5c55\u9009\u9879","Filter":"\u8fc7\u6ee4","For help use this forum":"\u5982\u9700\u5e2e\u52a9\uff0c\u8bf7\u8bbf\u95ee\u6b64\u8bba\u575b\u53d1\u5e03","Functions":"\u529f\u80fd","Get actual temperature":"\u83b7\u5f97\u5b9e\u9645\u6e29\u5ea6","Get new connection certificates":"\u83b7\u53d6\u65b0\u7684\u8fde\u63a5\u8bc1\u4e66","Get new service URL key":"\u83b7\u53d6\u65b0\u670d\u52a1URL\u5bc6\u94a5","Get target temperature":"\u83b7\u5f97\u76ee\u6807\u6e29\u5ea6","Google Home":"Google Home","IFTTT key":"IFTTT\u5173\u952e","Increment color temperature":"\u589e\u52a0\u8272\u6e29","Increment percentage":"\u589e\u91cf\u767e\u5206\u6bd4","Increment target temperature":"\u589e\u52a0\u76ee\u6807\u6e29\u5ea6","Instance":"\u4f8b","Instance does not exists":"\u5b9e\u4f8b\u4e0d\u5b58\u5728","Instance is not active.":"\u5b9e\u4f8b\u672a\u6fc0\u6d3b\u3002","Instance must be enabled":"\u5fc5\u987b\u542f\u7528\u5b9e\u4f8b","Instance must run to deliver the data":"\u5fc5\u987b\u8fd0\u884c\u5b9e\u4f8b\u624d\u80fd\u4f20\u9012\u6570\u636e","Invalid object":"\u65e0\u6548\u7684\u5bf9\u8c61","Language":"\u8bed\u8a00","Load configuration from file":"\u4ece\u6587\u4ef6\u52a0\u8f7d\u914d\u7f6e","Message":"\u4fe1\u606f","OFF level for switches":"\u5f00\u5173\u7684OFF\u7535\u5e73","OFF level for switches in %":"\u5f00\u5173\u5173\u95ed\u7535\u5e73\uff05","Off":"\u79bb","Ok":"\u597d","On":"\u4e0a","On/Off":"\u5f00\u5173","Options":"\u9009\u9879","Personal settings (only pro)":"\u4e2a\u4eba\u8bbe\u7f6e\uff08\u4ec5\u9650\u4e13\u4e1a\uff09","Ping timeout:":"Ping\u8d85\u65f6\uff08ms\uff09","Place function in names first":"\u9996\u5148\u5c06\u51fd\u6570\u653e\u5728\u540d\u79f0\u4e2d","Please add action and trait to complete the Google Home state.":"\u8bf7\u6dfb\u52a0\u64cd\u4f5c\u548c\u7279\u5f81\u4ee5\u5b8c\u6210Google Home\u72b6\u6001\u3002","Please add type and trait to complete the Google Home state.":"\u8bf7\u6dfb\u52a0\u7c7b\u578b\u548c\u7279\u5f81\u4ee5\u5b8c\u6210Google Home\u72b6\u6001\u3002","Please select object ID...":"\u8bf7\u9009\u62e9\u5bf9\u8c61ID ...","Please write your email only in lower case letters":"\u8bf7\u4ee5\u5c0f\u5199\u5b57\u6bcd\u4e66\u5199\u60a8\u7684\u7535\u5b50\u90ae\u4ef6","Read lock state":"\u8bfb\u9501\u5b9a\u72b6\u6001","Replace in names":"\u66ff\u6362\u540d\u79f0","Request email with password one more time":"\u518d\u6b21\u8bf7\u6c42\u5e26\u5bc6\u7801\u7684\u7535\u5b50\u90ae\u4ef6","Restart on disconnect":"\u65ad\u5f00\u8fde\u63a5\u91cd\u542f","Review":"\u8bc4\u8bba","Rooms":"\u5ba2\u623f","Save":"\u4fdd\u5b58","Save and close":"\u4fdd\u5b58\u5e76\u5173\u95ed","Save configuration to file":"\u5c06\u914d\u7f6e\u4fdd\u5b58\u5230\u6587\u4ef6","Save settings and the names will be changed":"\u4fdd\u5b58\u8bbe\u7f6e\uff0c\u540d\u79f0\u5c06\u88ab\u66f4\u6539","Select":"\u9009\u62e9","Service names":"\u670d\u52a1\u540d\u79f0","Services and IFTTT":"\u670d\u52a1\u548cIFTTT","Set color":"\u8bbe\u7f6e\u989c\u8272","Set color temperature":"\u8bbe\u7f6e\u8272\u6e29","Set lock state":"\u8bbe\u7f6e\u9501\u5b9a\u72b6\u6001","Set percentage":"\u8bbe\u5b9a\u767e\u5206\u6bd4","Set target temperature":"\u8bbe\u5b9a\u76ee\u6807\u6e29\u5ea6","Smart Devices":"\u667a\u80fd\u8bbe\u5907","Smart Enums":"\u667a\u80fd\u679a\u4e3e","Smart Media":"\u667a\u80fd\u5a92\u4f53","Smart enums":"\u667a\u80fd\u679a\u4e3e","Smart name":"\u806a\u660e\u7684\u540d\u5b57","Smart name for %s":"%s\u7684\u667a\u80fd\u540d\u79f0","To apply this setting, the restart of adapter must be done. Agree?":"\u8981\u5e94\u7528\u6b64\u8bbe\u7f6e\uff0c\u5fc5\u987b\u91cd\u65b0\u542f\u52a8\u9002\u914d\u5668\u3002\u540c\u610f\uff1f","To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung":"\u5bf9\u4e8e\u81ea\u52a8\u68c0\u6d4b\uff0c\u5728\u5bf9\u8c61\u4e0b\u65b9\u4e3a\u623f\u95f4\u548c\u529f\u80fd\u5206\u914d\u4e00\u4e2a\u901a\u9053\uff08\u5982\u679c\u6ca1\u6709\u53ef\u7528\u7684\u901a\u9053\uff0c\u5219\u4e3a\u8bbe\u5907\uff09\u3002\u4ec5\u5c06\u623f\u95f4\u5206\u914d\u7ed9\u72b6\u6001\u6216\u8bbe\u5907\u662f\u4e0d\u591f\u7684\u3002\u53ef\u4ee5\u5728\u679a\u4e3e\u4e0b\u6dfb\u52a0\u623f\u95f4/\u529f\u80fd\uff08\u5982\u53f3\u4e0a\u89d2\u7684\u767d\u8272\u7bad\u5934\u6240\u793a\uff09\uff0c\u5e76\u4e14\u5fc5\u987b\u5728IoT\u9002\u914d\u5668\u4e2d\u7684\u201c\u667a\u80fd\u679a\u4e3e\u201d\u4e0b\u5c06\u5176\u6fc0\u6d3b\u3002\u4e3a\u4e86\u81ea\u52a8\u8bc6\u522b\u624b\u52a8\u72b6\u6001\uff0c\u5fc5\u987b\u5220\u9664\u72b6\u6001\u3002","Turn off":"\u5173\u6389","Turn on":"\u6253\u5f00","Type":"\u7c7b\u578b","Types":"\u7c7b\u578b","Use Nightscout instance":"\u4f7f\u7528Nightscout\u5b9e\u4f8b","Use following link for IFTTT":"\u4f7f\u7528\u4ee5\u4e0b\u94fe\u63a5\u8fdb\u884cIFTTT","Use following link for custom service":"\u4f7f\u7528\u4ee5\u4e0b\u94fe\u63a5\u8fdb\u884c\u81ea\u5b9a\u4e49\u670d\u52a1","Use text2command instance":"\u4f7f\u7528text2command\u5b9e\u4f8b","Value":"\u503c","White list for services":"\u670d\u52a1\u767d\u540d\u5355","Write response to":"\u5199\u56de\u590d","Yandex \u0410\u043b\u0438\u0441\u0430":"Yandex\u0410\u043b\u0438\u0441\u0430","You can enter several names divided by comma":"\u60a8\u53ef\u4ee5\u8f93\u5165\u591a\u4e2a\u540d\u79f0\u9664\u4ee5\u9017\u53f7","amazon link":"\u5982\u679c\u60a8\u4f7f\u7528Alexa\u6280\u80fd\uff0c\u8bf7\u4e3a\u6211\u4eec\u5199\u4e00\u7bc7\u8bc4\u8bba\u6b64\u5904\u3002
\u793a\u4f8b\u53ef\u4ee5\u627e\u5230\u6b64\u5904\u3002","by ON":"\u901a\u8fc7ON","clear":"\u660e\u786e","default":"\u9ed8\u8ba4","disabled":"\u6b8b","help_link_tip1":"\u5728\u5199\u652f\u6301\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u5df2\u9605\u8bfb\u5e76\u7406\u89e3\u7f51\u9875\u7684\u8bf4\u660e\uff1a https : //www.iobroker.net","help_link_tip2":"\u5982\u679c\u4e0eIot\u7684\u8fde\u63a5\u4ecd\u7136\u5b58\u5728\u95ee\u9898\uff0c\u5219\u53ef\u4ee5\u5728\u8bba\u575b\u4e0a\u8bf7\u6c42\u652f\u6301","help_link_tip3":"\u5e76\u4e14\u53ea\u6709\u5728\u90a3\u4e4b\u540e\uff0c\u60a8\u624d\u5e94\u8be5\u5199\u4e00\u5c01\u7535\u5b50\u90ae\u4ef6\u5230support@iobroker.com","help_tip":"\u6ca1\u6709iobroker.pro\u8d26\u53f7\uff1f\u5728 https://iobroker.pro \u4e0a\u8d2d\u4e70\u4ee5\u83b7\u5f97\u6709\u6548\u8bbf\u95ee\u6743\u9650\uff0c\u6216\u514d\u8d39\u83b7\u53d6\uff0c\u4f46\u8bbf\u95ee\u53d7\u9650\u3002","info_allowedServices":"\u9664\u4ee5\u9017\u53f7\u3002\u4f7f\u7528*\u5141\u8bb8\u6240\u6709\u670d\u52a1\u3002","info_iftttKey":"\u60a8\u53ef\u4ee5\u5728\u201c\u6587\u6863\u201d\u4e0b\u627e\u5230\u60a8\u7684\u5bc6\u94a5 ","ioBroker.pro Login":"ioBroker.pro\u767b\u5f55","ioBroker.pro Password":"ioBroker.pro\u5bc6\u7801","last value":"\u6700\u540e\u7684\u4ef7\u503c","modified":"\u540d\u79f0\u5df2\u7531\u7528\u6237\u4fee\u6539","no type":"\u6ca1\u6709\u7c7b\u578b","tooltip_allowSelfSignedCertificate":"\u5982\u679c\u60a8\u4f7f\u7528\u81ea\u5df1\u7684\u4e91\uff0c\u5219\u53ef\u4ee5\u5141\u8bb8\u4e3a\u4e91\u4f7f\u7528\u81ea\u7b7e\u540d\u8bc1\u4e66\u3002","tooltip_apikey":"\u9700\u8981\u6b64\u5bc6\u94a5\u624d\u80fd\u4e0e\u4e91\u901a\u4fe1\u3002\u60a8\u53ef\u4ee5\u5728https://iobroker.net\u4e0a\u83b7\u53d6API-KEY\uff0c\u5b83\u770b\u8d77\u6765\u50cfnickname_f1f439a0-001a-11e7-bc64-92361f002671","tooltip_cloudUrl":"\u901a\u5e38\u60a8\u4e0d\u9700\u8981\u66f4\u6539\u5b83\u3002\u4ec5\u5728\u60a8\u8ba1\u5212\u4f7f\u7528\u81ea\u5df1\u7684\u4e91\u65f6\u624d\u9700\u8981\u3002","tooltip_concatWord":"\u5b9a\u4e49\u5982\u4f55\u8fde\u63a5Room\u548cFunction\u3002\u4f8b\u5982\u3002 \'in\'\uff1a\u5ba2\u5385\u91cc\u7684\u706f\u5149\u3002","tooltip_deviceOffLevel":"\u4e00\u4e9b\u7ec4\u7531\u6df7\u5408\u8bbe\u5907\u7ec4\u6210\uff1a\u8c03\u5149\u5668\u548c\u5f00\u5173\u3002\u5141\u8bb8\u4f7f\u7528ON\u548cOFF\u547d\u4ee4\u4ee5\u53ca\u767e\u5206\u6bd4\u6765\u63a7\u5236\u5b83\u4eec","tooltip_functionFirst":"\u901a\u5e38\u540d\u79f0\u770b\u8d77\u6765\u50cfroom_function\u3002\u5728\u8fd9\u91cc\uff0c\u60a8\u53ef\u4ee5\u5c06\u5176\u5207\u6362\u5230function_room\u3002","tooltip_instance":"Web\u5b9e\u4f8b\uff0c\u5c06\u663e\u793a\u60a8\u7684\u4e91\u8fde\u63a5\u3002","tooltip_language":"\u60a8\u53ef\u4ee5\u5b9a\u4e49\u8bed\u8a00\u4ee5\u5728\u7f8e\u56fdAlexa Skill\u548cDE Alexa Skill\u4e4b\u95f4\u5feb\u901f\u5207\u6362\u3002","tooltip_noCommon":"\u5982\u679c\u542f\u7528\uff0c\u5219\u4ec5\u4e3a\u6b64\u5b9e\u4f8b\u5b58\u50a8\u8bbe\u7f6e\u3002\u6240\u4ee5\u5728\u53e6\u4e00\u4e2a\u5b9e\u4f8b\u4e2d\uff0c\u53ef\u4ee5\u8bbe\u7f6e\u5176\u4ed6\u540d\u79f0\u3002","tooltip_responseOID":"\u5bf9\u4e8e\u6bcf\u4e2a\u547d\u4ee4\uff0c\u5c06\u751f\u6210\u6587\u672c\u54cd\u5e94\u3002\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u5b9a\u4e49\u5fc5\u987b\u5199\u5165\u6b64\u6587\u672c\u7684\u5bf9\u8c61ID\u3002\u4f8b\u5982\u3002 sayit.0.tts.text\u3002","tooltip_restartOnDisconnect":"\u5728\u4e0e\u4e91\u8fde\u63a5\u4e22\u5931\u540e\u7f3a\u5c11\u4e0eAlexa\u7684\u8fde\u63a5\u7684\u89e3\u51b3\u65b9\u6cd5\u3002\u4f7f\u7528\u6b64\u9009\u9879\uff0c\u60a8\u53ef\u4ee5\u5728\u6bcf\u6b21\u65ad\u5f00\u8fde\u63a5\u540e\u91cd\u65b0\u542f\u52a8\u9002\u914d\u5668\uff0c\u5b83\u5c06\u8d77\u4f5c\u7528\u3002","Short answer for blood sugar":"\u8840\u7cd6\u7684\u7b80\u77ed\u7b54\u6848","cannot_use_password":"\u60a8\u4e0d\u80fd\u5728\u5bc6\u7801\u4e2d\u4f7f\u7528\uff05\u3002\u6211\u4eec\u6b63\u5728\u52aa\u529b\u89e3\u51b3\u3002","invalid_password_warning":"\u5bc6\u7801\u957f\u5ea6\u5fc5\u987b\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\uff0c\u5e76\u4e14\u5fc5\u987b\u5305\u542b\u6570\u5b57\uff0c\u5927\u5c0f\u5199\u5b57\u6bcd\u3002\u8bf7\u5728ioBroker.pro\u914d\u7f6e\u6587\u4ef6\u4e2d\u8fdb\u884c\u66f4\u6539\\n","new_certs_tip":"\u5982\u679c\u60a8\u4ece\u5907\u4efd\u8fd8\u539f\uff0c\u6216\u5c06\u5b9e\u4f8b\u4ece\u4e00\u53f0\u8bbe\u5907\u79fb\u81f3\u53e6\u4e00\u53f0\u8bbe\u5907\uff0c\u6216\u5220\u9664\u4e86IoT\u5b9e\u4f8b\u5e76\u518d\u6b21\u6dfb\u52a0\uff0c\u5219\u5fc5\u987b\u4f7f\u7528\u6b64\u6309\u94ae\u52a0\u8f7d\u8fde\u63a5\u5b89\u5168\u8bc1\u4e66","new_credentials_tip":"\u5982\u679c\u60a8\u6062\u590d\u4e86ioBroker.pro\u5bc6\u7801\uff0c\u5219\u53ef\u4ee5\u901a\u8fc7\u6b64\u6309\u94ae\u5c06\u5bc6\u7801\u4e0eAlexa/Google/Alisa\u540c\u6b65\u3002","Create IoT credentials anew":"\u91cd\u65b0\u521b\u5efaIoT\u51ed\u636e","forum_tip":"\u4efb\u4f55\u8bed\u8a00\u7684\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u5728\u8bba\u575b\u4e0a\u63d0\u95ee\uff1a\u94fe\u63a5","Save settings before pressing this button":"\u6309\u6b64\u6309\u94ae\u4e4b\u524d\u4fdd\u5b58\u8bbe\u7f6e","Auto Mode":"\u81ea\u52a8\u6a21\u5f0f","Manual Mode":"\u624b\u52a8\u6a21\u5f0f","manualModeHint":"\u8bf7\u9009\u62e9TYPE\u548cTRAIT\u3002\u8981\u6dfb\u52a0\u591a\u4e2a\u7279\u5f81\uff0c\u8bf7\u6dfb\u52a0\u4e0d\u540c\u7684id\u548c\u7279\u5f81\uff0c\u4f46\u8981\u4f7f\u7528\u76f8\u540c\u7684\u667a\u80fd\u540d\u79f0\uff0c\u7c7b\u578b\u548c\u623f\u95f4\u3002\u9017\u53f7\u5206\u9694\u4e3a\u591a\u4e2a\u667a\u80fd\u540d\u79f0\u3002\u8981\u5206\u914d\u623f\u95f4\uff0c\u8bf7\u4f7f\u7528ioBroker Enums/Aufz\xe4hlungen\u3002\u4f8b\u5982\uff0c\u901a\u8fc7\u5c5e\u6027\uff0c\u60a8\u53ef\u4ee5\u8bbe\u7f6e\u8272\u6e29\u7684\u8303\u56f4\u6709\u5173\u7684\u4fe1\u606f\u60a8\u53ef\u4ee5\u5728\u6b64\u5904\u627e\u5230\u5c5e\u6027\u3002\u7a7a\u5c5e\u6027\u4e3a{}","not activated":"\u672a\u6fc0\u6d3b","Google devices":"Google\u8bbe\u5907","Show/Hide help":"\u663e\u793a/\u9690\u85cf\u5e2e\u52a9","Show all devices for print out":"\u663e\u793a\u6240\u6709\u8981\u6253\u5370\u7684\u8bbe\u5907","Search":"\u641c\u7d22","List of devices to print out, e.g. to give all device names to your partner.":"\u8981\u6253\u5370\u7684\u8bbe\u5907\u5217\u8868\uff0c\u4f8b\u5982\u5c06\u6240\u6709\u8bbe\u5907\u540d\u79f0\u63d0\u4f9b\u7ed9\u60a8\u7684\u5408\u4f5c\u4f19\u4f34\u3002","Name":"\u540d\u79f0","Function":"\u529f\u80fd","Room":"\u623f\u95f4","Copy to clipboard":"\u590d\u5236\u5230\u526a\u8d34\u677f","Toggle expert mode":"\u5207\u6362\u4e13\u5bb6\u6a21\u5f0f","ID":"ID","Smart names":"\u806a\u660e\u7684\u540d\u5b57","ioBType":"IoB\u7c7b\u578b","Function/Trait":"\u529f\u80fd/\u7279\u8d28","Attributes":"\u5c5e\u6027","Auto":"\u81ea\u52a8\u5730","Conversation to GH":"\u8f6c\u6362\u4e3aGH","Conversation to ioB":"\u8f6c\u6362\u4e3aioB","Information: The skill linking process was changed!":"\u4fe1\u606f\uff1a\u6280\u80fd\u94fe\u63a5\u8fc7\u7a0b\u5df2\u66f4\u6539\uff01","The linking process has been changed for a few months.":"\u94fe\u63a5\u8fc7\u7a0b\u5df2\u66f4\u6539\u4e86\u51e0\u4e2a\u6708\u3002","Now there is no temporary password that will be sent by email.":"\u73b0\u5728\u6ca1\u6709\u5c06\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u53d1\u9001\u7684\u4e34\u65f6\u5bc6\u7801\u3002","The password is equal with ioBroker.pro and with password that was entered here in the settings!":"\u5bc6\u7801\u4e0eioBroker.pro\u4ee5\u53ca\u5728\u8bbe\u7f6e\u4e2d\u8f93\u5165\u7684\u5bc6\u7801\u76f8\u540c\uff01","Not understood":"\u4e0d\u660e\u767d","Roger that":"\u6536\u5230","Read blood sugar from":"\u4ece\u8bfb\u53d6\u8840\u7cd6","Get actual humidity":"\u83b7\u53d6\u5b9e\u9645\u6e7f\u5ea6","Get motion":"\u52a8\u8d77\u6765","Get contact":"\u83b7\u53d6\u8054\u7cfb\u72b6\u6001"}')},341:function(e,t,a){"use strict";a.r(t);var n=a(1),o=a.n(n),i=a(24),s=a.n(i),r=a(56),l=a(408),c=a(390),d=(a(242),a(54)),u=a(31),p=a(32),m=a(34),h=a(33),g=a(8),f=a(406),b=a(409),v=a(407),k=a(218),w=a.n(k),j=a(171),y=a.n(j),S=a(214),O=a(192),x=a(193),T=a(194),C=a(195),z=a(191),I=a(5),A=a.n(I),N=a(4),_=a(216),D=a(202),L=a(212),F=a(395),E=a(396),R=a(399),B=a(398),P=a(397),G=a(215),U=a(169),H=a(14),M=a.n(H),W=a(11),q=a(220),V=a.n(q),K=a(2),J=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).onAliveChanged=function(e,t){e==="system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")&&n.setState({isInstanceAlive:t&&t.val})},n.state={inAction:!1,toast:"",isInstanceAlive:!1,errorWithPercent:!1},n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(e){return n.setState({isInstanceAlive:e&&e.val})})),n}return Object(p.a)(a,[{key:"componentDidMount",value:function(){this.props.socket.subscribeState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive"),this.onAliveChanged)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance,".alive"),this.onAliveChanged)}},{key:"checkPassword",value:function(e){return(e.length<8||!e.match(/[a-z]/)||!e.match(/[A-Z]/)||!e.match(/\d/))&&A.a.t("invalid_password_warning")}},{key:"renderInput",value:function(e,t,a){var n=this,o="pass"===t&&this.checkPassword(this.props.native[t]);return Object(K.jsx)(_.a,{label:A.a.t(e),error:!!o,className:this.props.classes.input,value:this.props.native[t],type:a||"text",helperText:o||"",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"renderCard",value:function(){return Object(K.jsxs)(F.a,{className:this.props.classes.card,children:[Object(K.jsxs)(E.a,{children:[Object(K.jsx)(P.a,{className:this.props.classes.media,image:"alexalogo.png",title:"Alexa logo"}),Object(K.jsx)(B.a,{children:M.a.renderTextWithA(A.a.t("amazon link"))})]}),Object(K.jsx)(R.a,{style:{textAlign:"center"},children:Object(K.jsx)(z.a,{variant:"outlined",size:"small",color:"primary",style:{textAlign:"center"},onClick:function(){window.open("http://alexa.amazon.de/spa/index.html#skills/dp/B07L66BFF9/reviews","_blank").focus()},children:A.a.t("Review")})})]})}},{key:"resetCerts",value:function(e){var t=this;this.setState({inAction:!0}),this.props.socket.setState("iot."+this.props.instance+".certs.private",{val:"",ack:!0}).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.id",{val:"",ack:!0})})).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.public",{val:"",ack:!0})})).then((function(){return t.props.socket.setState("iot."+t.props.instance+".certs.certificate",{val:"",ack:!0})})).then((function(){return e?t.props.socket.setState("iot."+t.props.instance+".certs.forceUserCreate",{val:!0,ack:!0}):Promise.resolve()})).then((function(){return t.props.socket.getObject("system.adapter.iot."+t.props.instance)})).then((function(e){return e&&e.common&&e.common.enabled?t.props.socket.setObject("system.adapter.iot."+t.props.instance,e):Promise.resolve()})).then((function(){return t.setState({toast:A.a.t("Certificates will be updated after start")})})).catch((function(e){return t.props.onError(e)})).then((function(){return t.setState({inAction:!1})}))}},{key:"renderToast",value:function(){var e=this;return this.state.toast?Object(K.jsx)(G.a,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:function(){return e.setState({toast:""})},ContentProps:{"aria-describedby":"message-id"},message:Object(K.jsx)("span",{id:"message-id",children:this.state.toast}),action:[Object(K.jsx)(U.a,{"aria-label":"Close",color:"inherit",className:this.props.classes.close,onClick:function(){return e.setState({toast:""})},children:Object(K.jsx)(W.c,{})},"close")]}):null}},{key:"renderCheckbox",value:function(e,t,a){var n=this;return Object(K.jsx)(D.a,{style:Object.assign({paddingTop:5},a),className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{checked:this.props.native[t],onChange:function(){return n.props.onChange(t,!n.props.native[t])},color:"primary"}),label:A.a.t(e)},t)}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsx)(V.a,{instance:this.props.instance,common:this.props.common,native:this.props.native,onError:function(t){return e.setState({errorText:t})},onLoad:this.props.onLoad}),Object(K.jsxs)("div",{className:Object(N.a)(this.props.classes.column,this.props.classes.columnSettings),children:[this.renderInput("ioBroker.pro Login","login"),Object(K.jsx)("br",{}),this.renderInput("ioBroker.pro Password","pass","password"),Object(K.jsx)("br",{}),this.renderCheckbox("Amazon Alexa","amazonAlexa"),Object(K.jsx)(D.a,{className:this.props.classes.controlElement,style:{marginTop:5},control:Object(K.jsx)(L.a,{checked:this.props.native.googleHome,onChange:function(){var t=!e.props.native.googleHome;e.props.onChange("googleHome",t,(function(){return t&&e.props.onChange("amazonAlexa",!0)}))},color:"primary"}),label:A.a.t("Google Home")},"googleHome"),this.renderCheckbox("Yandex \u0410\u043b\u0438\u0441\u0430","yandexAlisa"),Object(K.jsx)("br",{}),Object(K.jsx)("p",{children:A.a.t("new_certs_tip")}),this.props.changed?Object(K.jsx)("div",{className:this.props.classes.hintUnsaved,children:A.a.t("Save settings before pressing this button")}):null,Object(K.jsxs)(z.a,{variant:"outlined",className:this.props.classes.button,disabled:this.props.changed||this.state.inAction||!this.state.isInstanceAlive,title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.resetCerts()},children:[Object(K.jsx)(W.j,{style:{marginRight:8}}),A.a.t("Get new connection certificates")]}),Object(K.jsx)("p",{children:A.a.t("new_credentials_tip")}),this.props.changed?Object(K.jsx)("div",{className:this.props.classes.hintUnsaved,children:A.a.t("Save settings before pressing this button")}):null,Object(K.jsxs)(z.a,{variant:"outlined",className:this.props.classes.button,disabled:this.props.changed||this.state.inAction||!this.state.isInstanceAlive,title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.resetCerts(!0)},children:[Object(K.jsx)(W.j,{style:{marginRight:8}}),A.a.t("Create IoT credentials anew")]}),Object(K.jsx)("p",{children:M.a.renderTextWithA(A.a.t("forum_tip"))}),Object(K.jsx)("p",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("help_tip"))}),Object(K.jsx)("p",{style:{fontWeight:"bold",paddingTop:20},children:M.a.renderTextWithA(A.a.t("help_link_tip1"))}),Object(K.jsx)("p",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("help_link_tip2"))}),Object(K.jsx)("p",{style:{fontWeight:"bold",color:"red"},children:M.a.renderTextWithA(A.a.t("help_link_tip3"))})]}),Object(K.jsx)("div",{className:Object(N.a)(this.props.classes.column,this.props.classes.columnLogo),children:this.renderCard()}),this.renderToast()]})}}]),a}(n.Component),Y=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{minWidth:300},button:{marginRight:20,marginBottom:40},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},cannotUse:{color:"red",fontWeight:"bold"},hintUnsaved:{fontSize:12,color:"red",fontStyle:"italic"}}}))(J),Z=a(199),Q=a(394),X=a(196),$=a(200),ee=a(211),te=a(204),ae=a(60),ne=a.n(ae),oe=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={showSelectId:!1},n}return Object(p.a)(a,[{key:"renderInput",value:function(e,t,a){var n=this;return Object(K.jsx)(_.a,{label:A.a.t(e),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native[t],type:a||"text",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"renderSelect",value:function(e,t,a,n){var o=this;return Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:Object.assign({paddingTop:5},n),children:[Object(K.jsx)(ee.a,{value:this.props.native[t]||"_",onChange:function(e){return o.props.onChange(t,"_"===e.target.value?"":e.target.value)},input:Object(K.jsx)(Z.a,{name:t,id:t+"-helper"}),children:a.map((function(e){return Object(K.jsx)(te.a,{value:e.value||"_",children:A.a.t(e.title)},"key-"+e.value)}))}),Object(K.jsx)(Q.a,{children:A.a.t(e)})]})}},{key:"renderCheckbox",value:function(e,t,a){var n=this;return Object(K.jsx)(D.a,{style:Object.assign({paddingTop:5},a),className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{checked:this.props.native[t],onChange:function(){return n.props.onChange(t,!n.props.native[t])},color:"primary"}),label:A.a.t(e)},t)}},{key:"getSelectIdDialog",value:function(e){var t=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:this.props.native[e],types:["state"],onClose:function(){return t.setState({showSelectId:!1})},onOk:function(a){t.setState({showSelectId:!1}),t.props.onChange(e,a)}},"dialogSelectID2"):null}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[this.renderInput("Cloud URL","cloudUrl"),Object(K.jsx)("br",{}),this.renderSelect("Language","language",[{title:"default",value:""},{title:"english",value:"en"},{title:"Deutsch",value:"de"},{title:"\u0440\u0443\u0441\u0441\u043a\u0438\u0439",value:"ru"}],{marginTop:10}),Object(K.jsx)("br",{}),this.renderCheckbox("Place function in names first","functionFirst",{marginTop:10}),Object(K.jsx)("br",{}),this.renderInput("Concatenate words with","concatWord"),Object(K.jsx)("br",{}),this.renderInput("Replace in names","replaces"),Object(K.jsx)("br",{}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,style:{marginTop:15},children:[this.renderInput("OFF level for switches in %","deviceOffLevel"),Object(K.jsx)(Q.a,{children:A.a.t("(Set to 0 if behavior not desired)")})]}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[this.renderInput("Write response to","responseOID"),Object(K.jsx)(X.a,{size:"small",color:"secondary",onClick:function(){return e.setState({showSelectId:!0})},"aria-label":"Add",style:{marginLeft:5,marginTop:10},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)("br",{})]}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[this.renderCheckbox("Personal settings (only pro)","noCommon"),Object(K.jsx)(Q.a,{children:M.a.renderTextWithA(A.a.t("help_tip"))}),Object(K.jsx)("br",{})]}),this.renderCheckbox("Debug outputs","debug"),this.getSelectIdDialog("responseOID")]})}}]),a}(n.Component),ie=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{marginTop:0,minWidth:400},button:{marginRight:20},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},controlElement:{marginBottom:5}}}))(oe),se=a(41),re=a(411),le=a(151),ce=a.n(le),de=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={running:!1,toast:"",showSelectId:!1,text2commandList:[],nightscoutList:[],addValue:"",isInstanceAlive:!1},n.onKeyChangedBound=n.onKeyChanged.bind(Object(se.a)(n)),n.props.socket.getAdapterInstances("text2command").then((function(e){return n.props.socket.getAdapterInstances("nightscout").then((function(t){return n.setState({nightscoutList:t.map((function(e){return e._id.replace("system.adapter.nightscout.","")})),text2commandList:e.map((function(e){return e._id.replace("system.adapter.text2command.","")}))})}))})),n}return Object(p.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.props.socket.subscribeState("iot."+this.props.instance+".certs.urlKey",this.onKeyChangedBound),this.props.socket.getObject("system.adapter.".concat(this.props.adapterName,".").concat(this.props.instance)).then((function(t){return e.props.socket.getState("system.adapter.".concat(e.props.adapterName,".").concat(e.props.instance,".alive")).then((function(a){return e.setState({isInstanceAlive:t&&t.common&&a&&a.val})}))}))}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("iot."+this.props.instance+".certs.urlKey",this.onKeyChangedBound)}},{key:"onKeyChanged",value:function(e,t){t&&this.setState({key:t.val})}},{key:"renderInput",value:function(e,t,a){var n=this;return Object(K.jsx)(_.a,{label:A.a.t(e),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native[t],type:a||"text",onChange:function(e){return n.props.onChange(t,e.target.value)},margin:"normal"})}},{key:"reissueUrlKey",value:function(){var e=this;return this.setState({running:!0}),this.props.socket.setState("iot."+this.props.instance+".certs.urlKey",{val:"",ack:!0}).then((function(){return e.props.socket.getObject("system.adapter.iot."+e.props.instance)})).then((function(t){if(t&&t.common&&t.common.enabled)return e.props.socket.setObject("system.adapter.iot."+e.props.instance,t);e.setState({running:!1,toast:A.a.t("Key will be updated after start")})})).then((function(){return e.setState({running:!1,toast:A.a.t("Certificates will be updated after initiated restart")})})).catch((function(t){e.setState({running:!1}),e.props.showError(t)}))}},{key:"renderToast",value:function(){var e=this;return this.state.toast?Object(K.jsx)(G.a,{anchorOrigin:{vertical:"bottom",horizontal:"left"},open:!0,autoHideDuration:6e3,onClose:function(){return e.setState({toast:""})},ContentProps:{"aria-describedby":"message-id"},message:Object(K.jsx)("span",{id:"message-id",children:this.state.toast}),action:[Object(K.jsx)(U.a,{"aria-label":"Close",color:"inherit",className:this.props.classes.close,onClick:function(){return e.setState({toast:""})},children:Object(K.jsx)(W.c,{})},"close")]}):null}},{key:"onChipsDelete",value:function(e,t){var a=(this.props.native[e]||"").split(/[,;\s]/).filter((function(e){return!!e})),n=a.indexOf(t);-1!==n&&(a.splice(n,1),this.props.onChange(e,a.join(" ")))}},{key:"onChipsAdd",value:function(e){var t=this,a=(this.props.native[e]||"").split(/[,;\s]/).filter((function(e){return!!e}));-1===a.indexOf(this.state.addValue)&&(a.push(this.state.addValue),this.setState({addValue:""},(function(){return t.props.onChange(e,a.join(" "))})))}},{key:"calcNightscoutSecret",value:function(){var e=this.props.native.login.replace(/[^\w\d-_]/g,"_"),t=this.props.native.nightscoutPass;return e+(t?"-"+t:"")}},{key:"getSelectIdDialog",value:function(e){var t=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:this.props.native[e],types:["state"],onClose:function(){return t.setState({showSelectId:!1})},onOk:function(a){t.setState({showSelectId:!1}),t.props.onChange(e,a)}},"dialogSelectID3"):null}},{key:"renderChips",value:function(e,t){var a=this;return Object(K.jsxs)("div",{className:this.props.classes.chipsDiv,children:[Object(K.jsx)(Q.a,{children:M.a.renderTextWithA(A.a.t(e))}),Object(K.jsx)(_.a,{label:A.a.t("Add service"),style:{width:150},type:"text",value:this.state.addValue,onKeyUp:function(e){return 13===e.keyCode&&a.onChipsAdd(t)},onChange:function(e){return a.setState({addValue:e.target.value.trim()})},margin:"normal"}),Object(K.jsx)(X.a,{size:"small",color:"secondary",disabled:!this.state.addValue,onClick:function(){return a.onChipsAdd(t)},style:{marginLeft:5,marginTop:-15},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)("div",{className:this.props.classes.chips,children:(this.props.native[t]||"").split(/[,;\s]/).filter((function(e){return!!e})).map((function(e){return Object(K.jsx)(re.a,{size:"small",label:e,onDelete:function(){return a.onChipsDelete(t,e)},className:a.props.classes.chip},e)}))})]})}},{key:"render",value:function(){var e=this;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsxs)(z.a,{variant:"outlined",disabled:!this.state.isInstanceAlive||this.state.running,color:"primary",title:this.state.isInstanceAlive?"":A.a.t("Instance must be enabled"),onClick:function(){return e.reissueUrlKey()},children:[Object(K.jsx)(W.j,{}),A.a.t("Get new service URL key")]}),Object(K.jsx)("br",{}),this.renderInput("IFTTT key","iftttKey"),Object(K.jsx)("br",{}),Object(K.jsx)(_.a,{style:{marginTop:10},label:A.a.t("Use following link for IFTTT"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.fullSize),value:"https://service.iobroker.in/v1/iotService?service=ifttt&key=".concat(this.state.key,"&user=").concat(encodeURIComponent(this.props.native.login)),type:"text",readOnly:!0,margin:"normal"}),Object(K.jsx)(X.a,{size:"small",style:{marginTop:10,marginLeft:5},onClick:function(){return M.a.copyToClipboard("https://service.iobroker.in/v1/iotService?service=ifttt&key=".concat(e.state.key,"&user=").concat(encodeURIComponent(e.props.native.login)))},children:Object(K.jsx)(ce.a,{})}),Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),this.renderChips("White list for services","allowedServices"),Object(K.jsx)("br",{}),Object(K.jsx)(_.a,{style:{marginTop:10},label:A.a.t("Use following link for custom service"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.fullSize),value:"https://service.iobroker.in/v1/iotService?service=custom_&key=".concat(this.state.key,"&user=").concat(encodeURIComponent(this.props.native.login),"&data="),type:"text",readOnly:!0,margin:"normal"}),Object(K.jsx)(X.a,{size:"small",style:{marginTop:10,marginLeft:5},onClick:function(){return M.a.copyToClipboard("https://service.iobroker.in/v1/iotService?service=custom_&key=".concat(e.state.key,"&user=").concat(encodeURIComponent(e.props.native.login),"&data="))},children:Object(K.jsx)(ce.a,{})}),Object(K.jsx)("br",{}),Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:{paddingTop:20},children:[Object(K.jsxs)(ee.a,{value:this.props.native.text2command||"_",onChange:function(t){return e.props.onChange("text2command","_"===t.target.value?"":t.target.value)},input:Object(K.jsx)(Z.a,{name:"text2command",id:"text2command-helper"}),children:[Object(K.jsx)(te.a,{value:"_",children:A.a.t("disabled")},"key-default"),this.state.text2commandList.map((function(e){return Object(K.jsxs)(te.a,{value:e,children:["text2command.",e]},"key-"+e)}))]}),Object(K.jsx)(Q.a,{children:A.a.t("Use text2command instance")})]}),Object(K.jsx)("br",{}),Object(K.jsxs)($.a,{className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),style:{paddingTop:20},children:[Object(K.jsxs)(ee.a,{value:this.props.native.nightscout||"_",onChange:function(t){return e.props.onChange("nightscout","_"===t.target.value?"":t.target.value)},input:Object(K.jsx)(Z.a,{name:"nightscout",id:"nightscout-helper"}),children:[Object(K.jsx)(te.a,{value:"_",children:A.a.t("disabled")},"key-default"),this.state.nightscoutList.map((function(e){return Object(K.jsxs)(te.a,{value:e,children:["nightscout.",e]},"key-"+e)}))]}),Object(K.jsx)(Q.a,{children:A.a.t("Use Nightscout instance")})]}),this.props.native.nightscout?Object(K.jsx)(_.a,{style:{marginTop:3.5},label:A.a.t("Nightscout password"),onChange:function(t){return e.props.onChange("nightscoutPass",t.target.value.replace(/[^\w\d-_]/g,"_"))},className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.normalSize),value:this.props.native.nightscoutPass,type:"text",margin:"normal"}):null,this.props.native.nightscout?Object(K.jsx)(_.a,{style:{marginTop:3.5},label:A.a.t("Nightscout api-secret"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement,this.props.classes.normalSize),value:this.calcNightscoutSecret(),type:"text",readOnly:!0,margin:"normal"}):null,Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),Object(K.jsxs)("div",{className:this.props.classes.controlElement,children:[Object(K.jsx)(_.a,{label:A.a.t("Read blood sugar from"),className:Object(N.a)(this.props.classes.input,this.props.classes.controlElement),value:this.props.native.amazonAlexaBlood||"",type:"text",onChange:function(t){return e.props.onChange("amazonAlexaBlood",t.target.value)},margin:"normal"}),Object(K.jsx)(X.a,{size:"small",color:"secondary",onClick:function(){return e.setState({showSelectId:!0})},"aria-label":"Add",style:{marginLeft:5,marginTop:10},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)(D.a,{className:this.props.classes.controlElement,control:Object(K.jsx)(L.a,{style:{paddingLeft:30},checked:this.props.native.amazonAlexaBloodShortAnswer||!1,onChange:function(t){return e.props.onChange("amazonAlexaBloodShortAnswer",t.target.checked)},color:"primary"}),label:A.a.t("Short answer for blood sugar")})]}),Object(K.jsx)("br",{}),this.renderToast(),this.getSelectIdDialog("amazonAlexaBlood")]})}}]),a}(n.Component),ue=Object(g.a)((function(e){return{tab:{width:"100%",minHeight:"100%"},input:{marginTop:0,minWidth:400},fullSize:{width:"calc(100% - 64px)"},normalSize:{width:"calc(30% - 64px)",marginLeft:10},button:{marginRight:20},card:{maxWidth:345,textAlign:"center"},media:{height:180},column:{display:"inline-block",verticalAlign:"top",marginRight:20},columnLogo:{width:350,marginRight:0},columnSettings:{width:"calc(100% - 370px)"},controlElement:{marginBottom:5},chips:{border:"1px solid #DDD",borderRadius:1,width:"calc(100% - 250px)",display:"inline-block",padding:5,minHeight:32,marginLeft:10,marginTop:20},chip:{marginRight:5}}}))(de),pe=a(209),me=a(85),he=a.n(me),ge=a(203),fe=a(36),be=a.n(fe),ve=a(72),ke=a.n(ve),we=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).state={inAction:!1,editId:"",editedSmartName:"",funcs:[],rooms:[],changed:[],message:"",loading:!0},n.onEnumUpdateBound=n.onEnumUpdate.bind(Object(se.a)(n)),n.props.socket.getEnums().then((function(e){var t=[],a=[];return Object.keys(e).forEach((function(n){n.match(/^enum\.rooms\./)?a.push(e[n]):n.match(/^enum\.functions\./)&&t.push(e[n])})),n.setState({funcs:t,rooms:a,loading:!1}),n.props.socket.subscribeObject("enum.*",n.onEnumUpdateBound)})),n}return Object(p.a)(a,[{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeObject("enum.*",this.onEnumUpdateBound).then((function(){}))}},{key:"onEnumUpdate",value:function(e,t){this.removeChanged(e),this.updateObjInState(e,t)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed));-1===t.indexOf(e)&&(t.push(e),this.setState({changed:t}))}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"updateObjInState",value:function(e,t){if(e.match(/^enum\.functions\./)){for(var a=this.state.funcs.length-1;a>=0;a--)if(this.state.funcs[a]._id===e){var n=JSON.parse(JSON.stringify(this.state.funcs));t?n[a]=t:n.splice(a,1),this.setState({funcs:n});break}}else if(e.match(/^enum\.rooms\./))for(var o=this.state.rooms.length-1;o>=0;o--)if(this.state.rooms[o]._id===e){var i=JSON.parse(JSON.stringify(this.state.rooms));t?i[o]=t:i.splice(o,1),this.setState({rooms:i});break}}},{key:"onToggleEnum",value:function(e){var t=this,a=this.state.funcs.find((function(t){return t._id===e}))||this.state.rooms.find((function(t){return t._id===e})),n=M.a.getSmartNameFromObj(a);a=JSON.parse(JSON.stringify(a)),!1!==n?M.a.disableSmartName(a,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon):M.a.removeSmartName(a,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon),this.addChanged(e),this.props.socket.setObject(e,a).then((function(){t.updateObjInState(e,a),t.informInstance(e),setTimeout((function(){return t.removeChanged(e)}),500)}))}},{key:"onEdit",value:function(e){var t=this.state.funcs.find((function(t){return t._id===e}))||this.state.rooms.find((function(t){return t._id===e})),a=M.a.getSmartNameFromObj(t,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon);"object"===typeof a&&a&&(a=a[A.a.getLanguage()]||a.en),a=a||M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()}),this.setState({editId:e,editedSmartName:a})}},{key:"renderEnum",value:function(e){var t=this,a=M.a.getSmartNameFromObj(e,this.props.adapterName+"."+this.props.instance,this.props.native.noCommon);a&&"object"===typeof a&&(a=a[A.a.getLanguage()]||a.en||"");var n=M.a.getObjectNameFromObj(e);return Object(K.jsxs)("div",{className:this.props.classes.enumLine,style:{background:-1!==this.state.changed.indexOf(e._id)?"#e7000040":"inherit"},children:[Object(K.jsxs)("span",{className:this.props.classes.enumLineName,style:{opacity:!1===a?.5:1},children:[a||null,a?Object(K.jsxs)("span",{className:this.props.classes.enumLineSubName,children:[" (",n,")"]}):n]}),Object(K.jsx)("span",{className:this.props.classes.enumLineId,style:{opacity:!1===a?.5:1},children:e._id}),Object(K.jsx)(pe.a,{className:this.props.classes.enumLineEnabled,checked:!1!==a,onChange:function(){return t.onToggleEnum(e._id)}}),Object(K.jsx)(U.a,{"aria-label":"Edit",className:this.props.classes.enumLineEdit,onClick:function(){return t.onEdit(e._id)},children:Object(K.jsx)(W.f,{fontSize:"small"})})]},e._id)}},{key:"renderEnums",value:function(e){var t=this;return this.state[e].map((function(e){return t.renderEnum(e)}))}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(){var e=this;if((this.state.editId.startsWith("enum.functions.")?this.state.funcs:this.state.rooms).find((function(t){return e.state.editId!==t._id&&(e.state.editedSmartName===M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})||e.state.editedSmartName===M.a.getSmartNameFromObj(t,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon))})))this.setState({message:A.a.t("Duplicate name")});else{this.addChanged(this.state.editId),setTimeout((function(){return e.removeChanged(e.state.editId)}),500);var t,a=this.state.editId;this.setState({editId:""}),this.props.socket.getObject(a).then((function(n){return M.a.updateSmartName(n,e.state.editedSmartName,void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),t=n,e.props.socket.setObject(a,n)})).then((function(){e.updateObjInState(a,t),e.informInstance(a)})).catch((function(t){return e.props.onError(t)}))}}},{key:"renderEditDialog",value:function(){var e=this;if(this.state.editId){var t=this.state.funcs.find((function(t){return t._id===e.state.editId}))||this.state.rooms.find((function(t){return t._id===e.state.editId}));return Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){return e.setState({editId:""})},"aria-labelledby":"message-dialog-title","aria-describedby":"message-dialog-description",children:[Object(K.jsx)(C.a,{id:"message-dialog-title",children:this.props.title||A.a.t("Smart name for %s",M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()}))}),Object(K.jsx)(x.a,{children:Object(K.jsx)(_.a,{autoFocus:!0,style:{width:"100%"},label:A.a.t("Smart name"),onChange:function(t){return e.setState({editedSmartName:t.target.value})},value:this.state.editedSmartName,helperText:A.a.t("You can enter several names divided by comma"),margin:"normal"})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.changeSmartName()},color:"primary",startIcon:Object(K.jsx)(ke.a,{}),children:A.a.t("Ok")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.setState({editId:""})},startIcon:Object(K.jsx)(be.a,{}),children:A.a.t("Cancel")})]})]})}return null}},{key:"render",value:function(){return this.state.loading?Object(K.jsx)(ge.a,{}):Object(K.jsxs)("form",{className:this.props.classes.tab,children:[Object(K.jsxs)("div",{className:this.props.classes.column,children:[Object(K.jsx)("h5",{className:this.props.classes.columnHeader,children:A.a.t("Rooms")}),Object(K.jsx)("div",{className:this.props.classes.columnDiv,children:this.renderEnums("rooms")})]}),Object(K.jsxs)("div",{className:this.props.classes.column,children:[Object(K.jsx)("h5",{className:this.props.classes.columnHeader,children:A.a.t("Functions")}),Object(K.jsx)("div",{className:this.props.classes.columnDiv,children:this.renderEnums("funcs")})]}),this.renderMessage(),this.renderEditDialog()]})}}]),a}(n.Component),je=Object(g.a)((function(e){return{tab:{width:"100%",height:"100%"},column:{display:"inline-block",verticalAlign:"top",marginRight:20,height:"100%",overflow:"hidden",width:"calc(50% - 20px)",minWidth:300,maxWidth:450},columnDiv:{height:"calc(100% - 60px)",overflow:"auto",minWidth:300},enumLineEnabled:{position:"absolute",right:0,top:0},enumLineEdit:{position:"absolute",top:5,right:50},enumLineName:{},enumLineSubName:{fontStyle:"italic"},enumLine:{height:48,width:"100%",position:"relative"},enumLineId:{display:"block",fontStyle:"italic",fontSize:12},columnHeader:{background:e.palette.primary.light,padding:10,color:e.palette.primary.contrastText}}}))(we),ye=a(205),Se=a(13),Oe=a(106),xe=a.n(Oe),Te=a(105),Ce=a.n(Te),ze="#aba613",Ie="#444",Ae="#00c6ff",Ne="#00bc00",_e="#e7000040",De="#4f4f4f",Le="#e9e9e9",Fe="#5c8f65",Ee="#b4ffbe",Re={turnOn:{color:ze,icon:Se.i,desc:"Turn on"},turnOff:{color:Ie,icon:Se.i,desc:"Turn off"},setTargetTemperature:{color:Ae,icon:Se.k,desc:"Set target temperature"},incrementTargetTemperature:{color:ze,icon:Se.e,desc:"Increment target temperature"},decrementTargetTemperature:{color:Ie,icon:Se.d,desc:"Decrement target temperature"},setPercentage:{color:Ae,icon:Se.h,desc:"Set percentage"},incrementPercentage:{color:ze,icon:Se.e,desc:"Increment percentage"},decrementPercentage:{color:Ie,icon:Se.d,desc:"Decrement percentage"},setColor:{color:Ae,icon:Se.g,desc:"Set color"},setColorTemperature:{color:Ae,icon:Se.a,desc:"Set color temperature"},incrementColorTemperature:{color:ze,icon:Se.e,desc:"Increment color temperature"},decrementColorTemperature:{color:Ie,icon:Se.d,desc:"Decrement color temperature"},getTargetTemperature:{color:Ne,icon:Se.j,desc:"Get target temperature"},getTemperatureReading:{color:Ne,icon:Se.j,desc:"Get actual temperature"},setLockState:{color:Ae,icon:Se.c,desc:"Set lock state"},getLockState:{color:Ne,icon:Se.c,desc:"Read lock state"}},Be=["LIGHT","SWITCH","THERMOSTAT","ACTIVITY_TRIGGER","SCENE_TRIGGER","SMARTPLUG","SMARTLOCK","CAMERA"],Pe=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),n=t.call(this,e),Re.translated||(Object.keys(Re).forEach((function(e){return Re[e].desc=A.a.t(Re[e].desc)})),Re.translated=!0),n.state={editedSmartName:"",editId:"",editedSmartType:null,editObjectName:"",deleteId:"",showListOfDevices:!1,showSelectId:!1,showConfirmation:"",changed:[],devices:[],message:"",filter:"",loading:!0,browse:!1,expanded:[],lastChanged:""},n.timerChanged=null,n.browseTimer=null,n.browseTimerCount=0,n.editedSmartName="",n.waitForUpdateID=null,n.onReadyUpdateBound=n.onReadyUpdate.bind(Object(se.a)(n)),n.onResultUpdateBound=n.onResultUpdate.bind(Object(se.a)(n)),n.props.socket.getObject("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance)).then((function(e){n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(t){e&&e.common&&(e.common.enabled||t&&t.val)?n.browse():n.setState({message:A.a.t("Instance must be enabled"),loading:!1,devices:[]})}))})),n}return Object(p.a)(a,[{key:"browse",value:function(e){var t=this;Date.now()-this.lastBrowse<500||(this.lastBrowse=Date.now(),e?this.setState({loading:!0,browse:!0}):this.setState({browse:!0}),console.log("Send BROWSE!"),this.browseTimer=setTimeout((function(){console.log("Browse timeout!"),t.browseTimer=null,t.browseTimerCount++,t.browseTimerCount<5?t.browse(e):t.setState({message:A.a.t("Cannot read devices!")})}),1e4),this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"browse",null).then((function(e){t.browseTimer&&clearTimeout(t.browseTimer),t.browseTimerCount=0,t.browseTimer=null,e&&e.error?t.setState({message:A.a.t(e.error)}):(t.waitForUpdateID&&(t.onEdit(t.waitForUpdateID,e)||t.setState({message:A.a.t("Device %s was not added",t.waitForUpdateID)}),t.waitForUpdateID=null),console.log("BROWSE received."),t.setState({devices:e,loading:!1,changed:[],browse:!1}))})).catch((function(e){return t.setState({message:A.a.t("Error %s",e)})})))}},{key:"onReadyUpdate",value:function(e,t){var a=this;console.log("Update ".concat(e," ").concat(t?"".concat(t.val,"/").concat(t.ack):"null")),t&&!0===t.ack&&!0===t.val&&(this.devTimer&&clearTimeout(this.devTimer),this.devTimer=setTimeout((function(){a.devTimer=null,a.browse()}),300))}},{key:"onResultUpdate",value:function(e,t){t&&!0===t.ack&&t.val&&this.setState({message:t.val})}},{key:"componentDidMount",value:function(){this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updates"),this.onReadyUpdateBound),this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updates"),this.onReadyUpdateBound),this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound),this.timerChanged&&(clearTimeout(this.timerChanged),this.timerChanged=null)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e,t){var a=JSON.parse(JSON.stringify(this.state.changed));-1===a.indexOf(e)?(a.push(e),this.setState({changed:a},(function(){return t&&t()}))):t&&t()}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"onEdit",value:function(e,t){var a=this,n=(t=t||this.state.devices).find((function(t){return t.additionalApplianceDetails.id===e}));return!!n&&(this.props.socket.getObject(e).then((function(t){var o=n.additionalApplianceDetails.friendlyNames?n.additionalApplianceDetails.friendlyNames:n.friendlyName;"object"===typeof o&&o&&(o=o[A.a.getLanguage()]||o.en),a.editedSmartName=o;var i=null;n.additionalApplianceDetails.group||(i=n.additionalApplianceDetails.smartType),a.setState({editId:e,editedSmartType:i,editedSmartName:o,editObjectName:M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})})})),!0)}},{key:"onAskDelete",value:function(e){this.setState({deleteId:e,showConfirmation:!0})}},{key:"onDelete",value:function(){var e=this,t=this.state.deleteId;this.addChanged(t,(function(){e.props.socket.getObject(t).then((function(a){return M.a.disableSmartName(a,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.props.socket.setObject(t,a)})).then((function(){e.setState({deleteId:"",showConfirmation:!1,lastChanged:t}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4),e.informInstance(t)})).catch((function(t){return e.props.onError(t)}))}))}},{key:"renderActions",value:function(e){var t=this,a=[];if(!e.actions)return console.log("Something went wrong"),null;e.actions.sort((function(e,t){return e===t?0:"turnOn"===e?-1:"turnOn"===t?1:"turnOff"===e?-1:"turnOff"===t?1:0})),Object.keys(Re).forEach((function(n){if(-1!==e.actions.indexOf(n)){var o=Re[n].icon;a.push(Object(K.jsx)("span",{title:Re[n].desc,children:Object(K.jsx)(o,{className:t.props.classes.actionIcon,style:{color:Re[n].color}})},n))}}));for(var n=0;n1?Object(K.jsx)(ye.a,{badgeContent:i,color:"primary",children:r?Object(K.jsx)(W.e,{}):Object(K.jsx)(W.g,{})}):r?Object(K.jsx)(W.e,{}):Object(K.jsx)(W.g,{})}),Object(K.jsxs)("div",{className:this.props.classes.devLineNameBlock,style:{display:"inline-block",position:"relative"},children:[Object(K.jsx)("span",{className:this.props.classes.devLineName,children:a}),Object(K.jsx)("span",{className:this.props.classes.devLineDescription,children:e.friendlyDescription}),d?Object(K.jsx)(ge.a,{className:this.props.classes.devLineProgress,size:20}):null]}),Object(K.jsx)("span",{className:this.props.classes.devLineActions,children:this.renderActions(e)}),e.additionalApplianceDetails.group?null:Object(K.jsx)(U.a,{"aria-label":"Edit",className:this.props.classes.devLineEdit,onClick:function(){return n.onEdit(l)},children:Object(K.jsx)(W.f,{fontSize:"middle"})}),e.additionalApplianceDetails.group?null:Object(K.jsx)(U.a,{"aria-label":"Delete",className:this.props.classes.devLineDelete,onClick:function(){return n.onAskDelete(l)},children:Object(K.jsx)(W.d,{fontSize:"middle"})})]},"line"+t),r?this.renderChannels(e,t):null]}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(e){var t=this;e&&e.preventDefault(),this.addChanged(this.state.editId,(function(){var e=t.state.editId,a=t.state.editedSmartType;t.setState({editId:"",editObjectName:"",lastChanged:e,editedSmartType:null}),t.timerChanged&&clearTimeout(t.timerChanged),t.timerChanged=setTimeout((function(){t.setState({lastChanged:""}),t.timerChanged=null}),3e4),t.props.socket.getObject(e).then((function(n){return M.a.updateSmartName(n,t.editedSmartName,void 0,null===a?void 0:a,t.props.adapterName+"."+t.props.instance,t.props.native.noCommon),t.props.socket.setObject(e,n)})).then((function(){t.informInstance(e)})).catch((function(e){return t.props.onError(e)}))}))}},{key:"renderEditDialog",value:function(){var e=this;return this.state.editId?Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){e.editedSmartName=null,e.setState({editId:"",editedSmartName:""})},"aria-labelledby":"message-dialog-title","aria-describedby":"message-dialog-description",children:[Object(K.jsx)(C.a,{id:"message-dialog-title",children:this.props.title||A.a.t("Smart name for %s",this.state.editObjectName)}),Object(K.jsxs)(x.a,{children:[Object(K.jsxs)("p",{children:[Object(K.jsx)("span",{children:"ID:"})," ",Object(K.jsx)("span",{className:this.props.classes.editedId,children:this.state.editId})]}),Object(K.jsx)(_.a,{style:{width:"100%"},label:A.a.t("Smart name"),autoFocus:!0,onKeyDown:function(t){return 13===t.keyCode&&e.changeSmartName(t)},onChange:function(t){return e.editedSmartName=t.target.value},defaultValue:this.state.editedSmartName,helperText:A.a.t("You can enter several names divided by comma"),margin:"normal"}),null!==this.state.editedSmartType?this.renderSelectTypeSelector(this.state.editedSmartType,(function(t){return e.setState({editedSmartType:t})})):null]}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.changeSmartName()},color:"primary",startIcon:Object(K.jsx)(ke.a,{}),children:A.a.t("Ok")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){e.editedSmartName=null,e.setState({editId:"",editedSmartName:""})},startIcon:Object(K.jsx)(be.a,{}),children:A.a.t("Cancel")})]})]}):null}},{key:"renderConfirmDialog",value:function(){var e=this;return this.state.showConfirmation?Object(K.jsxs)(S.a,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:function(){return e.setState({showConfirmation:""})},"aria-labelledby":"confirmation-dialog-title","aria-describedby":"confirmation-dialog-description",children:[Object(K.jsx)(C.a,{id:"confirmation-dialog-title",children:this.props.title||A.a.t("Device %s will be disabled.",this.state.deleteId)}),Object(K.jsx)(x.a,{children:Object(K.jsx)("p",{children:A.a.t("Are you sure?")})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.onDelete()},color:"primary",autoFocus:!0,startIcon:Object(K.jsx)(W.d,{}),children:A.a.t("Delete")}),Object(K.jsx)(z.a,{variant:"contained",startIcon:Object(K.jsx)(be.a,{}),onClick:function(){return e.setState({showConfirmation:""})},children:A.a.t("Cancel")})]})]}):null}},{key:"getSelectIdDialog",value:function(){var e=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:"",types:["state"],onClose:function(){return e.setState({showSelectId:!1})},onOk:function(t,a){e.setState({showSelectId:!1}),e.props.socket.getObject(t).then((function(t){if(t){var a=M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()});M.a.updateSmartName(t,(a||A.a.t("Device name")).replace(/[-_.]+/g," "),void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.addChanged(t._id),e.waitForUpdateID=t._id,e.state.lastChanged!==t._id&&(e.setState({lastChanged:t._id}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4)),e.props.socket.setObject(t._id,t).then((function(){return e.informInstance(t._id)})).catch((function(t){return e.setState({message:t})}))}else e.setState({message:A.a.t("Invalid ID")})}))}},"dialogSelectID1"):null}},{key:"renderDevices",value:function(){for(var e=this.state.filter.toLowerCase(),t=[],a=0;ao?1:0}var bt,vt=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;Object(u.a)(this,a),n=t.call(this,e);var o=window.localStorage.getItem("iot.ghome.opened")||"[]";try{o=JSON.parse(o)||[]}catch(i){o=[]}return Array.isArray(o)||(o=[]),n.state={opened:o,editMode:!1,deleteMode:!1,editData:null,order:"asc",orderBy:n.props.columns[0].field},n}return Object(p.a)(a,[{key:"renderCell",value:function(e,t,a,n){var o=this;if(this.state.editMode===n&&"never"!==t.editable){var i=ht(e,t.field);return Array.isArray(i)&&(i=i[0]),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,a&&this.props.classes.cellSecondary),style:t.cellStyle,component:"th",children:t.lookup?Object(K.jsx)(ee.a,{onChange:function(e){var a=o.state.editData?Object(d.a)({},o.state.editData):{};e.target.value===i?delete a[t.field]:a[t.field]=e.target.value,o.setState({editData:a})},value:this.state.editData&&this.state.editData[t.field]||i,children:Object.keys(t.lookup).map((function(e){return Object(K.jsx)(te.a,{value:e,children:t.lookup[e]})}))}):Object(K.jsx)(_.a,{value:this.state.editData&&void 0!==this.state.editData[t.field]?this.state.editData[t.field]:i,onChange:function(e){var a=o.state.editData?Object(d.a)({},o.state.editData):{};e.target.value===i?delete a[t.field]:a[t.field]=e.target.value,o.setState({editData:a})}})},t.field)}return Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,a&&this.props.classes.cellSecondary),style:t.cellStyle,component:"th",children:ht(e,t.field,t.lookup)},t.field)}},{key:"renderLine",value:function(e,t){var a=this;t=t||0;var n=this.props.data.indexOf(e);if(!e)return null;if(!t&&e.parentId)return null;if(t&&!e.parentId)return null;var o=this.props.data.filter((function(t){return t.parentId===e.id})),i=this.state.opened.includes(e.id);return[Object(K.jsxs)(ot.a,{className:Object(N.a)(this.props.classes.row,t&&this.props.classes.rowSecondary,!t&&o.length&&this.props.classes.rowMainWithChildren,!t&&!o.length&&this.props.classes.rowMainWithoutChildren,!1!==this.state.editMode&&this.state.editMode!==n&&this.props.classes.rowNoEdit,!1!==this.state.deleteMode&&this.state.deleteMode!==n&&this.props.classes.rowNoEdit),children:[Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellExpand,t&&this.props.classes.cellSecondary),children:o.length?Object(K.jsx)(U.a,{onClick:function(){var t=Object(Ye.a)(a.state.opened),n=t.indexOf(e.id);-1===n?(t.push(e.id),t.sort()):t.splice(n,1),a.setState({opened:t})},children:i?Object(K.jsx)(mt.a,{}):Object(K.jsx)(ut.a,{})}):null}),Object(K.jsx)(at.a,{scope:"row",className:Object(N.a)(this.props.classes.cell,t&&this.props.classes.cellSecondary),style:this.props.columns[0].cellStyle,children:ht(e,this.props.columns[0].field,this.props.columns[0].lookup)}),this.props.columns.map((function(o,i){return i?a.renderCell(e,o,t,n):null})),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellButton),children:this.state.editMode===n||this.state.deleteMode===n?Object(K.jsx)(U.a,{disabled:!1!==this.state.editMode&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:function(){if(!1!==a.state.editMode){var t=JSON.parse(JSON.stringify(e));Object.keys(a.state.editData).forEach((function(e){return gt(t,e,a.state.editData[e])})),a.setState({editMode:!1},(function(){return a.props.onUpdate(t,e)}))}else a.setState({deleteMode:!1},(function(){return a.props.onDelete(e)}))},children:Object(K.jsx)(ke.a,{})}):Object(K.jsx)(U.a,{disabled:!1!==this.state.editMode,onClick:function(){return a.setState({editMode:n,editData:null})},children:Object(K.jsx)(rt.a,{})})}),Object(K.jsx)(at.a,{className:Object(N.a)(this.props.classes.cell,this.props.classes.cellButton),children:this.state.editMode===n||this.state.deleteMode===n?Object(K.jsx)(U.a,{onClick:function(){return a.setState({editMode:!1,deleteMode:!1})},children:Object(K.jsx)(be.a,{})}):Object(K.jsx)(U.a,{disabled:!1!==this.state.deleteMode,onClick:function(){return a.setState({deleteMode:n})},children:Object(K.jsx)(ct.a,{})})})]},e.id),!t&&this.state.opened.includes(e.id)?o.map((function(e){return a.renderLine(e,t+1)})):null]}},{key:"handleRequestSort",value:function(e){var t=this.state.orderBy===e&&"asc"===this.state.order;this.setState({order:t?"desc":"asc",orderBy:e})}},{key:"renderHead",value:function(){var e=this;return Object(K.jsx)(nt.a,{children:Object(K.jsxs)(ot.a,{children:[Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellExpand)}),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes["width_"+this.props.columns[0].field.replace(/\./g,"_")]),style:this.props.columns[0].cellStyle,sortDirection:this.state.orderBy===this.props.columns[0].field&&this.state.order,children:Object(K.jsxs)(it.a,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:function(){return e.handleRequestSort(e.props.columns[0].field)},children:[this.props.columns[0].title,this.state.orderBy===this.props.columns[0].field?Object(K.jsx)("span",{className:this.props.classes.visuallyHidden,children:"desc"===this.state.order?"sorted descending":"sorted ascending"}):null]})}),this.props.columns.map((function(t,a){return a?Object(K.jsx)(at.a,{className:Object(N.a)(e.props.classes.cell,e.props.classes.cellHeader,e.props.classes["width_"+t.field.replace(/\./g,"_")]),style:t.cellStyle,component:"th",children:Object(K.jsxs)(it.a,{active:e.state.orderBy===t.field,direction:e.state.orderBy===t.field?e.state.order:"asc",onClick:function(){return e.handleRequestSort(t.field)},children:[t.title,e.state.orderBy===t.field?Object(K.jsx)("span",{className:e.props.classes.visuallyHidden,children:"desc"===e.state.order?"sorted descending":"sorted ascending"}):null]})},t.field):null})),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)}),Object(K.jsx)(at.a,{component:"th",className:Object(N.a)(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)})]})})}},{key:"render",value:function(){var e=this,t=this.props.columns?this.props.columns.find((function(t){return t.field===e.state.orderBy})).lookup:"",a=function(e,t){var a=e.map((function(e,t){return[e,t]}));return a.sort((function(e,a){return t(e[0],a[0])||e[1]-a[1]})),a.map((function(e){return e[0]}))}(this.props.data,function(e,t,a){return"desc"===e?function(e,n){return ft(e,n,t,a)}:function(e,n){return-ft(e,n,t,a)}}(this.state.order,this.state.orderBy,t));return Object(K.jsx)("div",{className:Object(N.a)(this.props.classes.tableContainer,this.props.className),children:Object(K.jsxs)(et.a,{className:this.props.classes.table,"aria-label":"simple table",size:"small",stickyHeader:!0,children:[this.renderHead(),Object(K.jsx)(tt.a,{children:a.map((function(t){return e.renderLine(t)}))})]})})}}]),a}(o.a.Component),kt=Object(g.a)((function(e){return{tableContainer:{width:"100%",height:"100%",overflow:"auto"},table:{width:"100%",minWidth:800,maxWidth:1920},cell:{paddingTop:0,paddingBottom:0,paddingLeft:4,paddingRight:4},rowMainWithChildren:{},rowMainWithoutChildren:{},rowNoEdit:{opacity:.3},cellExpand:{width:30},cellButton:{width:30},cellHeader:{fontWeight:"bold",background:(e.palette.type,"#888"),color:"dark"===e.palette.type?"#EEE":"#111",height:48,wordBreak:"break-word",whiteSpace:"pre"},width_name_nicknames:{maxWidth:150},width_ioType:{maxWidth:100},width_type:{maxWidth:100},width_displayTraits:{maxWidth:100},width_roomHint:{maxWidth:100},rowSecondary:{fontStyle:"italic"},cellSecondary:{fontSize:10},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1}}}))(vt),wt=function(e){Object(m.a)(a,e);var t=Object(h.a)(a);function a(e){var n;return Object(u.a)(this,a),(n=t.call(this,e)).myTableRef=o.a.createRef(),n.state={editedSmartName:"",editId:"",editObjectName:"",deleteId:"",expertMode:"true"!==window.localStorage.getItem("App.expertMode"),helpHidden:"true"===window.localStorage.getItem("App.helpHidden"),showSelectId:!1,searchText:"",showConfirmation:"",changed:[],devices:[],message:"",filter:"",loading:!0,browse:!1,expanded:[],lastChanged:"",helpHeight:0},n.columns=[{title:A.a.t("ID"),field:"id",editable:"never",cellStyle:{maxWidth:"12rem",overflow:"hidden",wordBreak:"break-word"}},{title:A.a.t("Smart names"),field:"name.nicknames"},{title:A.a.t("ioBType"),field:"ioType",editable:"never",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"}},{title:A.a.t("Type"),field:"type",lookup:{"action.devices.types.AC_UNIT":"Air conditioning unit","action.devices.types.AIRFRESHENER":"Air Freshener","action.devices.types.AIRPURIFIER":"Air purifier","action.devices.types.AWNING":"Awning","action.devices.types.BLINDS":"Blinds","action.devices.types.BOILER":"Boiler","action.devices.types.CAMERA":"Camera","action.devices.types.COFFEE_MAKER":"Coffee maker","action.devices.types.CURTAIN":"Curtain","action.devices.types.DISHWASHER":"Dishwasher","action.devices.types.DOOR":"Door","action.devices.types.DRYER":"Dryer","action.devices.types.FAN":"Fan","action.devices.types.FIREPLACE":"Fireplace","action.devices.types.GARAGE":"Garage","action.devices.types.GATE":"Gate","action.devices.types.HEATER":"Heater","action.devices.types.HOOD":"Hood","action.devices.types.KETTLE":"Kettle","action.devices.types.LIGHT":"Light","action.devices.types.LOCK":"Lock","action.devices.types.MOP":"Mop","action.devices.types.MICROWAVE":"Microwave","action.devices.types.OUTLET":"Outlet","action.devices.types.OVEN":"Oven","action.devices.types.PERGOLA":"Pergola","action.devices.types.REFRIGERATOR":"Refrigerator","action.devices.types.SCENE":"Scene","action.devices.types.SECURITYSYSTEM":"Security System","action.devices.types.SENSOR":"Sensor","action.devices.types.SHUTTER":"Shutter","action.devices.types.SHOWER":"Shower","action.devices.types.SPEAKER":"Speaker","action.devices.types.SPRINKLER":"Sprinkler","action.devices.types.SWITCH":"Switch","action.devices.types.THERMOSTAT":"Thermostat","action.devices.types.VACUUM":"Vacuum","action.devices.types.VALVE":"Valve","action.devices.types.WASHER":"Washer","action.devices.types.WATERHEATER":"Water heater","action.devices.types.WINDOW":"Window"}},{title:A.a.t("Function/Trait"),field:"displayTraits",lookup:{"action.devices.traits.Brightness":"Brightness","action.devices.traits.ColorSetting_temperature":"ColorSetting_Temperature","action.devices.traits.ColorSetting_spectrumRGB":"ColorSetting_RGB","action.devices.traits.FanSpeed":"FanSpeed","action.devices.traits.LockUnlock":"LockUnlock","action.devices.traits.Modes":"Modes","action.devices.traits.OnOff":"OnOff","action.devices.traits.OpenClose":"OpenClose","action.devices.traits.Scene":"Scene","action.devices.traits.StartStop":"StartStop","action.devices.traits.TemperatureControl_temperatureSetpointCelsius":"Oven_SetTemp","action.devices.traits.TemperatureControl_temperatureAmbientCelsius":"Oven_StatusTemp","action.devices.traits.TemperatureSetting_thermostatMode":"Thermostat_Mode","action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint":"Thermostat_SetTemp","action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient":"Thermostat_StatusTemp","action.devices.traits.TemperatureSetting_thermostatHumidityAmbient":"Thermostat_StatusHumidity","action.devices.traits.Toggles":"Toggles","action.devices.traits.Volume":"Volume"}},{title:A.a.t("Attributes"),field:"displayAttributes",cellStyle:{maxWidth:"12rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}})}},{title:A.a.t("Room"),field:"roomHint",editable:"never"},{title:A.a.t("Auto"),field:"smartEnum",editable:"never",cellStyle:{maxWidth:"3rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0},{title:A.a.t("Conversation to GH"),field:"displayConv2GH",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsxs)("div",{children:["Conversation to Google Home = function(value){ ",Object(K.jsx)("br",{}),Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}}),"}"]})}},{title:A.a.t("Conversation to ioB"),field:"displayConv2iob",cellStyle:{maxWidth:"4rem",overflow:"hidden",wordBreak:"break-word"},expertMode:!0,editComponent:function(e){return Object(K.jsxs)("div",{children:["Conversation to ioBroker = function(value){ ",Object(K.jsx)("br",{}),Object(K.jsx)("textarea",{rows:4,style:{width:"100%",resize:"vertical"},value:e.value,onChange:function(t){return e.onChange(t.target.value)}}),"}"]})}}],n.timerChanged=null,n.browseTimer=null,n.browseTimerCount=0,n.editedSmartName="",n.waitForUpdateID=null,n.onReadyUpdateBound=n.onReadyUpdate.bind(Object(se.a)(n)),n.onResultUpdateBound=n.onResultUpdate.bind(Object(se.a)(n)),n.helpRef=o.a.createRef(),n.props.socket.getObject("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance)).then((function(e){n.props.socket.getState("system.adapter.".concat(n.props.adapterName,".").concat(n.props.instance,".alive")).then((function(t){e&&e.common&&(e.common.enabled||t&&t.val)?n.browse():n.setState({message:A.a.t("Instance must be enabled"),loading:!1,devices:[]})}))})),n}return Object(p.a)(a,[{key:"browse",value:function(e){var t=this;Date.now()-this.lastBrowse<500||(this.lastBrowse=Date.now(),e?this.setState({loading:!0,browse:!0}):this.setState({browse:!0}),this.browseTimer=setTimeout((function(){console.log("Browse timeout!"),t.browseTimer=null,t.browseTimerCount++,t.browseTimerCount<5?t.browse(e):t.setState({message:A.a.t("Cannot read devices!")})}),1e4),this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"browseGH",null).then((function(e){t.browseTimer&&clearTimeout(t.browseTimer),t.browseTimerCount=0,t.browseTimer=null,e&&e.error?t.setState({message:A.a.t(e.error)}):(t.waitForUpdateID&&(t.onEdit(t.waitForUpdateID,e)||t.setState({message:A.a.t("Device %s was not added",t.waitForUpdateID)}),t.waitForUpdateID=null),t.setState({devices:e,loading:!1,changed:[],browse:!1}))})).catch((function(e){t.setState({message:A.a.t(e)})})))}},{key:"onReadyUpdate",value:function(e,t){var a=this;console.log("Update ".concat(e," ").concat(t?t.val+"/"+t.ack:"null")),t&&!0===t.ack&&!0===t.val&&(this.devTimer&&clearTimeout(this.devTimer),this.devTimer=setTimeout((function(){a.devTimer=null,a.browse()}),10))}},{key:"onResultUpdate",value:function(e){e&&!0===e.ack&&e.val&&this.setState({message:e.val})}},{key:"componentDidMount",value:function(){this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesGH"),this.onReadyUpdateBound),this.props.socket.subscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound)}},{key:"componentWillUnmount",value:function(){this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesGH"),this.onReadyUpdateBound),this.props.socket.unsubscribeState("".concat(this.props.adapterName,".").concat(this.props.instance,".smart.updatesResult"),this.onResultUpdateBound),this.timerChanged&&(clearTimeout(this.timerChanged),this.timerChanged=null)}},{key:"informInstance",value:function(e){this.props.socket.sendTo(this.props.adapterName+"."+this.props.instance,"update",e)}},{key:"addChanged",value:function(e,t){var a=JSON.parse(JSON.stringify(this.state.changed));-1===a.indexOf(e)?(a.push(e),this.setState({changed:a},(function(){return t&&t()}))):t&&t()}},{key:"removeChanged",value:function(e){var t=JSON.parse(JSON.stringify(this.state.changed)),a=t.indexOf(e);-1!==a&&(t.splice(a,1),this.setState({changed:t}))}},{key:"onEdit",value:function(e,t){var a=this,n=(t=t||this.state.devices).find((function(t){return t.id===e}));return!!n&&(this.props.socket.getObject(e).then((function(t){var o=n.common&&n.common.smartName?n.common.smartName:n._id;"object"===typeof o&&o&&(o=o[A.a.getLanguage()]||o.en),a.editedSmartName=o,a.setState({editId:e,editedSmartName:o,editObjectName:M.a.getObjectNameFromObj(t,null,{language:A.a.getLanguage()})})})),!0)}},{key:"onDelete",value:function(){var e=this,t=this.state.deleteId;this.addChanged(t,(function(){e.props.socket.getObject(t).then((function(a){return M.a.disableSmartName(a,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.props.socket.setObject(t,a)})).then((function(){e.setState({deleteId:"",showConfirmation:!1,lastChanged:t}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4),e.informInstance(t)})).catch((function(t){return e.props.onError(t)}))}))}},{key:"renderSelectByOn",value:function(e,t){var a=this;if(!1!==t){for(var n=[Object(K.jsx)(te.a,{value:"",children:Object(K.jsx)("em",{children:A.a.t("Default")})},"_"),Object(K.jsx)(te.a,{value:"stored",children:A.a.t("last value")},"last")],o=5;o<=100;o+=5)n.push(Object(K.jsxs)(te.a,{value:o.toString(),children:[o,"%"]},o.toString()));return Object(K.jsxs)($.a,{className:this.props.classes.devSubLineByOn,children:[Object(K.jsx)(ee.a,{className:this.props.classes.devSubLineByOnSelect,value:(t||"").toString(),onChange:function(t){return a.onParamsChange(e,t.target.value)},children:n}),Object(K.jsx)(Q.a,{className:this.props.classes.devSubLineTypeTitle,children:A.a.t("by ON")})]})}return null}},{key:"onParamsChange",value:function(e,t,a){var n=this;this.addChanged(e,(function(){n.props.socket.getObject(e).then((function(o){return M.a.updateSmartName(o,void 0,t,a,n.props.adapterName+"."+n.props.instance,n.props.native.noCommon),n.state.lastChanged!==e&&(n.setState({lastChanged:e}),n.timerChanged&&clearTimeout(n.timerChanged),n.timerChanged=setTimeout((function(){n.setState({lastChanged:""}),n.timerChanged=null}),3e4)),n.props.socket.setObject(e,o)})).then((function(){n.informInstance(e)})).catch((function(e){return n.props.onError(e)}))}))}},{key:"onGHParamsChange",value:function(e,t){var a=this;this.addChanged(e.id,(function(){a.props.socket.getObject(e.id).then((function(n){if(!n||!n.common)return a.setState({message:A.a.t("Object %s is invalid. No common found.",e.id)});if(M.a.updateSmartName(n,a.editedSmartName,void 0,void 0,a.props.adapterName+"."+a.props.instance,a.props.native.noCommon),JSON.stringify(e.displayTraits)!==JSON.stringify(t.displayTraits)&&(Array.isArray(e.displayTraits)||(e.displayTraits=[e.displayTraits]),n.common.smartName.ghTraits=e.displayTraits),e.type!==t.type&&(n.common.smartName.ghType=e.type),e.displayAttributes!==t.displayAttributes){n.common.smartName.ghAttributes=e.displayAttributes;try{n.common.smartName.ghAttributes&&JSON.parse(n.common.smartName.ghAttributes)}catch(o){a.setState({message:A.a.t("Attributes has not correct JSON format.")})}}return e.conv2GH&&(n.common.smartName.ghConv2GH=e.displayConv2GH),e.conv2iob&&(n.common.smartName.ghConv2iob=e.displayConv2iob),a.props.socket.setObject(e.id,n)})).then((function(){a.informInstance(e.id)})).catch((function(e){return a.props.onError(e)}))}))}},{key:"renderMessage",value:function(){var e=this;return this.state.message?Object(K.jsx)(he.a,{text:this.state.message,onClose:function(){return e.setState({message:""})}}):null}},{key:"changeSmartName",value:function(e){var t=this;e&&e.preventDefault(),this.addChanged(this.state.editId,(function(){var e=t.state.editId;t.setState({editId:"",editObjectName:"",lastChanged:e}),t.timerChanged&&clearTimeout(t.timerChanged),t.timerChanged=setTimeout((function(){t.setState({lastChanged:""}),t.timerChanged=null}),3e4),t.props.socket.getObject(e).then((function(a){return M.a.updateSmartName(a,t.editedSmartName,void 0,void 0,t.props.adapterName+"."+t.props.instance,t.props.native.noCommon),t.props.socket.setObject(e,a)})).then((function(){t.informInstance(e)})).catch((function(e){return t.props.onError(e)}))}))}},{key:"getSelectIdDialog",value:function(){var e=this;return this.state.showSelectId?Object(K.jsx)(ne.a,{imagePrefix:"../..",socket:this.props.socket,selected:"",types:["state"],onClose:function(){return e.setState({showSelectId:!1})},onOk:function(t){e.setState({showSelectId:!1}),e.props.socket.getObject(t).then((function(a){if(a){if(!a.common)return e.setState({message:A.a.t("Object %s is invalid. No common found.",t)});var n=M.a.getObjectNameFromObj(a,null,{language:A.a.getLanguage()});M.a.updateSmartName(a,(n||A.a.t("Device name")).replace(/[-_.]+/g," "),void 0,void 0,e.props.adapterName+"."+e.props.instance,e.props.native.noCommon),e.addChanged(a._id),e.waitForUpdateID=a._id,e.state.lastChanged!==a._id&&(e.setState({lastChanged:a._id}),e.timerChanged&&clearTimeout(e.timerChanged),e.timerChanged=setTimeout((function(){e.setState({lastChanged:""}),e.timerChanged=null}),3e4)),a.common.smartName?(a.common.smartName.ghType="action.devices.types.LIGHT",a.common.smartName.ghTraits=["action.devices.traits.OnOff"]):(a.common.smartName={ghType:"action.devices.types.LIGHT"},a.common.smartName={ghTraits:["action.devices.traits.OnOff"]}),e.props.socket.setObject(a._id,a).then((function(){e.informInstance(a._id),e.setState({message:A.a.t("Please add type and trait to complete the Google Home state.")})})).catch((function(t){return e.setState({message:t})}))}else e.setState({message:A.a.t("Invalid ID")})}))}},"dialogSelectGoogle"):null}},{key:"renderListOfDevices",value:function(){var e=this;if(!this.state.showListOfDevices)return null;var t=this.props.classes;return Object(K.jsxs)(S.a,{open:!0,maxWidth:"xl",fullWidth:!0,onClose:function(){return e.setState({showListOfDevices:!1})},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(K.jsxs)(C.a,{id:"alert-dialog-title",children:[A.a.t("List of devices to print out, e.g. to give all device names to your partner.")," ",Object(K.jsx)("span",{role:"img","aria-label":"smile",children:"\ud83d\ude04"})]}),Object(K.jsxs)(x.a,{children:[Object(K.jsxs)("div",{className:t.headerRow,children:[Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Name")}),Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Function")}),Object(K.jsx)("div",{className:t.headerCell,children:A.a.t("Room")})]}),Object(K.jsx)("div",{className:this.props.classes.tableDiv,children:this.state.devices.map((function(e,a){return Object(K.jsxs)("div",{children:[Object(K.jsx)("div",{className:t.tableCell,children:e.name.nicknames.join(", ")}),Object(K.jsx)("div",{className:t.tableCell,children:e.displayTraits.map((function(e){return e.replace("action.devices.traits.","")})).join(", ")}),Object(K.jsx)("div",{className:t.tableCell,children:e.roomHint})]},a)}))})]}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"outlined",onClick:function(){e.setState({showListOfDevices:!1});var t=e.state.devices.map((function(e){return e.name.nicknames.join(", ")+"\t"+e.displayTraits+"\t"+e.roomHint}));Ce()(t.join("\n"))},color:"primary",startIcon:Object(K.jsx)(xe.a,{}),children:A.a.t("Copy to clipboard")}),Object(K.jsx)(z.a,{startIcon:Object(K.jsx)(be.a,{}),variant:"contained",onClick:function(){return e.setState({showListOfDevices:!1})},autoFocus:!0,children:A.a.t("Close")})]})]})}},{key:"renderInstructions",value:function(){var e=window.innerHeight>400&&window.innerWidth>400;if(this.state.helpHidden||this.props.smallDisplay||!e)return null;var t=A.a.t("manualModeHint");return Object(K.jsxs)("div",{style:{width:"100%"},ref:this.helpRef,children:[Object(K.jsxs)("div",{style:{marginTop:"4rem",display:"flex"},children:[Object(K.jsxs)("div",{style:{flex:"50%"},children:[Object(K.jsx)("div",{style:{fontWeight:"bold"},children:A.a.t("Auto Mode")}),Object(K.jsx)("div",{style:{marginTop:"0.8rem",marginRight:"0.8rem"},children:A.a.t("To auto detect devices please assign a room and function to the channel if no channel available than assign to a device. Not only to the state or device. And enable them under SmartEnum/Intelligente Aufz\xe4hlung")})]}),Object(K.jsxs)("div",{style:{flex:"50%"},children:[Object(K.jsx)("div",{style:{fontWeight:"bold"},children:A.a.t("Manual Mode")}),Object(K.jsx)("span",{children:M.a.renderTextWithA(t)})]})]}),Object(K.jsx)("br",{}),Object(K.jsx)("div",{style:{flex:"100%"},children:Object(K.jsx)("div",{style:{fontWeight:"bold"},children:M.a.renderTextWithA(A.a.t("For help use this forum"))})})]})}},{key:"renderToolbar",value:function(){var e=this,t=window.innerHeight>400&&window.innerWidth>400;return Object(K.jsxs)(Qe.a,{variant:"dense",children:[Object(K.jsx)(X.a,{size:"small",color:"secondary","aria-label":"Add",className:this.props.classes.button,onClick:function(){return e.setState({showSelectId:!0})},children:Object(K.jsx)(W.a,{})}),Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:"primary","aria-label":"Refresh",className:this.props.classes.button,onClick:function(){return e.browse(!0)},disabled:this.state.browse,children:this.state.browse?Object(K.jsx)(ge.a,{size:20}):Object(K.jsx)(W.j,{})}),t&&!this.state.hideHelp?Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:this.state.helpHidden?"default":"primary","aria-label":"Help",className:this.props.classes.button,title:A.a.t("Show/Hide help"),onClick:function(){window.localStorage.setItem("App.helpHidden",e.state.helpHidden?"false":"true"),e.setState({helpHidden:!e.state.helpHidden})},disabled:this.state.browse,children:Object(K.jsx)(W.h,{})}):null,Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},size:"small",color:this.state.expertMode?"primary":"default","aria-label":"Help",className:this.props.classes.button,title:A.a.t("Toggle expert mode"),onClick:function(){window.localStorage.setItem("App.expertMode",e.state.expertMode?"false":"true"),e.setState({expertMode:!e.state.expertMode})},disabled:this.state.browse,children:Object(K.jsx)($e.a,{})}),Object(K.jsx)(X.a,{style:{marginLeft:"1rem"},title:A.a.t("Show all devices for print out"),size:"small","aria-label":"List of devices",className:this.props.classes.button,onClick:function(){return e.setState({showListOfDevices:!0})},disabled:this.state.browse,children:Object(K.jsx)(W.i,{})}),this.props.smallDisplay?null:Object(K.jsx)(_.a,{className:this.props.classes.searchText,label:A.a.t("Filter"),value:this.state.searchText,onChange:function(t){return e.setState({searchText:t.target.value})},InputProps:{endAdornment:this.state.searchText?Object(K.jsx)(U.a,{onClick:function(){return e.setState({searchText:""})},children:Object(K.jsx)(W.b,{})}):void 0}})]})}},{key:"componentDidUpdate",value:function(e,t,a){var n=this;if(this.helpRef.current){var o=this.helpRef.current.clientHeight;this.state.helpHeight!==o&&(!this.state.helpHidden&&o+64+48+200>window.innerHeight?setTimeout((function(){return n.setState({helpHeight:o,helpHidden:!0,hideHelp:!0})}),50):setTimeout((function(){return n.setState({helpHeight:o})}),50))}else this.state.helpHeight&&setTimeout((function(){return n.setState({helpHeight:0})}),50)}},{key:"render",value:function(){var e=this;if(this.state.loading)return Object(K.jsx)(ge.a,{},"alexaProgress");var t=this.state.searchText.toLowerCase(),a=this.state.searchText?this.state.devices.filter((function(e){var a,n,o,i,s,r;return(null===(a=e.name)||void 0===a||null===(n=a.name)||void 0===n?void 0:n.toLowerCase().includes(t))||(null===(o=e.name)||void 0===o||null===(i=o.defaultNames)||void 0===i?void 0:i.find((function(e){return e.toLowerCase().includes(t)})))||(null===(s=e.name)||void 0===s||null===(r=s.nicknames)||void 0===r?void 0:r.find((function(e){return e.toLowerCase().includes(t)})))})):this.state.devices;return Object(K.jsxs)("form",{className:this.props.classes.tab,children:[this.renderToolbar(),this.renderInstructions(),Object(K.jsx)("div",{className:this.props.classes.tableDiv,style:{height:"calc(100% - ".concat(48+(this.state.helpHeight?this.state.helpHeight+64:0),"px)")},children:Object(K.jsx)(kt,{columns:this.state.expertMode?this.columns:this.columns.filter((function(e){return!e.expertMode})),data:a,onUpdate:function(t,a){t.name.nicknames&&Array.isArray(t.name.nicknames)&&(t.name.nicknames=t.name.nicknames.join(",")),e.editedSmartName=t.name.nicknames,e.setState({editId:t.id},(function(){t.type&&t.displayTraits?e.setState({browse:!0}):e.setState({browse:!0,message:A.a.t("Please add action and trait to complete the Google Home state.")}),e.onGHParamsChange(t,a);var n=Object(Ye.a)(e.state.devices);n[n.indexOf(a)]=t,e.setState(Object(d.a)(Object(d.a)({},e.state),{},{devices:n}))}))},onDelete:function(t){return"X"===t.smartEnum?e.setState({deleteId:t.id}):e.props.socket.getObject(t.id).then((function(a){return a&&a.common&&a.common.smartName&&(delete a.common.smartName.ghTraits,delete a.common.smartName.ghType,delete a.common.smartName.ghAttributes),e.props.socket.setObject(t.id,a)})),new Promise((function(a){setTimeout((function(){e.state.deleteId?e.onDelete():e.informInstance(t.id),a();var n=Object(Ye.a)(e.state.devices);n.splice(n.indexOf(t),1),e.setState(Object(d.a)(Object(d.a)({},e.state),{},{devices:n}))}),600)}))}})}),this.renderMessage(),this.getSelectIdDialog(),this.renderListOfDevices()]},"gh")}}]),a}(n.Component),jt=Object(g.a)((function(e){return{tab:{height:"100%",overflow:"hidden"},tableDiv:{width:"100%",overflow:"hidden",height:"calc(100% - 48px)"},searchText:{width:150,marginLeft:e.spacing(1),verticalAlign:"middle"},headerRow:{paddingLeft:e.spacing(1),background:e.palette.primary.main},headerCell:{display:"inline-block",verticalAlign:"top",width:"30%"},tableCell:{display:"inline-block",verticalAlign:"top",width:"30%"}}}))((bt=wt,function(e){return Object(K.jsx)(bt,Object(d.a)({smallDisplay:Object(Ze.a)("(max-width:600px)")},e))})),yt=function(e){Object(m.a)(n,e);var t=Object(h.a)(n);function n(e){Object(u.a)(this,n);var o=Object(d.a)({},e);return o.encryptedFields=["pass"],o.translations={en:a(331),de:a(332),ru:a(333),pt:a(334),nl:a(335),fr:a(336),it:a(337),es:a(338),pl:a(339),"zh-cn":a(340)},t.call(this,e,o)}return Object(p.a)(n,[{key:"onConnectionReady",value:function(){var e=this;this.socket.getState("".concat(this.adapterName,".").concat(this.instance,".info.ackTempPassword")).then((function(t){t&&t.val||e.setState({showAckTempPasswordDialog:!0})}))}},{key:"getSelectedTab",value:function(){var e=this.state.selectedTab;return e&&"options"!==e?"enums"===e?1:"alexa"===e?2:"google"===e?2+(this.state.native.amazonAlexa?1:0):"alisa"===e?2+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)):"extended"===e?2+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)+(this.state.native.yandexAlisa?1:0)):"services"===e?3+((this.state.native.amazonAlexa?1:0)+(this.state.native.googleHome?1:0)+(this.state.native.yandexAlisa?1:0)):void 0:0}},{key:"renderAckTempPasswordDialog",value:function(){var e=this;return this.state.showAckTempPasswordDialog?Object(K.jsxs)(S.a,{open:!0,onClose:function(){return e.setState({showAckTempPasswordDialog:!1},(function(){return setTimeout((function(){return e.setState({showAckTempPasswordDialog:!0})}),1e3)}))},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[Object(K.jsx)(C.a,{id:"alert-dialog-title",children:A.a.t("Information: The skill linking process was changed!")}),Object(K.jsx)(x.a,{children:Object(K.jsxs)(T.a,{id:"alert-dialog-description",children:[A.a.t("The linking process has been changed for a few months."),A.a.t("Now there is no temporary password that will be sent by email."),Object(K.jsx)("br",{}),Object(K.jsx)("br",{}),Object(K.jsx)("b",{children:A.a.t("The password is equal with ioBroker.pro and with password that was entered here in the settings!")})]})}),Object(K.jsxs)(O.a,{children:[Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.setState({showAckTempPasswordDialog:!1},(function(){return setTimeout((function(){return e.setState({showAckTempPasswordDialog:!0})}),1e3)}))},autoFocus:!0,children:A.a.t("Not understood")}),Object(K.jsx)(z.a,{variant:"contained",onClick:function(){return e.socket.setState("".concat(e.adapterName,".").concat(e.instance,".info.ackTempPassword"),!0,!0).then((function(){return e.setState({showAckTempPasswordDialog:!1})}))},color:"primary",autoFocus:!0,children:A.a.t("Roger that")})]})]}):null}},{key:"render",value:function(){var e=this;return this.state.loaded?Object(K.jsx)(c.a,{theme:this.state.theme,children:Object(K.jsxs)("div",{className:"App",style:{background:this.state.theme.palette.background.default,color:this.state.theme.palette.text.primary},children:[Object(K.jsx)(f.a,{position:"static",children:Object(K.jsxs)(b.a,{value:this.getSelectedTab(),onChange:function(t,a){return e.selectTab(t.target.parentNode.dataset.name,a)},scrollButtons:"auto",children:[Object(K.jsx)(v.a,{label:A.a.t("Options"),"data-name":"options"}),Object(K.jsx)(v.a,{label:A.a.t("Smart enums"),"data-name":"enums"}),this.state.native.amazonAlexa&&Object(K.jsx)(v.a,{selected:"alexa"===this.state.selectedTab,label:A.a.t("Alexa devices"),"data-name":"alexa"}),this.state.native.googleHome&&Object(K.jsx)(v.a,{selected:"google"===this.state.selectedTab,label:A.a.t("Google devices"),"data-name":"google"}),this.state.native.yandexAlisa&&Object(K.jsx)(v.a,{selected:"alisa"===this.state.selectedTab,label:A.a.t("Alisa devices"),"data-name":"alisa"}),Object(K.jsx)(v.a,{label:A.a.t("Extended options"),"data-name":"extended"}),Object(K.jsx)(v.a,{label:A.a.t("Services and IFTTT"),"data-name":"services"})]})}),Object(K.jsxs)("div",{className:this.isIFrame?this.props.classes.tabContentIFrame:this.props.classes.tabContent,children:[("options"===this.state.selectedTab||!this.state.selectedTab)&&Object(K.jsx)(Y,{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,changed:this.state.changed,onChange:function(t,a,n){return e.updateNativeValue(t,a,n)}},"options"),"enums"===this.state.selectedTab&&Object(K.jsx)(je,{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,adapterName:this.adapterName},"enums"),"alexa"===this.state.selectedTab&&Object(K.jsx)(Ge,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"alexa"),"google"===this.state.selectedTab&&Object(K.jsx)(jt,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"google"),"alisa"===this.state.selectedTab&&Object(K.jsx)(Je,{themeType:this.state.themeType,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()})},adapterName:this.adapterName,instance:this.instance},"alisa"),"extended"===this.state.selectedTab&&Object(K.jsx)(ie,{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,adapterName:this.adapterName,onChange:function(t,a){return e.updateNativeValue(t,a)}},"extended"),"services"===this.state.selectedTab&&Object(K.jsx)(ue,{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,adapterName:this.adapterName,onShowError:function(t){return e.showError(t)},onChange:function(t,a){return e.updateNativeValue(t,a)}},"services")]}),this.renderError(),this.renderSaveCloseButtons(),this.renderAckTempPasswordDialog()]})}):Object(K.jsx)(c.a,{theme:this.state.theme,children:Object(K.jsx)(y.a,{theme:this.state.themeType})})}}]),n}(w.a),St=Object(g.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"}}}))(yt);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 Ot=a(176),xt=a(170),Tt=a.n(xt);window.adapterName="iot";var Ct=M.a.getThemeName();console.log("iobroker."+window.adapterName+"@"+Ot.a+' using theme "'+Ct+'"'),"localhost:3000"!==window.location.host&&r.e({dsn:"https://5ad729dbed504d15aa8bde423cae9a8e@sentry.iobroker.net/57",release:"iobroker."+window.adapterName+"@"+Ot.a,integrations:[new l.a]}),function e(){return s.a.render(Object(K.jsx)(c.a,{theme:Tt()(Ct),children:Object(K.jsx)(St,{onThemeChange:function(t){Ct=t,e()}})}),document.getElementById("root"))}(),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()}))}},[[341,1,2]]]); +//# sourceMappingURL=main.7fb9782b.chunk.js.map \ No newline at end of file diff --git a/admin/static/js/main.a83286f1.chunk.js.map b/admin/static/js/main.7fb9782b.chunk.js.map similarity index 99% rename from admin/static/js/main.a83286f1.chunk.js.map rename to admin/static/js/main.7fb9782b.chunk.js.map index 0c18c5f8..591ae089 100644 --- a/admin/static/js/main.a83286f1.chunk.js.map +++ b/admin/static/js/main.7fb9782b.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["Tabs/Options.js","Tabs/Extended.js","Tabs/Services.js","Tabs/Enums.js","Tabs/AlexaSmartNames.js","Tabs/AlisaSmartNames.js","Components/TreeTable.js","Tabs/GoogleSmartNames.js","App.js","serviceWorker.js","index.js"],"names":["Options","props","onAliveChanged","id","state","adapterName","instance","setState","isInstanceAlive","val","inAction","toast","errorWithPercent","socket","getState","then","this","subscribeState","unsubscribeState","pass","length","match","I18n","t","title","attr","type","error","checkPassword","native","TextField","label","className","classes","input","value","helperText","onChange","e","target","margin","Card","card","CardActionArea","CardMedia","media","image","CardContent","Utils","renderTextWithA","CardActions","style","textAlign","Button","variant","size","color","onClick","window","open","focus","forceUserCreate","ack","Promise","resolve","getObject","obj","common","enabled","setObject","catch","err","onError","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","onClose","ContentProps","message","action","IconButton","aria-label","close","FormControlLabel","Object","assign","paddingTop","controlElement","control","Checkbox","checked","tab","text","errorText","onLoad","clsx","column","columnSettings","renderInput","renderCheckbox","marginTop","googleHome","newVal","changed","hintUnsaved","button","disabled","resetCerts","marginRight","fontWeight","columnLogo","renderCard","renderToast","Component","withStyles","theme","width","minHeight","minWidth","marginBottom","maxWidth","height","display","verticalAlign","cannotUse","fontSize","fontStyle","ExtendedOptions","showSelectId","options","FormControl","Select","Input","name","map","item","MenuItem","FormHelperText","imagePrefix","selected","types","onOk","renderSelect","Fab","marginLeft","getSelectIdDialog","Services","running","text2commandList","nightscoutList","addValue","onKeyChangedBound","onKeyChanged","bind","getAdapterInstances","list","nsList","_id","replace","key","showError","chips","split","filter","a","pos","indexOf","splice","join","push","email","login","secret","nightscoutPass","chipsDiv","onKeyUp","keyCode","onChipsAdd","trim","word","Chip","onDelete","onChipsDelete","chip","reissueUrlKey","fullSize","encodeURIComponent","readOnly","copyToClipboard","renderChips","text2command","nightscout","normalSize","calcNightscoutSecret","amazonAlexaBlood","paddingLeft","amazonAlexaBloodShortAnswer","border","borderRadius","padding","Enums","editId","editedSmartName","funcs","rooms","loading","onEnumUpdateBound","onEnumUpdate","getEnums","res","keys","forEach","subscribeObject","unsubscribeObject","removeChanged","updateObjInState","sendTo","JSON","parse","stringify","i","find","smartName","getSmartNameFromObj","disableSmartName","noCommon","removeSmartName","addChanged","informInstance","setTimeout","getLanguage","en","getObjectNameFromObj","language","enumLine","background","enumLineName","opacity","enumLineSubName","enumLineId","Switch","enumLineEnabled","onToggleEnum","enumLineEdit","onEdit","renderEnum","startsWith","newObj","updateSmartName","undefined","Dialog","fullWidth","aria-labelledby","aria-describedby","DialogTitle","DialogContent","autoFocus","DialogActions","changeSmartName","startIcon","CircularProgress","columnHeader","columnDiv","renderEnums","renderMessage","renderEditDialog","overflow","position","right","top","palette","primary","light","contrastText","colorOn","colorOff","colorSet","colorRead","CHANGED_COLOR","DEFAULT_CHANNEL_COLOR_DARK","DEFAULT_CHANNEL_COLOR_LIGHT","LAST_CHANGED_COLOR_DARK","LAST_CHANGED_COLOR_LIGHT","actionsMapping","turnOn","icon","IconOn","desc","turnOff","setTargetTemperature","IconTemperature","incrementTargetTemperature","IconUp","decrementTargetTemperature","IconDown","setPercentage","IconPercentage","incrementPercentage","decrementPercentage","setColor","IconColor","setColorTemperature","IconBulb","incrementColorTemperature","decrementColorTemperature","getTargetTemperature","IconThermometer","getTemperatureReading","setLockState","IconLock","getLockState","SMARTTYPES","AlexaSmartNames","translated","editedSmartType","editObjectName","deleteId","showListOfDevices","showConfirmation","devices","browse","expanded","lastChanged","timerChanged","browseTimer","browseTimerCount","waitForUpdateID","onReadyUpdateBound","onReadyUpdate","onResultUpdateBound","onResultUpdate","isIndicate","Date","now","lastBrowse","console","log","clearTimeout","devTimer","cb","device","dev","additionalApplianceDetails","friendlyNames","friendlyName","group","smartType","actions","sort","b","Icon","actionIcon","lineNum","items","toString","devSubLineByOn","devSubLineByOnSelect","onParamsChange","devSubLineTypeTitle","byON","renderSelectTypeSelector","result","channels","names","byONs","smarttypes","smartTypes","c","chan","hasOwnProperty","themeType","devSubLine","devLineActions","channelLineActions","renderActions","devSubLineName","devSubSubLineName","renderSelectType","renderSelectByOn","devSubLineDelete","onAskDelete","nameModified","devModified","devCount","ch","el","devLine","devLineNumber","devLineExpand","onExpand","Badge","badgeContent","devLineNameBlock","devLineName","devLineDescription","friendlyDescription","devLineProgress","devLineEdit","devLineDelete","renderChannels","preventDefault","editedId","onKeyDown","defaultValue","toLowerCase","renderDevice","role","headerRow","headerCell","tableDiv","tableCell","lines","copy","placeholder","InputProps","endAdornment","renderDevices","renderConfirmDialog","renderListOfDevices","devLineEnabled","left","devSubLineEdit","spacing","main","OnOff","Brightness","RGB","getActualTemperature","getActualHumidity","IconHumidity","getMotion","IconMotion","getContact","IconContact","AlisaDevices","includes","iobID","getId","func","toUpperCase","devSubSubLine","setId","devSubLineSetId","attributes","description","getAttr","lookup","shift","setAttr","descendingComparator","orderBy","_a","_b","TreeTable","opened","localStorage","getItem","Array","isArray","editMode","deleteMode","editData","order","columns","field","col","level","editable","TableCell","cell","cellSecondary","cellStyle","component","v","data","parentId","children","it","TableRow","row","rowSecondary","rowMainWithChildren","rowMainWithoutChildren","rowNoEdit","cellExpand","scope","ii","renderCell","cellButton","newData","onUpdate","renderLine","property","isAsc","TableHead","cellHeader","sortDirection","TableSortLabel","active","direction","handleRequestSort","visuallyHidden","table","array","comparator","stabilizedThis","index","stableSort","getComparator","tableContainer","Table","stickyHeader","renderHead","TableBody","React","paddingBottom","paddingRight","wordBreak","whiteSpace","width_name_nicknames","width_ioType","width_type","width_displayTraits","width_roomHint","clip","GoogleSmartNames","myTableRef","createRef","expertMode","helpHidden","searchText","helpHeight","editComponent","rows","resize","helpRef","oldData","displayTraits","ghTraits","ghType","displayAttributes","ghAttributes","conv2GH","ghConv2GH","displayConv2GH","conv2iob","ghConv2iob","displayConv2iob","nicknames","n","roomHint","desktop","innerHeight","innerWidth","smallDisplay","manualModeHint","ref","flex","Toolbar","hideHelp","setItem","prevProps","prevState","snapshot","current","h","clientHeight","defaultNames","renderToolbar","renderInstructions","onGHParamsChange","smartEnum","useMediaQuery","App","extendedProps","encryptedFields","translations","require","showAckTempPasswordDialog","selectedTab","amazonAlexa","yandexAlisa","DialogContentText","loaded","default","AppBar","Tabs","getSelectedTab","selectTab","parentNode","dataset","scrollButtons","Tab","data-name","isIFrame","tabContentIFrame","tabContent","onLoadConfig","updateNativeValue","onShowError","renderError","renderSaveCloseButtons","renderAckTempPasswordDialog","GenericApp","root","Boolean","location","hostname","themeName","getThemeName","version","host","Sentry","dsn","release","integrations","SentryIntegrations","build","ReactDOM","render","onThemeChange","_theme","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.a83286f1.chunk.js","sourcesContent":["import React, {Component} from 'react';\nimport {withStyles} from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Card from '@material-ui/core/Card';\nimport CardActionArea from '@material-ui/core/CardActionArea';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport IconButton from '@material-ui/core/IconButton';\nimport Utils from '@iobroker/adapter-react/Components/Utils'\n\nimport {MdRefresh as IconReload} from 'react-icons/md';\nimport {MdClose as IconClose} from 'react-icons/md';\n\nimport I18n from '@iobroker/adapter-react/i18n';\nimport Logo from '@iobroker/adapter-react/Components/Logo';\n\nconst styles = theme => ({\n tab: {\n width: '100%',\n minHeight: '100%'\n },\n input: {\n minWidth: 300\n },\n button: {\n marginRight: 20,\n marginBottom: 40,\n },\n card: {\n maxWidth: 345,\n textAlign: 'center'\n },\n media: {\n height: 180,\n },\n column: {\n display: 'inline-block',\n verticalAlign: 'top',\n marginRight: 20\n },\n columnLogo: {\n width: 350,\n marginRight: 0\n },\n columnSettings: {\n width: 'calc(100% - 370px)',\n },\n cannotUse: {\n color: 'red',\n fontWeight: 'bold',\n },\n hintUnsaved: {\n fontSize: 12,\n color: 'red',\n fontStyle: 'italic',\n }\n});\n\nclass Options extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n inAction: false,\n toast: '',\n isInstanceAlive: false,\n errorWithPercent: false,\n };\n\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(state =>\n this.setState({isInstanceAlive: state && state.val}));\n }\n\n componentDidMount() {\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAliveChanged);\n }\n\n componentWillUnmount() {\n this.props.socket.unsubscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAliveChanged);\n }\n\n onAliveChanged = (id, state) => {\n if (id === `system.adapter.${this.props.adapterName}.${this.props.instance}.alive`) {\n this.setState({isInstanceAlive: state && state.val});\n }\n };\n\n checkPassword(pass) {\n if (pass.length < 8 || !pass.match(/[a-z]/) || !pass.match(/[A-Z]/) || !pass.match(/\\d/)) {\n return I18n.t('invalid_password_warning');\n } else {\n return false;\n }\n }\n\n renderInput(title, attr, type) {\n const error = attr === 'pass' && this.checkPassword(this.props.native[attr]);\n return this.props.onChange(attr, e.target.value) }\n margin=\"normal\"\n />;\n }\n\n renderCard() {\n return \n \n \n {Utils.renderTextWithA(I18n.t('amazon link'))}\n \n \n \n \n ;\n }\n\n resetCerts(forceUserCreate) {\n this.setState({ inAction: true });\n\n this.props.socket.setState('iot.' + this.props.instance + '.certs.private', {val: '', ack: true})\n .then(() => this.props.socket.setState('iot.' + this.props.instance + '.certs.id', {val: '', ack: true}))\n .then(() => this.props.socket.setState('iot.' + this.props.instance + '.certs.public', {val: '', ack: true}))\n .then(() => this.props.socket.setState('iot.' + this.props.instance + '.certs.certificate', {val: '', ack: true}))\n .then(() => {\n if (forceUserCreate) {\n return this.props.socket.setState('iot.' + this.props.instance + '.certs.forceUserCreate', {val: true, ack: true});\n } else {\n return Promise.resolve();\n }\n })\n // read actual instance object\n .then(() => this.props.socket.getObject('system.adapter.iot.' + this.props.instance))\n .then(obj => {\n if (!obj || !obj.common || !obj.common.enabled) {\n // adapter is disabled, do not restart it\n return Promise.resolve();\n } else {\n // restart adapter\n return this.props.socket.setObject('system.adapter.iot.' + this.props.instance, obj);\n }\n })\n .then(() => this.setState({toast: I18n.t('Certificates will be updated after start')}))\n .catch(err => this.props.onError(err))\n .then(() => this.setState({inAction: false}));\n }\n\n renderToast() {\n if (!this.state.toast) return null;\n return (\n this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={{this.state.toast}}\n action={[\n this.setState({toast: ''})}\n >\n \n ,\n ]}\n />);\n }\n\n renderCheckbox(title, attr, style) {\n return this.props.onChange(attr, !this.props.native[attr])}\n color=\"primary\"\n />\n }\n label={I18n.t(title)}\n />;\n }\n\n render() {\n return
\n this.setState({errorText: text}) }\n onLoad={ this.props.onLoad }\n />\n
\n { this.renderInput('ioBroker.pro Login', 'login') }
\n { this.renderInput('ioBroker.pro Password', 'pass', 'password') }
\n { this.renderCheckbox('Amazon Alexa', 'amazonAlexa') }\n {\n // activate alexa if google home is on (temporary)\n const newVal = !this.props.native.googleHome;\n this.props.onChange('googleHome', newVal, () =>\n newVal && this.props.onChange('amazonAlexa', true));\n }}\n color=\"primary\"\n />\n }\n label={I18n.t('Google Home')}\n />\n {this.renderCheckbox('Yandex Алиса', 'yandexAlisa')}\n
\n\n

{I18n.t('new_certs_tip')}

\n {this.props.changed ?
{I18n.t('Save settings before pressing this button')}
: null}\n \n\n

{I18n.t('new_credentials_tip')}

\n {this.props.changed ?
{I18n.t('Save settings before pressing this button')}
: null}\n \n

{ Utils.renderTextWithA(I18n.t('forum_tip')) }

\n

{ Utils.renderTextWithA(I18n.t('help_tip')) }

\n

{ Utils.renderTextWithA(I18n.t('help_link_tip1')) }

\n

{ Utils.renderTextWithA(I18n.t('help_link_tip2')) }

\n

{ Utils.renderTextWithA(I18n.t('help_link_tip3')) }

\n
\n
{this.renderCard() }
\n { this.renderToast() }\n ;\n }\n}\n\nOptions.propTypes = {\n common: PropTypes.object.isRequired,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n adapterName: PropTypes.string.isRequired,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onChange: PropTypes.func,\n changed: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(Options);\n","import React, {Component} from 'react';\nimport {withStyles} from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport TextField from '@material-ui/core/TextField';\nimport Input from '@material-ui/core/Input';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport Fab from '@material-ui/core/Fab';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport {MdAdd as IconAdd} from 'react-icons/md';\n\nimport I18n from '@iobroker/adapter-react/i18n';\nimport DialogSelectID from '@iobroker/adapter-react/Dialogs/SelectID';\nimport Utils from '@iobroker/adapter-react/Components/Utils'\n\nconst styles = theme => ({\n tab: {\n width: '100%',\n minHeight: '100%'\n },\n input: {\n marginTop: 0,\n minWidth: 400\n },\n button: {\n marginRight: 20,\n },\n card: {\n maxWidth: 345,\n textAlign: 'center'\n },\n media: {\n height: 180,\n },\n column: {\n display: 'inline-block',\n verticalAlign: 'top',\n marginRight: 20\n },\n columnLogo: {\n width: 350,\n marginRight: 0\n },\n columnSettings: {\n width: 'calc(100% - 370px)',\n },\n controlElement: {\n //background: '#d2d2d2',\n marginBottom: 5\n }\n});\n\nclass ExtendedOptions extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n showSelectId: false,\n };\n\n }\n\n renderInput(title, attr, type) {\n return this.props.onChange(attr, e.target.value)}\n margin=\"normal\"\n />;\n }\n\n renderSelect(title, attr, options, style) {\n return \n this.props.onChange(attr, e.target.value === '_' ? '' : e.target.value)}\n input={}\n >\n {options.map(item => {I18n.t(item.title)})}\n \n {I18n.t(title)}\n ;\n }\n\n renderCheckbox(title, attr, style) {\n return this.props.onChange(attr, !this.props.native[attr])}\n color=\"primary\"\n />\n }\n label={I18n.t(title)}\n />;\n }\n\n getSelectIdDialog(attr) {\n if (this.state.showSelectId) {\n return this.setState({showSelectId: false})}\n onOk={selected => {\n this.setState({showSelectId: false});\n this.props.onChange(attr, selected);\n }}\n />;\n } else {\n return null;\n }\n }\n\n render() {\n return (\n
\n {this.renderInput('Cloud URL', 'cloudUrl')}
\n {this.renderSelect('Language', 'language', [\n {title: 'default', value: ''},\n {title: 'english', value: 'en'},\n {title: 'Deutsch', value: 'de'},\n {title: 'русский', value: 'ru'}\n ], {marginTop: 10})}
\n {this.renderCheckbox('Place function in names first', 'functionFirst', {marginTop: 10})}
\n {this.renderInput('Concatenate words with', 'concatWord')}
\n {this.renderInput('Replace in names', 'replaces')}
\n
\n {this.renderInput('OFF level for switches in %', 'deviceOffLevel')}\n {I18n.t('(Set to 0 if behavior not desired)')}\n
\n
\n {this.renderInput('Write response to', 'responseOID')}\n this.setState({showSelectId: true})} aria-label=\"Add\" style={{marginLeft: 5, marginTop: 10}}>
\n
\n
\n {this.renderCheckbox('Personal settings (only pro)', 'noCommon')}\n {Utils.renderTextWithA(I18n.t('help_tip'))}
\n
\n {this.renderCheckbox('Debug outputs', 'debug')}\n {this.getSelectIdDialog('responseOID')}\n
\n );\n }\n}\n\nExtendedOptions.propTypes = {\n common: PropTypes.object.isRequired,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onChange: PropTypes.func,\n socket: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(ExtendedOptions);\n","import React, {Component} from 'react';\nimport {withStyles} from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport TextField from '@material-ui/core/TextField';\nimport Input from '@material-ui/core/Input';\nimport FormHelperText from '@material-ui/core/FormHelperText';\nimport Fab from '@material-ui/core/Fab';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Button from '@material-ui/core/Button';\nimport IconButton from '@material-ui/core/IconButton';\nimport Snackbar from '@material-ui/core/Snackbar';\nimport Chip from '@material-ui/core/Chip';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\n\nimport {MdRefresh as IconRefresh} from 'react-icons/md';\nimport {MdClose as IconClose} from 'react-icons/md';\nimport {MdAdd as IconAdd} from 'react-icons/md';\n\nimport IconCopy from '@iobroker/adapter-react/icons/IconCopy';\nimport I18n from '@iobroker/adapter-react/i18n';\nimport Utils from '@iobroker/adapter-react/Components/Utils';\nimport DialogSelectID from '@iobroker/adapter-react/Dialogs/SelectID';\n\nconst styles = theme => ({\n tab: {\n width: '100%',\n minHeight: '100%'\n },\n input: {\n marginTop: 0,\n minWidth: 400\n },\n fullSize: {\n width: 'calc(100% - 64px)'\n },\n normalSize: {\n width: 'calc(30% - 64px)',\n marginLeft: 10\n },\n button: {\n marginRight: 20,\n },\n card: {\n maxWidth: 345,\n textAlign: 'center'\n },\n media: {\n height: 180,\n },\n column: {\n display: 'inline-block',\n verticalAlign: 'top',\n marginRight: 20\n },\n columnLogo: {\n width: 350,\n marginRight: 0\n },\n columnSettings: {\n width: 'calc(100% - 370px)',\n },\n controlElement: {\n //background: '#d2d2d2',\n marginBottom: 5\n },\n chips: {\n border: '1px solid #DDD',\n borderRadius: 1,\n width: 'calc(100% - 250px)',\n display: 'inline-block',\n padding: 5,\n minHeight: 32,\n marginLeft: 10,\n marginTop: 20\n },\n chip: {\n marginRight: 5\n }\n});\n\nclass Services extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n running: false,\n toast: '',\n showSelectId: false,\n text2commandList: [],\n nightscoutList: [],\n addValue: '',\n isInstanceAlive: false\n };\n this.onKeyChangedBound = this.onKeyChanged.bind(this);\n\n this.props.socket.getAdapterInstances('text2command')\n .then(list =>\n this.props.socket.getAdapterInstances('nightscout')\n .then(nsList => this.setState({\n nightscoutList: nsList.map(obj => obj._id.replace('system.adapter.nightscout.', '')),\n text2commandList: list.map(obj => obj._id.replace('system.adapter.text2command.', ''))\n })));\n }\n\n componentDidMount() {\n this.props.socket.subscribeState('iot.' + this.props.instance + '.certs.urlKey', this.onKeyChangedBound);\n\n this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`).then(obj =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(state =>\n this.setState({isInstanceAlive: obj && obj.common && state && state.val})));\n }\n\n componentWillUnmount() {\n this.props.socket.unsubscribeState('iot.' + this.props.instance + '.certs.urlKey', this.onKeyChangedBound);\n }\n\n onKeyChanged(id, state) {\n state && this.setState({key: state.val});\n }\n\n renderInput(title, attr, type) {\n return this.props.onChange(attr, e.target.value)}\n margin=\"normal\"\n />;\n }\n\n reissueUrlKey() {\n this.setState({running: true});\n return this.props.socket.setState('iot.' + this.props.instance + '.certs.urlKey', {val: '', ack: true})\n .then(() => this.props.socket.getObject('system.adapter.iot.' + this.props.instance))\n .then(obj => {\n if (!obj || !obj.common || !obj.common.enabled) {\n this.setState({running: false, toast: I18n.t('Key will be updated after start')});\n } else {\n return this.props.socket.setObject('system.adapter.iot.' + this.props.instance, obj);\n }\n })\n .then(() => this.setState({running: false, toast: I18n.t('Certificates will be updated after initiated restart')}))\n .catch(err => {\n this.setState({running: false});\n this.props.showError(err);\n });\n }\n\n renderToast() {\n if (!this.state.toast) return null;\n return (\n this.setState({toast: ''})}\n ContentProps={{\n 'aria-describedby': 'message-id',\n }}\n message={{this.state.toast}}\n action={[\n this.setState({toast: ''})}\n >\n \n ,\n ]}\n />);\n }\n\n onChipsDelete(attr, value) {\n const chips = (this.props.native[attr] || '').split(/[,;\\s]/).filter(a => !!a);\n const pos = chips.indexOf(value);\n if (pos !== -1) {\n chips.splice(pos, 1);\n this.props.onChange(attr, chips.join(' '));\n }\n }\n\n onChipsAdd(attr) {\n const chips = (this.props.native[attr] || '').split(/[,;\\s]/).filter(a => !!a);\n const pos = chips.indexOf(this.state.addValue);\n if (pos === -1) {\n chips.push(this.state.addValue);\n this.setState({addValue: ''}, () => this.props.onChange(attr, chips.join(' ')));\n }\n }\n\n calcNightscoutSecret() {\n const email = this.props.native.login.replace(/[^\\w\\d-_]/g, '_');\n const secret = this.props.native.nightscoutPass;\n return email + (secret ? '-' + secret : '');\n }\n\n getSelectIdDialog(attr) {\n if (this.state.showSelectId) {\n return this.setState({showSelectId: false})}\n onOk={selected => {\n this.setState({showSelectId: false});\n this.props.onChange(attr, selected);\n }}\n />;\n } else {\n return null;\n }\n }\n\n renderChips(label, attr) {\n return
\n {Utils.renderTextWithA(I18n.t(label))}\n e.keyCode === 13 && this.onChipsAdd(attr)}\n onChange={e => this.setState({addValue: e.target.value.trim()})}\n margin=\"normal\"\n />\n\n this.onChipsAdd(attr)} style={{marginLeft: 5, marginTop: -15}}>\n\n
\n {(this.props.native[attr] || '').split(/[,;\\s]/).filter(a => !!a)\n .map(word => this.onChipsDelete(attr, word)}\n className={this.props.classes.chip}\n />)}\n
\n
;\n }\n\n render() {\n return
\n this.reissueUrlKey()}>\n {I18n.t('Get new service URL key')}\n
\n\n {this.renderInput('IFTTT key', 'iftttKey')}
\n\n \n Utils.copyToClipboard(`https://service.iobroker.in/v1/iotService?service=ifttt&key=${this.state.key}&user=${encodeURIComponent(this.props.native.login)}`)} >
\n
\n\n {this.renderChips('White list for services', 'allowedServices')}
\n\n &key=${this.state.key}&user=${encodeURIComponent(this.props.native.login)}&data=`}\n type=\"text\"\n readOnly={true}\n margin=\"normal\"\n />\n Utils.copyToClipboard(`https://service.iobroker.in/v1/iotService?service=custom_&key=${this.state.key}&user=${encodeURIComponent(this.props.native.login)}&data=`)}>
\n\n \n this.props.onChange('text2command', e.target.value === '_' ? '' : e.target.value)}\n input={}\n >\n {I18n.t('disabled')}\n {this.state.text2commandList.map(item => text2command.{item})}\n \n {I18n.t('Use text2command instance')}\n \n
\n \n this.props.onChange('nightscout', e.target.value === '_' ? '' : e.target.value)}\n input={}\n >\n {I18n.t('disabled')}\n {this.state.nightscoutList.map(item => nightscout.{item})}\n \n {I18n.t('Use Nightscout instance')}\n \n {this.props.native.nightscout ? this.props.onChange('nightscoutPass', e.target.value.replace(/[^\\w\\d-_]/g, '_'))}\n className={clsx(this.props.classes.input, this.props.classes.controlElement, this.props.classes.normalSize)}\n value={this.props.native.nightscoutPass}\n type=\"text\"\n margin=\"normal\"\n /> : null}\n {this.props.native.nightscout ? : null}\n
\n
\n
\n this.props.onChange('amazonAlexaBlood', e.target.value)}\n margin=\"normal\"\n />\n this.setState({showSelectId: true})} aria-label=\"Add\" style={{marginLeft: 5, marginTop: 10}}>\n this.props.onChange('amazonAlexaBloodShortAnswer', e.target.checked)}\n color=\"primary\"\n />\n }\n label={I18n.t('Short answer for blood sugar')}\n />\n
\n
\n {this.renderToast()}\n {this.getSelectIdDialog('amazonAlexaBlood')}\n ;\n }\n}\n\nServices.propTypes = {\n common: PropTypes.object.isRequired,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n adapterName: PropTypes.string.isRequired,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onChange: PropTypes.func,\n socket: PropTypes.object.isRequired,\n onShowError: PropTypes.func,\n};\n\nexport default withStyles(styles)(Services);\n","import React, {Component} from 'react';\nimport {withStyles} from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport TextField from '@material-ui/core/TextField';\nimport Button from '@material-ui/core/Button';\nimport IconButton from '@material-ui/core/IconButton';\nimport Switch from '@material-ui/core/Switch';\nimport {MdEdit as IconEdit} from 'react-icons/md';\n\nimport Utils from '@iobroker/adapter-react/Components/Utils';\nimport I18n from '@iobroker/adapter-react/i18n';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\nimport MessageDialog from '@iobroker/adapter-react/Dialogs/Message';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport IconClose from \"@material-ui/icons/Close\";\nimport IconCheck from \"@material-ui/icons/Check\";\n\nconst CHANGED_COLOR = '#e7000040';\n\nconst styles = theme => ({\n tab: {\n width: '100%',\n height: '100%'\n },\n column: {\n display: 'inline-block',\n verticalAlign: 'top',\n marginRight: 20,\n height: '100%',\n overflow: 'hidden',\n width: 'calc(50% - 20px)',\n minWidth: 300,\n maxWidth: 450\n },\n columnDiv: {\n height: 'calc(100% - 60px)',\n overflow: 'auto',\n minWidth: 300\n },\n enumLineEnabled: {\n position: 'absolute',\n right: 0,\n top: 0,\n },\n enumLineEdit: {\n //float: 'right'\n position: 'absolute',\n top: 5,\n right: 50\n },\n enumLineName: {\n\n },\n enumLineSubName:{\n fontStyle: 'italic',\n },\n enumLine: {\n height: 48,\n width: '100%',\n position: 'relative'\n },\n enumLineId: {\n display: 'block',\n fontStyle: 'italic',\n fontSize: 12\n },\n columnHeader: {\n background: theme.palette.primary.light,\n padding: 10,\n color: theme.palette.primary.contrastText\n }\n});\n\nclass Enums extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n inAction: false,\n editId: '',\n editedSmartName: '',\n funcs: [],\n rooms: [],\n changed: [],\n message: '',\n loading: true,\n };\n\n this.onEnumUpdateBound = this.onEnumUpdate.bind(this);\n\n this.props.socket.getEnums()\n .then(res => {\n const funcs = [];\n const rooms = [];\n Object.keys(res).forEach(id => {\n if (id.match(/^enum\\.rooms\\./)) {\n rooms.push(res[id]);\n } else\n if (id.match(/^enum\\.functions\\./)) {\n funcs.push(res[id]);\n }\n });\n\n this.setState({funcs, rooms, loading: false});\n return this.props.socket.subscribeObject('enum.*', this.onEnumUpdateBound);\n });\n }\n\n componentWillUnmount() {\n this.props.socket.unsubscribeObject('enum.*', this.onEnumUpdateBound).then(() => {});\n }\n\n onEnumUpdate(id, obj) {\n this.removeChanged(id);\n this.updateObjInState(id, obj);\n }\n\n informInstance(id) {\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'update', id);\n }\n\n addChanged(id) {\n const changed = JSON.parse(JSON.stringify(this.state.changed));\n if (changed.indexOf(id) === -1) {\n changed.push(id);\n this.setState({changed});\n }\n }\n\n removeChanged(id) {\n const changed = JSON.parse(JSON.stringify(this.state.changed));\n const pos = changed.indexOf(id);\n\n if (pos !== -1) {\n changed.splice(pos, 1);\n this.setState({changed});\n }\n }\n\n updateObjInState(id, obj) {\n // update obj\n if (id.match(/^enum\\.functions\\./)) {\n for (let i = this.state.funcs.length - 1; i >= 0 ; i--) {\n if (this.state.funcs[i]._id === id) {\n const funcs = JSON.parse(JSON.stringify(this.state.funcs));\n if (obj) {\n funcs[i] = obj;\n } else {\n funcs.splice(i, 1);\n }\n this.setState({funcs});\n break;\n }\n }\n } else\n if (id.match(/^enum\\.rooms\\./)) {\n for (let i = this.state.rooms.length - 1; i >= 0; i--) {\n if (this.state.rooms[i]._id === id) {\n const rooms = JSON.parse(JSON.stringify(this.state.rooms));\n if (obj) {\n rooms[i] = obj;\n } else {\n rooms.splice(i, 1);\n }\n this.setState({rooms});\n break;\n }\n }\n }\n }\n\n onToggleEnum(id) {\n let obj = this.state.funcs.find(e => e._id === id) || this.state.rooms.find(e => e._id === id);\n\n let smartName = Utils.getSmartNameFromObj(obj);\n obj = JSON.parse(JSON.stringify(obj));\n if (smartName !== false) {\n Utils.disableSmartName(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\n } else {\n Utils.removeSmartName(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\n }\n\n this.addChanged(id);\n\n this.props.socket.setObject(id, obj)\n .then(() => {\n // update obj\n this.updateObjInState(id, obj);\n this.informInstance(id);\n\n setTimeout(() => this.removeChanged(id), 500);\n });\n }\n\n onEdit(id) {\n const obj = this.state.funcs.find(e => e._id === id) || this.state.rooms.find(e => e._id === id);\n let smartName = Utils.getSmartNameFromObj(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\n if (typeof smartName === 'object' && smartName) {\n smartName = smartName[I18n.getLanguage()] || smartName.en;\n }\n smartName = smartName || Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()});\n this.setState({editId: id, editedSmartName: smartName});\n }\n\n renderEnum(obj) {\n let smartName = Utils.getSmartNameFromObj(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\n // convert old format\n if (smartName && typeof smartName === 'object') {\n smartName = smartName[I18n.getLanguage()] || smartName.en || '';\n }\n let name = Utils.getObjectNameFromObj(obj);\n\n return
\n {smartName || null}{smartName ? ({name}) : name}\n {obj._id}\n this.onToggleEnum(obj._id)}\n />\n this.onEdit(obj._id)}>\n \n \n\n
;\n }\n\n renderEnums(name) {\n return this.state[name].map(e => this.renderEnum(e));\n }\n\n renderMessage() {\n if (this.state.message) {\n return this.setState({message: ''})}/>;\n } else {\n return null;\n }\n }\n\n changeSmartName() {\n // Check if the name is duplicate\n let enums = this.state.editId.startsWith('enum.functions.') ? this.state.funcs : this.state.rooms;\n if (enums.find(obj =>\n this.state.editId !== obj._id && (\n this.state.editedSmartName === Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()}) ||\n this.state.editedSmartName === Utils.getSmartNameFromObj(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon)))) {\n this.setState({message: I18n.t('Duplicate name')});\n } else {\n this.addChanged(this.state.editId);\n setTimeout(() => this.removeChanged(this.state.editId), 500);\n const id = this.state.editId;\n this.setState({editId: ''});\n let newObj;\n this.props.socket.getObject(id)\n .then(obj => {\n Utils.updateSmartName(obj, this.state.editedSmartName, undefined, undefined, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\n newObj = obj;\n return this.props.socket.setObject(id, obj);\n })\n .then(() => {\n // update obj\n this.updateObjInState(id, newObj);\n this.informInstance(id);\n })\n .catch(err => this.props.onError(err));\n }\n }\n\n renderEditDialog() {\n if (this.state.editId) {\n const obj = this.state.funcs.find(e => e._id === this.state.editId) || this.state.rooms.find(e => e._id === this.state.editId);\n\n return this.setState({editId: ''})}\n aria-labelledby=\"message-dialog-title\"\n aria-describedby=\"message-dialog-description\"\n >\n {this.props.title || I18n.t('Smart name for %s', Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()}))}\n \n this.setState({editedSmartName: e.target.value})}\n value={this.state.editedSmartName}\n helperText={I18n.t('You can enter several names divided by comma')}\n margin=\"normal\"\n />\n \n \n this.changeSmartName()}\n color=\"primary\"\n startIcon={}\n >{I18n.t('Ok')}\n this.setState({editId: ''})}\n startIcon={}\n >{I18n.t('Cancel')}\n \n ;\n } else {\n return null;\n }\n }\n\n render() {\n if (this.state.loading) {\n return ;\n }\n return (\n
\n
\n
{I18n.t('Rooms')}
\n
{this.renderEnums('rooms')}
\n
\n
\n
{I18n.t('Functions')}
\n
{this.renderEnums('funcs')}
\n
\n {this.renderMessage()}\n {this.renderEditDialog()}\n
\n );\n }\n}\n\nEnums.propTypes = {\n common: PropTypes.object.isRequired,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n adapterName: PropTypes.string.isRequired,\n onError: PropTypes.func,\n onLoad: PropTypes.func,\n onChange: PropTypes.func,\n socket: PropTypes.object.isRequired,\n};\n\nexport default withStyles(styles)(Enums);\n","import React, {Component} from 'react';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nimport {MdEdit as IconEdit} from 'react-icons/md';\r\nimport {MdAdd as IconAdd} from 'react-icons/md';\r\nimport {MdRefresh as IconRefresh} from 'react-icons/md';\r\nimport {MdClear as IconClear} from 'react-icons/md';\r\nimport {MdDelete as IconDelete} from 'react-icons/md';\r\nimport {MdFormatAlignJustify as IconExpand} from 'react-icons/md';\r\nimport {MdDragHandle as IconCollapse} from 'react-icons/md';\r\nimport {MdList as IconList} from 'react-icons/md';\r\nimport {FaPowerOff as IconOn} from 'react-icons/fa';\r\nimport {FaThermometerHalf as IconTemperature} from 'react-icons/fa';\r\nimport {FaLongArrowAltUp as IconUp} from 'react-icons/fa';\r\nimport {FaLongArrowAltDown as IconDown} from 'react-icons/fa';\r\nimport {FaPercentage as IconPercentage} from 'react-icons/fa';\r\nimport {FaPalette as IconColor} from 'react-icons/fa';\r\nimport {FaLightbulb as IconBulb} from 'react-icons/fa';\r\nimport {FaLockOpen as IconLock} from 'react-icons/fa';\r\nimport {FaThermometer as IconThermometer} from 'react-icons/fa';\r\nimport IconCopy from '@material-ui/icons/FileCopy';\r\nimport IconClose from '@material-ui/icons/Close';\r\nimport IconCheck from '@material-ui/icons/Check';\r\n\r\nimport Utils from '@iobroker/adapter-react/Components/Utils'\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MessageDialog from '@iobroker/adapter-react/Dialogs/Message';\r\nimport DialogSelectID from '@iobroker/adapter-react/Dialogs/SelectID';\r\nimport copy from \"copy-to-clipboard\";\r\n\r\nconst colorOn = '#aba613';\r\nconst colorOff = '#444';\r\nconst colorSet = '#00c6ff';\r\nconst colorRead = '#00bc00';\r\nconst CHANGED_COLOR = '#e7000040';\r\nconst DEFAULT_CHANNEL_COLOR_DARK = '#4f4f4f';\r\nconst DEFAULT_CHANNEL_COLOR_LIGHT = '#e9e9e9';\r\nconst LAST_CHANGED_COLOR_DARK = '#5c8f65';\r\nconst LAST_CHANGED_COLOR_LIGHT = '#b4ffbe';\r\nconst actionsMapping = {\r\n turnOn: {color: colorOn, icon: IconOn, desc: 'Turn on'},\r\n turnOff: {color: colorOff, icon: IconOn, desc: 'Turn off'},\r\n\r\n setTargetTemperature: {color: colorSet, icon: IconTemperature, desc: 'Set target temperature'},\r\n incrementTargetTemperature: {color: colorOn, icon: IconUp, desc: 'Increment target temperature'},\r\n decrementTargetTemperature: {color: colorOff, icon: IconDown, desc: 'Decrement target temperature'},\r\n\r\n setPercentage: {color: colorSet, icon: IconPercentage, desc: 'Set percentage'},\r\n incrementPercentage: {color: colorOn, icon: IconUp, desc: 'Increment percentage'},\r\n decrementPercentage: {color: colorOff, icon: IconDown, desc: 'Decrement percentage'},\r\n\r\n setColor: {color: colorSet, icon: IconColor, desc: 'Set color'},\r\n\r\n setColorTemperature: {color: colorSet, icon: IconBulb, desc: 'Set color temperature'},\r\n incrementColorTemperature: {color: colorOn, icon: IconUp, desc: 'Increment color temperature'},\r\n decrementColorTemperature: {color: colorOff, icon: IconDown, desc: 'Decrement color temperature'},\r\n\r\n getTargetTemperature: {color: colorRead, icon: IconThermometer, desc: 'Get target temperature'},\r\n getTemperatureReading: {color: colorRead, icon: IconThermometer, desc: 'Get actual temperature'},\r\n\r\n setLockState: {color: colorSet, icon: IconLock, desc: 'Set lock state'},\r\n getLockState: {color: colorRead, icon: IconLock, desc: 'Read lock state'},\r\n};\r\n\r\nconst SMARTTYPES = ['LIGHT', 'SWITCH', 'THERMOSTAT', 'ACTIVITY_TRIGGER', 'SCENE_TRIGGER', 'SMARTPLUG', 'SMARTLOCK', 'CAMERA'];\r\n\r\nconst styles = theme => ({\r\n tab: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n column: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n marginRight: 20,\r\n height: '100%',\r\n overflow: 'hidden'\r\n },\r\n columnDiv: {\r\n height: 'calc(100% - 40px)',\r\n overflow: 'auto',\r\n minWidth: 300\r\n },\r\n filter: {\r\n margin: 0\r\n },\r\n button: {\r\n marginRight: 20\r\n },\r\n devLineExpand: {\r\n marginRight: 10,\r\n },\r\n devLineEnabled: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n },\r\n devLineEdit: {\r\n position: 'absolute',\r\n top: 5,\r\n right: 50\r\n },\r\n devLineDelete: {\r\n position: 'absolute',\r\n top: 5,\r\n right: 0\r\n },\r\n devLineName: {\r\n\r\n },\r\n devLineNumber:{\r\n display: 'inline-block',\r\n verticalAlign: 'middle',\r\n width: 15,\r\n },\r\n editedId: {\r\n fontStyle: 'italic'\r\n },\r\n enumLineSubName:{\r\n fontStyle: 'italic',\r\n },\r\n devLine: {\r\n height: 48,\r\n width: '100%',\r\n position: 'relative'\r\n },\r\n devLineDescription: {\r\n display: 'block',\r\n fontStyle: 'italic',\r\n fontSize: 12\r\n },\r\n devLineActions: {\r\n fontStyle: 'italic',\r\n fontSize: 12,\r\n paddingLeft: 50,\r\n display: 'inline-block',\r\n },\r\n devLineProgress: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n },\r\n channelLineActions: {\r\n width: 80\r\n },\r\n devLineNameBlock: {\r\n display: 'inline-block',\r\n width: 'calc(100% - 350px)'\r\n },\r\n columnHeader: {\r\n background: theme.palette.primary.light,\r\n padding: 10,\r\n color: theme.palette.primary.contrastText\r\n },\r\n devModified: {\r\n fontStyle: 'italic'\r\n },\r\n actionIcon: {\r\n width: 16\r\n },\r\n\r\n devSubLine: {\r\n position: 'relative',\r\n height: 48\r\n },\r\n devSubLineName: {\r\n marginLeft: 5,\r\n marginTop: 14,\r\n display: 'inline-block',\r\n fontSize: 13,\r\n width: 'calc(100% - 400px)'\r\n },\r\n devSubSubLineName: {\r\n fontSize: 8,\r\n fontStyle: 'italic',\r\n display: 'block'\r\n },\r\n devSubLineByOn: {\r\n marginLeft: 5\r\n },\r\n devSubLineDelete: {\r\n position: 'absolute',\r\n top: 12,\r\n right: 12,\r\n padding: 0\r\n },\r\n devSubLineEdit: {\r\n position: 'absolute',\r\n top: 12,\r\n right: 62,\r\n padding: 0\r\n },\r\n devSubLineTypeTitle: {\r\n marginTop: 0\r\n },\r\n headerRow: {\r\n paddingLeft: theme.spacing(1),\r\n background: theme.palette.primary.main,\r\n },\r\n headerCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '100%'\r\n },\r\n tableCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '100%'\r\n },\r\n});\r\n\r\nclass AlexaSmartNames extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n if (!actionsMapping.translated) {\r\n Object.keys(actionsMapping).forEach(a => actionsMapping[a].desc = I18n.t(actionsMapping[a].desc));\r\n actionsMapping.translated = true;\r\n }\r\n\r\n this.state = {\r\n editedSmartName: '',\r\n editId: '',\r\n editedSmartType: null,\r\n editObjectName: '',\r\n deleteId: '',\r\n\r\n showListOfDevices: false,\r\n showSelectId: false,\r\n showConfirmation: '',\r\n changed: [],\r\n devices: [],\r\n message: '',\r\n filter: '',\r\n loading: true,\r\n browse: false,\r\n expanded: [],\r\n lastChanged: ''\r\n };\r\n\r\n this.timerChanged = null;\r\n this.browseTimer = null;\r\n this.browseTimerCount = 0;\r\n this.editedSmartName = '';\r\n\r\n this.waitForUpdateID = null;\r\n this.onReadyUpdateBound = this.onReadyUpdate.bind(this);\r\n this.onResultUpdateBound = this.onResultUpdate.bind(this);\r\n\r\n this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`).then(obj => {\r\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(state => {\r\n if (!obj || !obj.common || (!obj.common.enabled && (!state || !state.val))) {\r\n this.setState({message: I18n.t('Instance must be enabled'), loading: false, devices: []});\r\n } else {\r\n this.browse();\r\n }\r\n });\r\n });\r\n }\r\n\r\n browse(isIndicate) {\r\n if (Date.now() - this.lastBrowse < 500) return;\r\n this.lastBrowse = Date.now();\r\n if (isIndicate) {\r\n this.setState({loading: true, browse: true});\r\n } else {\r\n this.setState({browse: true});\r\n }\r\n console.log('Send BROWSE!');\r\n this.browseTimer = setTimeout(() => {\r\n console.log('Browse timeout!');\r\n this.browseTimer = null;\r\n this.browseTimerCount++;\r\n if (this.browseTimerCount < 5) {\r\n this.browse(isIndicate);\r\n } else {\r\n this.setState({message: I18n.t('Cannot read devices!')});\r\n }\r\n }, 10000);\r\n\r\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'browse', null)\r\n .then(list => {\r\n this.browseTimer && clearTimeout(this.browseTimer);\r\n this.browseTimerCount = 0;\r\n this.browseTimer = null;\r\n if (list && list.error) {\r\n this.setState({message: I18n.t(list.error)});\r\n } else {\r\n if (this.waitForUpdateID) {\r\n if (!this.onEdit(this.waitForUpdateID, list)) {\r\n this.setState({message: I18n.t('Device %s was not added', this.waitForUpdateID)});\r\n }\r\n this.waitForUpdateID = null;\r\n }\r\n console.log('BROWSE received.');\r\n\r\n this.setState({devices: list, loading: false, changed: [], browse: false});\r\n }\r\n })\r\n .catch(e => this.setState({message: I18n.t('Error %s', e)}));\r\n }\r\n\r\n onReadyUpdate(id, state) {\r\n console.log(`Update ${id} ${state ? `${state.val}/${state.ack}` : 'null'}`);\r\n if (state && state.ack === true && state.val === true) {\r\n this.devTimer && clearTimeout(this.devTimer);\r\n this.devTimer = setTimeout(() => {\r\n this.devTimer = null;\r\n this.browse();\r\n }, 300);\r\n }\r\n }\r\n\r\n onResultUpdate(id, state) {\r\n state && state.ack === true && state.val && this.setState({message: state.val});\r\n }\r\n\r\n componentDidMount() {\r\n this.props.socket.subscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updates`, this.onReadyUpdateBound);\r\n this.props.socket.subscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updatesResult`, this.onResultUpdateBound);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.socket.unsubscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updates`, this.onReadyUpdateBound);\r\n this.props.socket.unsubscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updatesResult`, this.onResultUpdateBound);\r\n if (this.timerChanged) {\r\n clearTimeout(this.timerChanged);\r\n this.timerChanged = null;\r\n }\r\n }\r\n\r\n informInstance(id) {\r\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'update', id);\r\n }\r\n\r\n addChanged(id, cb) {\r\n const changed = JSON.parse(JSON.stringify(this.state.changed));\r\n if (changed.indexOf(id) === -1) {\r\n changed.push(id);\r\n this.setState({changed}, () => cb && cb());\r\n } else {\r\n cb && cb();\r\n }\r\n }\r\n\r\n removeChanged(id) {\r\n const changed = JSON.parse(JSON.stringify(this.state.changed));\r\n const pos = changed.indexOf(id);\r\n\r\n if (pos !== -1) {\r\n changed.splice(pos, 1);\r\n this.setState({changed});\r\n }\r\n }\r\n\r\n onEdit(id, devices) {\r\n devices = devices || this.state.devices;\r\n const device = devices.find(dev => dev.additionalApplianceDetails.id === id);\r\n if (device) {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n let smartName = device.additionalApplianceDetails.friendlyNames ? device.additionalApplianceDetails.friendlyNames : device.friendlyName;\r\n if (typeof smartName === 'object' && smartName) {\r\n smartName = smartName[I18n.getLanguage()] || smartName.en;\r\n }\r\n this.editedSmartName = smartName;\r\n let editedSmartType = null;\r\n if (!device.additionalApplianceDetails.group) {\r\n editedSmartType = device.additionalApplianceDetails.smartType;\r\n }\r\n\r\n this.setState({editId: id, editedSmartType, editedSmartName: smartName, editObjectName: Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()})});\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onAskDelete(deleteId) {\r\n this.setState({deleteId, showConfirmation: true});\r\n }\r\n\r\n onDelete() {\r\n let id = this.state.deleteId;\r\n // const device = this.state.devices.find(dev => dev.additionalApplianceDetails.id === id);\r\n this.addChanged(id, () => {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.disableSmartName(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n .then(() => {\r\n this.setState({deleteId: '', showConfirmation: false, lastChanged: id});\r\n\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n\r\n // update obj\r\n this.informInstance(id);\r\n })\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderActions(dev) {\r\n // Type\r\n const actions = [];\r\n if (!dev.actions) {\r\n console.log('Something went wrong');\r\n return null;\r\n }\r\n dev.actions.sort((a, b) => {\r\n if (a === b) return 0;\r\n if (a === 'turnOn') return -1;\r\n if (b === 'turnOn') return 1;\r\n\r\n if (a === 'turnOff') return -1;\r\n if (b === 'turnOff') return 1;\r\n return 0;\r\n });\r\n\r\n Object.keys(actionsMapping).forEach(action => {\r\n if (dev.actions.indexOf(action) !== -1) {\r\n const Icon = actionsMapping[action].icon;\r\n actions.push();\r\n }\r\n });\r\n // add unknown actions\r\n for (let a = 0; a < dev.actions.length; a++) {\r\n if (!actionsMapping[dev.actions[a]]) {\r\n actions.push({dev.actions[a]});\r\n }\r\n }\r\n return actions;\r\n }\r\n\r\n onExpand(lineNum) {\r\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\r\n const pos = expanded.indexOf(this.state.devices[lineNum].friendlyName);\r\n if (pos === -1) {\r\n expanded.push(this.state.devices[lineNum].friendlyName);\r\n } else {\r\n expanded.splice(pos, 1);\r\n }\r\n this.setState({expanded});\r\n }\r\n\r\n renderSelectByOn(dev, lineNum, id, type) {\r\n // type = '-', 'stored', false or number [5-100]\r\n if (type !== false) {\r\n const items = [\r\n {I18n.t('Default')},\r\n {I18n.t('last value')}\r\n ];\r\n for (let i = 5; i <= 100; i += 5) {\r\n items.push({i}%);\r\n }\r\n return \r\n \r\n {I18n.t('by ON')}\r\n ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n onParamsChange(id, byON, type) {\r\n this.addChanged(id, () => {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.updateSmartName(obj, undefined, byON, type, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n\r\n if (this.state.lastChanged !== id) {\r\n this.setState({lastChanged: id});\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n }\r\n\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n .then(() => {\r\n // update obj\r\n this.informInstance(id);\r\n })\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderSelectTypeSelector(type, onChange) {\r\n if (type !== false) {\r\n const items = [{I18n.t('no type')}];\r\n for (let i = 0; i < SMARTTYPES.length; i++) {\r\n items.push({I18n.t(SMARTTYPES[i])});\r\n }\r\n return \r\n \r\n {I18n.t('Types')}\r\n ;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n renderSelectType(dev, lineNum, id, type) {\r\n return this.renderSelectTypeSelector(type, value => this.onParamsChange(id, undefined, value));\r\n }\r\n\r\n renderChannels(dev, lineNum) {\r\n const result = [];\r\n const classes = this.props.classes;\r\n\r\n if (dev.additionalApplianceDetails.group) {\r\n const channels = dev.additionalApplianceDetails.channels;\r\n const names = dev.additionalApplianceDetails.names;\r\n const types = dev.additionalApplianceDetails.byONs;\r\n const smarttypes = dev.additionalApplianceDetails.smartTypes;\r\n\r\n let c = 0;\r\n for (const chan in channels) {\r\n if (channels.hasOwnProperty(chan)) {\r\n for (let i = 0; i < channels[chan].length; i++) {\r\n const id = channels[chan][i].id;\r\n let background = this.state.changed.indexOf(id) !== -1 ? CHANGED_COLOR : this.props.themeType === 'dark' ? DEFAULT_CHANNEL_COLOR_DARK : DEFAULT_CHANNEL_COLOR_LIGHT;\r\n if (this.state.lastChanged === id && (background === DEFAULT_CHANNEL_COLOR_DARK || background === DEFAULT_CHANNEL_COLOR_LIGHT)) {\r\n background = this.props.themeType === 'dark' ? LAST_CHANGED_COLOR_DARK : LAST_CHANGED_COLOR_LIGHT;\r\n }\r\n result.push(
\r\n
{this.renderActions(channels[chan][i])}
\r\n
{(names[id] || id)}\r\n {id !== names[id] ? {id} : null}\r\n
\r\n {this.renderSelectType(dev, lineNum, id, smarttypes[id])}\r\n {this.renderSelectByOn(dev, lineNum, id, types[id])}\r\n this.onAskDelete(id, lineNum)}>\r\n
);\r\n c++;\r\n }\r\n }\r\n }\r\n } else {\r\n const id = dev.additionalApplianceDetails.id;\r\n const name = dev.additionalApplianceDetails.name || id;\r\n let background = this.state.changed.indexOf(id) !== -1 ? CHANGED_COLOR : this.props.themeType === 'dark' ? DEFAULT_CHANNEL_COLOR_DARK : DEFAULT_CHANNEL_COLOR_LIGHT;\r\n if (this.state.lastChanged === id && (background === DEFAULT_CHANNEL_COLOR_DARK || background === DEFAULT_CHANNEL_COLOR_LIGHT)) {\r\n background = this.props.themeType === 'dark' ? LAST_CHANGED_COLOR_DARK : LAST_CHANGED_COLOR_LIGHT;\r\n }\r\n result.push(
\r\n
{this.renderActions(dev)}
\r\n
{name}
\r\n {this.renderSelectType(dev, lineNum, id, dev.additionalApplianceDetails.smartType)}\r\n {this.renderSelectByOn(dev, lineNum, id, dev.additionalApplianceDetails.byON)}\r\n
);\r\n }\r\n return result;\r\n }\r\n\r\n renderDevice(dev, lineNum) {\r\n let friendlyName = dev.friendlyName;\r\n let title;\r\n if (!dev.additionalApplianceDetails.group && dev.additionalApplianceDetails.nameModified) {\r\n title = friendlyName;\r\n } else {\r\n title = {friendlyName};\r\n }\r\n\r\n let devCount = 0;\r\n for (const ch in dev.additionalApplianceDetails.channels) {\r\n if (dev.additionalApplianceDetails.channels.hasOwnProperty(ch)) {\r\n devCount += dev.additionalApplianceDetails.channels[ch].length;\r\n }\r\n }\r\n devCount = devCount || 1;\r\n const expanded = this.state.expanded.indexOf(friendlyName) !== -1;\r\n const id = dev.additionalApplianceDetails.id;\r\n\r\n let background = (lineNum % 2) ? (this.props.themeType === 'dark' ? '#272727' : '#f1f1f1') : 'inherit';\r\n const changed = this.state.changed.indexOf(id) !== -1;\r\n if (changed) {\r\n background = CHANGED_COLOR;\r\n } else if (id === this.state.lastChanged) {\r\n background = this.props.themeType === 'dark' ? LAST_CHANGED_COLOR_DARK : LAST_CHANGED_COLOR_LIGHT;\r\n }\r\n\r\n // If some of sub channels in change list or in last changed\r\n if (dev.additionalApplianceDetails.group && !changed && id !== this.state.lastChanged) {\r\n const channels = dev.additionalApplianceDetails.channels;\r\n try {\r\n channels && Object.keys(channels).forEach(chan =>\r\n chan && channels[chan].forEach(el => {\r\n if (this.state.changed.indexOf(el.id) !== -1) {\r\n background = CHANGED_COLOR;\r\n } else if (this.state.lastChanged === el.id) {\r\n background = this.props.themeType === 'dark' ? LAST_CHANGED_COLOR_DARK : LAST_CHANGED_COLOR_LIGHT;\r\n }\r\n })\r\n );\r\n } catch (error) {\r\n console.log(error)\r\n }\r\n }\r\n\r\n return [\r\n
\r\n
{lineNum + 1}.
\r\n this.onExpand(lineNum)}>\r\n {devCount > 1 ?\r\n \r\n {expanded ? : }\r\n :\r\n (expanded ? : )}\r\n \r\n
\r\n {title}\r\n {dev.friendlyDescription}\r\n {changed ? : null}\r\n
\r\n {this.renderActions(dev)}\r\n {!dev.additionalApplianceDetails.group ?\r\n this.onEdit(id)}> : null}\r\n {!dev.additionalApplianceDetails.group ?\r\n this.onAskDelete(id)}> : null}\r\n
,\r\n expanded ? this.renderChannels(dev, lineNum) : null\r\n ];\r\n }\r\n\r\n renderMessage() {\r\n if (this.state.message) {\r\n return this.setState({message: ''})}/>;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n changeSmartName(e) {\r\n e && e.preventDefault();\r\n // Check if the name is duplicate\r\n this.addChanged(this.state.editId, () => {\r\n const id = this.state.editId;\r\n const editedSmartType = this.state.editedSmartType;\r\n\r\n this.setState({editId: '', editObjectName: '', lastChanged: id, editedSmartType: null});\r\n\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.updateSmartName(obj, this.editedSmartName, undefined, editedSmartType === null ? undefined : editedSmartType, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n .then(() => {\r\n // update obj\r\n this.informInstance(id);\r\n })\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderEditDialog() {\r\n if (this.state.editId) {\r\n return {\r\n this.editedSmartName = null;\r\n this.setState({editId: '', editedSmartName: ''});\r\n }}\r\n aria-labelledby=\"message-dialog-title\"\r\n aria-describedby=\"message-dialog-description\"\r\n >\r\n {this.props.title || I18n.t('Smart name for %s', this.state.editObjectName)}\r\n \r\n

ID: {this.state.editId}

\r\n \r\n e.keyCode === 13 && this.changeSmartName(e)}\r\n onChange={e => this.editedSmartName = e.target.value}\r\n defaultValue={this.state.editedSmartName}\r\n helperText={I18n.t('You can enter several names divided by comma')}\r\n margin=\"normal\"\r\n />\r\n {this.state.editedSmartType !== null ? this.renderSelectTypeSelector(this.state.editedSmartType, value => this.setState({editedSmartType: value})) : null}\r\n
\r\n \r\n this.changeSmartName()}\r\n color=\"primary\"\r\n startIcon={}\r\n >{I18n.t('Ok')}\r\n \r\n \r\n \r\n ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderConfirmDialog() {\r\n if (this.state.showConfirmation) {\r\n return this.setState({showConfirmation: ''})}\r\n aria-labelledby=\"confirmation-dialog-title\"\r\n aria-describedby=\"confirmation-dialog-description\"\r\n >\r\n {this.props.title || I18n.t('Device %s will be disabled.', this.state.deleteId)}\r\n \r\n

{I18n.t('Are you sure?')}

\r\n
\r\n \r\n this.onDelete()}\r\n color=\"primary\"\r\n autoFocus\r\n startIcon={}\r\n >{I18n.t('Delete')}\r\n }\r\n onClick={() => this.setState({showConfirmation: ''})}>{I18n.t('Cancel')}\r\n \r\n ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getSelectIdDialog() {\r\n if (this.state.showSelectId) {\r\n return this.setState({showSelectId: false})}\r\n onOk={(selected, name) => {\r\n this.setState({showSelectId: false});\r\n\r\n this.props.socket.getObject(selected)\r\n .then(obj => {\r\n if (obj) {\r\n const name = Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()});\r\n Utils.updateSmartName(obj, (name || I18n.t('Device name')).replace(/[-_.]+/g, ' '), undefined, undefined, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n this.addChanged(obj._id);\r\n this.waitForUpdateID = obj._id;\r\n\r\n if (this.state.lastChanged !== obj._id) {\r\n this.setState({lastChanged: obj._id});\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n }\r\n\r\n this.props.socket.setObject(obj._id, obj)\r\n .then(() => this.informInstance(obj._id))\r\n .catch(err => this.setState({message: err}));\r\n } else {\r\n this.setState({message: I18n.t('Invalid ID')});\r\n }\r\n });\r\n }}\r\n />;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderDevices() {\r\n const filter = this.state.filter.toLowerCase();\r\n const result = [];\r\n for (let i = 0; i < this.state.devices.length; i++) {\r\n if (this.state.filter && this.state.devices[i].friendlyName.toLowerCase().indexOf(filter) === -1 ) continue;\r\n result.push(this.renderDevice(this.state.devices[i], i));\r\n }\r\n return
{result}
;\r\n }\r\n\r\n renderListOfDevices() {\r\n if (!this.state.showListOfDevices) {\r\n return null;\r\n }\r\n const classes = this.props.classes;\r\n\r\n return this.setState({showListOfDevices: false})}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n {I18n.t('List of devices to print out, e.g. to give all device names to your partner.')} 😄\r\n \r\n
\r\n
{ I18n.t('Name') }
\r\n
\r\n
\r\n { this.state.devices.map((item, i) =>
\r\n
{ item.friendlyName }
\r\n
)\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ;\r\n }\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n this.setState({showSelectId: true})}>\r\n this.browse(true)} disabled={this.state.browse}>{this.state.browse ? : }\r\n this.setState({showListOfDevices: true})} disabled={this.state.browse}>\r\n this.setState({filter: e.target.value})}\r\n InputProps={{\r\n endAdornment: this.state.filter ? (\r\n this.setState({ filter: '' })}>\r\n \r\n \r\n ) : undefined,\r\n }}\r\n />\r\n {this.renderDevices()}\r\n {this.renderMessage()}\r\n {this.renderEditDialog()}\r\n {this.getSelectIdDialog()}\r\n {this.renderConfirmDialog()}\r\n {this.renderListOfDevices()}\r\n \r\n );\r\n }\r\n}\r\n\r\nAlexaSmartNames.propTypes = {\r\n common: PropTypes.object.isRequired,\r\n native: PropTypes.object.isRequired,\r\n instance: PropTypes.number.isRequired,\r\n adapterName: PropTypes.string.isRequired,\r\n onError: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n onChange: PropTypes.func,\r\n socket: PropTypes.object.isRequired,\r\n themeType: PropTypes.string,\r\n};\r\n\r\nexport default withStyles(styles)(AlexaSmartNames);\r\n","import React, {Component} from 'react';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nimport {MdEdit as IconEdit} from 'react-icons/md';\r\nimport {MdAdd as IconAdd} from 'react-icons/md';\r\nimport {MdRefresh as IconRefresh} from 'react-icons/md';\r\nimport {MdClear as IconClear} from 'react-icons/md';\r\nimport {MdDelete as IconDelete} from 'react-icons/md';\r\nimport {MdFormatAlignJustify as IconExpand} from 'react-icons/md';\r\nimport {MdDragHandle as IconCollapse} from 'react-icons/md';\r\nimport {MdList as IconList} from 'react-icons/md';\r\nimport {FaPowerOff as IconOn} from 'react-icons/fa';\r\nimport {FaThermometerHalf as IconTemperature} from 'react-icons/fa';\r\nimport {FaLongArrowAltUp as IconUp} from 'react-icons/fa';\r\nimport {FaLongArrowAltDown as IconDown} from 'react-icons/fa';\r\nimport {FaPalette as IconColor} from 'react-icons/fa';\r\nimport {FaLightbulb as IconBulb} from 'react-icons/fa';\r\nimport {FaLockOpen as IconLock} from 'react-icons/fa';\r\nimport {FaThermometer as IconThermometer} from 'react-icons/fa';\r\nimport {FaTint as IconHumidity} from 'react-icons/fa';\r\nimport {FaMale as IconMotion} from 'react-icons/fa';\r\nimport {FaLink as IconContact} from 'react-icons/fa';\r\nimport IconCopy from '@material-ui/icons/FileCopy';\r\nimport IconClose from '@material-ui/icons/Close';\r\n\r\nimport Utils from '@iobroker/adapter-react/Components/Utils'\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport MessageDialog from '@iobroker/adapter-react/Dialogs/Message';\r\nimport DialogSelectID from '@iobroker/adapter-react/Dialogs/SelectID';\r\nimport copy from \"copy-to-clipboard\";\r\nimport IconCheck from \"@material-ui/icons/Check\";\r\n\r\nconst colorOn = '#aba613';\r\nconst colorOff = '#444';\r\nconst colorSet = '#00c6ff';\r\nconst colorRGB = '#ff7ee3';\r\nconst colorRead = '#00bc00';\r\n//const colorThermometer = '#bc1600';\r\nconst CHANGED_COLOR = '#e7000040';\r\nconst DEFAULT_CHANNEL_COLOR_DARK = '#4f4f4f';\r\nconst DEFAULT_CHANNEL_COLOR_LIGHT = '#e9e9e9';\r\nconst LAST_CHANGED_COLOR_DARK = '#5c8f65';\r\nconst LAST_CHANGED_COLOR_LIGHT = '#b4ffbe';\r\n\r\nconst actionsMapping = {\r\n OnOff: {color: colorOn, icon: IconOn, desc: 'On/Off'},\r\n Brightness: {color: colorSet, icon: IconBulb, desc: 'Dimmer'},\r\n RGB: {color: colorRGB, icon: IconBulb, desc: 'Set color'},\r\n\r\n setTargetTemperature: {color: colorSet, icon: IconTemperature, desc: 'Set target temperature'},\r\n incrementTargetTemperature: {color: colorOn, icon: IconUp, desc: 'Increment target temperature'},\r\n decrementTargetTemperature: {color: colorOff, icon: IconDown, desc: 'Decrement target temperature'},\r\n\r\n incrementPercentage: {color: colorOn, icon: IconUp, desc: 'Increment percentage'},\r\n decrementPercentage: {color: colorOff, icon: IconDown, desc: 'Decrement percentage'},\r\n\r\n setColor: {color: colorSet, icon: IconColor, desc: 'Set color'},\r\n\r\n incrementColorTemperature: {color: colorOn, icon: IconUp, desc: 'Increment color temperature'},\r\n decrementColorTemperature: {color: colorOff, icon: IconDown, desc: 'Decrement color temperature'},\r\n\r\n getTargetTemperature: {color: colorRead, icon: IconThermometer, desc: 'Get target temperature'},\r\n getTemperatureReading: {color: colorRead, icon: IconThermometer, desc: 'Get actual temperature'},\r\n\r\n setLockState: {color: colorSet, icon: IconLock, desc: 'Set lock state'},\r\n getLockState: {color: colorRead, icon: IconLock, desc: 'Read lock state'},\r\n\r\n getActualTemperature: {color: colorRead, icon: IconThermometer, desc: 'Get actual temperature'},\r\n getActualHumidity: {color: colorRead, icon: IconHumidity, desc: 'Get actual humidity'},\r\n\r\n getMotion: {color: colorRead, icon: IconMotion, desc: 'Get motion'},\r\n getContact: {color: colorRead, icon: IconContact, desc: 'Get contact'},\r\n\r\n};\r\n\r\nconst SMARTTYPES = ['LIGHT', 'SWITCH', 'THERMOSTAT', 'ACTIVITY_TRIGGER', 'SCENE_TRIGGER', 'SMARTPLUG', 'SMARTLOCK', 'CAMERA', 'THERMOSTAT.AC', 'VACUUM_CLEANER'];\r\n\r\nconst styles = theme => ({\r\n tab: {\r\n width: '100%',\r\n height: '100%'\r\n },\r\n column: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n marginRight: 20,\r\n height: '100%',\r\n overflow: 'hidden'\r\n },\r\n columnDiv: {\r\n height: 'calc(100% - 40px)',\r\n overflow: 'auto',\r\n minWidth: 300\r\n },\r\n filter: {\r\n margin: 0\r\n },\r\n button: {\r\n marginRight: 20\r\n },\r\n devLineExpand: {\r\n marginRight: 10,\r\n },\r\n devLineEnabled: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 0,\r\n },\r\n devLineEdit: {\r\n position: 'absolute',\r\n top: 5,\r\n right: 50\r\n },\r\n devLineDelete: {\r\n position: 'absolute',\r\n top: 5,\r\n right: 0\r\n },\r\n devLineName: {\r\n\r\n },\r\n devLineNumber:{\r\n display: 'inline-block',\r\n verticalAlign: 'middle',\r\n width: 15,\r\n },\r\n editedId: {\r\n fontStyle: 'italic'\r\n },\r\n enumLineSubName:{\r\n fontStyle: 'italic',\r\n },\r\n devLine: {\r\n height: 48,\r\n width: '100%',\r\n position: 'relative'\r\n },\r\n devLineDescription: {\r\n display: 'block',\r\n fontStyle: 'italic',\r\n fontSize: 12\r\n },\r\n devLineActions: {\r\n fontStyle: 'italic',\r\n fontSize: 12,\r\n paddingLeft: 50,\r\n display: 'inline-block',\r\n },\r\n devLineProgress: {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n },\r\n channelLineActions: {\r\n width: 80\r\n },\r\n devLineNameBlock: {\r\n display: 'inline-block',\r\n width: 'calc(100% - 350px)'\r\n },\r\n columnHeader: {\r\n background: theme.palette.primary.light,\r\n padding: 10,\r\n color: theme.palette.primary.contrastText\r\n },\r\n devModified: {\r\n fontStyle: 'italic'\r\n },\r\n actionIcon: {\r\n width: 16\r\n },\r\n\r\n devSubLine: {\r\n position: 'relative',\r\n height: 48\r\n },\r\n devSubLineName: {\r\n marginLeft: 5,\r\n marginTop: 14,\r\n minWidth: 100,\r\n display: 'inline-block',\r\n fontSize: 13,\r\n paddingLeft: 70,\r\n //width: 'calc(100% - 400px)'\r\n },\r\n devSubSubLine: {\r\n fontSize: 10,\r\n fontStyle: 'italic',\r\n display: 'inline-block',\r\n marginLeft: 15\r\n },\r\n devSubLineSetId: {\r\n fontStyle: 'italic',\r\n display: 'block',\r\n color: '#999'\r\n },\r\n devSubLineByOn: {\r\n marginLeft: 5\r\n },\r\n devSubLineDelete: {\r\n position: 'absolute',\r\n top: 12,\r\n right: 12,\r\n padding: 0\r\n },\r\n devSubLineEdit: {\r\n position: 'absolute',\r\n top: 12,\r\n right: 62,\r\n padding: 0\r\n },\r\n devSubLineTypeTitle: {\r\n marginTop: 0\r\n },\r\n headerRow: {\r\n paddingLeft: theme.spacing(1),\r\n background: theme.palette.primary.main,\r\n },\r\n headerCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '100%'\r\n },\r\n tableCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '100%'\r\n },\r\n});\r\n\r\nclass AlisaDevices extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n if (!actionsMapping.translated) {\r\n Object.keys(actionsMapping).forEach(a => actionsMapping[a].desc = I18n.t(actionsMapping[a].desc));\r\n actionsMapping.translated = true;\r\n }\r\n\r\n this.state = {\r\n editedSmartName: '',\r\n editId: '',\r\n editObjectName: '',\r\n deleteId: '',\r\n\r\n showSelectId: false,\r\n showConfirmation: '',\r\n changed: [],\r\n devices: [],\r\n message: '',\r\n filter: '',\r\n loading: true,\r\n browse: false,\r\n expanded: [],\r\n lastChanged: ''\r\n };\r\n\r\n this.timerChanged = null;\r\n this.browseTimer = null;\r\n this.browseTimerCount = 0;\r\n this.editedSmartName = '';\r\n\r\n this.waitForUpdateID = null;\r\n this.onReadyUpdateBound = this.onReadyUpdate.bind(this);\r\n this.onResultUpdateBound = this.onResultUpdate.bind(this);\r\n\r\n this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`).then(obj => {\r\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`).then(state => {\r\n if (!obj || !obj.common || (!obj.common.enabled && (!state || !state.val))) {\r\n this.setState({message: I18n.t('Instance must be enabled'), loading: false, devices: []});\r\n } else {\r\n this.browse();\r\n }\r\n });\r\n });\r\n }\r\n\r\n browse(isIndicate) {\r\n if (Date.now() - this.lastBrowse < 500) {\r\n return;\r\n }\r\n\r\n this.lastBrowse = Date.now();\r\n\r\n if (isIndicate) {\r\n this.setState({loading: true, browse: true});\r\n } else {\r\n this.setState({browse: true});\r\n }\r\n\r\n this.browseTimer = setTimeout(() => {\r\n this.browseTimer = null;\r\n this.browseTimerCount++;\r\n if (this.browseTimerCount < 5) {\r\n this.browse(isIndicate);\r\n } else {\r\n this.setState({message: I18n.t('Cannot read devices!')});\r\n }\r\n }, 10000);\r\n\r\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'browseAlisa', null)\r\n .then(list => {\r\n this.browseTimer && clearTimeout(this.browseTimer);\r\n this.browseTimerCount = 0;\r\n this.browseTimer = null;\r\n\r\n if (list && list.error) {\r\n this.setState({message: I18n.t(list.error)});\r\n } else {\r\n if (this.waitForUpdateID) {\r\n if (!this.onEdit(this.waitForUpdateID, list)) {\r\n this.setState({message: I18n.t('Device %s was not added', this.waitForUpdateID)});\r\n }\r\n this.waitForUpdateID = null;\r\n }\r\n\r\n this.setState({devices: list, loading: false, changed: [], browse: false});\r\n }\r\n });\r\n }\r\n\r\n onReadyUpdate(id, state) {\r\n if (state && state.ack === true && state.val === true) {\r\n if (this.devTimer) clearTimeout(this.devTimer);\r\n this.devTimer = setTimeout(() => {\r\n this.devTimer = null;\r\n this.browse();\r\n }, 300);\r\n }\r\n }\r\n\r\n onResultUpdate(id, state) {\r\n state && state.ack === true && state.val && this.setState({message: state.val});\r\n }\r\n\r\n componentDidMount() {\r\n this.props.socket.subscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updates`, this.onReadyUpdateBound);\r\n this.props.socket.subscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updatesResult`, this.onResultUpdateBound);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.socket.unsubscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updates`, this.onReadyUpdateBound);\r\n this.props.socket.unsubscribeState(`${this.props.adapterName}.${this.props.instance}.smart.updatesResult`, this.onResultUpdateBound);\r\n if (this.timerChanged) {\r\n clearTimeout(this.timerChanged);\r\n this.timerChanged = null;\r\n }\r\n }\r\n\r\n informInstance(id) {\r\n this.props.socket.sendTo(this.props.adapterName + '.' + this.props.instance, 'update', id);\r\n }\r\n\r\n addChanged(id, cb) {\r\n const changed = JSON.parse(JSON.stringify(this.state.changed));\r\n if (!changed.includes(id)) {\r\n changed.push(id);\r\n this.setState({changed}, () => cb && cb());\r\n } else {\r\n cb && cb();\r\n }\r\n }\r\n\r\n removeChanged(id) {\r\n const changed = JSON.parse(JSON.stringify(this.state.changed));\r\n const pos = changed.indexOf(id);\r\n\r\n if (pos !== -1) {\r\n changed.splice(pos, 1);\r\n this.setState({changed});\r\n }\r\n }\r\n\r\n onEdit(id, devices) {\r\n devices = devices || this.state.devices;\r\n const device = devices.find(dev => dev.iobID === id);\r\n if (device) {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n let smartName = device.name;\r\n if (typeof smartName === 'object' && smartName) {\r\n smartName = smartName[I18n.getLanguage()] || smartName.en;\r\n }\r\n this.editedSmartName = smartName;\r\n this.setState({editId: id, editedSmartName: smartName, editObjectName: smartName/* Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()})*/});\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onAskDelete(deleteId) {\r\n this.setState({deleteId, showConfirmation: true});\r\n }\r\n\r\n onDelete() {\r\n let id = this.state.deleteId;\r\n // const device = this.state.devices.find(dev => dev.additionalApplianceDetails.id === id);\r\n this.addChanged(id, () => {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.disableSmartName(obj, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n .then(() => {\r\n this.setState({deleteId: '', showConfirmation: false, lastChanged: id});\r\n\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n\r\n // update obj\r\n this.informInstance(id);\r\n })\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderActions(dev) {\r\n // Type\r\n const actions = [];\r\n if (!dev.actions) {\r\n console.log('Something went wrong');\r\n return null;\r\n }\r\n\r\n dev.actions.sort((a, b) => {\r\n if (a === b) {\r\n return 0;\r\n }\r\n if (a === 'OnOff') {\r\n return -1;\r\n }\r\n if (b === 'OnOff') {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n\r\n Object.keys(actionsMapping).forEach(action => {\r\n if (dev.actions.includes(action)) {\r\n const Icon = actionsMapping[action].icon;\r\n actions.push(\r\n \r\n );\r\n }\r\n });\r\n // add unknown actions\r\n for (let a = 0; a < dev.actions.length; a++) {\r\n if (!actionsMapping[dev.actions[a]]) {\r\n actions.push({dev.actions[a]});\r\n }\r\n }\r\n return actions;\r\n }\r\n\r\n onExpand(lineNum) {\r\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\r\n const pos = expanded.indexOf(this.state.devices[lineNum].name);\r\n if (pos === -1) {\r\n expanded.push(this.state.devices[lineNum].name);\r\n } else {\r\n expanded.splice(pos, 1);\r\n }\r\n this.setState({expanded});\r\n }\r\n\r\n onParamsChange(id, byON, type) {\r\n this.addChanged(id, () => {\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.updateSmartName(obj, undefined, byON, type, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n\r\n if (this.state.lastChanged !== id) {\r\n this.setState({lastChanged: id});\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n }\r\n\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n .then(() => {\r\n // update obj\r\n this.informInstance(id);\r\n })\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderSelectType(dev, lineNum, id, type) {\r\n if (type !== false) {\r\n const items = [{I18n.t('no type')}];\r\n for (let i = 0; i < SMARTTYPES.length; i++) {\r\n items.push({I18n.t(SMARTTYPES[i])});\r\n }\r\n return \r\n \r\n {I18n.t('Types')}\r\n ;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n renderChannels(dev, lineNum) {\r\n const result = [];\r\n const classes = this.props.classes;\r\n\r\n const id = dev.main.getId || dev.iobID;\r\n const name = dev.func;\r\n let background = this.props.themeType === 'dark' ? DEFAULT_CHANNEL_COLOR_DARK : DEFAULT_CHANNEL_COLOR_LIGHT;/*this.state.changed.indexOf(id) !== -1 ? CHANGED_COLOR : DEFAULT_CHANNEL_COLOR;\r\n if (this.state.lastChanged === id && background === DEFAULT_CHANNEL_COLOR) {\r\n background = LAST_CHANGED_COLOR;\r\n }*/\r\n result.push(
\r\n
{name.toUpperCase()}
\r\n
\r\n
{dev.main.getId}
\r\n {dev.main.setId && dev.main.setId !== dev.main.getId ?
{dev.main.setId}
: null}\r\n
\r\n
);\r\n\r\n dev.attributes.forEach(attr => {\r\n result.push(
\r\n
{attr.name.toUpperCase()}
\r\n
\r\n
{attr.getId}
\r\n {attr.setId && attr.setId !== attr.getId ?
{attr.setId}
: null}\r\n
\r\n
);\r\n });\r\n\r\n /*if (dev.additionalApplianceDetails.group) {\r\n const channels = dev.additionalApplianceDetails.channels;\r\n const names = dev.additionalApplianceDetails.names;\r\n const types = dev.additionalApplianceDetails.byONs;\r\n const smarttypes = dev.additionalApplianceDetails.smartTypes;\r\n\r\n let c = 0;\r\n for (const chan in channels) {\r\n if (channels.hasOwnProperty(chan)) {\r\n for (let i = 0; i < channels[chan].length; i++) {\r\n const id = channels[chan][i].id;\r\n let background = this.state.changed.indexOf(id) !== -1 ? CHANGED_COLOR : DEFAULT_CHANNEL_COLOR;\r\n if (this.state.lastChanged === id && background === DEFAULT_CHANNEL_COLOR) {\r\n background = LAST_CHANGED_COLOR;\r\n }\r\n result.push(
\r\n
{this.renderActions(channels[chan][i])}
\r\n
{(names[id] || id)}\r\n {id !== names[id] ? {id} : null}\r\n
\r\n {this.renderSelectType(dev, lineNum, id, smarttypes[id])}\r\n {this.renderSelectByOn(dev, lineNum, id, types[id])}\r\n this.onAskDelete(id, lineNum)}>\r\n
);\r\n c++;\r\n }\r\n }\r\n }\r\n } else {\r\n }*/\r\n return result;\r\n }\r\n\r\n renderDevice(dev, lineNum) {\r\n //return
{JSON.stringify(dev)}
;\r\n const expanded = this.state.expanded.includes(dev.name);\r\n let background = (lineNum % 2) ? (this.props.themeType === 'dark' ? '#272727' : '#f1f1f1') : 'inherit';\r\n const changed = this.state.changed.includes(dev.iobID);\r\n if (changed) {\r\n background = CHANGED_COLOR;\r\n } else if (dev.iobID === this.state.lastChanged) {\r\n background = this.props.themeType === 'dark' ? LAST_CHANGED_COLOR_DARK : LAST_CHANGED_COLOR_LIGHT;\r\n }\r\n\r\n //const isComplex = dev.\r\n\r\n return [\r\n
\r\n
{lineNum + 1}.
\r\n this.onExpand(lineNum)}>\r\n {dev.attributes.length ?\r\n {expanded ? : } :\r\n (expanded ? : )}\r\n \r\n
\r\n {dev.name}\r\n {dev.description}\r\n {changed ? : null}\r\n
\r\n {this.renderActions(dev)}\r\n this.onEdit(dev.iobID)}>\r\n this.onAskDelete(dev.iobID)}>\r\n\r\n
,\r\n expanded ? this.renderChannels(dev, lineNum) : null\r\n ];\r\n }\r\n\r\n renderMessage() {\r\n if (this.state.message) {\r\n return this.setState({message: ''})}/>;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n changeSmartName(e) {\r\n e && e.preventDefault();\r\n // Check if the name is duplicate\r\n this.addChanged(this.state.editId, () => {\r\n const id = this.state.editId;\r\n this.setState({editId: '', editObjectName: '', lastChanged: id});\r\n\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n\r\n this.props.socket.getObject(id)\r\n .then(obj => {\r\n Utils.updateSmartName(obj, this.editedSmartName, undefined, undefined, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n return this.props.socket.setObject(id, obj);\r\n })\r\n // update obj\r\n .then(() => this.informInstance(id))\r\n .catch(err => this.props.onError(err));\r\n });\r\n }\r\n\r\n renderEditDialog() {\r\n if (this.state.editId) {\r\n return {\r\n this.editedSmartName = null;\r\n this.setState({editId: '', editedSmartName: ''});\r\n }}\r\n aria-labelledby=\"message-dialog-title\"\r\n aria-describedby=\"message-dialog-description\"\r\n >\r\n {this.props.title || I18n.t('Smart name for %s', this.state.editObjectName)}\r\n \r\n

ID: {this.state.editId}

\r\n \r\n e.keyCode === 13 && this.changeSmartName(e)}\r\n onChange={e => this.editedSmartName = e.target.value}\r\n defaultValue={this.state.editedSmartName}\r\n helperText={I18n.t('You can enter several names divided by comma')}\r\n margin=\"normal\"\r\n />\r\n
\r\n \r\n this.changeSmartName()}\r\n color=\"primary\"\r\n startIcon={}\r\n >{I18n.t('Ok')}\r\n }\r\n onClick={() => {\r\n this.editedSmartName = null;\r\n this.setState({editId: '', editedSmartName: ''});\r\n }}>{I18n.t('Cancel')}\r\n \r\n ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderConfirmDialog() {\r\n if (this.state.showConfirmation) {\r\n return this.setState({showConfirmation: ''})}\r\n aria-labelledby=\"confirmation-dialog-title\"\r\n aria-describedby=\"confirmation-dialog-description\"\r\n >\r\n {this.props.title || I18n.t('Device %s will be disabled.', this.state.deleteId)}\r\n \r\n

{I18n.t('Are you sure?')}

\r\n
\r\n \r\n this.onDelete()}\r\n color=\"primary\"\r\n autoFocus\r\n startIcon={}\r\n >{I18n.t('Delete')}\r\n this.setState({showConfirmation: ''})}\r\n startIcon={}\r\n >{I18n.t('Cancel')}\r\n \r\n ;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getSelectIdDialog() {\r\n if (this.state.showSelectId) {\r\n return this.setState({showSelectId: false})}\r\n onOk={(selected, name) => {\r\n this.setState({showSelectId: false});\r\n\r\n this.props.socket.getObject(selected)\r\n .then(obj => {\r\n if (obj) {\r\n const name = Utils.getObjectNameFromObj(obj, null, {language: I18n.getLanguage()});\r\n Utils.updateSmartName(obj, (name || I18n.t('Device name')).replace(/[-_.]+/g, ' '), undefined, undefined, this.props.adapterName + '.' + this.props.instance, this.props.native.noCommon);\r\n this.addChanged(obj._id);\r\n this.waitForUpdateID = obj._id;\r\n\r\n if (this.state.lastChanged !== obj._id) {\r\n this.setState({lastChanged: obj._id});\r\n this.timerChanged && clearTimeout(this.timerChanged);\r\n this.timerChanged = setTimeout(() => {\r\n this.setState({lastChanged: ''});\r\n this.timerChanged = null;\r\n }, 30000);\r\n }\r\n\r\n this.props.socket.setObject(obj._id, obj)\r\n .then(() => this.informInstance(obj._id))\r\n .catch(err => this.setState({message: err}));\r\n } else {\r\n this.setState({message: I18n.t('Invalid ID')});\r\n }\r\n });\r\n }}\r\n />;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n renderDevices() {\r\n const filter = this.state.filter.toLowerCase();\r\n const result = [];\r\n for (let i = 0; i < this.state.devices.length; i++) {\r\n if (this.state.filter && this.state.devices[i].name.toLowerCase().indexOf(filter) === -1 ) {\r\n continue;\r\n }\r\n result.push(this.renderDevice(this.state.devices[i], i));\r\n }\r\n return
{result}
;\r\n }\r\n\r\n renderListOfDevices() {\r\n if (!this.state.showListOfDevices) {\r\n return null;\r\n }\r\n const classes = this.props.classes;\r\n\r\n return this.setState({showListOfDevices: false})}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n {I18n.t('List of devices to print out, e.g. to give all device names to your partner.')} 😄\r\n \r\n
\r\n
{ I18n.t('Name') }
\r\n
\r\n
\r\n { this.state.devices.map((item, i) =>
\r\n
{ item.name }
\r\n
)\r\n }\r\n
\r\n
\r\n \r\n \r\n }\r\n onClick={() => this.setState({showListOfDevices: false})} autoFocus>{I18n.t('Close')}\r\n \r\n ;\r\n }\r\n\r\n render() {\r\n if (this.state.loading) {\r\n return ;\r\n }\r\n\r\n return
\r\n this.setState({showSelectId: true})}>\r\n this.browse(true)} disabled={this.state.browse}>{this.state.browse ? : }\r\n this.setState({showListOfDevices: true})} disabled={this.state.browse}>\r\n this.setState({filter: e.target.value})}\r\n InputProps={{\r\n endAdornment: this.state.filter ? (\r\n this.setState({ filter: '' })}>\r\n \r\n \r\n ) : undefined,\r\n }}\r\n />\r\n {this.renderDevices()}\r\n {this.renderMessage()}\r\n {this.renderEditDialog()}\r\n {this.getSelectIdDialog()}\r\n {this.renderConfirmDialog()}\r\n {this.renderListOfDevices()}\r\n ;\r\n }\r\n}\r\n\r\nAlisaDevices.propTypes = {\r\n common: PropTypes.object.isRequired,\r\n native: PropTypes.object.isRequired,\r\n instance: PropTypes.number.isRequired,\r\n adapterName: PropTypes.string.isRequired,\r\n onError: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n onChange: PropTypes.func,\r\n socket: PropTypes.object.isRequired,\r\n themeType: PropTypes.string,\r\n};\r\n\r\nexport default withStyles(styles)(AlisaDevices);\r\n","import React from 'react';\r\n\r\nimport PropTypes from 'prop-types';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport clsx from 'clsx';\r\n\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport TextField from '@material-ui/core/TextField';\r\n\r\nimport IconEdit from '@material-ui/icons/Edit';\r\nimport IconDelete from '@material-ui/icons/Delete';\r\nimport IconExpand from '@material-ui/icons/NavigateNext';\r\nimport IconCollapse from '@material-ui/icons/ExpandMore';\r\nimport IconCheck from '@material-ui/icons/Check';\r\nimport IconClose from '@material-ui/icons/Close';\r\n\r\nfunction getAttr(obj, attr, lookup) {\r\n if (typeof attr === 'string') {\r\n attr = attr.split('.');\r\n }\r\n\r\n if (!obj) {\r\n return null;\r\n }\r\n\r\n if (attr.length === 1) {\r\n if (lookup && lookup[obj[attr[0]]]) {\r\n return lookup[obj[attr[0]]];\r\n } else {\r\n return obj[attr[0]];\r\n }\r\n } else {\r\n const name = attr.shift();\r\n return getAttr(obj[name], attr);\r\n }\r\n}\r\n\r\nfunction setAttr(obj, attr, value) {\r\n if (typeof attr === 'string') {\r\n attr = attr.split('.');\r\n }\r\n\r\n if (attr.length === 1) {\r\n return obj[attr[0]] = value;\r\n } else {\r\n const name = attr.shift();\r\n if (obj[name] === null || obj[name] === undefined) {\r\n obj[name] = {};\r\n }\r\n return setAttr(obj[name], attr, value);\r\n }\r\n}\r\n\r\nconst styles = theme => ({\r\n tableContainer: {\r\n width: '100%',\r\n height: '100%',\r\n overflow: 'auto'\r\n },\r\n table: {\r\n width: '100%',\r\n minWidth: 800,\r\n maxWidth: 1920,\r\n },\r\n cell: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 4,\r\n paddingRight: 4,\r\n },\r\n rowMainWithChildren: {\r\n\r\n },\r\n rowMainWithoutChildren: {\r\n\r\n },\r\n rowNoEdit: {\r\n opacity: 0.3\r\n },\r\n cellExpand: {\r\n width: 30,\r\n },\r\n cellButton: {\r\n width: 30,\r\n },\r\n cellHeader: {\r\n fontWeight: 'bold',\r\n background: theme.palette.type === 'dark' ? '#888' : '#888',\r\n color: theme.palette.type === 'dark' ? '#EEE' : '#111',\r\n height: 48,\r\n wordBreak: 'break-word',\r\n whiteSpace: 'pre',\r\n },\r\n width_name_nicknames: {\r\n maxWidth: 150,\r\n },\r\n width_ioType: {\r\n maxWidth: 100,\r\n },\r\n width_type: {\r\n maxWidth: 100,\r\n },\r\n width_displayTraits: {\r\n maxWidth: 100,\r\n },\r\n width_roomHint: {\r\n maxWidth: 100,\r\n },\r\n rowSecondary: {\r\n fontStyle: 'italic',\r\n },\r\n cellSecondary: {\r\n fontSize: 10,\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n});\r\n\r\nfunction descendingComparator(a, b, orderBy, lookup) {\r\n const _a = getAttr(a, orderBy, lookup) || '';\r\n const _b = getAttr(b, orderBy, lookup) || '';\r\n\r\n if (_b < _a) {\r\n return -1;\r\n } else\r\n if (_b > _a) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n}\r\n\r\nfunction getComparator(order, orderBy, lookup) {\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy, lookup)\r\n : (a, b) => -descendingComparator(a, b, orderBy, lookup);\r\n}\r\n\r\nfunction stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order) {\r\n return order;\r\n } else {\r\n return a[1] - b[1];\r\n }\r\n });\r\n\r\n return stabilizedThis.map(el => el[0]);\r\n}\r\n\r\nclass TreeTable extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n let opened = window.localStorage.getItem('iot.ghome.opened') || '[]';\r\n try {\r\n opened = JSON.parse(opened) || [];\r\n } catch (e) {\r\n opened = [];\r\n }\r\n if (!Array.isArray(opened)) {\r\n opened = [];\r\n }\r\n\r\n this.state = {\r\n opened,\r\n editMode: false,\r\n deleteMode: false,\r\n editData: null,\r\n order: 'asc',\r\n orderBy: this.props.columns[0].field,\r\n }\r\n }\r\n\r\n renderCell(item, col, level, i) {\r\n if (this.state.editMode === i && col.editable !== 'never') {\r\n let val = getAttr(item, col.field);\r\n if (Array.isArray(val)) {\r\n val = val[0];\r\n }\r\n return {\r\n col.lookup ?\r\n {\r\n const editData = this.state.editData ? {...this.state.editData} : {};\r\n if (e.target.value === val) {\r\n delete editData[col.field];\r\n } else {\r\n editData[col.field] = e.target.value;\r\n }\r\n this.setState({editData});\r\n }}\r\n value={(this.state.editData && this.state.editData[col.field]) || val}\r\n >\r\n {Object.keys(col.lookup).map(v => {col.lookup[v]})}\r\n \r\n :\r\n {\r\n const editData = this.state.editData ? {...this.state.editData} : {};\r\n if (e.target.value === val) {\r\n delete editData[col.field];\r\n } else {\r\n editData[col.field] = e.target.value;\r\n }\r\n this.setState({editData});\r\n }}\r\n />\r\n };\r\n } else {\r\n return {getAttr(item, col.field, col.lookup)};\r\n }\r\n }\r\n\r\n renderLine(item, level) {\r\n level = level || 0;\r\n const i = this.props.data.indexOf(item);\r\n if (!item) {\r\n return null;\r\n }\r\n if (!level && item.parentId) {\r\n return null;\r\n } else if (level && !item.parentId) {\r\n return null; // should never happens\r\n } else {\r\n // try to find children\r\n const children = this.props.data.filter(it => it.parentId === item.id);\r\n const opened = this.state.opened.includes(item.id);\r\n\r\n return [\r\n \r\n \r\n {children.length ? {\r\n const opened = [...this.state.opened];\r\n const pos = opened.indexOf(item.id);\r\n if (pos === -1) {\r\n opened.push(item.id);\r\n opened.sort();\r\n } else {\r\n opened.splice(pos, 1);\r\n }\r\n\r\n this.setState({opened});\r\n }}>\r\n {opened ? : }\r\n : null}\r\n \r\n \r\n {getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)}\r\n \r\n {this.props.columns.map((col, ii) =>\r\n !ii ? null : this.renderCell(item, col, level, i))}\r\n \r\n {this.state.editMode === i || this.state.deleteMode === i ?\r\n {\r\n if (this.state.editMode !== false) {\r\n const newData = JSON.parse(JSON.stringify(item));\r\n Object.keys(this.state.editData).forEach(attr => setAttr(newData, attr, this.state.editData[attr]));\r\n this.setState({editMode: false}, () => this.props.onUpdate(newData, item))\r\n } else {\r\n this.setState({deleteMode: false}, () => this.props.onDelete(item))\r\n }\r\n }}>\r\n \r\n \r\n :\r\n this.setState({editMode: i, editData: null})}>\r\n \r\n }\r\n \r\n \r\n {this.state.editMode === i || this.state.deleteMode === i ?\r\n this.setState({editMode: false, deleteMode: false})}>\r\n \r\n \r\n :\r\n this.setState({deleteMode: i})}>\r\n \r\n \r\n }\r\n \r\n ,\r\n !level && this.state.opened.includes(item.id) ? children.map(item => this.renderLine(item, level + 1)) : null,\r\n ];\r\n }\r\n }\r\n\r\n handleRequestSort(property) {\r\n const isAsc = this.state.orderBy === property && this.state.order === 'asc';\r\n this.setState({order: isAsc ? 'desc' : 'asc', orderBy: property});\r\n }\r\n\r\n renderHead() {\r\n return \r\n \r\n \r\n \r\n this.handleRequestSort(this.props.columns[0].field)}\r\n >\r\n {this.props.columns[0].title}\r\n {this.state.orderBy === this.props.columns[0].field ?\r\n \r\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n : null}\r\n \r\n \r\n {this.props.columns.map((col, i) =>\r\n !i ? null : \r\n this.handleRequestSort(col.field)}\r\n >\r\n {col.title}\r\n {this.state.orderBy === col.field ?\r\n \r\n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n : null}\r\n \r\n )}\r\n \r\n \r\n \r\n ;\r\n }\r\n\r\n render() {\r\n const lookup = this.props.columns ? this.props.columns.find(col => col.field === this.state.orderBy).lookup : '';\r\n const table = stableSort(this.props.data, getComparator(this.state.order, this.state.orderBy, lookup));\r\n\r\n return
\r\n \r\n {this.renderHead()}\r\n \r\n {table.map(item => this.renderLine(item))}\r\n \r\n
\r\n
;\r\n }\r\n}\r\n\r\nTreeTable.propTypes = {\r\n data: PropTypes.array.isRequired,\r\n className: PropTypes.string,\r\n loading: PropTypes.bool,\r\n columns: PropTypes.array,\r\n onUpdate: PropTypes.func,\r\n onDelete: PropTypes.func,\r\n themeType: PropTypes.string,\r\n};\r\n\r\nexport default withStyles(styles)(TreeTable);\r\n\r\n","import React, {Component} from 'react';\r\nimport {withStyles} from '@material-ui/core/styles';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\nimport PropTypes from 'prop-types';\r\nimport copy from 'copy-to-clipboard';\r\n\r\nimport Fab from '@material-ui/core/Fab';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport IconCopy from '@material-ui/icons/FileCopy';\r\nimport IconClose from '@material-ui/icons/Close';\r\n\r\nimport I18n from '@iobroker/adapter-react/i18n';\r\nimport MessageDialog from '@iobroker/adapter-react/Dialogs/Message';\r\nimport DialogSelectID from '@iobroker/adapter-react/Dialogs/SelectID';\r\nimport Utils from '@iobroker/adapter-react/Components/Utils'\r\nimport ExpertIcon from '@iobroker/adapter-react/icons/IconExpert';\r\n\r\nimport TreeTable from '../Components/TreeTable';\r\n\r\nimport {MdAdd as IconAdd} from 'react-icons/md';\r\nimport {MdRefresh as IconRefresh} from 'react-icons/md';\r\nimport {MdHelpOutline as IconHelp} from 'react-icons/md';\r\nimport {MdList as IconList} from 'react-icons/md';\r\nimport {MdClear as IconClear} from 'react-icons/md';\r\n\r\nconst styles = theme => ({\r\n tab: {\r\n height: '100%',\r\n overflow: 'hidden',\r\n },\r\n tableDiv: {\r\n width: '100%',\r\n overflow: 'hidden',\r\n height: 'calc(100% - 48px)',\r\n },\r\n searchText: {\r\n width: 150,\r\n marginLeft: theme.spacing(1),\r\n verticalAlign: 'middle'\r\n },\r\n headerRow: {\r\n paddingLeft: theme.spacing(1),\r\n background: theme.palette.primary.main,\r\n },\r\n headerCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '30%'\r\n },\r\n tableCell: {\r\n display: 'inline-block',\r\n verticalAlign: 'top',\r\n width: '30%'\r\n },\r\n});\r\n\r\nconst MOBILE_HEIGHT = 400;\r\nconst MOBILE_WIDTH = 400;\r\n\r\nclass GoogleSmartNames extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.myTableRef = React.createRef();\r\n this.state = {\r\n editedSmartName: '',\r\n editId: '',\r\n editObjectName: '',\r\n deleteId: '',\r\n\r\n expertMode: window.localStorage.getItem('App.expertMode') !== 'true',\r\n helpHidden: window.localStorage.getItem('App.helpHidden') === 'true',\r\n showSelectId: false,\r\n searchText: '',\r\n showConfirmation: '',\r\n changed: [],\r\n devices: [],\r\n message: '',\r\n filter: '',\r\n loading: true,\r\n browse: false,\r\n expanded: [],\r\n lastChanged: '',\r\n helpHeight: 0\r\n };\r\n\r\n this.columns = [\r\n {\r\n title: I18n.t('ID'),\r\n field: 'id',\r\n editable: 'never',\r\n cellStyle: {\r\n maxWidth: '12rem',\r\n overflow: 'hidden',\r\n wordBreak: 'break-word'\r\n }\r\n },\r\n {title: I18n.t('Smart names'), field: 'name.nicknames'},\r\n {title: I18n.t('ioBType'), field: 'ioType', editable: 'never', cellStyle: {\r\n maxWidth: '4rem',\r\n overflow: 'hidden',\r\n wordBreak: 'break-word'\r\n }},\r\n {\r\n title: I18n.t('Type'),\r\n field: 'type',\r\n lookup: {\r\n 'action.devices.types.AC_UNIT': 'Air conditioning unit',\r\n 'action.devices.types.AIRFRESHENER': 'Air Freshener',\r\n 'action.devices.types.AIRPURIFIER': 'Air purifier',\r\n 'action.devices.types.AWNING': 'Awning',\r\n 'action.devices.types.BLINDS': 'Blinds',\r\n 'action.devices.types.BOILER': 'Boiler',\r\n 'action.devices.types.CAMERA': 'Camera',\r\n 'action.devices.types.COFFEE_MAKER': 'Coffee maker',\r\n 'action.devices.types.CURTAIN': 'Curtain',\r\n 'action.devices.types.DISHWASHER': 'Dishwasher',\r\n 'action.devices.types.DOOR': 'Door',\r\n 'action.devices.types.DRYER': 'Dryer',\r\n 'action.devices.types.FAN': 'Fan',\r\n 'action.devices.types.FIREPLACE': 'Fireplace',\r\n 'action.devices.types.GARAGE': 'Garage',\r\n 'action.devices.types.GATE': 'Gate',\r\n 'action.devices.types.HEATER': 'Heater',\r\n 'action.devices.types.HOOD': 'Hood',\r\n 'action.devices.types.KETTLE': 'Kettle',\r\n 'action.devices.types.LIGHT': 'Light',\r\n 'action.devices.types.LOCK': 'Lock',\r\n 'action.devices.types.MOP': 'Mop',\r\n 'action.devices.types.MICROWAVE': 'Microwave',\r\n 'action.devices.types.OUTLET': 'Outlet',\r\n 'action.devices.types.OVEN': 'Oven',\r\n 'action.devices.types.PERGOLA': 'Pergola',\r\n 'action.devices.types.REFRIGERATOR': 'Refrigerator',\r\n 'action.devices.types.SCENE': 'Scene',\r\n 'action.devices.types.SECURITYSYSTEM': 'Security System',\r\n 'action.devices.types.SENSOR': 'Sensor',\r\n 'action.devices.types.SHUTTER': 'Shutter',\r\n 'action.devices.types.SHOWER': 'Shower',\r\n 'action.devices.types.SPEAKER': 'Speaker',\r\n 'action.devices.types.SPRINKLER': 'Sprinkler',\r\n 'action.devices.types.SWITCH': 'Switch',\r\n 'action.devices.types.THERMOSTAT': 'Thermostat',\r\n 'action.devices.types.VACUUM': 'Vacuum',\r\n 'action.devices.types.VALVE': 'Valve',\r\n 'action.devices.types.WASHER': 'Washer',\r\n 'action.devices.types.WATERHEATER': 'Water heater',\r\n 'action.devices.types.WINDOW': 'Window'\r\n }\r\n },\r\n {title: I18n.t('Function/Trait'), field: 'displayTraits', lookup: {\r\n // 'action.devices.traits.ArmDisarm': 'ArmDisarm',\r\n 'action.devices.traits.Brightness': 'Brightness',\r\n // 'action.devices.traits.CameraStream': 'CameraStream',\r\n 'action.devices.traits.ColorSetting_temperature': 'ColorSetting_Temperature',\r\n 'action.devices.traits.ColorSetting_spectrumRGB': 'ColorSetting_RGB',\r\n // 'action.devices.traits.Dock': 'Dock',\r\n 'action.devices.traits.FanSpeed': 'FanSpeed',\r\n // 'action.devices.traits.LightEffects': 'LightEffects',\r\n // 'action.devices.traits.Locator': 'Locator',\r\n 'action.devices.traits.LockUnlock': 'LockUnlock',\r\n 'action.devices.traits.Modes': 'Modes',\r\n 'action.devices.traits.OnOff': 'OnOff',\r\n 'action.devices.traits.OpenClose': 'OpenClose',\r\n // 'action.devices.traits.RunCycle': 'RunCycle',\r\n 'action.devices.traits.Scene': 'Scene',\r\n // 'action.devices.traits.Sensor': 'Sensor',\r\n 'action.devices.traits.StartStop': 'StartStop',\r\n 'action.devices.traits.TemperatureControl_temperatureSetpointCelsius': 'Oven_SetTemp',\r\n 'action.devices.traits.TemperatureControl_temperatureAmbientCelsius': 'Oven_StatusTemp',\r\n 'action.devices.traits.TemperatureSetting_thermostatMode': 'Thermostat_Mode',\r\n 'action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint': 'Thermostat_SetTemp',\r\n 'action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient': 'Thermostat_StatusTemp',\r\n 'action.devices.traits.TemperatureSetting_thermostatHumidityAmbient': 'Thermostat_StatusHumidity',\r\n // 'action.devices.traits.Timer': 'Timer',\r\n 'action.devices.traits.Toggles': 'Toggles',\r\n 'action.devices.traits.Volume': 'Volume',\r\n }},\r\n\r\n {\r\n title: I18n.t('Attributes'),\r\n field: 'displayAttributes',\r\n cellStyle: {\r\n maxWidth: '12rem',\r\n overflow: 'hidden',\r\n wordBreak: 'break-word'\r\n },\r\n expertMode: true,\r\n editComponent: props =>