- Home
- Deutsch
- Skripten / Logik
- [gelöst] async-await
[gelöst] async-await
-
alles fing mal damit an Geräte zu zählen (z.B. Fenster). Dann die Auswertung ob offen/gekippt/geöffnet wieviel Fenster gibt es gesamt usw... Dann sollte Alexa dazu auch was sagen können. Dann kam noch der Wunsch nach Email und Telegram. Diese Ausgaben sollten auch anders formatiert sein, z.B. mit Smileys. Dann sollte es noch eine Liste geben als Text mit geöffneten/gekippten Fenstern und extra eine mit allen Fenstern und allen Zuständen. Dann kamen noch html Ausgaben dazu, einmal mit festen Einstellungen und dann noch eigene, frei einstellbare html Ausgaben (Farbe/ mit/ohne Rahmen/Schrift usw. usw...)
Jetzt ist es möglich z.B. Steckdosen oder Licht direkt aus der html Ansicht in iQontrol schalten zu können. Ach ja, iot Adapter ist auch noch mit im Spiel, wenn der verwendet wird können/werden gleich passende Smartgeräte über die Datenpunkte dafür erstellt.Ist halt so gewachsen. Es ist nicht so das es nicht funktioniert, nur geht das sicherlich eleganter.
Ich stelle gerade die ganzen html Ausgaben (die Textblöcke), die immer wieder gleich sind in Variablen, damit werden die Blocklys schon wieder deutlich kleiner.Was funktioniert denn im Moment nicht?
EDIT: Es funktioniert ja, mir ist nur nicht klar wie ich mit Deinem Beispiel eben alle meine Datenpunkte erstellen kann (löschen ist erstmal unwichtig)
-
@dslraser sagte in async-await:
EDIT: Es funktioniert ja, mir ist nur nicht klar wie ich mit Deinem Beispiel eben alle meine Datenpunkte erstellen kann (löschen ist erstmal unwichtig)
Nun, zu Telegram wird es ja immer diesselben DP geben, deshalb eine eigene statesAttribTG. Schau mal, so habe ich mir das gedacht.
- in die idBase kommt der Grundpfad, also hier z.B. 0_userdata.0.TestApp. Mit einem subKey kann man jetzt noch eine zusätzliche Ebene wählen. Die Unterebenen dort ergeben sich durch die Variablen. Ich hoffe das macht für dich Sinn und passt grob, sonst verfeinern wir das
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="(m7C_|Q2cbal%.{Hr9aN">subKey</variable> <variable id="50Z)2$?Be=m.c4!*vx+k">anlegen_in</variable> <variable id=":{}_qJr.-Nf?Gw0G]ih|">Email_verwenden</variable> <variable id=".g|S5B178Z0hi(5zzlg*">Telegram_verwenden</variable> <variable id="xHz3Sa?;(*/32eT%pB_i">Test_DP</variable> </variables> <block type="procedures_defcustomnoreturn" id="=lwe#KBAhO-D.Yr~J/b2" x="13" y="13"> <mutation statements="false"> <arg name="subKey" varid="(m7C_|Q2cbal%.{Hr9aN"></arg> </mutation> <field name="NAME">Datenpunkte_anlegen</field> <field name="SCRIPT">Y29uc3QgaWRCYXNlID0gYW5sZWdlbl9pbjsKYXN5bmMgZnVuY3Rpb24gaW5pdCgpewogICAgZmlyc3RSdW4gPSBhd2FpdCBjcmVhdGVEYXRhcG9pbnRzKCk7CiAgICAvL3dvcmsoKTsKfQoKLy8gY3JlYXRlIGRhdGEgcG9pbnRzIGlmIG5vdCBleGlzdGluZwphc3luYyBmdW5jdGlvbiBjcmVhdGVEYXRhcG9pbnRzKCkgewogICAgbGV0IGRwLAogICAgICAgIGlkS2V5LAogICAgICAgIGZpcnN0UnVuID0gZmFsc2U7CiAgICAKICAgIGNvbnN0IHN0YXRlQXR0cmlidXRlcyA9IHsKICAgICAgICAianNvbiI6eyJuYW1lIjoiRGF0ZW4iLCJ0eXBlIjoic3RyaW5nIiwicm9sZSI6IiIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJkZXNjIjoidm9uIFNrcmlwdCBlcnN0ZWxsdCIsImRlZiI6IiJ9LAogICAgICAgICJSZWZyZXNoIjp7Im5hbWUiOiJSZWZyZXNoIiwidHlwZSI6ImJvb2xlYW4iLCJyb2xlIjoiIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImRlc2MiOiJ2b24gU2tyaXB0IGVyc3RlbGx0IiwiZGVmIjpmYWxzZX0sCiAgICAgICAgIkV4Y2VsIjp7Im5hbWUiOiJIb2xlIEV4Y2VsZGF0ZWkiLCJ0eXBlIjoiYm9vbGVhbiIsInJvbGUiOiIiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZGVzYyI6InZvbiBTa3JpcHQgZXJzdGVsbHQiLCJkZWYiOmZhbHNlfSwKICAgIH0KICAgIGNvbnN0IHN0YXRlQXR0cmliVEcgPSB7CiAgICAgICAgImpzb24iOnsibmFtZSI6IkRhdGVuIiwidHlwZSI6InN0cmluZyIsInJvbGUiOiIiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZGVzYyI6InZvbiBTa3JpcHQgZXJzdGVsbHQiLCJkZWYiOiIifSwKICAgICAgICAiUmVmcmVzaCI6eyJuYW1lIjoiUmVmcmVzaCIsInR5cGUiOiJib29sZWFuIiwicm9sZSI6IiIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJkZXNjIjoidm9uIFNrcmlwdCBlcnN0ZWxsdCIsImRlZiI6ZmFsc2V9LAogICAgICAgICJFeGNlbCI6eyJuYW1lIjoiSG9sZSBFeGNlbGRhdGVpIiwidHlwZSI6ImJvb2xlYW4iLCJyb2xlIjoiIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImRlc2MiOiJ2b24gU2tyaXB0IGVyc3RlbGx0IiwiZGVmIjpmYWxzZX0sICAgICAgICAKICAgIH0KICAgIGNvbnN0IHN0YXRlQXR0cmliRW1haWwgPSB7CiAgICAgICAgImpzb24iOnsibmFtZSI6IkRhdGVuIiwidHlwZSI6InN0cmluZyIsInJvbGUiOiIiLCJyZWFkIjp0cnVlLCJ3cml0ZSI6dHJ1ZSwiZGVzYyI6InZvbiBTa3JpcHQgZXJzdGVsbHQiLCJkZWYiOiIifSwKICAgICAgICAiUmVmcmVzaCI6eyJuYW1lIjoiUmVmcmVzaCIsInR5cGUiOiJib29sZWFuIiwicm9sZSI6IiIsInJlYWQiOnRydWUsIndyaXRlIjp0cnVlLCJkZXNjIjoidm9uIFNrcmlwdCBlcnN0ZWxsdCIsImRlZiI6ZmFsc2V9LAogICAgICAgICJFeGNlbCI6eyJuYW1lIjoiSG9sZSBFeGNlbGRhdGVpIiwidHlwZSI6ImJvb2xlYW4iLCJyb2xlIjoiIiwicmVhZCI6dHJ1ZSwid3JpdGUiOnRydWUsImRlc2MiOiJ2b24gU2tyaXB0IGVyc3RlbGx0IiwiZGVmIjpmYWxzZX0sICAgICAgICAKICAgIH0KICAgIGZvcihsZXQga2V5IGluIHN0YXRlQXR0cmlidXRlcykgewogCiAgICAgICAgaWRLZXkgPSBpZEJhc2UgKyBzdWJLZXkgKyBrZXk7CiAKICAgICAgICBpZiAoIShhd2FpdCBleGlzdHNTdGF0ZUFzeW5jKGlkS2V5KSkpIHsKICAgICAgICAgICAgZHAgPSBzdGF0ZUF0dHJpYnV0ZXNba2V5XTsKICAgICAgICAgICAgZmlyc3RSdW4gPSB0cnVlOwogICAgICAgICAgICBhd2FpdCBjcmVhdGVTdGF0ZUFzeW5jKGlkS2V5LCBkcCk7CiAgICAgICAgfQogICAgfQogICAgCiAgICBpZiAoVGVsZWdyYW1fdmVyd2VuZGVuKXsKICAgICAgICBmb3IobGV0IGtleSBpbiBzdGF0ZUF0dHJpYlRHKSB7CiAgICAKICAgICAgICAgICAgaWRLZXkgPSBpZEJhc2UgKyBzdWJLZXkgKyAnVGVsZWdyYW0uJyArIGtleTsKICAgIAogICAgICAgICAgICBpZiAoIShhd2FpdCBleGlzdHNTdGF0ZUFzeW5jKGlkS2V5KSkpIHsKICAgICAgICAgICAgICAgIGRwID0gc3RhdGVBdHRyaWJ1dGVzW2tleV07CiAgICAgICAgICAgICAgICBmaXJzdFJ1biA9IHRydWU7CiAgICAgICAgICAgICAgICBhd2FpdCBjcmVhdGVTdGF0ZUFzeW5jKGlkS2V5LCBkcCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmIChFbWFpbF92ZXJ3ZW5kZW4pewogICAgICAgIGZvcihsZXQga2V5IGluIHN0YXRlQXR0cmliRW1haWwpIHsKICAgIAogICAgICAgICAgICBpZEtleSA9IGlkQmFzZSArIHN1YktleSArICdFbWFpbC4nICsga2V5OwogICAgCiAgICAgICAgICAgIGlmICghKGF3YWl0IGV4aXN0c1N0YXRlQXN5bmMoaWRLZXkpKSkgewogICAgICAgICAgICAgICAgZHAgPSBzdGF0ZUF0dHJpYnV0ZXNba2V5XTsKICAgICAgICAgICAgICAgIGZpcnN0UnVuID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGF3YWl0IGNyZWF0ZVN0YXRlQXN5bmMoaWRLZXksIGRwKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmaXJzdFJ1bjsKfQoKaW5pdCgpOwo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="variables_set" id="f^BE]x{MbV+}S:P4.D_i" x="13" y="38"> <field name="VAR" id="(m7C_|Q2cbal%.{Hr9aN">subKey</field> <value name="VALUE"> <block type="text" id="1r2EpbBX6=t+lr==u|f9"> <field name="TEXT">.Haus.</field> </block> </value> <next> <block type="variables_set" id="]R?O8fEB0/9Mimg{5G+n"> <field name="VAR" id="50Z)2$?Be=m.c4!*vx+k">anlegen_in</field> <value name="VALUE"> <block type="text" id="WeFb$m8,;lV1p#(K4/CW"> <field name="TEXT">0_userdata.0.TestApp</field> </block> </value> <next> <block type="variables_set" id="6$b/v%pAHs[+4Dp?Yk.;"> <field name="VAR" id=":{}_qJr.-Nf?Gw0G]ih|">Email_verwenden</field> <value name="VALUE"> <block type="logic_boolean" id="9MC7}^?^TJXm%{0%W{uP"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="variables_set" id="FGW2v!1.^I2vkrF]tf.7"> <field name="VAR" id=".g|S5B178Z0hi(5zzlg*">Telegram_verwenden</field> <value name="VALUE"> <block type="logic_boolean" id="(WNV$q0jI,pA[C4`^F0%"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callcustomnoreturn" id="pG##/69xE{Rypf9~TW5y"> <mutation name="Datenpunkte_anlegen"> <arg name="subKey"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="4Xk@]uExnB92Ql88-#8c"> <field name="VAR" id="(m7C_|Q2cbal%.{Hr9aN">subKey</field> </block> </value> <next> <block type="variables_set" id="ZHDKh0L$;5=bVn@#qa/3"> <field name="VAR" id="xHz3Sa?;(*/32eT%pB_i">Test_DP</field> <value name="VALUE"> <block type="text_join" id="9Fc^^u/Dv.!|Qcf~[_Ip"> <mutation items="3"></mutation> <value name="ADD0"> <block type="variables_get" id="~linCS?uDU:Y#:cZPDcL"> <field name="VAR" id="50Z)2$?Be=m.c4!*vx+k">anlegen_in</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="/QXPxU{dTHQdp]:^QL#b"> <field name="VAR" id="(m7C_|Q2cbal%.{Hr9aN">subKey</field> </block> </value> <value name="ADD2"> <block type="text" id="){)~AA/Gqi6n`mS!/${Q"> <field name="TEXT">Excel</field> </block> </value> </block> </value> <next> <block type="debug" id="umnxNUW]NKC_JAJR`a7z"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="0A9s:5Um/Um!)w^~v156"> <field name="TEXT">mach irgendwas</field> </shadow> </value> <next> <block type="control_ex" id="x2Ui-/Pto*06r$s{aL-I" inline="true"> <field name="TYPE">true</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="MiS7$HdUIS52r#KlxMP+"> <field name="oid">Object ID</field> </shadow> <block type="variables_get" id="Ra);[JC@~t2pIf/G,C76"> <field name="VAR" id="xHz3Sa?;(*/32eT%pB_i">Test_DP</field> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="-jNfpz4K^`IXOgPZ:XZy"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number" id="qt09Y!I/zfa6H!F*T]W-"> <field name="NUM">60000</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>
-
@fastfoot sagte in async-await:
Ich hoffe das macht für dich Sinn und passt grob, sonst verfeinern wir das
Ich glaube damit komme ich weiter und fange an es zu verstehen (ich bin sonst Blockly Mensch)
Bei weiteren Fragen melde ich mich wieder.
Und Danke für Deine Hilfe. -
@dslraser der Aufruf von work() in der Funktion wird nicht gebraucht, ich könnte mich da aber auch irren da man die Funktion nicht mit await aufrufen kann, so wie in Javascript gezeigt. Evtl. wieder einbauen
-
@dslraser sagte in async-await:
@fastfoot sagte in async-await:
Ich hoffe das macht für dich Sinn und passt grob, sonst verfeinern wir das
Ich glaube damit komme ich weiter und fange an es zu verstehen (ich bin sonst Blockly Mensch)
Bei weiteren Fragen melde ich mich wieder.
Und Danke für Deine Hilfe.sehr gerne, ich bin mittlerweile kmpl. weg von Blockly, mir ist mein Bildschirm zu klein für die großen Blöcke. Aber letztlich war Blockly mein Einstieg in JS.
-
@dslraser ich habe mir gerade mal angesehen wie du das jetzt konkret machst. Eigentlich hast du ja schon 'Alles' und willst nur einen Ersatz für
function createUserStates(where, force, statesToCreate, callback = undefined) {}
innerhalb deiner Funktion Datenpunkte_anlegen, verstehe ich das richtig? Dann könnte man ja erstmal die Funktion createDatapoints() so umschreiben dass sie die alte Version ersetzen kann. Du hast ja schon so etwas wie statesAttribxxx in Verwendung. -
@fastfoot sagte in async-await:
@dslraser ich habe mir gerade mal angesehen wie du das jetzt konkret machst. Eigentlich hast du ja schon 'Alles' und willst nur einen Ersatz für
function createUserStates(where, force, statesToCreate, callback = undefined) {}
innerhalb deiner Funktion Datenpunkte_anlegen, verstehe ich das richtig? Dann könnte man ja erstmal die Funktion createDatapoints() so umschreiben dass sie die alte Version ersetzen kann. Du hast ja schon so etwas wie statesAttribxxx in Verwendung.verstehe ich das richtig?
genau, die Funktion Datenpunkte_anlegen möchte ich quasi "updaten"
-
@dslraser sagte in async-await:
genau, die Funktion Datenpunkte_anlegen möchte ich quasi "updaten"
das macht es relativ einfach und meine dargelegte Logik erstmal obsolete. Bin nicht sicher ob ich das heute schaffe aber bis morgen kann ich dir das gerne umschreiben
-
@fastfoot sagte in async-await:
das macht es relativ einfach und meine dargelegte Logik erstmal obsolete. Bin nicht sicher ob ich das heute schaffe aber bis morgen kann ich dir das gerne umschreiben
das wäre prima. es eilt nicht, lasse Dir gern die Zeit die Du brauchst. Es dauert so lange wie es dauert.
-
@dslraser sagte in async-await:
@fastfoot sagte in async-await:
das macht es relativ einfach und meine dargelegte Logik erstmal obsolete. Bin nicht sicher ob ich das heute schaffe aber bis morgen kann ich dir das gerne umschreiben
das wäre prima. es eilt nicht, lasse Dir gern die Zeit die Du brauchst. Es dauert so lange wie es dauert.
ist fertig. Die Hauptarbeit bestand leider darin, deine Datenstruktur von einem Array in ein Objekt abzuändern. Es ist mir nicht gelungen die DP in einer Array.forEach-Schleife anzulegen. Scheinbar gibt es dann Timingprobleme oder sonstwas, iobroker meldet keinen Fehler, aber die DP werden nicht angelegt bzw. nur der letzte Eintrag. Da ich nur fortgeschrittener blutiger Anfänger(tm) bin, liegt es evtl. auch an einer falschen Umsetzung meinerseits. Mit einer Schleife über die keys eines Objektes gibt es dagegen keine Probleme.
Schau mal ob du damit leben kannst/willst, ich bin nicht ganz zufrieden damit, das liegt aber teilweise daran dass ich an deiner Struktur nichts abändern wollte. Getestet habe ich es mit der Lichter Version, aber nur DP anlegen da ich das passende Setup nicht habe
let Pfad = '', statesToCreate = {}, dpId = ''; const geraetePfad = '.Geraete_zaehlen.Lichter.'; async function createUserStates(where, statesToCreate) { let dp, idKey; for(let key in statesToCreate) { idKey = where + '.' + key; if (!(await existsStateAsync(idKey))) { dp = statesToCreate[key]; await createStateAsync(idKey, dp); } } } //let iqontrol_vorhanden = 'system.adapter.iqontrol'; //prüfen ob iqontol installiert ist //let iot_vorhanden = 'system.adapter.iot'; //prüfen ob iot installiert ist //##################################################################################################################################################################################################################################################################################################################################################################################### //Ansage Button Lichteransage anlegen if (Alexa_Ansage_verwenden == true && Lichter_verwenden == true){ statesToCreate = { '01_Alexa_Routinebutton': { 'name': '01_Alexa_Routinebutton', 'type': 'boolean', 'read': false, 'write': true, 'role': 'button', 'def': true, "smartName": { "de": 'Lichteransage ' + [etage], "smartType": "SWITCH" } } } Pfad = anlegen_in + geraetePfad + etage + '.04_Alexa'; await createUserStates(Pfad, statesToCreate) }; //Lichter Datenpunkte anlegen if (Lichter_verwenden == true) { statesToCreate = { '01_Lichter_Anzahl_gesamt': { "name": '01_Lichter_Anzahl_gesamt', 'type': 'number', 'read': true, 'write': false, 'role': 'number', 'unit': 'Lichter', 'def': 0 }, '02_Lichter_Anzahl_eingeschaltet': { "name": '02_Lichter_Anzahl_eingeschaltet', 'type': 'number', 'read': true, 'write': false, 'role': 'number', 'unit': 'Lichter', 'def': 0 }, '03_Lichter_Anzahl_ausgeschaltet': { "name": '03_Lichter_Anzahl_ausgeschaltet', 'type': 'number', 'read': true, 'write': false, 'role': 'number', 'unit': 'Lichter', 'def': 0 }, '04_eingeschaltete_Lichter_Liste': { "name": '04_eingeschaltete_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'noch leer' }, '05_gesamte_Lichter_Liste': { "name": '05_gesamte_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'noch leer' }, '06_html_Lichter_Liste': { "name": '06_html_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'html', 'def': 'noch leer' }, '07_Lichter_Liste_mit_Emojis': { "name": '07_Lichter_Liste_mit_Emojis', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'noch leer' }, '08_Lichter_Emoji_eingeschaltet': { "name": '08_Lichter_Emoji_eingeschaltet', 'type': 'mixed', 'read': true, 'write': true, 'role': 'mixed' }, '09_Lichter_Emoji_ausgeschaltet': { "name": '09_Lichter_Emoji_ausgeschaltet', 'type': 'mixed', 'read': true, 'write': true, 'role': 'mixed' }, '10_html_nur_eingeschaltete_Lichter_Liste': { "name": '10_html_nur_eingeschaltete_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'html', 'def': 'noch leer' }, } Pfad = anlegen_in + geraetePfad + etage + '.01_Anzeigen_und_Listen'; await createUserStates(Pfad, statesToCreate) /////////////////////////////////// // iQontrol Trigger und Schalter // /////////////////////////////////// statesToCreate = { '01_Thema_hell_Lichter_Liste': { "name": '01_Thema_hell_Lichter_Liste', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': true }, '02_Thema_dunkel_Lichter_Liste': { "name": '02_Thema_dunkel_Lichter_Liste', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }, '03_Thema_eigenes_Lichter_Liste': { "name": '03_Thema_eigenes_Lichter_Liste', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }, '04_Trigger_Tabelle_iQontrol_Lichter_Liste': { "name": '04_Trigger_Tabelle_iQontrol_Lichter_Liste', 'type': 'boolean', 'read': false, 'write': true, 'role': 'button', 'def': true }, '05_Schalter_fuer_Button_Tabelle_Lichter_Liste': { "name": '05_Schalter_fuer_Button_Tabelle_Lichter_Liste', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }, '06_Trigger_Farbe_iQontrol_Lichter_Liste': { "name": '06_Trigger_Farbe_iQontrol_Lichter_Liste', 'type': 'boolean', 'read': false, 'write': true, 'role': 'button', 'def': true }, '07_Umschalter_Farbe_Lichter_Liste': { "name": '07_Umschalter_Farbe_Lichter_Liste', 'type': 'number', 'read': true, 'write': false, 'role': 'number', 'def': 0 }, '08_Geraetestatus_in_Ueberschrift_an_aus': { "name": '08_Geraetestatus_in_Ueberschrift_an_aus', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': true }, '09_Geraete_in_HTML_Liste_schaltbar': { "name": '09_Geraete_in_HTML_Liste_schaltbar', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': true }, } Pfad = anlegen_in + geraetePfad + etage + '.02_Trigger_und_Schalter'; await createUserStates(Pfad, statesToCreate) /////////////////////////////////////////////// // HTML Daten Hell-Dunkel nicht beschreibbar // /////////////////////////////////////////////// statesToCreate = { '01_Hintergrundfarbe_Lichter_Liste': { "name": '01_Hintergrundfarbe_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'white' }, //Rahmen Kopf '02_Rahmenbreite_Kopf_Lichter_Liste': { "name": '02_Rahmenbreite_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '03_Rahmenstyle_Kopf_Lichter_Liste': { "name": '03_Rahmenstyle_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'solid' }, '04_Rahmenfarbe_Kopf_Lichter_Liste': { "name": '04_Rahmenfarbe_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, //Rahmen Überschrift '05_Rahmenbreite_Ueberschrift_Lichter_Liste': { "name": '05_Rahmenbreite_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '06_Rahmenstyle_Ueberschrift_Lichter_Liste': { "name": '06_Rahmenstyle_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'solid' }, '07_Rahmenfarbe_Ueberschrift_Lichter_Liste': { "name": '07_Rahmenfarbe_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, //Rahmen Tabelle aussen '08_Rahmenbreite_Tabelle_aussen_Lichter_Liste': { "name": '08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '5' }, '09_Rahmenstyle_Tabelle_aussen_Lichter_Liste': { "name": '09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'solid' }, '10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste': { "name": '10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, //Ueberschrift '11_Ueberschrift_Schriftgroesse_Lichter_Liste': { "name": '11_Ueberschrift_Schriftgroesse_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '4' }, '12_Ueberschrift_Farbe_Lichter_Liste': { "name": '12_Ueberschrift_Farbe_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, '13_Ueberschrift_Schriftart_Lichter_Liste': { "name": '13_Ueberschrift_Schriftart_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'apple' }, //Bild links '14_Bild_links_Lichter_Liste': { "name": '14_Bild_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': ' data:image/png;base64,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' }, '15_Bild_links_Hoehe_Lichter_Liste': { "name": '15_Bild_links_Hoehe_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '8' }, '16_Bild_links_Breite_Lichter_Liste': { "name": '16_Bild_links_Breite_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '8' }, '17_Bild_links_Abstand_links_Lichter_Liste': { "name": '17_Bild_links_Abstand_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '18_Bild_links_Abstand_oben_Lichter_Liste': { "name": '18_Bild_links_Abstand_oben_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '19_Bild_links_Abstand_unten_Lichter_Liste': { "name": '19_Bild_links_Abstand_unten_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '20_Bild_links_Abstand_rechts_Lichter_Liste': { "name": '20_Bild_links_Abstand_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, //Bild rechts '21_Bild_rechts_Lichter_Liste': { "name": '21_Bild_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': ' data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAUVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcqRVCAAAAGnRSTlMAECAwP0BQYG9wf4CPkJ+gr7C/wM/Q3+Dv8DtSRt8AAAMESURBVGje7ZndkqMgEEbBhIzEmfgvet7/QfdCM7uKBlBi1Val79JWOEIj/XUjxMc+dobJtOqIYl2VynXGvSei9fe1aRREtsKeTHQGFEtGBmB0Eie6iTYA2WKxeqCVETdRC/TzATVgZNStOgB65qotz2HTQDnzdEASF5IA3cwDEPvbtsb8QP5TyPX+GI/prnrcr2+AyLRaHk2bx/lOiNo4PgsVDaKq7ZO2UlEg8vEc0ORaJUIIkSidm6f3IY9DblO+bJdpINHtlANvRyHf40D16qqoenz6fQgy5eR2c+FVu71knhDZgCsHaAAauRcyMszl9Td3MRsUP0iBV06WLcBjH+QHz7w/Un72QG54a4uRcguHyD5AW0hjaxMfSA5w8T3WLwB5KEQRpl80gAqEVEAbkqJaoAqDKPvFHGb/wwkpgTos29ZLMeeCyOCJTFORARAdGhEhhDDAVwBklzTWiyV2QdgjjZOVQV5AFGDChZaZB9IByezP18fyeXHlgOT7qhU9fzcHpJ7POym6rlgJ0dKv5pF3QOYlUdID9BbF8i/KHgdk/qscJUm5hNj+V6M4Hk/Cq1tCbP8ByDDpxyXE9h+AvGm5zDzwA8BgB37pT17Ny7mFS2PKtS288Idt4VM+xlOOFbW2Y93WBR2Qpxz15yQtDTR7Visk/Z4iJERpSTWnVaGS6BxxJ+rQqDSWHIwvuLM9gntP6fATXgQNQOdbBHXAEF4EjeVc41fONWv7xL8w9aGMjGxfiZ37UUZGvrdZ0AJ0rmZBt1Em+7Y9xs5J+oqRslWKezdwRrHQbDdwxu5LfqCB84z+VoPu2dLLDjfVJnnVpcumWjpdgA0qQnsw/70Oe6TXsT14TR+/V2x5hPbgPw26NavjNDqFEEKV64gyXstWCCHklzWd+itu83maT5bXBsDUeebOaJ+rjQ/kb2n2hitAYymgt19m6gDV4Kkteuu95eCtGjwZzYp+yQD6NNZVedqv5pky/qV/uZVpYzLWVj8bYiKGbCNYujRxCKbUUnzsY2fYH0Cu0ke796XoAAAAAElFTkSuQmCC' }, '22_Bild_rechts_Hoehe_Lichter_Liste': { "name": '22_Bild_rechts_Hoehe_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '8' }, '23_Bild_rechts_Breite_Lichter_Liste': { "name": '23_Bild_rechts_Breite_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '8' }, '24_Bild_rechts_Abstand_links_Lichter_Liste': { "name": '24_Bild_rechts_Abstand_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '25_Bild_rechts_Abstand_oben_Lichter_Liste': { "name": '25_Bild_rechts_Abstand_oben_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '26_Bild_rechts_Abstand_unten_Lichter_Liste': { "name": '26_Bild_rechts_Abstand_unten_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, '27_Bild_rechts_Abstand_rechts_Lichter_Liste': { "name": '27_Bild_rechts_Abstand_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '0' }, //Abstand Kopf zur Tabelle '28_Abstand_Tabelle_zum_Kopf_Lichter_Liste': { "name": '28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '4' }, //Rahmen Tabelle '29_Rahmenbreite_Tabelle_innen_Lichter_Liste': { "name": '29_Rahmenbreite_Tabelle_innen_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '1' }, '30_Rahmenfarbe_Tabelle_innen_Lichter_Liste': { "name": '30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, //Schrift in der Tabelle aktive Geräte '31_Tabelle_Schriftart_Lichter_Liste': { "name": '31_Tabelle_Schriftart_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'apple' }, '32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste': { "name": '32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'red' }, '33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste': { "name": '33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '3.5' }, '34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste': { "name": '34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'red' }, '35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste': { "name": '35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '3.5' }, //Schrift in der Tabelle inaktive Geräte '36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste': { "name": '36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, '37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste': { "name": '37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '3.5' }, '38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste': { "name": '38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': 'black' }, '39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste': { "name": '39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': false, 'role': 'string', 'def': '3.5' }, //Schriftgroesse Status Geräte Ueberschrift '40_Ueberschrift_Schriftgroesse_aktive_Geraete': { "name": '40_Ueberschrift_Schriftgroesse_aktive_Geraete', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': '3' }, //Groesse Schaltfeld '41_Schaltfeld_Groesse_Lichter_Liste': { "name": '41_Schaltfeld_Groesse_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': '4' }, } Pfad = anlegen_in + geraetePfad + etage + '.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung'; await createUserStates(Pfad, statesToCreate) ////////////////////////////////////////////////// // HTML Daten eigene Einstellungen beschreibbar // ////////////////////////////////////////////////// statesToCreate = { '01_Hintergrundfarbe_Lichter_Liste': { "name": '01_Hintergrundfarbe_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Rahmen Kopf '02_Rahmenbreite_Kopf_Lichter_Liste': { "name": '02_Rahmenbreite_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '03_Rahmenstyle_Kopf_Lichter_Liste': { "name": '03_Rahmenstyle_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '04_Rahmenfarbe_Kopf_Lichter_Liste': { "name": '04_Rahmenfarbe_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Rahmen Überschrift '05_Rahmenbreite_Ueberschrift_Lichter_Liste': { "name": '05_Rahmenbreite_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '06_Rahmenstyle_Ueberschrift_Lichter_Liste': { "name": '06_Rahmenstyle_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '07_Rahmenfarbe_Ueberschrift_Lichter_Liste': { "name": '07_Rahmenfarbe_Ueberschrift_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Rahmen Tabelle aussen '08_Rahmenbreite_Tabelle_aussen_Lichter_Liste': { "name": '08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '09_Rahmenstyle_Tabelle_aussen_Lichter_Liste': { "name": '09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste': { "name": '10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Ueberschrift '11_Ueberschrift_Schriftgroesse_Lichter_Liste': { "name": '11_Ueberschrift_Schriftgroesse_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '12_Ueberschrift_Farbe_Lichter_Liste': { "name": '12_Ueberschrift_Farbe_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '13_Ueberschrift_Schriftart_Lichter_Liste': { "name": '13_Ueberschrift_Schriftart_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Bild links '14_Bild_links_Lichter_Liste': { "name": '14_Bild_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '15_Bild_links_Hoehe_Lichter_Liste': { "name": '15_Bild_links_Hoehe_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '16_Bild_links_Breite_Lichter_Liste': { "name": '16_Bild_links_Breite_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '17_Bild_links_Abstand_links_Lichter_Liste': { "name": '17_Bild_links_Abstand_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '18_Bild_links_Abstand_oben_Lichter_Liste': { "name": '18_Bild_links_Abstand_oben_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '19_Bild_links_Abstand_unten_Lichter_Liste': { "name": '19_Bild_links_Abstand_unten_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '20_Bild_links_Abstand_rechts_Lichter_Liste': { "name": '20_Bild_links_Abstand_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Bild rechts '21_Bild_rechts_Lichter_Liste': { "name": '21_Bild_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '22_Bild_rechts_Hoehe_Lichter_Liste': { "name": '22_Bild_rechts_Hoehe_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '23_Bild_rechts_Breite_Lichter_Liste': { "name": '23_Bild_rechts_Breite_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '24_Bild_rechts_Abstand_links_Lichter_Liste': { "name": '24_Bild_rechts_Abstand_links_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '25_Bild_rechts_Abstand_oben_Lichter_Liste': { "name": '25_Bild_rechts_Abstand_oben_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '26_Bild_rechts_Abstand_unten_Lichter_Liste': { "name": '26_Bild_rechts_Abstand_unten_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '27_Bild_rechts_Abstand_rechts_Lichter_Liste': { "name": '27_Bild_rechts_Abstand_rechts_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Abstand Kopf zur Tabelle '28_Abstand_Tabelle_zum_Kopf_Lichter_Liste': { "name": '28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Rahmen Tabelle '29_Rahmenbreite_Tabelle_innen_Lichter_Liste': { "name": '29_Rahmenbreite_Tabelle_innen_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '30_Rahmenfarbe_Tabelle_innen_Lichter_Liste': { "name": '30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Schrift in der Tabelle aktive Gerätte '31_Tabelle_Schriftart_Lichter_Liste': { "name": '31_Tabelle_Schriftart_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste': { "name": '32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste': { "name": '33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste': { "name": '34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste': { "name": '35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Schrift in der Tabelle inaktive Gerätte '36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste': { "name": '36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste': { "name": '37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste': { "name": '38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, '39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste': { "name": '39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Schriftgroesse Status Geräte Ueberschrift '40_Ueberschrift_Schriftgroesse_aktive_Geraete': { "name": '40_Ueberschrift_Schriftgroesse_aktive_Geraete', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, //Groesse Schaltfeld '41_Schaltfeld_Groesse_Lichter_Liste': { "name": '41_Schaltfeld_Groesse_Lichter_Liste', 'type': 'string', 'read': true, 'write': true, 'role': 'string', 'def': ' ' }, }; Pfad = anlegen_in + geraetePfad + etage + '.03_HTML_Daten.02_HTML_Eigene_Einstellungen'; await createUserStates(Pfad, statesToCreate) }; //Telegram Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == true) { dpId = 'Telegram_Lichter_' + [etage] + '_Versand_an_aus'; statesToCreate = {}; statesToCreate[dpId] = { "name": 'Telegram_Lichter_' + [etage] + '_Versand_an_aus', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }; Pfad = anlegen_in + geraetePfad + etage + '.05_Telegram'; await createUserStates(Pfad, statesToCreate) dpId = 'Telegram_Lichterstatus_' + [etage] + '_senden' statesToCreate = {}; statesToCreate[dpId] = { "name": 'Telegram_Lichterstatus_' + [etage] + '_senden', 'type': 'boolean', 'read': true, 'write': true, 'role': 'button', 'def': true, "smartName": { "de": 'Telegram Lichterstatus ' + [etage] + ' senden', "smartType": "SWITCH" } }; Pfad = anlegen_in + geraetePfad + etage + '.05_Telegram'; await createUserStates(Pfad, statesToCreate) }; //Telegram Lichter Nachrichtenversand anlegen ohne SmartNamen if (Lichter_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == false) { dpId = 'Telegram_Lichter_' + [etage] + '_Versand_an_aus'; statesToCreate = {}; statesToCreate[dpId] = { "name": 'Telegram_Lichter_' + [etage] + '_Versand_an_aus', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }; Pfad = anlegen_in + geraetePfad + etage + '.05_Telegram'; await createUserStates(Pfad, statesToCreate) dpId = 'Telegram_Lichterstatus_' + [etage] + '_senden' statesToCreate = {}; statesToCreate[dpId] = { "name": 'Telegram_Lichterstatus_' + [etage] + '_senden', 'type': 'boolean', 'read': true, 'write': true, 'role': 'button', 'def': true, "smartName": false }; Pfad = anlegen_in + geraetePfad + etage + '.05_Telegram'; await createUserStates(Pfad, statesToCreate); }; //E-Mail Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == true){ dpId = 'EMAIL_Lichter_'+[etage] + '_Versand_an_aus' statesToCreate = {}; statesToCreate[dpId] = { "name": 'EMAIL_Lichter_' + [etage] + '_Versand_an_aus', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }; Pfad = anlegen_in + geraetePfad + etage + '.06_E-Mail'; await createUserStates(Pfad, statesToCreate) dpId = 'EMAIL_Lichterstatus_'+[etage]+'_senden' statesToCreate = {}; statesToCreate[dpId] = { "name": 'EMAIL_Lichterstatus_' + [etage] + '_senden', 'type': 'boolean', 'read': true, 'write': true, 'role': 'button', 'def': true, "smartName": { "de": 'EMAIL Lichterstatus ' + [etage] + ' senden', "smartType": "SWITCH" } }; Pfad = anlegen_in + geraetePfad + etage + '.06_E-Mail'; await createUserStates(Pfad, statesToCreate) }; //E-Mail Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == false){ dpId = 'EMAIL_Lichter_'+[etage] + '_Versand_an_aus' statesToCreate = {}; statesToCreate[dpId] = { "name": 'EMAIL_Lichter_' + [etage] + '_Versand_an_aus', 'type': 'boolean', 'read': true, 'write': true, 'role': 'switch', 'def': false }; Pfad = anlegen_in + geraetePfad + etage + '.06_E-Mail'; await createUserStates(Pfad, statesToCreate) dpId = 'EMAIL_Lichterstatus_'+[etage]+'_senden' statesToCreate = {}; statesToCreate[dpId] = { "name": 'EMAIL_Lichterstatus_' + [etage] + '_senden', 'type': 'boolean', 'read': true, 'write': true, 'role': 'button', 'def': true, "smartName": false }; Pfad = anlegen_in + geraetePfad + etage + '.06_E-Mail'; await createUserStates(Pfad, statesToCreate) }; //##################################################################################################################################################################################################################################################################################################################################################################################### //Ab hier Datenpunkte löschen //############################################################################### if (!Lichter_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Lichter_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.04_Alexa.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.04_Alexa.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Telegram_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.05_Telegram.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Telegram_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.05_Telegram.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Email_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.06_E-Mail.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Email_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.06_E-Mail.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### main();
-
@fastfoot
Danke Dir. Heute werde ich leider nicht mehr dazu kommen, aber ich gebe auf jeden Fall eine Rückmeldung. -
@dslraser sagte in async-await:
@fastfoot
Danke Dir. Heute werde ich leider nicht mehr dazu kommen, aber ich gebe auf jeden Fall eine Rückmeldung.Hier dann doch noch eine Version, welche deine Struktur unangetastet lässt. Du kannst also in deinen anderen Blocklys
- einfach die alte createUserStates() durch diese hier ersetzen.
- Zusätzlich musst du die Funktion immer mit
await
aufrufen, also
await createUserStates(anlegen_in,false, statesToCreate)};
- Das ist alles, der timeout für main() kann dann weg.
- der zweite Parameter(ursprünglich forceCreate) wird nicht ausgewertet, er ist nur da damit du nicht soviel im Aufruf ändern musst. In der Funktion heisst er dummy
Du solltest deine DP-Definitionen trotzdem mal überarbeiten, da ist sehr viel Gleiches hard-gecodet, z.B. Geraete_zaehlen.Licht, siehe dazu meinen ersten Versuch im Post zuvor, da habe ich das eliminiert und durch Variablen am Anfang ersetzt
async function createUserStates(where, dummy, statesToCreate) { let dp, idKey; for(let key of statesToCreate){ idKey = where + '.' + key[0]; dp = key[1]; if (!(await existsStateAsync(idKey))) { await createStateAsync(idKey, dp); } } } //let iqontrol_vorhanden = 'system.adapter.iqontrol'; //prüfen ob iqontol installiert ist //let iot_vorhanden = 'system.adapter.iot'; //prüfen ob iot installiert ist //##################################################################################################################################################################################################################################################################################################################################################################################### //Ansage Button Lichteransage anlegen if (Alexa_Ansage_verwenden == true && Lichter_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.04_Alexa.01_Alexa_Routinebutton', {'name': '01_Alexa_Routinebutton','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true, "smartName": {"de": 'Lichteransage '+[etage],"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in,false, statesToCreate)}; //Lichter Datenpunkte anlegen if (Lichter_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.01_Lichter_Anzahl_gesamt', {'name':'01_Lichter_Anzahl_gesamt', 'type':'number', 'read':true, 'write':false, 'role':'number', 'unit': 'Lichter', 'def':0 }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.02_Lichter_Anzahl_eingeschaltet', {'name':'02_Lichter_Anzahl_eingeschaltet', 'type':'number', 'read':true, 'write':false, 'role':'number', 'unit': 'Lichter', 'def':0 }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.03_Lichter_Anzahl_ausgeschaltet', {'name':'03_Lichter_Anzahl_ausgeschaltet', 'type':'number', 'read':true, 'write':false, 'role':'number', 'unit': 'Lichter', 'def':0 }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.04_eingeschaltete_Lichter_Liste', {'name': '04_eingeschaltete_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'noch leer' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.05_gesamte_Lichter_Liste', {'name': '05_gesamte_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'noch leer' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.06_html_Lichter_Liste', {'name':'06_html_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'html', 'def':'noch leer' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.07_Lichter_Liste_mit_Emojis', {'name':'07_Lichter_Liste_mit_Emojis', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'noch leer' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.08_Lichter_Emoji_eingeschaltet', {'name':'08_Lichter_Emoji_eingeschaltet', 'type':'mixed', 'read':true, 'write':true, 'role':'mixed' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.09_Lichter_Emoji_ausgeschaltet', {'name':'09_Lichter_Emoji_ausgeschaltet', 'type':'mixed', 'read':true, 'write':true, 'role':'mixed' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.01_Anzeigen_und_Listen.10_html_nur_eingeschaltete_Lichter_Liste', {'name':'10_html_nur_eingeschaltete_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'html', 'def':'noch leer' }], /////////////////////////////////// // iQontrol Trigger und Schalter // /////////////////////////////////// ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.01_Thema_hell_Lichter_Liste', {'name':'01_Thema_hell_Lichter_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':true}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.02_Thema_dunkel_Lichter_Liste', {'name':'02_Thema_dunkel_Lichter_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':false}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.03_Thema_eigenes_Lichter_Liste', {'name':'03_Thema_eigenes_Lichter_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':false}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.04_Trigger_Tabelle_iQontrol_Lichter_Liste', {'name': '04_Trigger_Tabelle_iQontrol_Lichter_Liste','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.05_Schalter_fuer_Button_Tabelle_Lichter_Liste', {'name': '05_Schalter_fuer_Button_Tabelle_Lichter_Liste','type': 'boolean', 'read': true, 'write': true, 'role': 'switch','def':false}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.06_Trigger_Farbe_iQontrol_Lichter_Liste', {'name': '06_Trigger_Farbe_iQontrol_Lichter_Liste','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.07_Umschalter_Farbe_Lichter_Liste', {'name': '07_Umschalter_Farbe_Lichter_Liste','type': 'number', 'read': true, 'write': false, 'role': 'number','def':0}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.08_Geraetestatus_in_Ueberschrift_an_aus', {'name': '08_Geraetestatus_in_Ueberschrift_an_aus','type': 'boolean', 'read': true, 'write': true, 'role': 'switch','def':true}], ['Geraete_zaehlen.Lichter.'+[etage]+'.02_Trigger_und_Schalter.09_Geraete_in_HTML_Liste_schaltbar', {'name': '09_Geraete_in_HTML_Liste_schaltbar','type': 'boolean', 'read': true, 'write': true, 'role': 'switch','def':true}], /////////////////////////////////////////////// // HTML Daten Hell-Dunkel nicht beschreibbar // /////////////////////////////////////////////// ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.01_Hintergrundfarbe_Lichter_Liste', {'name':'01_Hintergrundfarbe_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'white' }], //Rahmen Kopf ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.02_Rahmenbreite_Kopf_Lichter_Liste', {'name':'02_Rahmenbreite_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.03_Rahmenstyle_Kopf_Lichter_Liste', {'name':'03_Rahmenstyle_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'solid' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.04_Rahmenfarbe_Kopf_Lichter_Liste', {'name':'04_Rahmenfarbe_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], //Rahmen Überschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.05_Rahmenbreite_Ueberschrift_Lichter_Liste', {'name':'05_Rahmenbreite_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.06_Rahmenstyle_Ueberschrift_Lichter_Liste', {'name':'06_Rahmenstyle_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'solid' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.07_Rahmenfarbe_Ueberschrift_Lichter_Liste', {'name':'07_Rahmenfarbe_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], //Rahmen Tabelle aussen ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', {'name':'08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'5' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', {'name':'09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'solid' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', {'name':'10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], //Ueberschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.11_Ueberschrift_Schriftgroesse_Lichter_Liste', {'name':'11_Ueberschrift_Schriftgroesse_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'4' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.12_Ueberschrift_Farbe_Lichter_Liste', {'name':'12_Ueberschrift_Farbe_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.13_Ueberschrift_Schriftart_Lichter_Liste', {'name':'13_Ueberschrift_Schriftart_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'apple' }], //Bild links ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.14_Bild_links_Lichter_Liste', {'name':'14_Bild_links_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':' data:image/png;base64,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'}], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.15_Bild_links_Hoehe_Lichter_Liste', {'name':'15_Bild_links_Hoehe_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'8' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.16_Bild_links_Breite_Lichter_Liste', {'name':'16_Bild_links_Breite_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'8' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.17_Bild_links_Abstand_links_Lichter_Liste', {'name':'17_Bild_links_Abstand_links_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.18_Bild_links_Abstand_oben_Lichter_Liste', {'name':'18_Bild_links_Abstand_oben_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.19_Bild_links_Abstand_unten_Lichter_Liste', {'name':'19_Bild_links_Abstand_unten_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.20_Bild_links_Abstand_rechts_Lichter_Liste', {'name':'20_Bild_links_Abstand_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], //Bild rechts ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.21_Bild_rechts_Lichter_Liste', {'name':'21_Bild_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':' data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAAUVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcqRVCAAAAGnRSTlMAECAwP0BQYG9wf4CPkJ+gr7C/wM/Q3+Dv8DtSRt8AAAMESURBVGje7ZndkqMgEEbBhIzEmfgvet7/QfdCM7uKBlBi1Val79JWOEIj/XUjxMc+dobJtOqIYl2VynXGvSei9fe1aRREtsKeTHQGFEtGBmB0Eie6iTYA2WKxeqCVETdRC/TzATVgZNStOgB65qotz2HTQDnzdEASF5IA3cwDEPvbtsb8QP5TyPX+GI/prnrcr2+AyLRaHk2bx/lOiNo4PgsVDaKq7ZO2UlEg8vEc0ORaJUIIkSidm6f3IY9DblO+bJdpINHtlANvRyHf40D16qqoenz6fQgy5eR2c+FVu71knhDZgCsHaAAauRcyMszl9Td3MRsUP0iBV06WLcBjH+QHz7w/Un72QG54a4uRcguHyD5AW0hjaxMfSA5w8T3WLwB5KEQRpl80gAqEVEAbkqJaoAqDKPvFHGb/wwkpgTos29ZLMeeCyOCJTFORARAdGhEhhDDAVwBklzTWiyV2QdgjjZOVQV5AFGDChZaZB9IByezP18fyeXHlgOT7qhU9fzcHpJ7POym6rlgJ0dKv5pF3QOYlUdID9BbF8i/KHgdk/qscJUm5hNj+V6M4Hk/Cq1tCbP8ByDDpxyXE9h+AvGm5zDzwA8BgB37pT17Ny7mFS2PKtS288Idt4VM+xlOOFbW2Y93WBR2Qpxz15yQtDTR7Visk/Z4iJERpSTWnVaGS6BxxJ+rQqDSWHIwvuLM9gntP6fATXgQNQOdbBHXAEF4EjeVc41fONWv7xL8w9aGMjGxfiZ37UUZGvrdZ0AJ0rmZBt1Em+7Y9xs5J+oqRslWKezdwRrHQbDdwxu5LfqCB84z+VoPu2dLLDjfVJnnVpcumWjpdgA0qQnsw/70Oe6TXsT14TR+/V2x5hPbgPw26NavjNDqFEEKV64gyXstWCCHklzWd+itu83maT5bXBsDUeebOaJ+rjQ/kb2n2hitAYymgt19m6gDV4Kkteuu95eCtGjwZzYp+yQD6NNZVedqv5pky/qV/uZVpYzLWVj8bYiKGbCNYujRxCKbUUnzsY2fYH0Cu0ke796XoAAAAAElFTkSuQmCC'}], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.22_Bild_rechts_Hoehe_Lichter_Liste', {'name':'22_Bild_rechts_Hoehe_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'8' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.23_Bild_rechts_Breite_Lichter_Liste', {'name':'23_Bild_rechts_Breite_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'8' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.24_Bild_rechts_Abstand_links_Lichter_Liste', {'name':'24_Bild_rechts_Abstand_links_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.25_Bild_rechts_Abstand_oben_Lichter_Liste', {'name':'25_Bild_rechts_Abstand_oben_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.26_Bild_rechts_Abstand_unten_Lichter_Liste', {'name':'26_Bild_rechts_Abstand_unten_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.27_Bild_rechts_Abstand_rechts_Lichter_Liste', {'name':'27_Bild_rechts_Abstand_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'0' }], //Abstand Kopf zur Tabelle ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', {'name':'28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'4' }], //Rahmen Tabelle ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.29_Rahmenbreite_Tabelle_innen_Lichter_Liste', {'name':'29_Rahmenbreite_Tabelle_innen_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'1' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', {'name':'30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], //Schrift in der Tabelle aktive Geräte ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.31_Tabelle_Schriftart_Lichter_Liste', {'name':'31_Tabelle_Schriftart_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'apple' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', {'name':'32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'red' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', {'name':'33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'3.5' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', {'name':'34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'red' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', {'name':'35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'3.5' }], //Schrift in der Tabelle inaktive Geräte ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', {'name':'36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', {'name':'37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'3.5' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', {'name':'38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'black' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', {'name':'39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':false, 'role':'string', 'def':'3.5' }], //Schriftgroesse Status Geräte Ueberschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.40_Ueberschrift_Schriftgroesse_aktive_Geraete', {'name':'40_Ueberschrift_Schriftgroesse_aktive_Geraete', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'3' }], //Groesse Schaltfeld ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.41_Schaltfeld_Groesse_Lichter_Liste', {'name':'41_Schaltfeld_Groesse_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':'4' }], ////////////////////////////////////////////////// // HTML Daten eigene Einstellungen beschreibbar // ////////////////////////////////////////////////// ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.01_Hintergrundfarbe_Lichter_Liste', {'name':'01_Hintergrundfarbe_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Rahmen Kopf ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.02_Rahmenbreite_Kopf_Lichter_Liste', {'name':'02_Rahmenbreite_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.03_Rahmenstyle_Kopf_Lichter_Liste', {'name':'03_Rahmenstyle_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.04_Rahmenfarbe_Kopf_Lichter_Liste', {'name':'04_Rahmenfarbe_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Rahmen Überschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.05_Rahmenbreite_Ueberschrift_Lichter_Liste', {'name':'05_Rahmenbreite_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.06_Rahmenstyle_Ueberschrift_Lichter_Liste', {'name':'06_Rahmenstyle_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.07_Rahmenfarbe_Ueberschrift_Lichter_Liste', {'name':'07_Rahmenfarbe_Ueberschrift_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Rahmen Tabelle aussen ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', {'name':'08_Rahmenbreite_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', {'name':'09_Rahmenstyle_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', {'name':'10_Rahmenfarbe_Tabelle_aussen_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Ueberschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.11_Ueberschrift_Schriftgroesse_Lichter_Liste', {'name':'11_Ueberschrift_Schriftgroesse_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.12_Ueberschrift_Farbe_Lichter_Liste', {'name':'12_Ueberschrift_Farbe_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.13_Ueberschrift_Schriftart_Lichter_Liste', {'name':'13_Ueberschrift_Schriftart_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Bild links ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.14_Bild_links_Lichter_Liste', {'name':'14_Bild_links_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.15_Bild_links_Hoehe_Lichter_Liste', {'name':'15_Bild_links_Hoehe_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.16_Bild_links_Breite_Lichter_Liste', {'name':'16_Bild_links_Breite_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.17_Bild_links_Abstand_links_Lichter_Liste', {'name':'17_Bild_links_Abstand_links_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.18_Bild_links_Abstand_oben_Lichter_Liste', {'name':'18_Bild_links_Abstand_oben_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.19_Bild_links_Abstand_unten_Lichter_Liste', {'name':'19_Bild_links_Abstand_unten_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.20_Bild_links_Abstand_rechts_Lichter_Liste', {'name':'20_Bild_links_Abstand_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Bild rechts ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.21_Bild_rechts_Lichter_Liste', {'name':'21_Bild_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.22_Bild_rechts_Hoehe_Lichter_Liste', {'name':'22_Bild_rechts_Hoehe_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.23_Bild_rechts_Breite_Lichter_Liste', {'name':'23_Bild_rechts_Breite_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.24_Bild_rechts_Abstand_links_Lichter_Liste', {'name':'24_Bild_rechts_Abstand_links_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.25_Bild_rechts_Abstand_oben_Lichter_Liste', {'name':'25_Bild_rechts_Abstand_oben_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.26_Bild_rechts_Abstand_unten_Lichter_Liste', {'name':'26_Bild_rechts_Abstand_unten_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.27_Bild_rechts_Abstand_rechts_Lichter_Liste', {'name':'27_Bild_rechts_Abstand_rechts_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Abstand Kopf zur Tabelle ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', {'name':'28_Abstand_Tabelle_zum_Kopf_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Rahmen Tabelle ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.29_Rahmenbreite_Tabelle_innen_Lichter_Liste', {'name':'29_Rahmenbreite_Tabelle_innen_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', {'name':'30_Rahmenfarbe_Tabelle_innen_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Schrift in der Tabelle aktive Gerätte ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.31_Tabelle_Schriftart_Lichter_Liste', {'name':'31_Tabelle_Schriftart_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', {'name':'32_Tabelle_Schriftfarbe_aktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', {'name':'33_Tabelle_Schriftgroesse_aktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', {'name':'34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', {'name':'35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Schrift in der Tabelle inaktive Gerätte ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', {'name':'36_Tabelle_Schriftfarbe_inaktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', {'name':'37_Tabelle_Schriftgroesse_inaktives_Geraet_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', {'name':'38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', {'name':'39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Schriftgroesse Status Geräte Ueberschrift ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.40_Ueberschrift_Schriftgroesse_aktive_Geraete', {'name':'40_Ueberschrift_Schriftgroesse_aktive_Geraete', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], //Groesse Schaltfeld ['Geraete_zaehlen.Lichter.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.41_Schaltfeld_Groesse_Lichter_Liste', {'name':'41_Schaltfeld_Groesse_Lichter_Liste', 'type':'string', 'read':true, 'write':true, 'role':'string', 'def':' ' }], ]; await createUserStates(anlegen_in,false, statesToCreate)}; //Telegram Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.05_Telegram.Telegram_Lichter_'+[etage]+'_Versand_an_aus', {'name':'Telegram_Lichter_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Lichter.'+[etage]+'.05_Telegram.Telegram_Lichterstatus_'+[etage]+'_senden', {'name':'Telegram_Lichterstatus_'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'Telegram Lichterstatus '+[etage]+' senden',"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in,true, statesToCreate)}; //Telegram Lichter Nachrichtenversand anlegen ohne SmartNamen if (Lichter_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == false){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.05_Telegram.Telegram_Lichter_'+[etage]+'_Versand_an_aus', {'name':'Telegram_Lichter_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Lichter.'+[etage]+'.05_Telegram.Telegram_Lichterstatus_'+[etage]+'_senden', {'name':'Telegram_Lichterstatus_'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": false }], ]; await createUserStates(anlegen_in,true, statesToCreate)}; //E-Mail Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.06_E-Mail.EMAIL_Lichter_'+[etage]+'_Versand_an_aus', {'name':'EMAIL_Lichter_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Lichter.'+[etage]+'.06_E-Mail.EMAIL_Lichterstatus_'+[etage]+'_senden', {'name':'EMAIL_Lichterstatus_'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'EMAIL Lichterstatus '+[etage]+' senden',"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in,true, statesToCreate)}; //E-Mail Lichter Nachrichtenversand anlegen mit SmartNamen if (Lichter_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == false){ let statesToCreate = [ ['Geraete_zaehlen.Lichter.'+[etage]+'.06_E-Mail.EMAIL_Lichter_'+[etage]+'_Versand_an_aus', {'name':'EMAIL_Lichter_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Lichter.'+[etage]+'.06_E-Mail.EMAIL_Lichterstatus_'+[etage]+'_senden', {'name':'EMAIL_Lichterstatus_'+[etage]+'_senden', 'type':'boolean', 'read':true, 'write':true, 'role':'button', 'def':true, "smartName": false }], ]; await createUserStates(anlegen_in,true, statesToCreate)}; //##################################################################################################################################################################################################################################################################################################################################################################################### //Ab hier Datenpunkte löschen //############################################################################### if (!Lichter_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Lichter_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.04_Alexa.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.04_Alexa.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Telegram_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.05_Telegram.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Telegram_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.05_Telegram.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### if (!Email_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Lichter.*.06_E-Mail.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Email_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Lichter.*.06_E-Mail.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### main();
-
@fastfoot
ich habe Deine Variante hier mal eingebaut. Bei mir funktionierte in dieser Version alles wie es soll.