Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] async-await

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

[gelöst] async-await

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
15 Beiträge 2 Kommentatoren 1.1k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • dslraserD dslraser

    @fastfoot

    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)

    F Offline
    F Offline
    fastfoot
    schrieb am zuletzt editiert von
    #4

    @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>
    

    iobroker läuft unter Docker auf QNAP TS-451+
    SkriptRecovery: https://forum.iobroker.net/post/930558

    dslraserD F 2 Antworten Letzte Antwort
    0
    • F fastfoot

      @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>
      

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #5

      @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.

      F 2 Antworten Letzte Antwort
      0
      • F fastfoot

        @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>
        

        F Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #6

        @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 :-)

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        1 Antwort Letzte Antwort
        0
        • dslraserD dslraser

          @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.

          F Offline
          F Offline
          fastfoot
          schrieb am zuletzt editiert von
          #7

          @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.

          iobroker läuft unter Docker auf QNAP TS-451+
          SkriptRecovery: https://forum.iobroker.net/post/930558

          1 Antwort Letzte Antwort
          1
          • dslraserD dslraser

            @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.

            F Offline
            F Offline
            fastfoot
            schrieb am zuletzt editiert von
            #8

            @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.

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            dslraserD 1 Antwort Letzte Antwort
            0
            • F fastfoot

              @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.

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #9

              @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"

              F 1 Antwort Letzte Antwort
              0
              • dslraserD dslraser

                @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"

                F Offline
                F Offline
                fastfoot
                schrieb am zuletzt editiert von
                #10

                @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

                iobroker läuft unter Docker auf QNAP TS-451+
                SkriptRecovery: https://forum.iobroker.net/post/930558

                dslraserD 1 Antwort Letzte Antwort
                0
                • F fastfoot

                  @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

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #11

                  @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.

                  F 1 Antwort Letzte Antwort
                  0
                  • dslraserD dslraser

                    @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.

                    F Offline
                    F Offline
                    fastfoot
                    schrieb am zuletzt editiert von
                    #12

                    @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();
                    

                    iobroker läuft unter Docker auf QNAP TS-451+
                    SkriptRecovery: https://forum.iobroker.net/post/930558

                    dslraserD 1 Antwort Letzte Antwort
                    1
                    • F fastfoot

                      @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();
                      

                      dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #13

                      @fastfoot
                      Danke Dir. Heute werde ich leider nicht mehr dazu kommen, aber ich gebe auf jeden Fall eine Rückmeldung.

                      F 1 Antwort Letzte Antwort
                      0
                      • dslraserD dslraser

                        @fastfoot
                        Danke Dir. Heute werde ich leider nicht mehr dazu kommen, aber ich gebe auf jeden Fall eine Rückmeldung.

                        F Offline
                        F Offline
                        fastfoot
                        schrieb am zuletzt editiert von
                        #14

                        @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();
                        

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        dslraserD 1 Antwort Letzte Antwort
                        0
                        • F fastfoot

                          @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();
                          

                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #15

                          @fastfoot
                          ich habe Deine Variante hier mal eingebaut. Bei mir funktionierte in dieser Version alles wie es soll.

                          https://forum.iobroker.net/post/617640

                          1 Antwort Letzte Antwort
                          1
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          752

                          Online

                          32.4k

                          Benutzer

                          81.5k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe