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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Fenster und andere Geräte zählen opt. Alexa Ansagen

NEWS

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

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

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

Fenster und andere Geräte zählen opt. Alexa Ansagen

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklyjavascript
1.2k Beiträge 41 Kommentatoren 412.8k Aufrufe 71 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.
  • dirk1962D dirk1962

    @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

    @dirk1962
    ich habe jetzt bei mir alle relevanten Geräte auf Alias umgestellt. Jetzt kann/muss man sich zwischen Pest und Cholera entscheiden....
    Es geht mir speziell um die Temperaturen und die Batterien als Volt.

    Da ich kein Veganer bin, ist es Rinderwahn oder Schweinepest:grinning: :grinning: .
    speak: Die Ansage einer einzelnen Temperatur braucht man nicht wirklich und bei den Batterien macht es eh keinen Sinn.
    Wenn Du nur noch speak oder ssml verwendest, würde das Blockly schlanker und damit auch für leistungsschwächere Rechner besser nutzbar. Speak bietet mehr Möglichkeiten und ist meiner Meinung nach die richtige Entscheidung.

    Alias: Bei den Temperaturen sind es bei mir 12 Aliase gewesen, bei den Batterien wären es 55 und insgesamt ca. 120. Das ist schon eine Menge Arbeit.
    Wenn man einen Aktor hinzufügt, muss man im Moment nur das richtige Gewerk eintragen und das wars. Mit Alias muss man jedesmal einen neuen Alias anlegen, was auch mehr Arbeit ist.
    Wer die Arbeit nicht machen will, nutzt eben das alte Blocky. Ich denke meine Einstellung dazu kennst Du.:wink:

    Du musst Dich für eine Version entscheiden. Am besten für die, die für Dich am einfachsten zu pflegen ist und die Entscheidung sollte dann endgültig sein. Ich weiß nicht, wie viele User Dein Blockly nutzen, aber es werden schon einige sein. Die müssen jetzt noch einmal eine Menge umstellen und Zeit investieren. Wenn die Umstellung Sinn macht, okay.

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

    @dirk1962
    Der Sinn vom Alias ist folgender (und es wird immer alles gefunden, mit dem Namen den man selbst über alias erstellt, und dieser wird auch angesagt)

    In der Funktion getParentName über alias:
    Bildschirmfoto 2020-06-29 um 14.06.56.png

    In der Funktion getParentName ohne Alias
    (und es wird längst nicht jeder Hersteller erkannt)

    Bildschirmfoto 2020-06-29 um 14.07.39.png

    dirk1962D 1 Antwort Letzte Antwort
    0
    • dslraserD dslraser

      @dirk1962
      ich habe jetzt bei mir alle relevanten Geräte auf Alias umgestellt. Jetzt kann/muss man sich zwischen Pest und Cholera entscheiden....
      Es geht mir speziell um die Temperaturen und die Batterien als Volt.

      Speak kann Zahlen mit Punkt oder Komma ansagen, wenn man die Ausgabe richtig baut.
      SSML kann nur mit Kommas umgehen und kann keine Zahlen mit Punkt ansagen (ist ja eigentlich Text)

      Hier mal zum testen eine Ansage. Dort ist ein Wert mit Komma und einer mit Punkt. Wenn Du diesen Satz mal bei speak einfügst, erfolgt die Ansage korrekt, selbst die ssml Zeichen werden ignoriert.

      Der gleiche Satz in den ssml DP vom Alexa2 Adapter geht dann eben nur korrekt bei dem Komma Wert.


      <speak><voice name="Alexa">Hier der Haus Temperaturenstatus für Dich. Aussentemperatur 19.8 Grad, Badezimmer 25,3 Grad , das wäre dann alles.</voice></speak>

      Jetzt stehe ich gerade vor der Entscheidung, nur noch speak zu verwenden. (auch wegen der 250 Zeichen Geschichte)

      Man kann die Temperaturen und auch die Volt Anzeigen direkt mit Komma im Alias anzeigen/erstellen (als Text und nicht als Zahl, wenn der Original DP read only ist), dann könnte man auch die Batterien absteigend/aufsteigend nach Volt in den Tabellen sortieren, das geht mit dem Punkt wiederum nicht. Aliase mit Komma lassen sich dann wiederum nicht iot als einzelnes Gerät nutzen, dort wird es als Zahl mit Punkt benötigt....

      Lange Rede kurzer Sinn, wenn es nur um die Anzeige / Ansage der vom Blockly erstellten Ansagen geht, dann gefällt mir speak mit Komma Werten zum sortieren besser.

      Hier mal gekürzte Scripte zum Alias erstellen

      // Original-Datenpunkt
      const idOrigin = 'hm-rpc.0.xxxx.1.ACTUAL_TEMPERATURE'/*Temperatursensor aussen ACTUAL TEMPERATURE*/
      
      // Alias-Datenpunkt
      const idAlias = 'Temperaturen.Aussentemperatur';
      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
      nameAlias = 'Aussentemperatur';
      typeAlias = 'string'; // oder 'number'
      read = "val.toFixed(1).replace('.',',')";// write = "val ? 'Ein' : 'Aus'";
      role = 'value.temperature';
      unit = '°C'; // nur für Zahlen
      gewerk = 'temperaturen_alias'; // Groß-/Kleinschreibung in der ID beachten !
      
      function createAlias(idSrc, idDst) {
       if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
       else {
          var obj = {};
          obj.type = 'state';
          obj.common = getObject(idSrc).common;
          obj.common.alias = {};
          obj.common.alias.id = idSrc;
          if(typeAlias) obj.common.type = typeAlias;
          if(obj.common.read !== false && read) obj.common.alias.read = read;
          if(obj.common.write !== false && write) obj.common.alias.write = write;
          if(nameAlias) obj.common.name = nameAlias;
          if(role) obj.common.role = role;
          if(desc) obj.common.desc = desc;
          if(min !== undefined) obj.common.min = min;
          if(max !== undefined) obj.common.max = max;
          if(unit) obj.common.unit = unit;
          if(states) obj.common.states = states;
          if(custom && obj.common.custom) obj.common.custom = custom;
          obj.native = {};
          setObject(idDst, obj);
          if(raum && getObject('enum.rooms.' + raum)) {
             let obj = getObject('enum.rooms.' + raum)
             obj.common.members.push(idDst);
             setObject('enum.rooms.' + raum, obj);
          }
          if(gewerk && getObject('enum.functions.' + gewerk)) {
             let obj = getObject('enum.functions.' + gewerk)
             obj.common.members.push(idDst);
             setObject('enum.functions.' + gewerk, obj);
          }
       } 
      }
      
      createAlias(idOrigin, 'alias.0.' + idAlias);
      
      

      // Original-Datenpunkt
      const idOrigin = 'hm-rpc.0.0010D8A98AD4AC.1.ACTUAL_TEMPERATURE'/*Temperatursensor aussen ACTUAL TEMPERATURE*/
       
      // Alias-Datenpunkt
      const idAlias = 'Temperaturen_Punkt.Aussentemperatur';
      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
      nameAlias = 'Aussentemperatur';
      //typeAlias = 'string'; // oder 'number'
      read = "Math.round(val * 10) / 10";// write = "val ? 'Ein' : 'Aus'";
      role = 'value.temperature';
      unit = '°C'; // nur für Zahlen
      gewerk = 'test'; // Groß-/Kleinschreibung in der ID beachten !
       
      function createAlias(idSrc, idDst) {
        if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
        else {
           var obj = {};
           obj.type = 'state';
           obj.common = getObject(idSrc).common;
           obj.common.alias = {};
           obj.common.alias.id = idSrc;
           if(typeAlias) obj.common.type = typeAlias;
           if(obj.common.read !== false && read) obj.common.alias.read = read;
           if(obj.common.write !== false && write) obj.common.alias.write = write;
           if(nameAlias) obj.common.name = nameAlias;
           if(role) obj.common.role = role;
           if(desc) obj.common.desc = desc;
           if(min !== undefined) obj.common.min = min;
           if(max !== undefined) obj.common.max = max;
           if(unit) obj.common.unit = unit;
           if(states) obj.common.states = states;
           if(custom && obj.common.custom) obj.common.custom = custom;
           obj.native = {};
           setObject(idDst, obj);
           if(raum && getObject('enum.rooms.' + raum)) {
              let obj = getObject('enum.rooms.' + raum)
              obj.common.members.push(idDst);
              setObject('enum.rooms.' + raum, obj);
           }
           if(gewerk && getObject('enum.functions.' + gewerk)) {
              let obj = getObject('enum.functions.' + gewerk)
              obj.common.members.push(idDst);
              setObject('enum.functions.' + gewerk, obj);
           }
        } 
      }
       
      createAlias(idOrigin, 'alias.0.' + idAlias);
      
      

      Hier noch für Batterien Volt mit Komma als Text

      // Original-Datenpunkt
      const idOrigin = 'hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Bewegungsmelder 55 Kellertreppe:0 OPERATING VOLTAGE*/;
      // Alias-Datenpunkt
      const idAlias = 'Batterien_Volt.Bewegungsmelder_Kellertreppe';
      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk;
      // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich
      nameAlias = 'Bewegungsmelder Kellertreppe';
      typeAlias = 'string'; // oder 'number'
      read = "val.toFixed(1).replace('.',',')";// write = "val ? 'Ein' : 'Aus'";
      role = 'value.voltage';
      unit = 'Volt'; // nur für Zahlen
      custom = []; // verhindert doppelte Ausführung von history, ...
      gewerk = 'batterien_volt_alias'; // Groß-/Kleinschreibung in der ID beachten !
       
      function createAlias(idSrc, idDst) {
        if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
        else {
           var obj = {};
           obj.type = 'state';
           obj.common = getObject(idSrc).common;
           obj.common.alias = {};
           obj.common.alias.id = idSrc;
           if(typeAlias) obj.common.type = typeAlias;
           if(obj.common.read !== false && read) obj.common.alias.read = read;
           if(obj.common.write !== false && write) obj.common.alias.write = write;
           if(nameAlias) obj.common.name = nameAlias;
           if(role) obj.common.role = role;
           if(desc) obj.common.desc = desc;
           if(min !== undefined) obj.common.min = min;
           if(max !== undefined) obj.common.max = max;
           if(unit) obj.common.unit = unit;
           if(states) obj.common.states = states;
           if(custom && obj.common.custom) obj.common.custom = custom;
           obj.native = {};
           setObject(idDst, obj);
           if(raum && getObject('enum.rooms.' + raum)) {
              let obj = getObject('enum.rooms.' + raum)
              obj.common.members.push(idDst);
              setObject('enum.rooms.' + raum, obj);
           }
           if(gewerk && getObject('enum.functions.' + gewerk)) {
              let obj = getObject('enum.functions.' + gewerk)
              obj.common.members.push(idDst);
              setObject('enum.functions.' + gewerk, obj);
           }
        } 
      }
       
      createAlias(idOrigin, 'alias.0.' + idAlias);
      
      

      Ich überlege alles mit speak zu machen und ssml ganz raus zu werfen, was meinst Du ?

      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #691

      @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

      Ich überlege alles mit speak zu machen und ssml ganz raus zu werfen, was meinst Du ?

      :+1:

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      1 Antwort Letzte Antwort
      1
      • dslraserD dslraser

        @dirk1962
        Der Sinn vom Alias ist folgender (und es wird immer alles gefunden, mit dem Namen den man selbst über alias erstellt, und dieser wird auch angesagt)

        In der Funktion getParentName über alias:
        Bildschirmfoto 2020-06-29 um 14.06.56.png

        In der Funktion getParentName ohne Alias
        (und es wird längst nicht jeder Hersteller erkannt)

        Bildschirmfoto 2020-06-29 um 14.07.39.png

        dirk1962D Offline
        dirk1962D Offline
        dirk1962
        schrieb am zuletzt editiert von
        #692

        @dslraser
        Alias hat bestimmt Vorteile, ich wollte nur auf den Aufwand aufmerksam machen. Meine Java Kenntnisse sind gleich Null, was Du da programmierst sind für mich böhmische Dörfer.
        Hoffentlich antworten Dir auch noch andere User, dann bekommst Du von mehreren Feedback. @sigi234 hat schon einen eindeutigen Kommentar abgegeben.

        NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

        dslraserD 1 Antwort Letzte Antwort
        0
        • dirk1962D dirk1962

          @dslraser
          Alias hat bestimmt Vorteile, ich wollte nur auf den Aufwand aufmerksam machen. Meine Java Kenntnisse sind gleich Null, was Du da programmierst sind für mich böhmische Dörfer.
          Hoffentlich antworten Dir auch noch andere User, dann bekommst Du von mehreren Feedback. @sigi234 hat schon einen eindeutigen Kommentar abgegeben.

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

          Das aktuelle Blockly ist im ersten Beitrag. Die Beschreibungen dazu sind teilweise aktualisiert, der Rest der Beschreibung kommt noch (nicht mehr heute...)
          Dieses Blockly funktioniert nur noch über alias und speak. (kein ssml mehr)

          dirk1962D 1 Antwort Letzte Antwort
          0
          • dslraserD dslraser

            Das aktuelle Blockly ist im ersten Beitrag. Die Beschreibungen dazu sind teilweise aktualisiert, der Rest der Beschreibung kommt noch (nicht mehr heute...)
            Dieses Blockly funktioniert nur noch über alias und speak. (kein ssml mehr)

            dirk1962D Offline
            dirk1962D Offline
            dirk1962
            schrieb am zuletzt editiert von
            #694

            Hallo @dslraser,
            habe alle Aliase angelegt und das Blockly funktioniert soweit, super Arbeit von Dir.:+1:
            Ein paar kleine Anmerkungen habe ich noch.
            Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
            Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster. Ich habe es bei mir geändert, falls Du nochmal ein Update einstellst, kannst Du es für alle ändern.
            Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.
            Alle Ansagen funktionieren perfekt und auch der E-Mail Versand ist okay. Telegram nutze ich nicht.
            Es sieht so aus, als ob Du kurz vor Vollendung dieses Projektes bist.
            Vielen Dank für Deine Arbeit und Hilfsbereitschaft.:clap: :clap:

            NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

            dslraserD 2 Antworten Letzte Antwort
            0
            • dirk1962D dirk1962

              Hallo @dslraser,
              habe alle Aliase angelegt und das Blockly funktioniert soweit, super Arbeit von Dir.:+1:
              Ein paar kleine Anmerkungen habe ich noch.
              Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
              Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster. Ich habe es bei mir geändert, falls Du nochmal ein Update einstellst, kannst Du es für alle ändern.
              Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.
              Alle Ansagen funktionieren perfekt und auch der E-Mail Versand ist okay. Telegram nutze ich nicht.
              Es sieht so aus, als ob Du kurz vor Vollendung dieses Projektes bist.
              Vielen Dank für Deine Arbeit und Hilfsbereitschaft.:clap: :clap:

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

              @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

              Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.

              Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?

              Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster.

              wird geändert (war in beiden Instanzen falsch)

              Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.

              bei den Fenstern und Türen werden nur die states ausgewertet, also nur

              geschlossen
              gekippt
              geöffnet

              Diese müssen im Alias auch so heißen

              // so für Drehgriffe:
              states = {0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}; 
              
              //oder so für "normale Fensterkontakte mit auf-zu:
              states = {0: 'geschlossen', 1: 'geöffnet'}; 
              
              //oder so, wenn true-false ausgegeben wird
              states = {false: 'geschlossen', true: 'geöffnet'}; 
              
              

              Hier mal so ein alias RAW von einem einfachen Sensor

              {
                "type": "state",
                "common": {
                  "def": "CLOSED",
                  "type": "number",
                  "read": true,
                  "write": false,
                  "min": 0,
                  "max": 1,
                  "states": {
                    "0": "geschlossen",
                    "1": "geöffnet"
                  },
                  "unit": " ",
                  "role": "window.value",
                  "name": "Badezimmer Fenster links",
                  "alias": {
                    "id": "hm-rpc.0.0xxxxx.1.STATE"
                  }
                },
                "native": {},
                "from": "system.adapter.javascript.0",
                "user": "system.user.admin",
                "ts": 1593204497556,
                "_id": "alias.0.Fenster.Badezimmer_Fenster_links",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              Hier mal so ein alias RAW von einem Drehgriff

              {
                "type": "state",
                "common": {
                  "def": "CLOSED",
                  "type": "number",
                  "read": true,
                  "write": false,
                  "min": 0,
                  "max": 2,
                  "states": {
                    "0": "geschlossen",
                    "1": "gekippt",
                    "2": "geöffnet"
                  },
                  "role": "window.value",
                  "name": "Keller Sauna Fenster links",
                  "alias": {
                    "id": "hm-rpc.0.xxxxxC.1.STATE"
                  },
                  "unit": " "
                },
                "native": {},
                "from": "system.adapter.javascript.0",
                "user": "system.user.admin",
                "ts": 1593250239446,
                "_id": "alias.0.Fenster.Keller_Sauna_Fenster_links",
                "acl": {
                  "object": 1636,
                  "state": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              Sensoren mit true und false habe ich nicht...

              EDIT: sind Deine alias so eingerichtet ? (oder im Blockly ist noch was falsch...?)

              dirk1962D 1 Antwort Letzte Antwort
              0
              • dslraserD dslraser

                @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.

                Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?

                Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster.

                wird geändert (war in beiden Instanzen falsch)

                Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.

                bei den Fenstern und Türen werden nur die states ausgewertet, also nur

                geschlossen
                gekippt
                geöffnet

                Diese müssen im Alias auch so heißen

                // so für Drehgriffe:
                states = {0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}; 
                
                //oder so für "normale Fensterkontakte mit auf-zu:
                states = {0: 'geschlossen', 1: 'geöffnet'}; 
                
                //oder so, wenn true-false ausgegeben wird
                states = {false: 'geschlossen', true: 'geöffnet'}; 
                
                

                Hier mal so ein alias RAW von einem einfachen Sensor

                {
                  "type": "state",
                  "common": {
                    "def": "CLOSED",
                    "type": "number",
                    "read": true,
                    "write": false,
                    "min": 0,
                    "max": 1,
                    "states": {
                      "0": "geschlossen",
                      "1": "geöffnet"
                    },
                    "unit": " ",
                    "role": "window.value",
                    "name": "Badezimmer Fenster links",
                    "alias": {
                      "id": "hm-rpc.0.0xxxxx.1.STATE"
                    }
                  },
                  "native": {},
                  "from": "system.adapter.javascript.0",
                  "user": "system.user.admin",
                  "ts": 1593204497556,
                  "_id": "alias.0.Fenster.Badezimmer_Fenster_links",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                }
                

                Hier mal so ein alias RAW von einem Drehgriff

                {
                  "type": "state",
                  "common": {
                    "def": "CLOSED",
                    "type": "number",
                    "read": true,
                    "write": false,
                    "min": 0,
                    "max": 2,
                    "states": {
                      "0": "geschlossen",
                      "1": "gekippt",
                      "2": "geöffnet"
                    },
                    "role": "window.value",
                    "name": "Keller Sauna Fenster links",
                    "alias": {
                      "id": "hm-rpc.0.xxxxxC.1.STATE"
                    },
                    "unit": " "
                  },
                  "native": {},
                  "from": "system.adapter.javascript.0",
                  "user": "system.user.admin",
                  "ts": 1593250239446,
                  "_id": "alias.0.Fenster.Keller_Sauna_Fenster_links",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                }
                

                Sensoren mit true und false habe ich nicht...

                EDIT: sind Deine alias so eingerichtet ? (oder im Blockly ist noch was falsch...?)

                dirk1962D Offline
                dirk1962D Offline
                dirk1962
                schrieb am zuletzt editiert von dirk1962
                #696

                @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.

                Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?

                Du hast völlig Recht. Bei "Batterien-voll_leer" sagt Alexa nur "alle Batterien sind voll", bei der Volt Ansage würde sie alle Werte ansagen. Das macht absolut keinen Sinn.

                Die HM-Fenster Kontakte geben die states "true - false" aus, die HMIP-Kontakte 0 und 1.
                Bei den Türen habe ich nur HM-Kontakte, beim Erzeugen der Aliase habe ich es so eingestellt:

                Türen 3.png
                Den richtige state habe ich rausgenommen. Es werden keine Kontakte angezeigt.

                Türen2.png

                Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.

                Türen.png

                EDIT: mit dem alten Blockly hat es funktioniert, sonst hättest Du eine Rückmeldung von mir bekommen.

                NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                dslraserD 1 Antwort Letzte Antwort
                0
                • dirk1962D dirk1962

                  @dslraser sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                  @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                  Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.

                  Ja, in der Tat, die gibt es nicht (würde aber gehen). Meine Ansage der Batterien dauerte dann Minuten, braucht man die Ansage ?

                  Du hast völlig Recht. Bei "Batterien-voll_leer" sagt Alexa nur "alle Batterien sind voll", bei der Volt Ansage würde sie alle Werte ansagen. Das macht absolut keinen Sinn.

                  Die HM-Fenster Kontakte geben die states "true - false" aus, die HMIP-Kontakte 0 und 1.
                  Bei den Türen habe ich nur HM-Kontakte, beim Erzeugen der Aliase habe ich es so eingestellt:

                  Türen 3.png
                  Den richtige state habe ich rausgenommen. Es werden keine Kontakte angezeigt.

                  Türen2.png

                  Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.

                  Türen.png

                  EDIT: mit dem alten Blockly hat es funktioniert, sonst hättest Du eine Rückmeldung von mir bekommen.

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

                  @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                  Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.

                  immer nur einen state angeben (bei Dir ist nur einer auskommentiert und zwei sind aktiv).
                  Wenn Du den alias schon hast, kannst Du auch den RAW bearbeiten.
                  Schau mal in den Beitrag über Deinem, den habe ich noch editiert.

                  Eigentlich/wahrscheinlich müßte so ein alias RAW mitt true und false so aussehen, oder ??? Also auch vom Typ boolean und nicht number, oder ?

                  {
                    "type": "state",
                    "common": {
                      "type": "boolean",
                      "read": true,
                      "write": false,
                      "states": {
                        "false": "geschlossen",
                        "true": "geöffnet"
                      },
                      "unit": " ",
                      "role": "window.value",
                      "name": "Badezimmer Fenster links",
                      "alias": {
                        "id": "hm-rpc.0.xxxxx.1.STATE"
                      }
                    },
                    "native": {},
                    "from": "system.adapter.javascript.0",
                    "user": "system.user.admin",
                    "ts": 1593204497556,
                    "_id": "alias.0.Fenster.Badezimmer_Fenster_links",
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    }
                  }
                  
                  dirk1962D 1 Antwort Letzte Antwort
                  0
                  • dslraserD dslraser

                    @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                    Muss ich, wenn ich HM und HMIP habe so einstellen? Habe keine Drehgriffe.

                    immer nur einen state angeben (bei Dir ist nur einer auskommentiert und zwei sind aktiv).
                    Wenn Du den alias schon hast, kannst Du auch den RAW bearbeiten.
                    Schau mal in den Beitrag über Deinem, den habe ich noch editiert.

                    Eigentlich/wahrscheinlich müßte so ein alias RAW mitt true und false so aussehen, oder ??? Also auch vom Typ boolean und nicht number, oder ?

                    {
                      "type": "state",
                      "common": {
                        "type": "boolean",
                        "read": true,
                        "write": false,
                        "states": {
                          "false": "geschlossen",
                          "true": "geöffnet"
                        },
                        "unit": " ",
                        "role": "window.value",
                        "name": "Badezimmer Fenster links",
                        "alias": {
                          "id": "hm-rpc.0.xxxxx.1.STATE"
                        }
                      },
                      "native": {},
                      "from": "system.adapter.javascript.0",
                      "user": "system.user.admin",
                      "ts": 1593204497556,
                      "_id": "alias.0.Fenster.Badezimmer_Fenster_links",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    
                    dirk1962D Offline
                    dirk1962D Offline
                    dirk1962
                    schrieb am zuletzt editiert von
                    #698

                    @dslraser
                    Dein Blockly ist okay, der Fehler saß vor dem Computer:grinning: :grinning: .
                    Immer nur ein state angeben ist logisch, wenn man Ahnung davon hat oder es einem Ahnungslosen erklärt wird.
                    Vielen Dank.

                    NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                    1 Antwort Letzte Antwort
                    1
                    • dirk1962D dirk1962

                      Hallo @dslraser,
                      habe alle Aliase angelegt und das Blockly funktioniert soweit, super Arbeit von Dir.:+1:
                      Ein paar kleine Anmerkungen habe ich noch.
                      Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.
                      Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster. Ich habe es bei mir geändert, falls Du nochmal ein Update einstellst, kannst Du es für alle ändern.
                      Bei Fenster und Türen habe ich sowohl HM als auch HMIP Kontakte. Die HM-Kontakte werden in den html-Tabellen nicht angezeigt und auch nicht bei der Alexa Ansage berücksichtigt. Da muss ich noch auf Deine Erklärung im ersten Post warten.
                      Alle Ansagen funktionieren perfekt und auch der E-Mail Versand ist okay. Telegram nutze ich nicht.
                      Es sieht so aus, als ob Du kurz vor Vollendung dieses Projektes bist.
                      Vielen Dank für Deine Arbeit und Hilfsbereitschaft.:clap: :clap:

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

                      @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                      Bei "Batterien_zaehlen_voll_leer" gibt es eine Alexa Ansage, bei "Batterien_zaehlen_Volt" nicht.

                      Gibt es da jetzt auch. (viel Spaß beim zuhören:blush: , nur damit Niemand mehr fragt warum es da keine Ansage gibt)

                      Der Einleitungssatz für die Alexa2.0.Instanz Türen steht auf Fenster.

                      Habe ich korrigiert.

                      Das aktuelle Blockly habe ich eben hochgeladen. Nun will ich noch ein wenig an der "Anleitung" schreiben...., dann war es das erstmal, hoffentlich:blush:

                      1 Antwort Letzte Antwort
                      1
                      • dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #700

                        Im zweiten Beitrag befindet sich nun ein aktuelles Blockly zur Anrufer Ansage (optional mit Telegram oder E-Mail Benachrichtigung) Das Blockly ist auch auf speak umgestellt.

                        1 Antwort Letzte Antwort
                        0
                        • dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #701

                          Ich habe im ersten Beitrag eine Vorlage zum Alias erstellen eingefügt. Damit ist es möglich, alle seine Alias auf einmal zu erstellen.

                          dirk1962D 2 Antworten Letzte Antwort
                          1
                          • dslraserD dslraser

                            Ich habe im ersten Beitrag eine Vorlage zum Alias erstellen eingefügt. Damit ist es möglich, alle seine Alias auf einmal zu erstellen.

                            dirk1962D Offline
                            dirk1962D Offline
                            dirk1962
                            schrieb am zuletzt editiert von
                            #702

                            @dslraser
                            Eine super Erleichterung für alle, die in Zukunft das Blockly nutzen.:grimacing: :grinning: :grinning:

                            NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                            1 Antwort Letzte Antwort
                            1
                            • dslraserD dslraser

                              Ich habe im ersten Beitrag eine Vorlage zum Alias erstellen eingefügt. Damit ist es möglich, alle seine Alias auf einmal zu erstellen.

                              dirk1962D Offline
                              dirk1962D Offline
                              dirk1962
                              schrieb am zuletzt editiert von Negalein
                              #703

                              Hallo @dslraser,
                              in der Vorlage für die Aliase hast Du keine Vorlage für HM Fensterkontakte (true, false)

                              Würde folgender Eintrag funktionieren?

                              //2 x Fenstersensoren
                              //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                              //{false: 'geschlossen', true: 'geöffnet'}
                              createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                              createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                              


                              Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
                              Hier gehts zur Hilfe.

                              NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                              dslraserD 1 Antwort Letzte Antwort
                              0
                              • dirk1962D dirk1962

                                Hallo @dslraser,
                                in der Vorlage für die Aliase hast Du keine Vorlage für HM Fensterkontakte (true, false)

                                Würde folgender Eintrag funktionieren?

                                //2 x Fenstersensoren
                                //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                                //{false: 'geschlossen', true: 'geöffnet'}
                                createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                


                                Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
                                Hier gehts zur Hilfe.

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

                                @dirk1962 wie sieht denn ein original RAW aus ?
                                Und bitte pack das mal in Code Tags. damit (</>)

                                dirk1962D 1 Antwort Letzte Antwort
                                0
                                • dslraserD dslraser

                                  @dirk1962 wie sieht denn ein original RAW aus ?
                                  Und bitte pack das mal in Code Tags. damit (</>)

                                  dirk1962D Offline
                                  dirk1962D Offline
                                  dirk1962
                                  schrieb am zuletzt editiert von
                                  #705

                                  @dslraser

                                  RAW vom HM Fensterkontakt

                                    "from": "system.adapter.hm-rega.0",
                                    "user": "system.user.admin",
                                    "ts": 1587220966307,
                                    "common": {
                                      "name": "Küchenfenster.STATE",
                                      "type": "boolean",
                                      "role": "value.window",
                                      "def": false,
                                      "read": true,
                                      "write": false
                                    },
                                    "native": {
                                      "CONTROL": "DOOR_SENSOR.STATE",
                                      "ID": "STATE",
                                      "TYPE": "BOOL",
                                      "UNIT": "",
                                      "FLAGS": 1,
                                      "OPERATIONS": 5,
                                      "TAB_ORDER": 0,
                                      "DEFAULT": false,
                                      "MAX": true,
                                      "MIN": false
                                    },
                                    "acl": {
                                      "object": 1636,
                                      "owner": "system.user.admin",
                                      "ownerGroup": "system.group.administrator",
                                      "state": 1636
                                    },
                                    "_id": "hm-rpc.0.OEQ1979135.1.STATE",
                                    "type": "state"
                                  }
                                  
                                  

                                  Alias vom HM Fensterkontakt?

                                  //2 x Fenstersensoren
                                  //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                                  //{false: 'geschlossen', true: 'geöffnet'}
                                  createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                  createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})

                                  NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                                  dslraserD 1 Antwort Letzte Antwort
                                  0
                                  • dirk1962D dirk1962

                                    @dslraser

                                    RAW vom HM Fensterkontakt

                                      "from": "system.adapter.hm-rega.0",
                                      "user": "system.user.admin",
                                      "ts": 1587220966307,
                                      "common": {
                                        "name": "Küchenfenster.STATE",
                                        "type": "boolean",
                                        "role": "value.window",
                                        "def": false,
                                        "read": true,
                                        "write": false
                                      },
                                      "native": {
                                        "CONTROL": "DOOR_SENSOR.STATE",
                                        "ID": "STATE",
                                        "TYPE": "BOOL",
                                        "UNIT": "",
                                        "FLAGS": 1,
                                        "OPERATIONS": 5,
                                        "TAB_ORDER": 0,
                                        "DEFAULT": false,
                                        "MAX": true,
                                        "MIN": false
                                      },
                                      "acl": {
                                        "object": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator",
                                        "state": 1636
                                      },
                                      "_id": "hm-rpc.0.OEQ1979135.1.STATE",
                                      "type": "state"
                                    }
                                    
                                    

                                    Alias vom HM Fensterkontakt?

                                    //2 x Fenstersensoren
                                    //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                                    //{false: 'geschlossen', true: 'geöffnet'}
                                    createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                    createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                    dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von dslraser
                                    #706

                                    @dirk1962
                                    müßte dann wahrscheinlich boolean anstatt number sein

                                    //2 x Fenstersensoren
                                    //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                                    //{false: 'geschlossen', true: 'geöffnet'}
                                    createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'boolean', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                    createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'boolean',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                    
                                    

                                    EDIT: sag mal Bescheid ob das funktioniert

                                    dirk1962D dslraserD 2 Antworten Letzte Antwort
                                    0
                                    • dslraserD dslraser

                                      @dirk1962
                                      müßte dann wahrscheinlich boolean anstatt number sein

                                      //2 x Fenstersensoren
                                      //einfache HM Fenstersensoren über rpc-Adapter in function fenster_alias
                                      //{false: 'geschlossen', true: 'geöffnet'}
                                      createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'boolean', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                      createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'boolean',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', undefined, undefined, undefined, {false: 'geschlossen', true: 'geöffnet'})
                                      
                                      

                                      EDIT: sag mal Bescheid ob das funktioniert

                                      dirk1962D Offline
                                      dirk1962D Offline
                                      dirk1962
                                      schrieb am zuletzt editiert von
                                      #707

                                      @dslraser
                                      Die HM-Kontakte werden mit Deiner Einstellung korrekt erkannt und angezeigt. Habe alle Geräte in das Alias Script eingetragen, die alten Aliase gelöscht, JS-Adapter neu gestartet und den Admin neu geladen. E-Mail, Alexa Ansage und html-Tabellen sind so wie es sein soll. War eine Menge Arbeit, aber jetzt hat man alles übersichtlich in einer Datei.:+1: :+1:
                                      Mal sehen, ob Dein Projekt jetzt abgeschlossen ist oder ob Dir noch was Neues einfällt.
                                      Anrufer Ansage mit speak funktioniert bei mir auch.
                                      Super Arbeit und vielen Dank.

                                      NUC8i5 mit Proxmox; Raspberrymatic in VM, iobroker, Motioneye, infuxDB und Grafana in CT.

                                      dslraserD 1 Antwort Letzte Antwort
                                      1
                                      • dirk1962D dirk1962

                                        @dslraser
                                        Die HM-Kontakte werden mit Deiner Einstellung korrekt erkannt und angezeigt. Habe alle Geräte in das Alias Script eingetragen, die alten Aliase gelöscht, JS-Adapter neu gestartet und den Admin neu geladen. E-Mail, Alexa Ansage und html-Tabellen sind so wie es sein soll. War eine Menge Arbeit, aber jetzt hat man alles übersichtlich in einer Datei.:+1: :+1:
                                        Mal sehen, ob Dein Projekt jetzt abgeschlossen ist oder ob Dir noch was Neues einfällt.
                                        Anrufer Ansage mit speak funktioniert bei mir auch.
                                        Super Arbeit und vielen Dank.

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

                                        @dirk1962 sagte in Fenster und andere Geräte zählen opt. Alexa Ansagen:

                                        Mal sehen, ob Dein Projekt jetzt abgeschlossen ist oder ob Dir noch was Neues einfällt.

                                        Danke für das Feedback.
                                        0.5 habe ich heute hochgeladen. (bei der Batterien Volt Anzeige stimmte der Trigger nicht. Kannst Du aber auch selbst ändern. In main/Batterien Volt den passenden Trigger auswählen, da war der für an/aus drinn) (sonst ändern sich die Anzeigen für die Volt Listen usw. nicht)

                                        1 Antwort Letzte Antwort
                                        1
                                        • I Offline
                                          I Offline
                                          Idefix01
                                          schrieb am zuletzt editiert von Idefix01
                                          #709

                                          @dslraser

                                          Guten Tag,
                                          ich habe heute dein Blockly und Skript auch mal ausprobiert. Ich habe in dem Skript ein paar Geräte auf meine geändert und bei allen anderen ein // davor gesetzt. Auch die Ansage mit Alexa habe ich hinbekommen.

                                          Leider schreibt er bei mir aber keine Daten. Das heißt ich habe immer 0 Batterien, Temparaturen gibt es auch keine.
                                          Kannst Du mir bitte weiter helfen?

                                          Zaehlen.jpg

                                          Wenn ich es richtig sehe zählt er bei mir nicht bzw. schreibt nichts in die Felder obwohl alias Felder gefüllt sind

                                          /**************************************************************
                                          Github - https://github.com/xCruziX/ioBroker-Creating-Alias/blob/master/CreateAlias.js
                                            			Changelog
                                          Version 1.1.4
                                          - fix error by using bCreateAliasPath and bConvertExistingPath (has no target 9/Error creating alias-path)
                                          **************************************************************/
                                          
                                          /**************************************
                                            	Flags /
                                            	Variablen
                                          ***************************************/
                                          
                                          // typeAlias = 'boolean'; // oder 'number'
                                          // read = "val == 'Ein' ? true : false"; // Erkennung "Aus" --> false erfolgt automatisch  
                                          // write = "val ? 'Ein' : 'Aus'";
                                          // nameAlias = 'Licht Haustür';
                                          // role = 'switch';
                                          // desc = 'per Script erstellt';
                                          // min = 0; // nur Zahlen
                                          // max = 100; // nur Zahlen
                                          // unit = '%'; // nur für Zahlen
                                          // states = {0: 'Aus', 1: 'Auto', 2: 'Ein'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
                                          
                                          
                                          let bCreateAliasPath = true;  // If this flag is true, each folder is created seperately so rooms and functions can be assigned.
                                          
                                          /*
                                          Requirements: bCreateAliasPath == true
                                          If this flag is true, existing folders in the path will be converted so rooms and functions can be assigned.
                                          */
                                          let bConvertExistingPath = false;
                                          
                                          /***************************************
                                            	Dont't change anything from here /
                                            	Ab hier nichts verändern
                                          ***************************************/
                                          
                                          let arEnum = [];
                                          let arId = [];
                                          let timeoutAssignEnum;
                                          var callbackAlias = undefined;
                                          function createAlias(idSrc, idDst,raum, gewerk,typeAlias, read, write, nameAlias, role, desc, min, max, unit, states) {
                                          if(!idDst.includes('alias.0.'))
                                              idDst = 'alias.0.' + idDst;
                                          if(!existsObject(idSrc))
                                          {
                                              log('Source-Id ' + idSrc +' does not exists.','warn');
                                              return;
                                          }
                                          
                                          // Create the object Path for alias id, 
                                          // so you can assign rooms and function to the parents
                                          var createAliasPath = (id) => {
                                               if(bCreateAliasPath){
                                                    let lisMergedIds = [];
                                                    let mergedId = 'alias.0';
                                                    id = id.replace(mergedId + '.', ''); // Remove prefix alias so it will not be changed
                                                    let split = id.split('.'); 
                                                    for(let i=0;i<split.length-1;i++){
                                                        mergedId += '.' + split[i];
                                                        lisMergedIds.push(mergedId);
                                                    }
                                                    
                                                    function path(){
                                                        if(lisMergedIds.length == 0) {// Zu Ende erstellt
                                                            alias();
                                                            return;
                                                        }
                                                        let tmpId = lisMergedIds[0];
                                                        lisMergedIds.splice(0,1); // entferne element
                                                        if(!existsObject(tmpId) || bConvertExistingPath){ // not exists
                                                            let obj;
                                                            if(existsObject(tmpId))
                                                                obj = getObject(tmpId);
                                                            else
                                                                obj = {};
                                          
                                                            let bApply = false;
                                                            if(obj != undefined){
                                                                if(obj.type == undefined || String(obj.type) != 'meta'){
                                                                    obj.type = 'meta';
                                                                    bApply = true;
                                                                }
                                                                if(obj.common == undefined){
                                                                    obj.common = {};
                                                                    obj.common.type = 'meta.folder';
                                                                    bApply = true;
                                                                }
                                                                else if(obj.common.type == undefined || String(obj.common.type) != 'meta.folder'){
                                                                    obj.common.type = 'meta.folder';
                                                                    bApply = true;
                                                                }
                                                                if(obj.native == undefined){
                                                                    obj.native = {};
                                                                    bApply = true;
                                                                }
                                                            }
                                                            else{
                                                                path();
                                                                log('Object is undefined');
                                                                return;
                                                            }
                                                            
                                          
                                                            if(bApply){
                                                                setObject(tmpId, obj, (err) =>{
                                                                if(!err){
                                                                    log('Created Alias-Path ' + tmpId);
                                                                    path();
                                                                }
                                                                else
                                                                    log('Error creating alias-path','error');
                                                            });
                                                            }
                                                            else
                                                                path();
                                                            
                                                        }
                                                    }
                                                    path();
                                               }
                                               else
                                                 alias();
                                          }
                                          
                                          
                                          function alias(){
                                              // Create alias object
                                              
                                                if(!existsObject(idDst)){
                                                    let obj = {};
                                                    obj.type = 'state';
                                                    obj.common = getObject(idSrc).common;
                                                    obj.common.alias = {};
                                                    obj.common.alias.id = idSrc;
                                                    if(typeAlias !== undefined) 
                                                        obj.common.type = typeAlias;
                                                    if(obj.common.read !== undefined) 
                                                        obj.common.alias.read = read;
                                                    if(obj.common.write !== undefined) 
                                                        obj.common.alias.write = write;
                                                    if(nameAlias !== undefined) 
                                                        obj.common.name = nameAlias;
                                                    if(role !== undefined) 
                                                        obj.common.role = role;
                                                    if(desc !== undefined) 
                                                        obj.common.desc = desc;
                                                    if(min !== undefined) 
                                                        obj.common.min = min;
                                                    if(max !== undefined) 
                                                        obj.common.max = max;
                                                    if(unit !== undefined) 
                                                        obj.common.unit = unit;
                                                    if(states !== undefined) 
                                                        obj.common.states = states;
                                          
                                                    obj.native = {};
                                                    obj.common.custom = []; // Damit die Zuordnung zu iQontrol, Sql etc. nicht übernommen wird
                                                    log('Created Alias-State ' + idDst);
                                                    setObject(idDst, obj,(err) =>{ 
                                                        if(!err)
                                                            startAttach(); 
                                                        else
                                                            log('Error creating-alias','error');
                                                    });
                                                }
                                                else
                                                    startAttach();
                                          }
                                          
                                          
                                          // Save ID and Enum (room or function)
                                          var attach = (id, enu,value) => {
                                              if(id.length == 0){
                                                  log('ID has lenght 0, can not attach to enum','warn');
                                                  return;
                                              }
                                              if(value.length == 0){
                                                  log('Value has lenght 0','warn');
                                                  return;
                                              }
                                            
                                              let sEnuId = 'enum.' + enu + '.' + value;
                                              if(enu.length > 0 && existsObject(sEnuId)) 
                                              {
                                                  let obj = getObject(sEnuId)
                                                  let members = obj.common.members;
                                                  if(!members.includes(id)){
                                                      arEnum.push(sEnuId);
                                                      arId.push(id);
                                                  }
                                              }
                                              else
                                           	      log('Can not find enum ' + sEnuId,'warn');
                                          }
                                          
                                          function startAttach(){
                                            let bRoom = raum !== undefined && raum.length > 0;
                                            let bGewerk = gewerk !== undefined && gewerk.length > 0;
                                            
                                            if(bRoom)
                                                attach(idDst,'rooms',raum);
                                            if(bGewerk)
                                                attach(idDst,'functions',gewerk);
                                            if(bRoom || bGewerk){
                                                    if(timeoutAssignEnum){
                                                        clearTimeout(timeoutAssignEnum);
                                                        timeoutAssignEnum = null;
                                                    }
                                                    timeoutAssignEnum = setTimeout(finishScript,100);
                                            }
                                          }
                                          
                                          createAliasPath(idDst);
                                          }
                                          
                                          function finishScript(){
                                            assignEnums();
                                          }
                                          
                                          // Add the saved IDs to the rooms/functions
                                          function assignEnums(){
                                          if(arEnum.length == 0 || arId.length == 0){
                                              return;
                                          }
                                          
                                          if(arEnum.length != arId.length){
                                              log('Arrays have different size','error');
                                              return;
                                          }
                                          let mapEnumId = new Map();
                                          
                                          for(let i=0;i < arEnum.length; i++){
                                             let enu = arEnum[i];
                                             let id = arId[i];
                                             if(existsObject(id)){
                                            	 let obj = getObject(enu)
                                            	 let members;
                                            	 if(!mapEnumId.has(enu)){
                                            		 members = obj.common.members;
                                            		 mapEnumId.set(enu,members);
                                            	 }
                                            	 else
                                            		 members = mapEnumId.get(enu);    
                                            	 if(!members.includes(id)){
                                            		  log("Adding " + id + " to " + enu);
                                            		  members.push(id);
                                            	 }	      
                                             }
                                             else
                                                 log('Can not find Alias ' + id,'error');
                                          }
                                          
                                          function setMembers(members,enu,map){
                                              let obj = getObject(enu);
                                              obj.common.members = members;
                                              setObject(enu,obj);
                                          }
                                          mapEnumId.forEach(setMembers);
                                          }
                                          
                                          
                                          
                                          function setAliasReadWrite(aliasId,read,write){
                                            if(aliasId == undefined || read == undefined || write == undefined)
                                                return;
                                            setAliasRead(aliasId,read);
                                            setAliasWrite(aliasId,write);
                                          }
                                          
                                          
                                          function setAliasRead(aliasId,value){
                                            setTimeout(()=>{
                                                 let tmp = aliasId;
                                                if(!tmp.includes('alias.0.'))
                                                    tmp = 'alias.0.' +tmp;
                                                if(!existsState(tmp)){
                                                    log('setAliasRead => Der Datenpunkt existiert nicht => ' +tmp,'error');
                                                    return;
                                                }
                                                let obj = getObject(tmp);
                                                let alias = obj.common.alias;
                                                if(alias.read != value){
                                                    log('Set read property');
                                                    alias.read = value;
                                                    setObject(tmp,obj);
                                                }
                                            },30)
                                          }
                                          
                                          function setAliasWrite(aliasId,value){
                                            setTimeout(()=>{
                                                let tmp = aliasId;
                                                if(!tmp.includes('alias.0.'))
                                                    tmp = 'alias.0.' +tmp;
                                                if(!existsState(tmp)){
                                                    log('setAliaswrite => Der Datenpunkt existiert nicht => ' +tmp,'error');
                                                    return;
                                                }
                                                let obj = getObject(tmp);
                                                let alias = obj.common.alias;
                                                if(alias.write != value){
                                                    log('Set write property');
                                                    alias.write = value;
                                                    setObject(tmp,obj);
                                                }
                                            },30)
                                          }
                                          
                                          /**********************************************************
                                            	END /
                                            	ENDE
                                          **********************************************************/
                                          
                                          //Ab hier werden die eigenen Alias konfiguriert
                                          
                                          //////////////////////////////
                                          //  Fenster
                                          //////////////////////////////
                                          
                                          //11 x Fenstersensoren
                                          //einfache HMIP Fenstersensoren über rpc-Adapter in function fenster_alias
                                          //{0: 'geschlossen', 1: 'geöffnet'}
                                          //createAlias('hm-rpc.0.0007DA49902BAF.1.STATE'/*Wohnzimmer Fenster links STATE*/, 'Fenster.Wohnzimmer_Terrasse', undefined, 'fenster_alias', 'number', undefined, undefined, 'Wohnzimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster links STATE*/, 'Fenster.Kueche_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Badezimmer Fenster links STATE*/, 'Fenster.Badezimmer_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Badezimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Gästezimmer Fenster links STATE*/, 'Fenster.Gästezimmer_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Gästezimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Schlafzimmer Fenster links STATE*/, 'Fenster.Schlafzimmer_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Schlafzimmer links', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster rechts STATE*/, 'Fenster.Kueche_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche rechts', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Wohnzimmer Fenster rechts STATE*/, 'Fenster.Wohnzimmer_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Wohnzimmer rechts', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Schlafzimmer Fenster rechts STATE*/, 'Fenster.Schlafzimmer_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Schlafzimmer rechts', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Küche Fenster mitte STATE*/, 'Fenster.Küche_Fenster_mitte', undefined, 'fenster_alias', 'number',undefined, undefined, 'Küche mitte', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Gästezimmer Fenster rechts STATE*/, 'Fenster.Gaestezimmer_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Gästezimmer rechts', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Badezimmer Fenster rechts STATE*/, 'Fenster.Badezimmer_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Badezimmer rechts', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          
                                          //9 x Fensterdrehgriffe
                                          //HMIP Fensterdrehgriffe über rpc-Adapter in function fenster_alias
                                          //{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'}
                                          createAlias('hm-rpc.0.0007DA49902BAF.1.STATE'/*Keller W-Baum Fenster STATE*/, 'Fenster.Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller W Baum', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Wohnzimmer Fenster mitte STATE*/, 'Fenster.Keller_Wohnzimmer_Fenster_mitte', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Wohnzimmer mitte', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Heizung Fenster STATE*/, 'Fenster.Keller_Heizung_Fenster', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Heizung', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Vorrat Fenster STATE*/, 'Fenster.Keller_Vorrat_Fenster', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Vorrat', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Sauna Fenster links STATE*/, 'Fenster.Keller_Sauna_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Sauna links', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Sauna Fenster rechts STATE*/, 'Fenster.Keller_Sauna_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Sauna rechts', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Wohnzimmer Fenster links STATE*/, 'Fenster.Keller_Wohnzimmer_Fenster_links', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Wohnzimmer links', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Wohnzimmer Fenster rechts STATE*/, 'Fenster.Keller_Wohnzimmer_Fenster_rechts', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Wohnzimmer rechts', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Keller Werkstatt Fenster STATE*/, 'Fenster.Keller_Werkstatt_Fenster', undefined, 'fenster_alias', 'number',undefined, undefined, 'Keller Werkstatt', 'window.value', 'per Script erstellt', 0, 2, '',{0: 'geschlossen', 1: 'gekippt', 2: 'geöffnet'})
                                          
                                          //2 x Fenster(Türen) Sensoren
                                          //einfache HMIP Fenstersensoren über rpc-Adapter in function tueren_alias
                                          //{0: 'geschlossen', 1: 'geöffnet'}
                                          createAlias('hm-rpc.0.00109A49A285B5.1.STATE'/*Wohnzimmer Terrassentür STATE*/, 'Tueren.Terrassentuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Terrassentür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          //createAlias('hm-rpc.0.xxx.1.STATE'/*Haustür STATE*/, 'Tueren.Haustuer', undefined, 'tueren_alias', 'number',undefined, undefined, 'Haustür', 'window.value', 'per Script erstellt', 0, 1, '',{0: 'geschlossen', 1: 'geöffnet'})
                                          
                                          //////////////////////////////
                                          //  Steckdosen
                                          //////////////////////////////
                                          
                                          //8 x Steckdosen
                                          //HMIP Steckdosen über rpc-Adapter in function steckdosen_alias
                                          //{false: 'aus', true: 'an'}
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Waschmaschine STATE*/, 'Steckdosen.Waschmaschine', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Waschmaschine', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Geschirrspueler STATE*/, 'Steckdosen.Geschirrspueler', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Geschirrspüler', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Kugellampe STATE*/, 'Steckdosen.Kugellampe', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Kugellampe', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Lüfter STATE*/, 'Steckdosen.Luefter', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Lüfter', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Gäste WC Licht STATE*/, 'Steckdosen.Gaeste_WC_Licht', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Gäste WC Licht', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Kaminlampe STATE*/, 'Steckdosen.Kaminlampe', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Kaminlampe', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Schreibtischlampe rechts STATE*/, 'Steckdosen.Schreibtischlampe_rechts', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Schreibtisch rechts', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Schreibtischlampe links STATE*/, 'Steckdosen.Schreibtischlampe_links', undefined, 'steckdosen_alias', 'boolean', undefined, undefined, 'Schreibtisch links', 'switch', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          
                                          //////////////////////////////
                                          //  Bewegungsmelder
                                          //////////////////////////////
                                          
                                          //11 x Bewegungsmelder und 6 x Präsenzmelder und 1 x Erschütterungssensor
                                          //HMIP Bewegungsmelder und Präsenzmelder über rpc-Adapter in function bewegungsmelder_alias
                                          //{false: 'inaktiv', true: 'aktiv'}
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Weihnachtsbaumkeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Weihnachtsbaumkeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'W Baum Keller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Heizungskeller MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Heizungskeller', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Heizungskeller', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Keller Sauna MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Sauna', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Keller Sauna', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Keller Vorratsraum MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Vorratsraum', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Keller Vorratsraum', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Keller Flur MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Flur_vorn', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Keller Flur vorn', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Garage MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Garage', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Keller Garage', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.3.MOTION'/*Bewegungsmelder 55 Gäste WC Tür MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Gaeste_WC', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Gäste WC', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.3.MOTION'/*Bewegungsmelder 55 Kellertreppe MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Kellertreppe', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Kellertreppe', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.3.MOTION'/*Bewegungsmelder 55 Keller Flur MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Keller_Flur_hinten', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Keller Flur hinten', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Gartentür MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Gartentuer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Gartentür', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Bewegungsmelder Garten MOTION*/, 'Bewegungsmelder.Bewegungsmelder_Garten', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Garten', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //ab hier 6 x Präsenzmelder
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Badezimmer PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Badezimmer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Badezimmer', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Dusche PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Dusche', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Dusche', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Flur BZ PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Flur_Badezimmer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Flur Badezimmer', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Flur GZ PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Flur_Gaestezimmer', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Flur Gästezimmer', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Küche PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Kueche', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Küche', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //createAlias('hm-rpc.0.xxx.1.PRESENCE_DETECTION_STATE'/*Präsenzmelder Gäste WC PRESENCE DETECTION STATE*/, 'Bewegungsmelder.Praesenzmelder_Gaeste_WC', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Gäste WC', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          //ab hier 1 x Erschütterungssensor
                                          //createAlias('hm-rpc.0.xxx.1.MOTION'/*Briefkasten MOTION*/, 'Bewegungsmelder.Praesenzmelder_Briefkasten', undefined, 'bewegungsmelder_alias', 'boolean', undefined, undefined, 'Briefkasten', 'sensor.motion', 'per Script erstellt', undefined, undefined, undefined, {false: 'inaktiv', true: 'aktiv'})
                                          
                                          //////////////////////////////
                                          //  Licht
                                          //////////////////////////////
                                          
                                          //26 x HUE und 5 x HMIP Licht über HUE und rpc-Adapter in function licht_alias
                                          //{false: 'aus', true: 'an'}
                                          //createAlias('hue.0.Badezimmerlampe_links.on'/*Badezimmerlampe links on*/, 'Licht.Badezimmer_Licht_links', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer links', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Badezimmerlampe_rechts.on'/*Badezimmerlampe rechts on*/, 'Licht.Badezimmer_Licht_rechts', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Badezimmer rechts', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Deckenlampe.on'/*Deckenlampe on*/, 'Licht.Wohnzimmer_Decke_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Wohnzimmer Decke', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Fensterlampe.on'/*Fensterlampe on*/, 'Licht.Wohnzimmer_Fenster_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fenster', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Fernsehlampe_links.on'/*Fernsehlampe links on*/, 'Licht.Wohnzimmer_Fernseher_Licht_links', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fernseher links', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Fernsehlampe_rechts.on'/*Fernsehlampe rechts on*/, 'Licht.Wohnzimmer_Fernseher_Licht_rechts', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fernseher rechts', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Flur_hinten.on'/*Flur hinten on*/, 'Licht.Flur_Licht_hinten', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Flur hinten', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Flur_vorn.on'/*Flur vorn on*/, 'Licht.Flur_Licht_vorn', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Flur vorn', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Garagelampe.on'/*Garagelampe on*/, 'Licht.Garage_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Garage', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Gartenlampe.on'/*Gartenlampe on*/, 'Licht.Garten_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Garten', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Haustürlampe.on'/*Haustürlampe on*/, 'Licht.Haustuer_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Haustür', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Heizung.on'/*Heizung on*/, 'Licht.Heizung_Keller_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Heizung Keller', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Kellerflur_hinten.on'/*Kellerflur hinten on*/, 'Licht.Keller_Flur_Licht_hinten', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Keller Flur hinten', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Kellerflur_vorn.on'/*Kellerflur vorn on*/, 'Licht.Keller_Flur_Licht_vorn', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Keller Flur vorn', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hue.0.Kellertreppe.on'/*Kellertreppe on*/, 'Licht.Keller_Treppe_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Keller Treppe', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          
                                          //ab hier 5 x Licht HMIP Steckdosen über rpc Adapter
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Kugellampe STATE*/, 'Licht.Wohnzimmer_Kugel_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Kugellicht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Gäste WC Licht STATE*/, 'Licht.Gaeste_WC_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Gäste WC Licht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Kaminlampe STATE*/, 'Licht.Wohnzimmer_Kamin_Licht', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Kaminlicht', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Schreibtischlampe rechts STATE*/, 'Licht.Gaestezimmer_Schreibtisch_Licht_rechts', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Schreibtisch rechts', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          //createAlias('hm-rpc.0.xxx.3.STATE'/*Schreibtischlampe links STATE*/, 'Licht.Gaestezimmer_Schreibtisch_Licht_links', undefined, 'licht_alias', 'boolean', undefined, undefined, 'Schreibtisch links', 'switch.light', 'per Script erstellt', undefined, undefined, undefined, {false: 'aus', true: 'an'})
                                          
                                          //////////////////////////////
                                          //  Temperaturen
                                          //////////////////////////////
                                          
                                          //HMIP 7 x Temperaturen über rpc-Adapter in function temperaturen_alias
                                          createAlias('hm-rpc.0.000A9A49A7047A.1.ACTUAL_TEMPERATURE'/*Wandthermostat Schlafzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Schlafzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Schlafzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          createAlias('hm-rpc.0.000A9A49A6FAAB.1.ACTUAL_TEMPERATURE'/*Wandthermostat Wohnzimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Wohnzimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Wohnzimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          //createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Badezimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Badezimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Badezimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          //createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Flur:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Flur', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Flur', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          //createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Wandthermostat Gästezimmer:1 ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Gaestezimmer', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Gästezimmer', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          //createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Temperatursensor aussen ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Garten', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Garten', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          //createAlias('hm-rpc.0.xxx.1.ACTUAL_TEMPERATURE'/*Temperatursensor Keller ACTUAL TEMPERATURE*/, 'Temperaturen.Temperatur_Keller', undefined, 'temperaturen_alias', 'number', 'Math.round(val * 10) / 10', undefined, 'Keller', 'value.temperature', 'per Script erstellt', undefined, undefined, '°C', undefined)
                                          
                                          //////////////////////////////
                                          //  Batterien_voll_leer
                                          //////////////////////////////
                                          
                                          //66 x Batterien voll-leer über boolean Wert false/true in function batterien_voll_leer_alias
                                          createAlias('hm-rpc.0.0007DA49902BAF.0.LOW_BAT'/*Wohnzimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Wohnzimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Küche Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Kueche_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Küche Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Badezimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Badezimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Badezimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Gästezimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Gaestezimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Gästezimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Schlafzimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Schlafzimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Schlafzimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Küche Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Kueche_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Küche Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Wohnzimmer Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Wohnzimmer_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Wohnzimmer Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Schlafzimmer Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Schlafzimmer_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Schlafzimmer Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Wohnzimmer Terrassentür:0 LOW BAT*/, 'Batterien_voll_leer.Terrassentuer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Terrassentür', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Haustür:0 LOW BAT*/, 'Batterien_voll_leer.Haustuer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Haustür', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Küche Fenster mitte:0 LOW BAT*/, 'Batterien_voll_leer.Kueche_Fenster_mitte', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Küche Fenster mitte', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Gästezimmer Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Gaestezimmer_Fenste_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Gästezimmer Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Badezimmer Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Badezimmer_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Badezimmer Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Schalter Flur 55 Flur:0 LOW BAT*/, 'Batterien_voll_leer.Schalter_Flur', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Schalter Flur', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Fernbedienung Kerstin:0 LOW BAT*/, 'Batterien_voll_leer.Fernbedienung_Kerstin', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Fernbedienung Kerstin', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Fernbedienung Heiko:0 LOW BAT*/, 'Batterien_voll_leer.Fernbedienung_Heiko', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Fernbedienung Heiko', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller W-Baum Fenster:0 LOW BAT*/, 'Batterien_voll_leer.Keller_W_Baum_Fenster', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller W Baum Fenster', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Wohnzimmer Fenster mitte:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Wohnzimmer_Fenster_mitte', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Wohnzimmer Fenster mitte', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Heizung Fenster:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Heizung_Fenster', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Heizung Fenster', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Vorrat Fenster:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Vorrat_Fenster', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Vorrat Fenster', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Sauna Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Sauna_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Sauna Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Sauna Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Sauna_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Sauna Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Wohnzimmer Fenster links:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Wohnzimmer_Fenster_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Wohnzimmer Fenster links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Wohnzimmer Fenster rechts:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Wohnzimmer_Fenster_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Wohnzimmer Fenster rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Keller Werkstatt Fenster:0 LOW BAT*/, 'Batterien_voll_leer.Keller_Werkstatt_Fenster', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Keller Werkstatt Fenster', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Weihnachtsbaumkeller:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_W_Baum', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Keller W Baum', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Heizungskeller:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_Heizung', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Keller Heizung', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Keller Sauna:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_Sauna', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Keller Sauna', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Keller Vorratsraum:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_Vorratsraum', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Keller Vorratsraum', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Keller Flur:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_Flur_vorn', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Keller Flur vorn', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Bewegungsmelder Garage:0 LOW BAT*/, 'Batterien_voll_leer.Bewegungsmelder_Keller_Garage', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Bewegungsmelder Garage', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermostat Wohnzimmer:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Wohnzimmer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Wohnzimmer', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermostat Schlafzimmer links:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Schlafzimmer_links', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Schlafzimmer links', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermost Badezimmer:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Badezimmer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Badezimmer', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermostat Gästezimmer:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Gaestezimmer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Gästezimmer', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermotat Schlafzimmer rechts:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Schlafzimmer_rechts', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Schlafzimmer rechts', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Heizkörperthermostat Flur:0 LOW BAT*/, 'Batterien_voll_leer.Heizkoerperthermostat_Flur', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Heizkörperthermostat Flur', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Rauchmelder Keller Flur:0 LOW BAT*/, 'Batterien_voll_leer.Rauchmelder_Keller_Flur', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Rauchmelder Keller Flur', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Rauchmelder Flur:0 LOW BAT*/, 'Batterien_voll_leer.Rauchmelder_Flur', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Rauchmelder Flur', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Rauchmelder Wohnzimmer:0 LOW BAT*/, 'Batterien_voll_leer.Rauchmelder_Wohnzimmer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Rauchmelder Wohnzimmer', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          //createAlias('hm-rpc.0.xxx.0.LOW_BAT'/*Rauchmelder Gästezimmer:0 LOW BAT*/, 'Batterien_voll_leer.Rauchmelder_Gaestezimmer', undefined, 'batterien_voll_leer_alias', 'boolean', undefined, undefined, 'Rauchmelder Gästezimmer', 'indicator.lowbat', 'per Script erstellt', undefined, undefined, undefined, {false: 'voll', true: 'leer'})
                                          
                                          //////////////////////////////
                                          //  Batterien_Volt
                                          //////////////////////////////
                                          
                                          //57 x Batterien Volt Anzeige in function batterien_volt_alias
                                          createAlias('hm-rpc.0.0007DA49902BAF.0.OPERATING_VOLTAGE'/*Wohnzimmer Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Wohnzimmer_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Wohnzimmer Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                                          //createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Küche Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Kueche_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Küche Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                                          //createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Badezimmer Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Badezimmer_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Badezimmer Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                                          //createAlias('hm-rpc.0.xxx.0.OPERATING_VOLTAGE'/*Gästezimmer Fenster links:0 OPERATING VOLTAGE*/, 'Batterien_Volt.Gaestezimmer_Fenster_links', undefined, 'batterien_volt_alias', 'number', undefined, undefined, 'Gästezimmer Fenster links', 'value.voltage', 'per Script erstellt', undefined, undefined, 'Volt', undefined)
                                          
                                          

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          527

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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