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. Skriptsammlung für den neuen ALEXA2.0 Adapter

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

Skriptsammlung für den neuen ALEXA2.0 Adapter

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
184 Beiträge 45 Kommentatoren 45.2k Aufrufe 19 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.
  • arteckA Offline
    arteckA Offline
    arteck
    Developer Most Active
    schrieb am zuletzt editiert von
    #10

    @khg:

    egal was man da an Verzögerungen oder Pollings in dem Fritzbox und tr-064 Adapter eingestellt, es bleibt bei dem Fehler.

    Schade! `

    nein Bbeibt es nicht.. achte auf den Adapter und das Objekt tr-064.0.callmonitor.inbound.callerName..ich lasse mir diesen in der Visu darstellen seit Monaten… uns und es geht..

    zigbee hab ich, zwave auch, nuc's genauso und HA auch

    1 Antwort Letzte Antwort
    0
    • khgK Offline
      khgK Offline
      khg
      schrieb am zuletzt editiert von
      #11

      @arteck:

      nein Bbeibt es nicht.. achte auf den Adapter und das Objekt tr-064.0.callmonitor.inbound.callerName..ich lasse mir diesen in der Visu darstellen seit Monaten… uns und es geht.. `

      danke für deine Antwort. Darauf hin musste ich es doch nochmal versuchen und es funktioniert nun. Das Beispiel in der Scriptsammlung (Script von Chaot) macht den Fehler:

      setStateDelayed("alexa2.0.Echo-Devices.90F008xxxxxxx.Commands.speak"/speak/, (String('Es ist ein Anruf von ') + String(getState("tr-064.0.callmonitor.inbound.callerName").val)), 4000****, false****);

      false entfernen und dann wird der aktuelle Name auch angesagt.

      1 Antwort Letzte Antwort
      0
      • MicM Offline
        MicM Offline
        Mic
        Developer
        schrieb am zuletzt editiert von
        #12

        Mit diesem Skript kann per Button durch eine TuneIn-Senderliste geschaltet werden, es wird immer der nächste Sender gewählt (z.B. Button "nächster Radiosender"). Falls der letzte Sender gewählt ist, wird wieder von vorne angefangen.

        Dazu die TuneIn-Stations in die Variable myStations eintragen.

        Ihr könnt dies dann einfach über einen Datenpunkt und "on({id: " umsetzen.

        var myStations = ['s17494', 's100198', 's259245', 's2212']
        log(getNextOrPreviousValue(myStations, 's2212', true));
        
        /**
         * Returns the next or previous element of an array for a given element.
         * Use case is to easily switch through an array of elements...
         * If it is the last element of the array, it will return the first one, if bNext is true.
         * If it is the first element of the array, it will return the last one, if bNext is false.
         * If not found, it will ALWAYS return the first element.
         *
         * @param {array}   inputArray  Array
         * @param {string}  strElement  for this String we want to get the next/previous array element
         * @return {string} The next or previous element from the array
         * @param {boolean} bNext       next element if true, previous element if false
         */
        function getNextOrPreviousValue(inputArray, strElement, bNext) {
            var iLength = inputArray.length; // Number of elements in the Array
            var iPosition = inputArray.indexOf(strElement) + 1; // Current position. We add 1 since first element is in position 0
            var iPositionNext = iPosition + 1;
            var iPositionPrevious = iPosition - 1;
        
            if (bNext) {
                // if not found, it will return the first element...
                if (iPositionNext > iLength) iPositionNext = 1;
                return inputArray[iPositionNext - 1];
            } else {
                if (iPosition === 0) { // will be zero if not found
                    return inputArray[0]; // return the first element, if not found
                } else {
                    if (iPositionPrevious < 1) iPositionPrevious = iLength;
                    return inputArray[iPositionPrevious - 1];
                }
            }
        }
        
        1 Antwort Letzte Antwort
        0
        • liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #13

          mit node-red und dem alexa adapter einen ical-eintrag (bei mir google kalender) ausgeben lassen - durch den ical adapter mußte man auch noch filtern können

          fühle mich besser mit node-red bei der verarbeitung der ical daten - für js profis geht das sicher auch anders!

          in diesem beispiel wir noch durch hand angetriggert - es wird der nächste termin direkt an alexa übergeben: alexa sagt:"morgen 14:00 test"

          falls interesse besteht mehr info - hier ein export der node-red nodes (müssen natürlich etwa geändert werden)

          ! [
          ! {
          ! "id": "e34c90e5.32d4a",
          ! "type": "change",
          ! "z": "f804a58f.395c58",
          ! "name": "change1",
          ! "rules": [
          ! {
          ! "t": "change",
          ! "p": "payload",
          ! "pt": "msg",
          ! "from": "-\d\d:\d\d",
          ! "fromt": "re",
          ! "to": " ",
          ! "tot": "str"
          ! }
          ! ],
          ! "action": "",
          ! "property": "",
          ! "from": "",
          ! "to": "",
          ! "reg": false,
          ! "x": 819.563606262207,
          ! "y": 759.4909553527832,
          ! "wires": [
          ! [
          ! "52b4b804.352c08",
          ! "5e6e991a.fdebb8"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "36a3fb0b.2a6354",
          ! "type": "change",
          ! "z": "f804a58f.395c58",
          ! "name": "change1",
          ! "rules": [
          ! {
          ! "t": "set",
          ! "p": "payload",
          ! "pt": "msg",
          ! "to": "payload.val.0.date",
          ! "tot": "msg"
          ! }
          ! ],
          ! "action": "",
          ! "property": "",
          ! "from": "",
          ! "to": "",
          ! "reg": false,
          ! "x": 480.99998474121094,
          ! "y": 739.9999761581421,
          ! "wires": [
          ! [
          ! "c42b9be5.0fe208"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "c3e68758.4e9ca8",
          ! "type": "ioBroker get",
          ! "z": "f804a58f.395c58",
          ! "name": "JS iCal table",
          ! "topic": "ical.0.data.table",
          ! "attrname": "payload",
          ! "payloadType": "object",
          ! "x": 296.43634033203125,
          ! "y": 762.1272487640381,
          ! "wires": [
          ! [
          ! "36a3fb0b.2a6354",
          ! "75b8861c.9cdc38"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "52b4b804.352c08",
          ! "type": "debug",
          ! "z": "f804a58f.395c58",
          ! "name": "",
          ! "active": true,
          ! "tosidebar": true,
          ! "console": false,
          ! "tostatus": false,
          ! "complete": "payload",
          ! "x": 996.9999618530273,
          ! "y": 706.9999771118164,
          ! "wires": []
          ! },
          ! {
          ! "id": "8f9958a4.04b018",
          ! "type": "inject",
          ! "z": "f804a58f.395c58",
          ! "name": "",
          ! "topic": "",
          ! "payload": "true",
          ! "payloadType": "bool",
          ! "repeat": "",
          ! "crontab": "",
          ! "once": false,
          ! "onceDelay": 0.1,
          ! "x": 111.43635559082031,
          ! "y": 761.4545288085938,
          ! "wires": [
          ! [
          ! "c3e68758.4e9ca8"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "75b8861c.9cdc38",
          ! "type": "change",
          ! "z": "f804a58f.395c58",
          ! "name": "change1",
          ! "rules": [
          ! {
          ! "t": "set",
          ! "p": "payload",
          ! "pt": "msg",
          ! "to": "payload.val.0.event",
          ! "tot": "msg"
          ! }
          ! ],
          ! "action": "",
          ! "property": "",
          ! "from": "",
          ! "to": "",
          ! "reg": false,
          ! "x": 481.99998474121094,
          ! "y": 781.9999752044678,
          ! "wires": [
          ! [
          ! "c42b9be5.0fe208"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "c42b9be5.0fe208",
          ! "type": "join",
          ! "z": "f804a58f.395c58",
          ! "name": "",
          ! "mode": "custom",
          ! "build": "string",
          ! "property": "payload",
          ! "propertyType": "msg",
          ! "key": "topic",
          ! "joiner": " ",
          ! "joinerType": "str",
          ! "accumulate": false,
          ! "timeout": "",
          ! "count": "2",
          ! "reduceRight": false,
          ! "reduceExp": "",
          ! "reduceInit": "",
          ! "reduceInitType": "",
          ! "reduceFixup": "",
          ! "x": 652.4363403320312,
          ! "y": 759.1272487640381,
          ! "wires": [
          ! [
          ! "e34c90e5.32d4a"
          ! ]
          ! ]
          ! },
          ! {
          ! "id": "5e6e991a.fdebb8",
          ! "type": "ioBroker out",
          ! "z": "f804a58f.395c58",
          ! "name": "Speak Alexa Echozimmer",
          ! "topic": "alexa2.0.Echo-Devices.G090LF1072270E5V.Commands.speak",
          ! "ack": "false",
          ! "autoCreate": "false",
          ! "x": 1171.9999694824219,
          ! "y": 758.9999771118164,
          ! "wires": []
          ! }
          ! ]
          4447_sprich.png

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • OstfrieseUnterwegsO Offline
            OstfrieseUnterwegsO Offline
            OstfrieseUnterwegs
            schrieb am zuletzt editiert von
            #14

            Anruferansage mit FritzBox tr-064. Klappt bei mir einwandfrei.

            Ich habe noch eingebaut, dass bei Anrufen ohne EIntrag im Telefonbuch die Nummer angesagt wird.

            Außerdem wird nur angesagt, falls jemand daheim ist.

            Ich habe aber noch ein Problem:

            Wie kann ich die Laustärke genau dann wieder anpassen, wenn die Ansage vorbei ist. Meine 5sek sind bei Namen OK, bei Nummern natürlich nicht.

            on({id: 'tr-064.0.callmonitor.ringing', val: true, ack: true}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
            
              var idEcho = "alexa2.0.Echo-Devices.GxxxxxxxxxxxxxQ";
            
              var volume = getState(idEcho+".Player.volume"/*volume*/).val;
            
              var Anrufer = String(getState("tr-064.0.callmonitor.inbound.callerName").val);
              var Nummer = String(getState("tr-064.0.callmonitor.inbound.caller").val);
            
              // Wenn keiner da ist, dann brauchen wir auch keine Ansage
              if (getState("javascript.0.Anwesenheitssteuerung.Userlist.JemandDa").val == false ){
            		return;
              }
            
              if (Anrufer.length === 0){  // Gibt es einen Namen im Adressbuch oder nur eine Nummer
                  log("kein name");
            	  Anrufer = NummerInText(Nummer);
              }
              setStateDelayed(idEcho+".Player.volume"/*volume*/,70, 1700, false);
              setStateDelayed(idEcho+".Commands.speak"/*speak*/, (String('Anruf von ') + Anrufer), 2000, false);
              setStateDelayed(idEcho+".Player.volume"/*volume*/,volume, 5000, false);
            
            });
            
            function NummerInText(Nummer){
            
                var text = "unbekannt ";
                var einzeln = Array("null","eins","zwei","drei","vier","fuenf","sechs","sieben","acht","neun");
            	for (var i = 0; i <nummer.length; i++){/text/+="einzeln[parseInt(Nummer.substr(i,1))]" "/";/}/return/text;/<e=""></nummer.length;>
            
            M 1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              smarti2015
              schrieb am zuletzt editiert von
              #15

              @Mic:

              TuneIn-Station setzen: Wenn man nur den State "…Player.TuneIn-Direct" setzt, dann startet TuneIn nicht (immer), falls vorher auf Pause gesetzt wurde (controlPause) oder dieselbe TuneIn-ID bereits im State stand. Konnte ich noch nicht genau nachvollziehen.

              Workaround, damit es immer geht: folgende States setzen:

              strStationID = 'hier die StationID eintragen';
              setState('alexa2.0.Echo-Devices.XXX.Player.controlPause', false);
              setState('alexa2.0.Echo-Devices.XXX.Player.TuneIn-Direct', strStationID);
              setState('alexa2.0.Echo-Devices.XXX.Player.controlPlay', true);
              ```` `  
              

              Wo findet man eigentlich die StationID raus?

              GEEKOM AS 6

              1 Antwort Letzte Antwort
              0
              • MicM Offline
                MicM Offline
                Mic
                Developer
                schrieb am zuletzt editiert von
                #16

                @smarti2015:

                Wo findet man eigentlich die StationID raus? `

                tunein.com im Browser aufrufen, nach gewünschtem Radiosender suchen und auswählen. Dann aus der URL herauskopieren, im Beispiel "s73208".
                6940_tunein-station.png

                1 Antwort Letzte Antwort
                0
                • ChaotC Offline
                  ChaotC Offline
                  Chaot
                  schrieb am zuletzt editiert von
                  #17

                  @OstfrieseUnterwegs:

                  Ich habe aber noch ein Problem:

                  Wie kann ich die Laustärke genau dann wieder anpassen, wenn die Ansage vorbei ist. Meine 5sek sind bei Namen OK, bei Nummern natürlich nicht. `

                  So wie ich das sehe nimmst du den Wert Volume den du dann später mit dem Wert 70 überschreibst und versuchst dann den Wert wieder einzuspielen.

                  Ich denke mal wenn der Ursprungswert in eine Variable geschrieben wird (LastVolume) und dann zurückgeschrieben sollte es klappen.

                  Bei mir wird allerdings immer die 0 Angezeigt. Ich muss erst noch suchen woran das liegen kann.

                  Im Zweifelsfall muss ich eben versuchen zuerst den Wert aktiv abzufragen und in die neue Varialble einzutragen.

                  ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                  1 Antwort Letzte Antwort
                  0
                  • apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #18

                    Die lautstärke ist so ein Thema. Die wird nicht immer übermittelt. Es muss einmal was an Musik gelaufen sein damit die initial mitkommt.

                    Gesendet vom Handy …

                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                    1 Antwort Letzte Antwort
                    0
                    • ChaotC Offline
                      ChaotC Offline
                      Chaot
                      schrieb am zuletzt editiert von
                      #19

                      Danke für die Info.

                      Ich war schon am Verzweifeln weil ich immer nur die 0 drin hatte.

                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

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

                        Also dann hier weiter. Im Alexa2 Adapter Beitrag kam der Hinweis Scripte und Anwendungsmöglichkeiten hier zu posten. Ich antworte hier jetzt nur auf eine Frage aus dem anderen Beitrag.

                        viewtopic.php?p=167951#p167951

                        Beim ersten Scriptstart werden erst Objekte angelegt. Am Besten danach mal kurz den JS Adapter mal aktualisieren/anhalten -neu starten, das klappt bei mir immer am Besten.

                        Licht prüfen Script

                        ! ````
                        //Lichter Status
                        var logging = true;
                        ! var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein',
                        idAnzahl = 'javascript.0.Status.Lichter.Anzahl',
                        idText = 'javascript.0.Status.Lichter.Text',
                        idRaum = 'javascript.0.Status.Lichter.Raum',
                        idAnsage = 'javascript.0.Status.Lichter.Ansage';
                        ! // Ab hier nix mehr ändern
                        createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
                        type: 'number',
                        name: 'Anzahl aller Lichter',
                        min: 0,
                        def: 0,
                        role: 'value'
                        });
                        createState(idAnzahlEin, { // Anzahl der Lichter, die an sind als Variable unter Javascript.0 anlegen
                        type: 'number',
                        name: 'Anzahl der eingeschalteten Lichter',
                        min: 0,
                        def: 0,
                        role: 'value'
                        });
                        createState(idText, { // Anzahl der eingeschalteten Lichter und deren Namen als Variable unter Javascript.0 anlegen
                        type: 'string',
                        name: 'Eingeschaltete Lichter',
                        desc: 'Namen der eingeschalteten Lichter',
                        def: ' ',
                        role: 'value'
                        });
                        createState(idAnsage, {
                        type: 'string',
                        name: 'Eingeschaltete Lichter (Ansage)',
                        desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)',
                        def: ' ',
                        role: 'value'
                        });
                        createState(idRaum, { // Räume, in denen Lichter brennen
                        type: 'string',
                        name: 'Räume mit eingeschalteten Lichter',
                        desc: 'Namen der Räume, in denen Lichter eingeschaltet sind',
                        def: ' ',
                        role: 'value'
                        });
                        ! var cacheSelectorState = $('channelstate.id=*.state'); // Gewerk Licht
                        var cacheSelectorLevel = $('channelstate.id=*.level');
                        ! function checkDevices(obj) {
                        // Setzt die Zähler vor dem Durchlauf aller Elemente *.state im Gewerk Licht auf 0
                        var anzahlLichterAn = 0;
                        var anzahlLichter = 0;
                        var textLichterAn = [];
                        var textRaum = [];
                        if (logging) {
                        log('++++++ Lichter Anzahl ++++ ');
                        log('#### SCHALTER ##### ');
                        }
                        cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.state im Gewerk Licht
                        var obj = getObject(id);
                        var name = getObject(id).common.name;
                        var status = getState(id).val; // Zustand *.state abfragen (jedes Element)
                        var devicename = name.substring(0, name.indexOf(".state")); //.state aus Text entfernen
                        var raumname = getObject(id, "rooms");
                        ! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
                        //if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) {
                        if (logging) {
                        log('-------');
                        log('Kanal: ' + name);
                        log('Status: ' + status);
                        }
                        if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
                        ++anzahlLichterAn;
                        textLichterAn.push(devicename); // Zu Array hinzufügen
                        textRaum.push(raumname.enumNames);
                        }
                        ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                        // } // ENDE VK-Abfrage
                        });
                        ! if (logging) log('#### DIMMER ##### ');
                        cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.level im Gewerk Licht
                        var obj = getObject(id);
                        var name = getObject(id).common.name;
                        var status = getState(id).val; // Zustand *.level abfragen (jedes Element)
                        var devicename = name.substring(0, name.indexOf(".level")); //.level aus Text entfernen
                        var raumname = getObject(id, "rooms");
                        ! //########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
                        if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
                        ! if (logging) {
                        log('-------');
                        log('Kanal: ' + name);
                        log('Status: ' + status + '%');
                        }
                        if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
                        ++anzahlLichterAn;
                        textLichterAn.push(devicename); // Zu Array hinzufügen
                        textRaum.push(raumname.enumNames);
                        }
                        ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                        } // Ende Abfrage VK
                        });
                        ! // Array mit Lichternamen sortieren
                        textLichterAn.sort();
                        textRaum.sort();
                        // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
                        if (logging) log("Text: " + textLichterAn);
                        if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
                        // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                        setState(idText, textLichterAn.join(', und ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
                        setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
                        setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
                        //setState(idRaum, textRaum.join(',
                        ')); // Räume, in denen Licht brennt
                        setState(idRaum, textRaum.join(', und ')); // Räume, in denen Licht brennt
                        }
                        ! // Trigger
                        cacheSelectorState.on(function(obj) { // bei Zustandänderung *.state im Gewerk Licht
                        if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                        checkDevices();
                        });
                        cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.level im Gewerk Licht
                        if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                        checkDevices();
                        });
                        ! function main() {
                        setTimeout(function(){
                        if (logging) log('Auslöser Skriptstart');
                        checkDevices();
                        }, 2000);
                        }
                        ! main(); // Skriptstart-Auslöser
                        ! // Aufbereitung für Ansage
                        //function strip_tags(data) {
                        //var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                        //return(rueckgabe);
                        //}
                        ! on(idText, function (obj) {
                        var text = obj.state.val;
                        text = (text.length > 1) ? '' + text : 'alle Lampen ausgeschaltet';
                        setState(idAnsage, text);
                        });

                        
                        PS: das Licht-Script wird im Cloud Adapter als "Smart Gerät" hinzu gefügt.
                        
                        Blockly Export Ausgabe Ansage über speak:
                        
                        >! ````
                         <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-187" y="-162"><mutation delay_input="false"></mutation>
                            <field name="OID">alexa2.0.History.#trigger</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{`Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> 
                            <next><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field>
                                    <value name="A"><block type="get_value" id="]irLwLWGul].x{m`.#.@"><field name="ATTR">val</field>
                                        <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> 
                                    <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value> 
                                <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field>
                                    <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation>
                                        <value name="ADD0"><block type="text" id="75Z)Wn`YF@;38~bIM;pA"><field name="TEXT">aktuell sind</field></block></value> 
                                        <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field>
                                            <field name="OID">javascript.0.Status.Lichter.Ansage</field></block></value></block></value> 
                                    <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field>
                                        <field name="DELAY">500</field>
                                        <field name="UNIT">ms</field>
                                        <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3`+QWU"><field name="COMMENT">Wohnzimmer</field>
                                            <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B`*"><field name="OP">EQ</field>
                                                    <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field>
                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                    <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> 
                                                <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-`nV"><mutation delay_input="false"></mutation>
                                                    <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field>
                                                    <field name="WITH_DELAY">FALSE</field>
                                                    <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field>
                                                    <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field>
                                                            <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field>
                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                            <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> 
                                                        <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation>
                                                            <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs*2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                        <next><block type="comment" id="_amxz6B=9F}_2uEGsK}`"><field name="COMMENT">Badezimmer</field>
                                                            <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field>
                                                                    <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field>
                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                    <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> 
                                                                <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation>
                                                                    <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field>
                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                    <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field>
                                                                    <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2Xr`HBIz5h"><field name="OP">EQ</field>
                                                                            <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field>
                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                            <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> 
                                                                        <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation>
                                                                            <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE"><block type="variables_get" id="5q6/z~S`0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                        <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field>
                                                                            <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field>
                                                                                    <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field>
                                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                    <value name="B"><block type="text" id="7N;yy7cC=tE`}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> 
                                                                                <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation>
                                                                                    <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field>
                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                    <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field>
                                                                                    <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="z`vyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field>
                                                                                            <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field>
                                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                            <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> 
                                                                                        <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation>
                                                                                            <field name="OID">alexa2.0.Echo-Devices.XXXXXXX.Commands.speak</field>
                                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                                            <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                        <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field>
                                                                                            <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field>
                                                                                                    <value name="A"><block type="get_value" id="xF~b7`{fV||4n}zB-}.u"><field name="ATTR">val</field>
                                                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                    <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> 
                                                                                                <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation>
                                                                                                    <field name="OID">alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak</field>
                                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                                    <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                <next><block type="comment" id="E#D1a/,rcH`dm3?Nx^:q"><field name="COMMENT">Werkstatt</field>
                                                                                                    <next><block type="controls_if" id="=s~d:-WIg1#TE`^zf9[4"><value name="IF0"><block type="logic_compare" id="*:X%VM^+2MoYl-:u!WK`"><field name="OP">EQ</field>
                                                                                                            <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field>
                                                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                            <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> 
                                                                                                        <statement name="DO0"><block type="control" id="ql@`4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
                                                                                                            <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXX.Commands.speak</field>
                                                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                                                            <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement> 
                                <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field>
                                        <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field>
                                            <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> 
                                        <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value> 
                                    <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field>
                                        <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation>
                                            <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">Im Moment sind im</field></block></value> 
                                            <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M`_S5@d?;q"><field name="ATTR">val</field>
                                                <field name="OID">javascript.0.Status.Lichter.Raum</field></block></value> 
                                            <value name="ADD2"><block type="text" id="NqEob9;8UT11wT`dCQi#"><field name="TEXT">eingeschaltete Lampen</field></block></value></block></value> 
                                        <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field>
                                            <field name="DELAY">500</field>
                                            <field name="UNIT">ms</field>
                                            <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T.*"><field name="COMMENT">Wohnzimmer</field>
                                                <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field>
                                                        <value name="A"><block type="get_value" id="Oe@)VM+1Y`_1YJn?6xyl"><field name="ATTR">val</field>
                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                        <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> 
                                                    <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation>
                                                        <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                    <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field>
                                                        <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU`)sv"><field name="OP">EQ</field>
                                                                <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field>
                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value> 
                                                            <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation>
                                                                <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field>
                                                                <field name="WITH_DELAY">FALSE</field>
                                                                <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                            <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field>
                                                                <next><block type="controls_if" id="JS`zfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field>
                                                                        <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field>
                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                        <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> 
                                                                    <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation>
                                                                        <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field>
                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                        <value name="VALUE"><block type="variables_get" id="*lX{ZM`VBTc}A`1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                    <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field>
                                                                        <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field>
                                                                                <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field>
                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> 
                                                                            <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation>
                                                                                <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field>
                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                            <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field>
                                                                                <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field>
                                                                                        <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field>
                                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                        <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> 
                                                                                    <statement name="DO0"><block type="control" id=";7jyou9f+V(`5**;CDV?"><mutation delay_input="false"></mutation>
                                                                                        <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field>
                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                        <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                    <next><block type="comment" id="`?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field>
                                                                                        <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field>
                                                                                                <value name="A"><block type="get_value" id="Zr`S-l8E!}8.4{,qM9*i"><field name="ATTR">val</field>
                                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value> 
                                                                                            <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation>
                                                                                                <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field>
                                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                                <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                            <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field>
                                                                                                <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field>
                                                                                                        <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field>
                                                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                        <value name="B"><block type="text" id="ZB}mEWERKZ/fb~*Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value> 
                                                                                                    <statement name="DO0"><block type="control" id="kPLG+9decg*iGUm87`-2"><mutation delay_input="false"></mutation>
                                                                                                        <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field>
                                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                                        <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                    <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field>
                                                                                                        <next><block type="controls_if" id="`;ot|i:*)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field>
                                                                                                                <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field>
                                                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                                <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value> 
                                                                                                            <statement name="DO0"><block type="control" id="5Gh*aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation>
                                                                                                                <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field>
                                                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                                                <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml> 
                        

                        Hier die Screenshots.

                        ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... a3e8af.jpg">https://uploads.tapatalk-cdn.com/20180808/8fe613e45921b7d1948e632673a3e8af.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 6e9f0c.jpg">https://uploads.tapatalk-cdn.com/20180808/e817673faf4bc0a3eb3b3cab126e9f0c.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 001f6c.jpg">https://uploads.tapatalk-cdn.com/20180808/d401fdf4111d917fc06571cc69001f6c.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... a6d340.jpg">https://uploads.tapatalk-cdn.com/20180808/175a9cd21f2229a0e498048370a6d340.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... e9d61c.jpg">https://uploads.tapatalk-cdn.com/20180808/fb3c4035264d02d3ea415ada64e9d61c.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... f7ee1c.jpg">https://uploads.tapatalk-cdn.com/20180808/e4bcdbf976bf7b62c3c48b634df7ee1c.jpg</link_text>" />

                        ![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 100647.jpg">https://uploads.tapatalk-cdn.com/20180808/d578a8d41d7256bd5df1611d3a100647.jpg</link_text>" />~~~~~~~~~~~~

                        1 Antwort Letzte Antwort
                        0
                        • O Offline
                          O Offline
                          ooooli
                          schrieb am zuletzt editiert von
                          #21

                          @dslraser:

                          Also dann hier weiter. Im Alexa2 Adapter Beitrag kam der Hinweis Scripte und Anwendungsmöglichkeiten hier zu posten. Ich antworte hier jetzt nur auf eine Frage aus dem anderen Beitrag.

                          viewtopic.php?p=167951#p167951

                          Beim ersten Scriptstart werden erst Objekte angelegt. Am Besten danach mal kurz den JS Adapter mal aktualisieren/anhalten -neu starten, das klappt bei mir immer am Besten. `

                          Das Lichtabfragescript geht leider immer noch nicht. Die Objekte sind da, nur zählt er keine Lampen (alle Zimmer eingerichtet und Hue Objekte sind Licht) Komisch…

                          Dazu sind die Scripte zwar in den Objekten zu sehen (bei Expertenansicht) - im Cloud Adapter leider nicht. Hmmm... Neustart und JS Adapter Neuinstallation hab ich schon gemacht.

                          --> Was hast du für eine JS-Adapter Version? Bei mir läuft 3.7.0. Ich vermute fast da ist was im Argen.

                          ioBroker Neuling mit 4 Alexas, Sonoff, Netatmo, Lametric Time, Hue, Harmony Hub und einigen anderen Spielereien die es zu verknüpfen gilt

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

                            ` > Das Lichtabfragescript geht leider immer noch nicht. Die Objekte sind da, nur zählt er keine Lampen (alle Zimmer eingerichtet und Hue Objekte sind Licht) Komisch…

                            Dazu sind die Scripte zwar in den Objekten zu sehen (bei Expertenansicht) - im Cloud Adapter leider nicht. Hmmm... Neustart und JS Adapter Neuinstallation hab ich schon gemacht.

                            --> Was hast du für eine JS-Adapter Version? Bei mir läuft 3.7.0. Ich vermute fast da ist was im Argen. `

                            In den Cloud Adapter mußt Du das Script selbst hinzu fügen, das geschieht nicht automatisch.

                            Das macht aber keinen Sinn, wenn die Objekte nicht gefüllt werden bzw. sind. Hast Du das Script gestartet und auch mal eine Lampe angemacht ?

                            Ich habe noch das Polling im Hue Adapter runter gedreht, das war auf 30 Sekunden, ich bin auf 5 Sekunden und es funktioniert noch alles.

                            Du kannst auch das logging auf true stellen, dann siehst Du ob überhaupt etwas passiert. Sieht aber so aus als würde im Gewerk Licht nichts gefunden.

                            Heißt es auch wirklich Licht ? (Groß-Kleinschreibung / bei manchen ist es englisch ?)

                            Ich habe auch schon versucht eine Steckdose zu "Licht" zu machen und nicht nach .level sondern nach .state im Gewerk Licht, aber das habe ich auch noch nicht hinbekommen..(ich habe noch Steckdosen wo Lampen drann hängen, die hätte ich am liebsten gleich da mit drinn)

                            Woher hast Du 3.7.0 ? Ich bin auf latest, oder hast Du den über Git manuell installiert ?

                            3822_js.jpg
                            3822_logging-in_zeile_zwei.jpg
                            3822_log.jpg

                            1 Antwort Letzte Antwort
                            0
                            • B Offline
                              B Offline
                              Blackeye
                              schrieb am zuletzt editiert von
                              #23

                              Hi,

                              Türklingel Sonoff? das hört das hört sich interessant an…....

                              @Chaot:

                              Anruferansage über TR064 Adapter

                              on({id: 'tr-064.0.callmonitor.ringing', val: true, ack: true}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                setStateDelayed("alexa2.0.Echo-Devices.G2A0P3077****LLE.Commands.speak"/*speak*/, (String('Anruf von ') + String(getState("tr-064.0.callmonitor.inbound.callerName").val)), 2000, false);
                              });
                              ```` `  
                              

                              Gruß

                              Lars

                              1 Antwort Letzte Antwort
                              0
                              • ChaotC Offline
                                ChaotC Offline
                                Chaot
                                schrieb am zuletzt editiert von
                                #24

                                @Blackeye

                                Türklingel über Sonoff?

                                War eigentlich ganz einfach.

                                • Einen schönen Taster ausgesucht:

                                https://www.amazon.de/gp/product/B00YS9 … UTF8&psc=1

                                • Am Eingangsbereich einen Sonoff Basic installiert.

                                • Am Sonoff DHT22 und Taster angeschlossen

                                • Zusätzlich die Ausßenbeleuchtung aufgeklemmt und dazu ebenfalls Taster am Sonoff angeschlossen

                                • Im ioBroker den Taster des Sonoff (GPIO 14) auslesen und per TR064 Adapter am Hasutelefon klingeln lassen.

                                • Dazu noch an Alexa2 Adapter senden um die Klingel noch Ansagen zu lassen.

                                Was ich noch vergessen habe, aber in den nächsten Tagen ändern werde ist die Steuerung der Außenbeleuchtung.

                                Ich werde zusätzlich zur bisherigen Steuerung (bei Dämmerung an bis 23 Uhr und ab 5 Uhr bis Sonnenaufgang) noch eine Funktion einbauen die die Außenbeleuchtung für 5 Minuten Einschaltet (nur Nachts) wenn die Klingel betätigt wird.

                                Ist zwar bisschen Bastelarbeit, aber ich bin der Meinung das sich das echt gelohnt hat. Mein Vorteil ist das ich neben der Eingangstür eine Unterverteilung habe in der ich den ganzen Kram verstauen konnte.

                                Der Basic ist jetzt allerdings auch komplett ausgereizt.

                                GPIO 14 - Klingeltaster

                                GPIO 1 - DHT 22

                                GPIO 3 - Taster für Außenleuchte

                                Das Gehäuse des Sonoff musste dran glauben und ich habe das Ganze in eine Schalterdose verbaut.

                                ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                1 Antwort Letzte Antwort
                                0
                                • lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  schrieb am zuletzt editiert von
                                  #25

                                  Bei mir will die Frage nach geöffneten Fenstern nicht funktionieren.

                                  Starte ich das Script oder drücke in der Alexa App unter Routinen den blauen Pfeil funktioniert es.

                                  Frage ich jedoch "Alexa, sind alle Fenster geschlossen". Kommt nur "ok". Ich habe verschiedene Fragen probiert, eine Zeit lang kam auch: Alexa Anzahl Fenster`unterstützt das nicht.

                                  Script habe ich als switch eingestellt.

                                  Edit: eben hatte ich das erste Mal Erfolg. Ich hatte vor den Smart-Namen geändert von "Alexa Ansage Fenster Anzahl" zu "AlexaAnsageFensterAnzahl". Danach ging es wieder nicht mehr. Vielleicht ist das Problem auch da, weil ich zwei Alexas in einem Raum habe. Mal antwortet eine, mal die andere.

                                  Edit2: Die eine ALexa antwortet korrekt, die andere nicht. Einmal Echo,der andere Echo Plus.

                                  Host: NUC8i3 mit Proxmox:

                                  • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                  • Slave: Pi4
                                  1 Antwort Letzte Antwort
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #26

                                    Ich muss das Script bei mir auch noch mal ändern. Ich habe einfach zu viele Fenster….Wenn einige im Erdgeschoss und noch einige im Keller geöffnet sind kommt nix mehr. Ich habe die Ausgabe mal in das Routinenfenster in der App kopiert (da wo man Alexa auch was sagen lassen kann)

                                    Da war dann klar zu sehen das es mehr als 250 Zeichen sind.

                                    Ich baue mir das Script um und werde Alexa dann nur die Räume mit geöffneten Fenstern ansagen lassen, dann reichen die 250 Zeichen wahrscheinlich.(ich müsste mal zählen wie viel Zeichen da maximal zusammen kommen wenn alle Räume ein geöffnetes Fenster hätten.

                                    Für die Abfrage von Licht habe ich das schon so.

                                    Im Bild schön zu sehen. Da fehlen dann noch die "Einleitungsworte" vom sayit Script und schon geht es nicht mehr. (und Fenster gibt es noch einige mehr bei mir)![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 6cd00f.jpg">https://uploads.tapatalk-cdn.com/20180810/896367f2bc68461bb9b1ca0f6a6cd00f.jpg</link_text>" />

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

                                      Alexa, sind noch irgendwo Fenster auf…

                                      Ich habe meine Ansage/Abfrage über das Gewerk Fenster verändert und lasse mir nun Raumnamen mit geöffneten Fenstern ansagen.

                                      Das Gewerk für dieses Script heißt Fenster

                                      Wenn bei Euch das Gewerk für Fensterkontakte anders heißt muss das im Script angepasst werden.

                                      (mit der Ansage einzelner Fenster wurde bei mir das 250 Zeichen Limit von Alexa speak gesprengt.)

                                      Bei mehreren Echos/Alexas wird die Anfrage an dem Gerät beantwortet wo sie gestellt wurde. Ich habe hier mehrere Echos in mehreren Räumen im Blockly, zu sehen an den gelben Kommentaren.

                                      Script 1 zum Gewerk Fenster:

                                      ! ````
                                      // Status Zahl Fenster
                                      ! var logging = true;
                                      ! var idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
                                      idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                                      idText = 'javascript.0.Status.Fenster.Text',
                                      idRaum = 'javascript.0.Status.Fenster.Raum',
                                      idAnsage = 'javascript.0.Status.Fenster.Ansage';
                                      ! // Ab hier nix mehr ändern
                                      createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster
                                      type: 'number',
                                      name: 'Anzahl aller Fenster',
                                      min: 0,
                                      def: 0,
                                      role: 'value'
                                      });
                                      createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
                                      type: 'number',
                                      name: 'Anzahl der geoeffneten Fenster',
                                      min: 0,
                                      def: 0,
                                      role: 'value'
                                      });
                                      createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen
                                      type: 'string',
                                      name: 'geoeffnete Fenster',
                                      desc: 'Namen der geoeffneten Fenster',
                                      def: ' ',
                                      role: 'value'
                                      });
                                      createState(idAnsage, {
                                      type: 'string',
                                      name: 'geoeffnete Fenster (Ansage)',
                                      desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
                                      def: ' ',
                                      role: 'value'
                                      });
                                      createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
                                      type: 'string',
                                      name: 'Räume mit geoeffneten Fenster',
                                      desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
                                      def: ' ',
                                      role: 'value'
                                      });
                                      ! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Fenster
                                      ! function checkDevices(obj) {
                                      // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0
                                      var anzahlFensterAuf = 0;
                                      var anzahlFenster = 0;
                                      var textFensterAuf = [];
                                      var textRaum = [];
                                      if (logging) {
                                      log('++++++ Fenster Anzahl ++++ ');
                                      log('#### SCHALTER ##### ');
                                      }
                                      cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster
                                      var obj = getObject(id);
                                      var name = getObject(id).common.name;
                                      var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
                                      var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
                                      var raumname = getObject(id, "rooms");
                                      ! if (logging) {
                                      log('-------');
                                      log('Kanal: ' + name);
                                      log('Status: ' + status);
                                      }
                                      if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                                      ++anzahlFensterAuf;
                                      textFensterAuf.push(devicename); // Zu Array hinzufügen
                                      textRaum.push(raumname.enumNames); //
                                      }
                                      ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
                                      });

                                      textRaum = deleteDuplicates(textRaum);

                                      // Array mit Fensternamen sortieren
                                      textFensterAuf.sort();
                                      textRaum.sort();
                                      // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
                                      if (logging) log("Text: " + textFensterAuf);
                                      if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
                                      // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                      setState(idText, textFensterAuf.join(', und ')); // Schreibt die aktuelle Namen der geoeffneten Fenster
                                      setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
                                      setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fenster
                                      // setState(idRaum, textRaum.join(',
                                      

                                      ')); // Räume, in denen Fenster geoeffnet sind
                                      setState(idRaum, textRaum.join(', und ')); // Räume, in denen Fenster geoeffnet sind
                                      }

                                      ! // Trigger
                                      cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Fenster
                                      if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                                      checkDevices();
                                      });
                                      ! function main() {
                                      setTimeout(function() {
                                      if (logging) log('Auslöser Skriptstart');
                                      checkDevices();
                                      }, 2000);
                                      }
                                      ! main(); // Skriptstart-Auslöser
                                      ! // Aufbereitung für Ansage
                                      function strip_tags(data) {
                                      var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                                      return (rueckgabe);
                                      }
                                      ! on(idText, function(obj) {
                                      var text = obj.state.val;
                                      text = (getState(idAnzahl).val > 0) ? '' + strip_tags(text) : 'Alle Fenster sind ausgeschaltet';
                                      setState(idAnsage, text);
                                      });

                                      
                                      Script 2 unter global (doppelte Raumnamen entfernen)
                                      
                                      >! ````
                                      // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
                                      function deleteDuplicates(arr) { 
                                          var temp = {}; 
                                          for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
                                          var r = []; 
                                          for (var k in temp) r.push(k); 
                                          return r;
                                      }
                                      

                                      Script 3 Fensterabfrage Blockly Export

                                      ! ````
                                      <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-513" y="-1063"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.History.#trigger</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="]irLwLWGul].x{m.#.@"><field name="ATTR">val</field>
                                      <field name="OID">javascript.0.Status.Fenster.Anzahl_auf</field></block></value>
                                      <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value>
                                      <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field>
                                      <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation>
                                      <value name="ADD0"><block type="text" id="75Z)WnYF@;38~bIM;pA"><field name="TEXT">aktuell sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Fenster.Ansage</field></block></value></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3+QWU"><field name="COMMENT">Wohnzimmer</field>
                                      <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-nV"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field>
                                      <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="}?dK++V.7JQcjG{3uhB"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs
                                      2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="amxz6B=9F}2uEGsK}"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2XrHBIz5h"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ
                                      "><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="5q6/z~S0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7N;yy7cC=tE}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field>
                                      <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="zvyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="xF~b7{fV||4n}zB-}.u"><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="F
                                      [xezXeyr~(A=q.YFJ"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="E#D1a/,rcHdm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE^zf9[4"><value name="IF0"><block type="logic_compare" id="
                                      :X%VM^+2MoYl-:u!WK"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement>
                                      <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field>
                                      <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field>
                                      <field name="OID">javascript.0.Status.Fenster.Anzahl_auf</field></block></value>
                                      <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value>
                                      <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field>
                                      <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation>
                                      <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">Im Moment sind im</field></block></value>
                                      <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M_S5@d?;q"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Fenster.Raum</field></block></value> <value name="ADD2"><block type="text" id="NqEob9;8UT11wTdCQi#"><field name="TEXT">geöffnete Fenster</field></block></value></block></value>
                                      <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field>
                                      <field name="DELAY">500</field>
                                      <field name="UNIT">ms</field>
                                      <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T."><field name="COMMENT">Wohnzimmer</field>
                                      <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="Oe@)VM+1Y_1YJn?6xyl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field> <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU)sv"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field>
                                      <next><block type="controls_if" id="JSzfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*lX{ZMVBTc}A1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id=";7jyou9f+V(5**;CDV?"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ZrS-l8E!}8.4{,qM9
                                      i"><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                      <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field>
                                      <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="ZB}mEWERKZ/fb~Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="kPLG+9decg
                                      iGUm87-2"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id=";ot|i:)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field>
                                      <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field>
                                      <field name="OID">alexa2.0.History.name</field></block></value>
                                      <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value>
                                      <statement name="DO0"><block type="control" id="5Gh
                                      aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml>

                                       ![3822_fenster_blockly.jpg](/assets/uploads/files/3822_fenster_blockly.jpg) 
                                      1 Antwort Letzte Antwort
                                      0
                                      • dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #28

                                        Und hier noch das Gleiche für das Gewerk Licht.

                                        Ich habe bei mir nur Hue Lampen drinn und Frage über .level ab…

                                        Ich habe Hue manuell zugeordnet.

                                        (sonst so ähnlich wie bei der Fenster Abfrage / Ansage)

                                        Script 1 Licht über Gewerk (Hue-Lampen über .level)

                                        ! ````
                                        //Licht Status
                                        var logging = true;
                                        ! var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein',
                                        idAnzahl = 'javascript.0.Status.Lichter.Anzahl',
                                        idText = 'javascript.0.Status.Lichter.Text',
                                        idRaum = 'javascript.0.Status.Lichter.Raum',
                                        idAnsage = 'javascript.0.Status.Lichter.Ansage';
                                        ! // Ab hier nix mehr ändern
                                        createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
                                        type: 'number',
                                        name: 'Anzahl aller Lichter',
                                        min: 0,
                                        def: 0,
                                        role: 'value'
                                        });
                                        createState(idAnzahlEin, { // Anzahl der Lichter, die an sind als Variable unter Javascript.0 anlegen
                                        type: 'number',
                                        name: 'Anzahl der eingeschalteten Lichter',
                                        min: 0,
                                        def: 0,
                                        role: 'value'
                                        });
                                        createState(idText, { // Anzahl der eingeschalteten Lichter und deren Namen als Variable unter Javascript.0 anlegen
                                        type: 'string',
                                        name: 'eingeschaltete Lichter',
                                        desc: 'Namen der eingeschalteten Lichter',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        createState(idAnsage, {
                                        type: 'string',
                                        name: 'eingeschaltete Lichter (Ansage)',
                                        desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        createState(idRaum, { // Räume, in denen Lichter eingeschaltet sind
                                        type: 'string',
                                        name: 'Räume mit eingeschalteten Lichter',
                                        desc: 'Namen der Räume, in denen Lichter eingeschaltet sind',
                                        def: ' ',
                                        role: 'value'
                                        });
                                        ! var cacheSelectorLevel = $('channelstate.id=*.level');//Gewerk Licht
                                        ! function checkDevices(obj) {
                                        // Setzt die Zähler vor dem Durchlauf aller Elemente *.level im Gewerk Licht auf 0
                                        var anzahlLichtAn = 0;
                                        var anzahlLicht = 0;
                                        var textLichtAn = [];
                                        var textRaum = [];
                                        ! cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.level im Gewerk Licht
                                        var obj = getObject(id);
                                        var name = getObject(id).common.name;
                                        var status = getState(id).val; // Zustand *.level abfragen (jedes Element)
                                        var devicename = name.substring(0, name.indexOf(".level")); //.level aus Text entfernen
                                        var raumname = getObject(id, "rooms");
                                        ! //if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
                                        if ( status){
                                        ++anzahlLichtAn;
                                        textLichtAn.push(devicename); // Zu Array hinzufügen
                                        textRaum.push(raumname.enumNames);
                                        }
                                        ++anzahlLicht; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                                        });
                                        ! textRaum = deleteDuplicates(textRaum);
                                        ! // Array mit Lichternamen sortieren
                                        textLichtAn.sort();
                                        textRaum.sort();
                                        // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
                                        if (logging) log("Text: " + textLichtAn);
                                        if (logging) log("Anzahl Lichter: " + anzahlLicht + " # davon Lichter an: " + anzahlLichtAn);
                                        // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                        setState(idText, textLichtAn.join(', und ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
                                        setState(idAnzahlEin, textLichtAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
                                        setState(idAnzahl, anzahlLicht); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
                                        setState(idRaum, textRaum.join(',
                                        ')); // Räume, in denen Lichter eingeschaltet ist
                                        setState(idRaum, textRaum.join(', und ')); // Räume, in denen Lichter eingeschaltet ist
                                        }
                                        ! // Trigger
                                        ! cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.level im Gewerk Lichter
                                        //if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                                        checkDevices();
                                        });
                                        ! function main() {
                                        setTimeout(function(){
                                        if (logging) log('Auslöser Skriptstart');
                                        checkDevices();
                                        }, 2000);
                                        }
                                        ! main(); // Skriptstart-Auslöser
                                        ! //Aufbereitung für Ansage
                                        function strip_tags(data) {
                                        var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                                        return(rueckgabe);
                                        }
                                        ! on(idText, function (obj) {
                                        var text = obj.state.val;
                                        text = (text.length > 1) ? '' + text : 'alle Lampen ausgeschaltet';
                                        setState(idAnsage, text);
                                        });

                                        
                                        Script 2 - in global gespeichert - entfernen Doppelter Raumnamen
                                        
                                        >! ````
                                        // Funktion: Doppelte Einträge aus Array entfernen (für Räume) www.okco.de (c) codemaster
                                        function deleteDuplicates(arr) { 
                                            var temp = {}; 
                                            for (var i = 0; i < arr.length; i++) temp[arr[i]] = true; 
                                            var r = []; 
                                            for (var k in temp) r.push(k); 
                                            return r;
                                        }
                                        

                                        Script 3 Ansage/Abfrage über speak Alexa2 Blockly Export

                                        ! ````
                                        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-512" y="-237"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.History.#trigger</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="]irLwLWGul].x{m.#.@"><field name="ATTR">val</field>
                                        <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value>
                                        <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value>
                                        <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field>
                                        <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation>
                                        <value name="ADD0"><block type="text" id="75Z)WnYF@;38~bIM;pA"><field name="TEXT">aktuell sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Ansage</field></block></value></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3+QWU"><field name="COMMENT">Wohnzimmer</field>
                                        <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-nV"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field>
                                        <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="}?dK++V.7JQcjG{3uhB"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs
                                        2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="amxz6B=9F}2uEGsK}"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2XrHBIz5h"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ
                                        "><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="5q6/z~S0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7N;yy7cC=tE}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field>
                                        <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="zvyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="xF~b7{fV||4n}zB-}.u"><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="F
                                        [xezXeyr~(A=q.YFJ"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="E#D1a/,rcHdm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE^zf9[4"><value name="IF0"><block type="logic_compare" id="
                                        :X%VM^+2MoYl-:u!WK"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement>
                                        <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field>
                                        <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field>
                                        <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value>
                                        <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value>
                                        <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field>
                                        <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation>
                                        <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">Im Moment sind im</field></block></value>
                                        <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M_S5@d?;q"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Raum</field></block></value> <value name="ADD2"><block type="text" id="NqEob9;8UT11wTdCQi#"><field name="TEXT">eingeschaltete Lampen</field></block></value></block></value>
                                        <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field>
                                        <field name="DELAY">500</field>
                                        <field name="UNIT">ms</field>
                                        <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T."><field name="COMMENT">Wohnzimmer</field>
                                        <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="Oe@)VM+1Y_1YJn?6xyl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field> <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU)sv"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field>
                                        <next><block type="controls_if" id="JSzfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*lX{ZMVBTc}A1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id=";7jyou9f+V(5**;CDV?"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field> <value name="A"><block type="get_value" id="ZrS-l8E!}8.4{,qM9
                                        i"><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement>
                                        <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field>
                                        <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="ZB}mEWERKZ/fb~Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="kPLG+9decg
                                        iGUm87-2"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id=";ot|i:)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field>
                                        <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field>
                                        <field name="OID">alexa2.0.History.name</field></block></value>
                                        <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value>
                                        <statement name="DO0"><block type="control" id="5Gh
                                        aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml>

                                        
                                         ![3822_licht_blockly.jpg](/assets/uploads/files/3822_licht_blockly.jpg) 
                                         ![3822_cloud_adapter.jpg](/assets/uploads/files/3822_cloud_adapter.jpg) 
                                         ![3822_licht-1.jpg](/assets/uploads/files/3822_licht-1.jpg) 
                                         ![3822_licht-2.jpg](/assets/uploads/files/3822_licht-2.jpg) 
                                         ![3822_licht-3.jpg](/assets/uploads/files/3822_licht-3.jpg) 
                                         ![3822_licht-4.jpg](/assets/uploads/files/3822_licht-4.jpg) 
                                         ![3822_licht-5.jpg](/assets/uploads/files/3822_licht-5.jpg) 
                                        1 Antwort Letzte Antwort
                                        0
                                        • MicM Offline
                                          MicM Offline
                                          Mic
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #29

                                          Kurze Info, falls es noch nicht hier war:

                                          Es klappt hervorragend, mit dem Alexa-Adapter Spotify zu steuern, auch Multiroom.

                                          Also angenommen das ist ein Multiroom: "alexa2.0.Echo-Devices.XXXXXXXXXX"

                                          Dann könnt Ihr, falls ihr in der Playliste z.B. "Paradise Radio" habt, diese Playliste wie folgt abspielen:

                                          setState('alexa2.0.Echo-Devices.XXXXXXXXXX.Music-Provider.Spotify', 'Playlist Paradise Radio')
                                          

                                          Getestet habe ich es bei mir nur mit "Playlists" in Spotify. Hierzu gilt es folgendes zu beachten, wenn ihr den State "Music-Provider.Spotify" setzt:

                                          1. "Playlist " vorne hinzufügen

                                          2. Minuszeichen etc. wegzulassen

                                          D.h. aus "Paradise Radio" macht ihr "Playlist Paradise Radio", usw. Sonst findet Alexa diese nicht. Eben genauso Sonderzeichen etc. weglassen…

                                          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

                                          741

                                          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