Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Skriptsammlung für den neuen ALEXA2.0 Adapter

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Skriptsammlung für den neuen ALEXA2.0 Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Chaot
      Chaot last edited by

      Türklingel über Sonoff und TR064

      on({id: 'sonoff.0.Eingang.Switch2', val: false, ack: true}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        setState("alexa2.0.Echo-Devices.G2A0P3077****LLE.Commands.speak"/*speak*/, 'Mach die scheisse Tür auf!');
      });
      
      

      Lässt sich auch zum Melden von irgendwelchen Zuständen verwenden.

      Beispielsweise über die Anwesenheitskontrolle eine Begrüßung auszulösen.

      1 Reply Last reply Reply Quote 0
      • J
        jf62 last edited by

        @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);
        });
        ```` `  
        

        Das funktioniert leider nur bedingt. Hatte es auch versucht, aber der "tr-064.0.callmonitor.inbound.callerName" liefert leider den Eintrag des letzten Anrufs und nicht des aktuellen. So klappt das leider nicht.

        1 Reply Last reply Reply Quote 0
        • khg
          khg last edited by

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

          Schade!

          1 Reply Last reply Reply Quote 0
          • Mic
            Mic Developer last edited by

            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);
            
            1 Reply Last reply Reply Quote 0
            • Chaot
              Chaot last edited by

              Ich habe das mit den letzten 5 Anrufen immer korrekt angesagt bekommen.

              Es steht auch immer der aktuelle Anrufer drin.

              Bist du wirklich auf "Inbound" und nicht irrtümlich auf "LastCall"?

              1 Reply Last reply Reply Quote 0
              • arteck
                arteck Developer Most Active last edited by

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

                1 Reply Last reply Reply Quote 0
                • khg
                  khg last edited by

                  @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 Reply Last reply Reply Quote 0
                  • Mic
                    Mic Developer last edited by

                    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 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • OstfrieseUnterwegs
                        OstfrieseUnterwegs last edited by

                        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 Reply Last reply Reply Quote 0
                        • S
                          smarti2015 last edited by

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

                          1 Reply Last reply Reply Quote 0
                          • Mic
                            Mic Developer last edited by

                            @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 Reply Last reply Reply Quote 0
                            • Chaot
                              Chaot last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 last edited by

                                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 …

                                1 Reply Last reply Reply Quote 0
                                • Chaot
                                  Chaot last edited by

                                  Danke für die Info.

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

                                  1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active last edited by

                                    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 Reply Last reply Reply Quote 0
                                    • O
                                      ooooli last edited by

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

                                      1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active last edited by

                                        ` > 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 Reply Last reply Reply Quote 0
                                        • B
                                          Blackeye last edited by

                                          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 Reply Last reply Reply Quote 0
                                          • Chaot
                                            Chaot last edited by

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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            941
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            45
                                            184
                                            39933
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo