- Home
- Deutsch
- Skripten / Logik
- JavaScript
- async / await -> Muster Anleitung gesucht
async / await -> Muster Anleitung gesucht
-
@hendrick
Ich beschäftige mich aktuell auch gerade mit diesem Thema und hänge mich hier mal drann, ich hoffe das ist okay.Bisher arbeite ich fast ausschließlich mit Blockly, und erstelle mit einer Javascript Funktion meine benötigten Datenpunkte. Hier im Blockly können Variablen auf true/false gestellt werden, dann werden die benötigten Datenpunkte erstellt oder bei Abwahl auch wieder gelöscht, falls die existieren. Das hat lange so funktioniert, geht nun aber nicht mehr bzw. manchmal nicht mehr. Es wird angeblich ein DP nicht gefunden, der ist aber da, das endet dann immer im Absturz der Instanz. (Fehlermeldung reiche ich nach)
Ziel ist es alle benötigten Datenpunkte zu erstellen oder zu löschen, erst wenn das fertig ist soll die Funktionmain()
aufgerufen werden, darin befindet sich das eigentliche Blockly.host.iobroker 2021-12-16 19:47:27.171 info Restart adapter system.adapter.javascript.0 because enabled host.iobroker 2021-12-16 19:47:27.171 error instance system.adapter.javascript.0 terminated with code 6 (UNCAUGHT_EXCEPTION) host.iobroker 2021-12-16 19:47:27.171 error Caught by controller[1]: at processImmediate (internal/timers.js:466:21) host.iobroker 2021-12-16 19:47:27.171 error Caught by controller[1]: at Immediate.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1965:33) host.iobroker 2021-12-16 19:47:27.171 error Caught by controller[1]: at setStateHelper (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:390:30) host.iobroker 2021-12-16 19:47:27.171 error Caught by controller[1]: at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/lib/tools.js:83:39) host.iobroker 2021-12-16 19:47:27.171 error Caught by controller[1]: Error: State "javascript.0.Geraete_zaehlen.Steckdosen.Haus.01_Anzeigen_und_Listen.04_eingeschaltete_Steckdosen_Liste" not found host.iobroker 2021-12-16 19:47:27.170 error Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejecte javascript.0 2021-12-16 19:47:26.541 warn (27359) Terminated (UNCAUGHT_EXCEPTION): Without reason javascript.0 2021-12-16 19:47:26.541 info (27359) terminating
Variablen und der Inhalt der Funktion bisher:
async function createUserStates(where, 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 Steckdosenansage anlegen if (Alexa_Ansage_verwenden == true && Steckdosen_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.04_Alexa.01_Alexa_Routinebutton', {'name': '01_Alexa_Routinebutton','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true, "smartName": {"de": 'Steckdosenansage '+[etage],"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in, statesToCreate)}; //Steckdosen Datenpunkte anlegen if (Steckdosen_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.01_Steckdosen_Anzahl_gesamt', {'name':'01_Steckdosen_Anzahl_gesamt', 'type':'number', 'read':true, 'write':false, 'role':'value', 'unit': 'Steckdosen', 'def':0 }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.02_Steckdosen_Anzahl_eingeschaltet', {'name':'02_Steckdosen_Anzahl_eingeschaltet', 'type':'number', 'read':true, 'write':false, 'role':'value', 'unit': 'Steckdosen', 'def':0 }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.03_Steckdosen_Anzahl_ausgeschaltet', {'name':'03_Steckdosen_Anzahl_ausgeschaltet', 'type':'number', 'read':true, 'write':false, 'role':'value', 'unit': 'Steckdosen', 'def':0 }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.04_eingeschaltete_Steckdosen_Liste', {'name': '04_eingeschaltete_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'noch leer' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.05_gesamte_Steckdosen_Liste', {'name': '05_gesamte_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'noch leer' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.06_html_Steckdosen_Liste', {'name':'06_html_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'html', 'def':'noch leer' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.07_Steckdosen_Liste_mit_Emojis', {'name':'07_Steckdosen_Liste_mit_Emojis', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'noch leer' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.08_Steckdosen_Emoji_eingeschaltet', {'name':'08_Steckdosen_Emoji_eingeschaltet', 'type':'mixed', 'read':true, 'write':true, 'role':'mixed' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.09_Steckdosen_Emoji_ausgeschaltet', {'name':'09_Steckdosen_Emoji_ausgeschaltet', 'type':'mixed', 'read':true, 'write':true, 'role':'mixed' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.10_html_nur_eingeschaltete_Steckdosen_Liste', {'name':'10_html_nur_eingeschaltete_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'html', 'def':'noch leer' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.Version', {'name':'Version', 'type':'string', 'read':false, 'write':false, 'role':'text', 'def':'' }], /////////////////////////////////// // iQontrol Trigger und Schalter // /////////////////////////////////// ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.01_Thema_hell_Steckdosen_Liste', {'name':'01_Thema_hell_Steckdosen_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':true}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.02_Thema_dunkel_Steckdosen_Liste', {'name':'02_Thema_dunkel_Steckdosen_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':false}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.03_Thema_eigenes_Steckdosen_Liste', {'name':'03_Thema_eigenes_Steckdosen_Liste', 'type':'boolean', 'read':true, 'write':true, 'role':'switch','def':false}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.04_Trigger_Tabelle_iQontrol_Steckdosen_Liste', {'name': '04_Trigger_Tabelle_iQontrol_Steckdosen_Liste','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.05_Schalter_fuer_Button_Tabelle_Steckdosen_Liste', {'name': '05_Schalter_fuer_Button_Tabelle_Steckdosen_Liste','type': 'boolean', 'read': true, 'write': true, 'role': 'switch','def':false}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.06_Trigger_Farbe_iQontrol_Steckdosen_Liste', {'name': '06_Trigger_Farbe_iQontrol_Steckdosen_Liste','type': 'boolean', 'read': false, 'write': true, 'role': 'button','def':true}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.07_Umschalter_Farbe_Steckdosen_Liste', {'name': '07_Umschalter_Farbe_Steckdosen_Liste','type': 'number', 'read': true, 'write': false, 'role': 'value','def':0}], ['Geraete_zaehlen.Steckdosen.'+[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.Steckdosen.'+[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.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.01_Hintergrundfarbe_Steckdosen_Liste', {'name':'01_Hintergrundfarbe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'white' }], //Rahmen Kopf ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.02_Rahmenbreite_Kopf_Steckdosen_Liste', {'name':'02_Rahmenbreite_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.03_Rahmenstyle_Kopf_Steckdosen_Liste', {'name':'03_Rahmenstyle_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'solid' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.04_Rahmenfarbe_Kopf_Steckdosen_Liste', {'name':'04_Rahmenfarbe_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], //Rahmen Überschrift ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.05_Rahmenbreite_Ueberschrift_Steckdosen_Liste', {'name':'05_Rahmenbreite_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.06_Rahmenstyle_Ueberschrift_Steckdosen_Liste', {'name':'06_Rahmenstyle_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'solid' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.07_Rahmenfarbe_Ueberschrift_Steckdosen_Liste', {'name':'07_Rahmenfarbe_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], //Rahmen Tabelle aussen ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.08_Rahmenbreite_Tabelle_aussen_Steckdosen_Liste', {'name':'08_Rahmenbreite_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'5' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.09_Rahmenstyle_Tabelle_aussen_Steckdosen_Liste', {'name':'09_Rahmenstyle_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'solid' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.10_Rahmenfarbe_Tabelle_aussen_Steckdosen_Liste', {'name':'10_Rahmenfarbe_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], //Ueberschrift ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.11_Ueberschrift_Schriftgroesse_Steckdosen_Liste', {'name':'11_Ueberschrift_Schriftgroesse_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'4' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.12_Ueberschrift_Farbe_Steckdosen_Liste', {'name':'12_Ueberschrift_Farbe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.13_Ueberschrift_Schriftart_Steckdosen_Liste', {'name':'13_Ueberschrift_Schriftart_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'apple' }], //Bild links ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.14_Bild_links_Steckdosen_Liste', {'name':'14_Bild_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':' data:image/png;base64,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'}], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.15_Bild_links_Hoehe_Steckdosen_Liste', {'name':'15_Bild_links_Hoehe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'8' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.16_Bild_links_Breite_Steckdosen_Liste', {'name':'16_Bild_links_Breite_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'8' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.17_Bild_links_Abstand_links_Steckdosen_Liste', {'name':'17_Bild_links_Abstand_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.18_Bild_links_Abstand_oben_Steckdosen_Liste', {'name':'18_Bild_links_Abstand_oben_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.19_Bild_links_Abstand_unten_Steckdosen_Liste', {'name':'19_Bild_links_Abstand_unten_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.20_Bild_links_Abstand_rechts_Steckdosen_Liste', {'name':'20_Bild_links_Abstand_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], //Bild rechts ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.21_Bild_rechts_Steckdosen_Liste', {'name':'21_Bild_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', '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.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.22_Bild_rechts_Hoehe_Steckdosen_Liste', {'name':'22_Bild_rechts_Hoehe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'8' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.23_Bild_rechts_Breite_Steckdosen_Liste', {'name':'23_Bild_rechts_Breite_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'8' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.24_Bild_rechts_Abstand_links_Steckdosen_Liste', {'name':'24_Bild_rechts_Abstand_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.25_Bild_rechts_Abstand_oben_Steckdosen_Liste', {'name':'25_Bild_rechts_Abstand_oben_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.26_Bild_rechts_Abstand_unten_Steckdosen_Liste', {'name':'26_Bild_rechts_Abstand_unten_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.27_Bild_rechts_Abstand_rechts_Steckdosen_Liste', {'name':'27_Bild_rechts_Abstand_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'0' }], //Abstand Kopf zur Tabelle ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.28_Abstand_Tabelle_zum_Kopf_Steckdosen_Liste', {'name':'28_Abstand_Tabelle_zum_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'4' }], //Rahmen Tabelle ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.29_Rahmenbreite_Tabelle_innen_Steckdosen_Liste', {'name':'29_Rahmenbreite_Tabelle_innen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'1' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.30_Rahmenfarbe_Tabelle_innen_Steckdosen_Liste', {'name':'30_Rahmenfarbe_Tabelle_innen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], //Schrift in der Tabelle aktive Geräte ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.31_Tabelle_Schriftart_Steckdosen_Liste', {'name':'31_Tabelle_Schriftart_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'apple' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.32_Tabelle_Schriftfarbe_aktives_Geraet_Steckdosen_Liste', {'name':'32_Tabelle_Schriftfarbe_aktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'red' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.33_Tabelle_Schriftgroesse_aktives_Geraet_Steckdosen_Liste', {'name':'33_Tabelle_Schriftgroesse_aktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'3.5' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Steckdosen_Liste', {'name':'34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'red' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Steckdosen_Liste', {'name':'35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'3.5' }], //Schrift in der Tabelle inaktive Geräte ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.36_Tabelle_Schriftfarbe_inaktives_Geraet_Steckdosen_Liste', {'name':'36_Tabelle_Schriftfarbe_inaktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.37_Tabelle_Schriftgroesse_inaktives_Geraet_Steckdosen_Liste', {'name':'37_Tabelle_Schriftgroesse_inaktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'3.5' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Steckdosen_Liste', {'name':'38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'black' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Steckdosen_Liste', {'name':'39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':false, 'role':'text', 'def':'3.5' }], //Schriftgroesse Status Geräte Ueberschrift ['Geraete_zaehlen.Steckdosen.'+[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':'text', 'def':'3' }], //Groesse Schaltfeld ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.41_Schaltfeld_Groesse_Steckdosen_Liste', {'name':'41_Schaltfeld_Groesse_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':'4' }], ////////////////////////////////////////////////// // HTML Daten eigene Einstellungen beschreibbar // ////////////////////////////////////////////////// ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.01_Hintergrundfarbe_Steckdosen_Liste', {'name':'01_Hintergrundfarbe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Rahmen Kopf ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.02_Rahmenbreite_Kopf_Steckdosen_Liste', {'name':'02_Rahmenbreite_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.03_Rahmenstyle_Kopf_Steckdosen_Liste', {'name':'03_Rahmenstyle_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.04_Rahmenfarbe_Kopf_Steckdosen_Liste', {'name':'04_Rahmenfarbe_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Rahmen Überschrift ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.05_Rahmenbreite_Ueberschrift_Steckdosen_Liste', {'name':'05_Rahmenbreite_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.06_Rahmenstyle_Ueberschrift_Steckdosen_Liste', {'name':'06_Rahmenstyle_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.07_Rahmenfarbe_Ueberschrift_Steckdosen_Liste', {'name':'07_Rahmenfarbe_Ueberschrift_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Rahmen Tabelle aussen ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.08_Rahmenbreite_Tabelle_aussen_Steckdosen_Liste', {'name':'08_Rahmenbreite_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.09_Rahmenstyle_Tabelle_aussen_Steckdosen_Liste', {'name':'09_Rahmenstyle_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.10_Rahmenfarbe_Tabelle_aussen_Steckdosen_Liste', {'name':'10_Rahmenfarbe_Tabelle_aussen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Ueberschrift ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.11_Ueberschrift_Schriftgroesse_Steckdosen_Liste', {'name':'11_Ueberschrift_Schriftgroesse_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.12_Ueberschrift_Farbe_Steckdosen_Liste', {'name':'12_Ueberschrift_Farbe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.13_Ueberschrift_Schriftart_Steckdosen_Liste', {'name':'13_Ueberschrift_Schriftart_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Bild links ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.14_Bild_links_Steckdosen_Liste', {'name':'14_Bild_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.15_Bild_links_Hoehe_Steckdosen_Liste', {'name':'15_Bild_links_Hoehe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.16_Bild_links_Breite_Steckdosen_Liste', {'name':'16_Bild_links_Breite_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.17_Bild_links_Abstand_links_Steckdosen_Liste', {'name':'17_Bild_links_Abstand_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.18_Bild_links_Abstand_oben_Steckdosen_Liste', {'name':'18_Bild_links_Abstand_oben_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.19_Bild_links_Abstand_unten_Steckdosen_Liste', {'name':'19_Bild_links_Abstand_unten_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.20_Bild_links_Abstand_rechts_Steckdosen_Liste', {'name':'20_Bild_links_Abstand_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Bild rechts ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.21_Bild_rechts_Steckdosen_Liste', {'name':'21_Bild_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.22_Bild_rechts_Hoehe_Steckdosen_Liste', {'name':'22_Bild_rechts_Hoehe_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.23_Bild_rechts_Breite_Steckdosen_Liste', {'name':'23_Bild_rechts_Breite_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.24_Bild_rechts_Abstand_links_Steckdosen_Liste', {'name':'24_Bild_rechts_Abstand_links_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.25_Bild_rechts_Abstand_oben_Steckdosen_Liste', {'name':'25_Bild_rechts_Abstand_oben_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.26_Bild_rechts_Abstand_unten_Steckdosen_Liste', {'name':'26_Bild_rechts_Abstand_unten_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.27_Bild_rechts_Abstand_rechts_Steckdosen_Liste', {'name':'27_Bild_rechts_Abstand_rechts_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Abstand Kopf zur Tabelle ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.28_Abstand_Tabelle_zum_Kopf_Steckdosen_Liste', {'name':'28_Abstand_Tabelle_zum_Kopf_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Rahmen Tabelle ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.29_Rahmenbreite_Tabelle_innen_Steckdosen_Liste', {'name':'29_Rahmenbreite_Tabelle_innen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.30_Rahmenfarbe_Tabelle_innen_Steckdosen_Liste', {'name':'30_Rahmenfarbe_Tabelle_innen_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Schrift in der Tabelle aktive Gerätte ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.31_Tabelle_Schriftart_Steckdosen_Liste', {'name':'31_Tabelle_Schriftart_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.32_Tabelle_Schriftfarbe_aktives_Geraet_Steckdosen_Liste', {'name':'32_Tabelle_Schriftfarbe_aktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.33_Tabelle_Schriftgroesse_aktives_Geraet_Steckdosen_Liste', {'name':'33_Tabelle_Schriftgroesse_aktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Steckdosen_Liste', {'name':'34_Tabelle_Schriftfarbe_aktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Steckdosen_Liste', {'name':'35_Tabelle_Schriftgroesse_aktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Schrift in der Tabelle inaktive Gerätte ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.36_Tabelle_Schriftfarbe_inaktives_Geraet_Steckdosen_Liste', {'name':'36_Tabelle_Schriftfarbe_inaktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.37_Tabelle_Schriftgroesse_inaktives_Geraet_Steckdosen_Liste', {'name':'37_Tabelle_Schriftgroesse_inaktives_Geraet_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Steckdosen_Liste', {'name':'38_Tabelle_Schriftfarbe_inaktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Steckdosen_Liste', {'name':'39_Tabelle_Schriftgroesse_inaktives_Geraet_Status_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], //Schriftgroesse Status Geräte Ueberschrift ['Geraete_zaehlen.Steckdosen.'+[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':'text', 'def':' ' }], //Groesse Schaltfeld ['Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.02_HTML_Eigene_Einstellungen.41_Schaltfeld_Groesse_Steckdosen_Liste', {'name':'41_Schaltfeld_Groesse_Steckdosen_Liste', 'type':'string', 'read':true, 'write':true, 'role':'text', 'def':' ' }], ]; await createUserStates(anlegen_in, statesToCreate)}; //Telegram Steckdosen Nachrichtenversand anlegen mit SmartNamen if (Steckdosen_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.05_Telegram.Telegram_Steckdosen_'+[etage]+'_Versand_an_aus', {'name':'Telegram_Steckdosen_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.05_Telegram.Telegram_Steckdosenstatus_'+[etage]+'_senden', {'name':'Telegram_Steckdosenstatus_'+[etage]+'_senden', 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'Telegram Steckdosenstatus '+[etage]+' senden',"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in, statesToCreate)}; //Telegram Steckdosen Nachrichtenversand anlegen ohne SmartNamen if (Steckdosen_verwenden == true && Telegram_verwenden == true && Alexa_Ansage_verwenden == false){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.05_Telegram.Telegram_Steckdosen_'+[etage]+'_Versand_an_aus', {'name':'Telegram_Steckdosen_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.05_Telegram.Telegram_Steckdosenstatus_'+[etage]+'_senden', {'name':'Telegram_Steckdosenstatus_'+[etage]+'_senden', 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':true, "smartName": false }], ]; await createUserStates(anlegen_in, statesToCreate)}; //E-Mail Steckdosen Nachrichtenversand anlegen mit SmartNamen if (Steckdosen_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == true){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.06_E-Mail.EMAIL_Steckdosen_'+[etage]+'_Versand_an_aus', {'name':'EMAIL_Steckdosen_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.06_E-Mail.EMAIL_Steckdosenstatus_'+[etage]+'_senden', {'name':'EMAIL_Steckdosenstatus_'+[etage]+'_senden', 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':true, "smartName": {"de": 'EMAIL Steckdosenstatus '+[etage]+' senden',"smartType": "SWITCH"} }], ]; await createUserStates(anlegen_in, statesToCreate)}; //E-Mail Steckdosen Nachrichtenversand anlegen mit SmartNamen if (Steckdosen_verwenden == true && Email_verwenden == true && Alexa_Ansage_verwenden == false){ let statesToCreate = [ ['Geraete_zaehlen.Steckdosen.'+[etage]+'.06_E-Mail.EMAIL_Steckdosen_'+[etage]+'_Versand_an_aus', {'name':'EMAIL_Steckdosen_'+[etage]+'_Versand_an_aus', 'type':'boolean', 'read':true, 'write':true, 'role':'switch', 'def':false }], ['Geraete_zaehlen.Steckdosen.'+[etage]+'.06_E-Mail.EMAIL_Steckdosenstatus_'+[etage]+'_senden', {'name':'EMAIL_Steckdosenstatus_'+[etage]+'_senden', 'type':'boolean', 'read':false, 'write':true, 'role':'button', 'def':true, "smartName": false }], ]; await createUserStates(anlegen_in, statesToCreate)}; //##################################################################################################################################################################################################################################################################################################################################################################################### //Ab hier Datenpunkte löschen //############################################################################### if (!Steckdosen_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Steckdosen*'); idsjs.each(function(id, i) { if(existsState(id)) deleteState(id); })}; if (!Steckdosen_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Steckdosen*'); 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.Steckdosen.*.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.Steckdosen.*.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.Steckdosen.*.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.Steckdosen.*.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.Steckdosen.*.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.Steckdosen.*.06_E-Mail.*'); idsud.each(function(id, i) { if(existsState(id)) deleteState(id); })}; //############################################################################### //Funktion main mit Verzögerung aufrufen //timeout = setTimeout(function () { // main(); //}, 5000); main()
Mein aktueller Versuch: (endet aber auch manchmal im Fehler, manchmal geht es aber auch x Mal ohne Fehler ? Wie müßte sowas "richtig" gemacht werden ? In dieser Testfunktion habe ich die Variablen, die sonst im Blockly sind, oben eingefügt. Die Datenpunkte sind nicht vollständig, sonder nur der Anfang. (der Aufruf von
main()
ist auch noch nicht drinn.
Über Hilfe würde ich mich freuen.var Steckdosen_verwenden,Alexa_Ansage_verwenden,Telegram_verwenden,Email_verwenden,anlegen_in,etage; anlegen_in = 'javascript.0' etage = 'Haus' Steckdosen_verwenden = true; Alexa_Ansage_verwenden = true; Telegram_verwenden = false; Email_verwenden = false; mainAsync(); async function mainAsync() { if(Steckdosen_verwenden){ await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.01_Steckdosen_Anzahl_gesamt', {name:'01_Steckdosen_Anzahl_gesamt', type:'number', read:true, write:false, role:'value', unit:'Steckdosen', def:0 }); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.02_Steckdosen_Anzahl_eingeschaltet', {name:'02_Steckdosen_Anzahl_eingeschaltet',type:'number', read:true, write:false, role:'value',unit:'Steckdosen', def:0}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.03_Steckdosen_Anzahl_ausgeschaltet', {name:'03_Steckdosen_Anzahl_ausgeschaltet',type:'number', read:true, write:false, role:'value',unit:'Steckdosen', def:0}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.04_eingeschaltete_Steckdosen_Liste', {name:'04_eingeschaltete_Steckdosen_Liste',type:'string', read:true, write:false, role:'text', def:'noch leer'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.05_gesamte_Steckdosen_Liste', {name:'05_gesamte_Steckdosen_Liste',type:'string', read:true, write:false, role:'text', def:'noch leer'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.06_html_Steckdosen_Liste', {name:'06_html_Steckdosen_Liste',type:'string', read:true, write:false, role:'html', def:'noch leer'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.07_Steckdosen_Liste_mit_Emojis', {name:'07_Steckdosen_Liste_mit_Emojis',type:'string', read:true, write:false, role:'text', def:'noch leer'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.08_Steckdosen_Emoji_eingeschaltet', {name:'08_Steckdosen_Emoji_eingeschaltet',type:'mixed', read:true, write:true, role:'mixed'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.09_Steckdosen_Emoji_ausgeschaltet', {name:'09_Steckdosen_Emoji_ausgeschaltet',type:'mixed', read:true, write:true, role:'mixed'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.01_Anzeigen_und_Listen.10_html_nur_eingeschaltete_Steckdosen_Liste', {name:'10_html_nur_eingeschaltete_Steckdosen_Liste',type:'string', read:true, write:false, role:'html', def:'noch leer'}); // iQontrol Trigger und Schalter await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.01_Thema_hell_Steckdosen_Liste', {name:'01_Thema_hell_Steckdosen_Liste',type:'boolean', read:true, write:true, role:'switch', def:true}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.02_Thema_dunkel_Steckdosen_Liste', {name:'02_Thema_dunkel_Steckdosen_Liste',type: 'boolean', read:true, write:true, role:'switch', def:false}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.03_Thema_eigenes_Steckdosen_Liste', {name:'03_Thema_eigenes_Steckdosen_Liste',type:'boolean', read:true, write:true, role:'switch', def:false}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.04_Trigger_Tabelle_iQontrol_Steckdosen_Liste', {name:'04_Trigger_Tabelle_iQontrol_Steckdosen_Liste',type:'boolean', read:false, write:true, role:'button', def:true}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.05_Schalter_fuer_Button_Tabelle_Steckdosen_Liste', {name:'05_Schalter_fuer_Button_Tabelle_Steckdosen_Liste',type:'boolean', read:true, write:true, role:'switch', def:false}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.06_Trigger_Farbe_iQontrol_Steckdosen_Liste', {name:'06_Trigger_Farbe_iQontrol_Steckdosen_Liste',type:'boolean', read:false, write:true, role:'button', def:true}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.02_Trigger_und_Schalter.07_Umschalter_Farbe_Steckdosen_Liste', {name:'07_Umschalter_Farbe_Steckdosen_Liste',type:'number', read:true, write:false, role:'value', def:0}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[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}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[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 await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.01_Hintergrundfarbe_Steckdosen_Liste', {name:'01_Hintergrundfarbe_Steckdosen_Liste',type:'string', read:true, write:false, role:'text', def:'white'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.02_Rahmenbreite_Kopf_Steckdosen_Liste', {name:'02_Rahmenbreite_Kopf_Steckdosen_Liste',type:'string', read:true, write:false, role:'text', def:'0'}); await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.03_HTML_Daten.01_HTML_Hell_Dunkel_Festeinstellung.03_Rahmenstyle_Kopf_Steckdosen_Liste', {name:'03_Rahmenstyle_Kopf_Steckdosen_Liste',type:'string', read:true, write:false, role:'text', def:'solid'}) // States erstellt console.log('States 1 erfolgreich erstellt.'); }} alexa_dp_Async(); async function alexa_dp_Async() { if(Alexa_Ansage_verwenden && Steckdosen_verwenden){ await createStateAsync([anlegen_in]+'.Geraete_zaehlen.Steckdosen.'+[etage]+'.04_Alexa.01_Alexa_Routinebutton', {name:'01_Alexa_Routinebutton',type: 'boolean', read:false, write:true, role:'button',def:true, smartName: {'de': 'Steckdosenansage '+[etage],smartType:'SWITCH'}}) // States erstellt console.log('States 2 erfolgreich erstellt.') }} //Ab hier Datenpunkte löschen falls abgewählt //############################################################################### //alle DP löschen if (!Steckdosen_verwenden && anlegen_in.slice(0, 10) == 'javascript') { console.log('alle States vom Blockly Steckdosen zählen werden gelöscht') const idsjs = $('javascript.*.Geraete_zaehlen.Steckdosen*'); idsjs.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; if (!Steckdosen_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { console.log('alle States vom Blockly Steckdosen zählen werden gelöscht') const idsud = $('0_userdata.0.Geraete_zaehlen.Steckdosen*'); idsud.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; //############################################################################### //Alexa DP löschen if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == 'javascript') { console.log('Alexa State vom Blockly Steckdosen zählen wird gelöscht') const idsjs = $('javascript.*.Geraete_zaehlen.Steckdosen.*.04_Alexa.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; if (!Alexa_Ansage_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { console.log('Alexa State vom Blockly Steckdosen zählen wird gelöscht') const idsud = $('0_userdata.0.Geraete_zaehlen.Steckdosen.*.04_Alexa.*'); idsud.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; //############################################################################### //Telegram DP löschen if (!Telegram_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Steckdosen.*.05_Telegram.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; if (!Telegram_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Steckdosen.*.05_Telegram.*'); idsud.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; //############################################################################### //E-Mail DP löschen if (!Email_verwenden && anlegen_in.slice(0, 10) == 'javascript') { const idsjs = $('javascript.*.Geraete_zaehlen.Steckdosen.*.06_E-Mail.*'); idsjs.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; if (!Email_verwenden && anlegen_in.slice(0, 10) == '0_userdata') { const idsud = $('0_userdata.0.Geraete_zaehlen.Steckdosen.*.06_E-Mail.*'); idsud.each(function(id, i) { if(existsState(id)) deleteStateAsync(id); })}; //###############################################################################
EDIT: JS-Adapter 5.2.18 (aber auch latest probiert)
EDIT2: oder hat der Fehler damit zu tun ? https://github.com/ioBroker/ioBroker.javascript/issues/924
-
@dslraser sagte in async / await -> Muster Anleitung gesucht:
State "javascript.0.Geraete_zaehlen.Steckdosen.Haus.01_Anzeigen_und_Listen.04_eingeschaltete_Steckdosen_Liste"
was ist mit diesem DP wenn du nach der Fehlermeldung in den Objekten schaust? Evtl. nach Refresh oder testweise Adapter-Neustart. Wenn der State dann da ist würde ich auf das im issue genannte Timing Problem tippen. Allerdings wird dort der Fehler nur genannt wenn ein init Wert besteht, nicht wenn man diesen in common.def definiert. Das ist aber bei dir so. Das issue habe ich selbst auch nicht, evtl. weil ich etwas schnellere Hardware nutze
-
@fastfoot
der DP aus der Fehlermeldung ist immer da. -
@dslraser sagte in async / await -> Muster Anleitung gesucht:
@fastfoot
der DP aus der Fehlermeldung ist immer da.dann ist es wohl ein Timing problem. Das async/await ist schon ok und kann auch nicht 'verbessert' werden. Ich würde als Workaround ein
await wait(1000)
hinter den Aufruf von createStates() setzen. Eigentlich sollte aber genau das ja durch await vermieden werden. Im issue wurde es als enhancement markiert, in meinen Augen wäre das dann aber ein Bug. @apollon77 hast du dazu eine Antwort? -
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
await wait(1000)
damit lief es eben sauber durch. Mal sehen wie weit ich mit der Zeit runter gehen kann.
-
@dslraser sagte in async / await -> Muster Anleitung gesucht:
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
await wait(1000)
damit lief es eben sauber durch. Mal sehen wie weit ich mit der Zeit runter gehen kann.
das tat es ja vorher auch schon ohne das Warten
Ich würde es erst mal so lassen, da es nur ein Workaround sein kann bis der eigentliche Fehler gefunden und gefixt ist. Mir ist es noch nicht ganz klar weil ich von await erwartet hätte dass die Funktion dann auch wirklich fertig ist und nicht noch etwas im Hintergrund rumtrödelt. Aber mal sehen was apollon77 dazu sagt falls er die Zeit findet
-
@fastfoot
selbst mitawait wait(100)
lief es jetzt x Mal sauber und ohne Absturz durch, also wirklich irgendein Timing Problem. -
@fastfoot Naja das await stellt in dem Augenblick nur sicher das das Objekt angelegt und der Wert gesetzt wurde ... Ich hab auch überlegt ob bug oder enhancement :-)) ist so ne sache ... ja es ist ... ... unerwartet das es ist wie es ist
ALso ja man kann auch sagen es ist ein Bug ...
Der JavaScript Adapter versucht viele Dinge für den User zu vereinfachen und die "komplexität durch asynchronität" wegzunehmen ... und das ist nicht ganz so simpel wie man hier sieht
-
@apollon77 Danke für deine hilfreiche Antwort, das hilft (mir) sehr bei der Einordnung. Einen Workaround gibt es ja immerhin und damit kann/muss man jetzt erstmal leben.
-
@fastfoot Ich denke die echte warte zeit sind eher maximal 100ms ... aber naja
-
@apollon77 ich gehe da immer sehr konservativ ran
@dslraser hat es ja schon auf 100ms runter gedrückt. Bevor ich mich dann endlich mal mit async/await beschäftigt hatte hat auch schon mal ein
await wait(0)
definitiv geholfen, in anderem Kontext allerdings -
@fastfoot sagte in async / await -> Muster Anleitung gesucht:
@apollon77 ich gehe da immer sehr konservativ ran
@dslraser hat es ja schon auf 100ms runter gedrückt. Bevor ich mich dann endlich mal mit async/await beschäftigt hatte hat auch schon mal ein
await wait(0)
definitiv geholfen, in anderem Kontext allerdings50ms reichen auch, damit läuft es bei mir auch. Testweise 10ms, das ging dann schief und der Fehler kam wieder.