Skriptsammlung für den neuen ALEXA2.0 Adapter

Fragen zum Skripten mit ioBroker.javascript
Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 01.11.2018, 15:38

Belei hat geschrieben:
31.10.2018, 21:26
dslraser hat geschrieben:
12.09.2018, 16:20
sissiwup hat geschrieben:
07.09.2018, 20:39


Hallo,

ich habe das auch. Die einzige Variante (die ich gefunden habe) das zu umgehen ist eine Variable dazwischen zu schalten.
D.h. Alexa setzt die Variable Trigger... auf an und das Skript lauscht auf Änderungen an der Variablen.

Ansonsten erzählt die andauern etwas und wenn du wirklich etwas damit steuerst wird es doof.
Ich meine jedes Skript starte beim Neustart des Adapters und beim Speichern neu.
Kannst Du das bitte mal bissl genauer beschreiben.
(mich stört es auch das manche Sripte beim Neustart bzw. beim aktualisieren loslaufen. (Ich denke da immer so drann wenn keiner zu Hause ist, oder Urlaub und es gibt einen Fehler bzw. Neustart und der Staubsauger oder der Rasenmäher würde los fahren...)
Ein Beispiel Deiner Lösung wäre gut, da ich für mich auch noch keine Lösung gefunden habe.


Edit: Hat sich erledigt, ich habe es für mich nun auch gelöst, wollte ich schon längst mal machen.
Ich habe jetzt eigene Datenpunkte als Logikwert angelegt und schalte bzw. triggere in den Scripten damit.
Kannst du das mal erklären bzw zeigen?
Falls Du mich bzw. das mit den Datenpunkten meinst ? hier mal einige Beispiele...

Datenpunkte erstelle ich nun immer mit JS neu, hat auch den Vorteil, falls mal was weg ist kann man die immer schnell mit JS erstellen.

Hier mal z.B. Lautstärke ohne Smartnamen für Alexa

Code: Alles auswählen

//Denon AVR 4520 Lautstärke regeln
createState('Eigene_Datenpunkte.Denon.Denon_Lautstärke', { 
    type:  'number', 
    name:  'Denon-Lautstärke', 
    min:    0, 
    max:    100, 
    def:    30, 
    read:   true, 
    write:  true, 
    role:  'level.volume',
    "smartName": {
      "de": "Verstärker",
      "smartType": "",
      "byON": "30"
}});


oder hier als Steckdose mit Smartnamen für Alexa als Switch

Code: Alles auswählen

//Steckdose Geschirrspueler
createState("Eigene_Datenpunkte.Geschirrspueler.Geschirrspueler", {
    name: 'Geschirrspueler', 
    role: 'switch',
    type: 'boolean', 
    read:  true, 
    write: true, 
    def:   false,
    "smartName": {
    "de": "Geschirrspüler",
    "smartType": "SMARTPLUG"
}});
oder hier einen Button für meinen Sat Receiver

Code: Alles auswählen

//VU Mute
//Datenpunkt Mute
createState("Eigene_Datenpunkte.Fernsehen.Mute", {
    name: 'Mute', 
    role: 'button',
    type: 'object', 
    read:  true, 
    write: true, 
    def:   false,
    "smartName": {
    "de": "Alexa Mute",
    "smartType": "SWITCH"
}});
oder hier einen Sender

Code: Alles auswählen

//TV Sender oder Menü VU
//Datenpunkt Fernsehen mit VU Wohnzimmer ARD - Kanal 2
createState("Eigene_Datenpunkte.Fernsehen.02ARD", {
    name: '02ARD', 
    role: 'button',
    type: 'object', 
    read:  true, 
    write: true, 
    def:   false,
    "smartName": {
    "de": "02 Kanal A.R.D.",
    "smartType": "SWITCH"
}});
Hier triggere ich dann Quasi den erstellten Datenpunkt
Bildschirmfoto 2018-11-01 um 15.35.36.png
Bildschirmfoto 2018-11-01 um 15.35.36.png (84.25 KiB) 628 mal betrachtet
Und diese Datenpunkte verwurste ich dann in den Blocklys. Wenn Du JS benutzt kannst Du die auch direkt ins Script packen.
Diese Datenpunkte schalte ich dann meistens über Routinen in der Alexa App, dann ist es auch egal wie die heissen.

Belei
professional
Beiträge: 122
Registriert: 13.10.2017, 11:29

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Belei » 06.11.2018, 20:55

Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt...

Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly?

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 06.11.2018, 21:05


Belei hat geschrieben: Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly?
Damit wird Alexa2 quasi aktualisiert und nachgeschaut welcher Echo den letzten Befehl bekommen hat.

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 07.11.2018, 19:04


Belei hat geschrieben:Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt...

Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly?
PS: Wenn Du den Haken im Alexa2 Adapter bei Push gesetzt hast brauchst Du Trigger/rescan nicht.

Negalein
starter
Beiträge: 66
Registriert: 27.10.2018, 17:49

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Negalein » 07.11.2018, 19:55

Chaot hat geschrieben:
10.08.2018, 18:36
- Am Sonoff DHT22 und Taster angeschlossen
Hallo

Wird der DHT22 zwingend benötigt? Das ist doch nur ein Temperatursensor und Luftfeuchtigkeitssensor. Oder täusch ich mich da?

Da ich keine Fritzbox habe, reicht es mir, wenn ein drücken an der Glocke bei Alexa angesagt wird!

Danke für deine Hilfe!

Chaot
professional
Beiträge: 483
Registriert: 07.02.2018, 21:46
Wohnort: Bayern

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Chaot » 07.11.2018, 20:58

Oh nein, der Temperatursensor wird dort nicht benötigt.
Das hat alleine den Grund das ich, wenn ich dort sowieso einen Sonoff einbaue auch gleich die Außentemperatur für meine VIS machen kann. Der DHT22 ist übrigens mittlerweile ein BME280 geworden :D
ioBroker auf NUC; VIS: 10" Tablet; Lichtsteuerung: Sonoff Tasmota (8); Thermometer und Sensoren: Sonoff Tasmota (9); Ambientebeleuchtung: WiFi Light (4); Heizung: DECT Thermostate (5) an Fritz 6490; 1 Echo V2; 1 Echo DOT; Unifi Ap-Ac Lite...

tadek
starter
Beiträge: 52
Registriert: 07.10.2017, 17:05

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von tadek » 08.11.2018, 12:19

kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.
Jetzt wird der auch grün und alle Geräte werden angezeigt.
Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

Hat jemand eine Idee, woran das liegen könnte?

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 08.11.2018, 20:09

tadek hat geschrieben:kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.
Jetzt wird der auch grün und alle Geräte werden angezeigt.
Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

Hat jemand eine Idee, woran das liegen könnte?
Haken bei Pushverbindung gesetzt ?

tadek
starter
Beiträge: 52
Registriert: 07.10.2017, 17:05

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von tadek » 08.11.2018, 20:36

ja, der war standardmäßig an.
Auch kommt kein Update, wenn ich den manuel über History --> #trigger anstoße

Rene.Home
starter
Beiträge: 21
Registriert: 20.01.2018, 08:24

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Rene.Home » 08.11.2018, 21:27

Hallo,

ich habe da mit dem triggern des Fensterskriptes ein Logik-Problem. Es werden die Fenster gezählt aber ich bekomme es gedanklich nicht auf die Reihe wie die Zählung angetriggert wird
Die Einrichtung habe ich wie folgt gemacht:

1. das Skript "Fensterstatus" mit dem folgenden Inhalt angelegt und laufen gelassen.
Spoiler: Show hidden text

Code: Alles auswählen

//  Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE

 

    var logging = false;

 

    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, { // Anzahl der vorhandenen Fenster

    type: 'number',

    name: 'Anzahl aller Fenster',

    min: 0,

    def: 0,

    role: 'value'

});

    createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind

    type: 'number',

    name: 'Anzahl der geoeffneten Fenster',

    min: 0,

    def: 0,

    role: 'value'

});

    createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen

    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 = $('channel[state.id=*.STATE](functions="Verschluss")'); // Gewerk Verschluss

    function checkDevices(obj) {

    // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss 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 Verschluss

    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(',\nund\n')); // 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 Verschluss

    // setState(idRaum, textRaum.join(',<br>')); // Räume, in denen Fenster geoeffnet sind

    setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind

}

 

//  Trigger

    cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Verschluss

    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(/(&nbsp;|<([^>]+)>)/ig, " ");

    return (rueckgabe);

}

 

on(idText, function(obj) {

    var text = obj.state.val;

    text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';

    setState(idAnsage, text);

});
das Ergebnis war dann die richtige Anzahl an Fenster

2. das Skript "deleteDuplicates" unter Global gepackt
3. das Blocky Skript mit dem Namen "Fensterabfrage" eingerichtet und entsprechend an den Echo angepasst. Die Ausgabe funktioniert.
4. in der Cloud das Skript "scriptEnabled.rules.Alexa_sagt.Fensterabfrage" als Smart Gerät eingefügt.

Jetzt kommt mein Verständnisproblem. Das Fensterabfrage-Blocky-Skript macht ja nur eine Ausgabe. Die Ermittlung der offenen und geschlossenen Fenster erfolgt ja in dem Skript unter Punkt 1. Müsste ich dieses dann nicht als Smart Gerät einbinden? Wenn ich das aber mache, wie wird dann das Blocky aufgerufen um die Ausgabe an den Speak vom Echo zu geben?

Kann mir das bitte einer erklären. Wo liegt mein Fehler in der Logik.Für mich ist das interessant da ich noch andere Themen umsetzen will und entsprechende Skripte entwickeln und implementieren möchte.

Vielen Dank schon mal im Vorfeld

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 08.11.2018, 21:56

Rene.Home hat geschrieben:
08.11.2018, 21:27
Hallo,

ich habe da mit dem triggern des Fensterskriptes ein Logik-Problem. Es werden die Fenster gezählt aber ich bekomme es gedanklich nicht auf die Reihe wie die Zählung angetriggert wird
Die Einrichtung habe ich wie folgt gemacht:

1. das Skript "Fensterstatus" mit dem folgenden Inhalt angelegt und laufen gelassen.
Spoiler: Show hidden text

Code: Alles auswählen

//  Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE

 

    var logging = false;

 

    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, { // Anzahl der vorhandenen Fenster

    type: 'number',

    name: 'Anzahl aller Fenster',

    min: 0,

    def: 0,

    role: 'value'

});

    createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind

    type: 'number',

    name: 'Anzahl der geoeffneten Fenster',

    min: 0,

    def: 0,

    role: 'value'

});

    createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen

    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 = $('channel[state.id=*.STATE](functions="Verschluss")'); // Gewerk Verschluss

    function checkDevices(obj) {

    // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss 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 Verschluss

    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(',\nund\n')); // 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 Verschluss

    // setState(idRaum, textRaum.join(',<br>')); // Räume, in denen Fenster geoeffnet sind

    setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind

}

 

//  Trigger

    cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Verschluss

    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(/(&nbsp;|<([^>]+)>)/ig, " ");

    return (rueckgabe);

}

 

on(idText, function(obj) {

    var text = obj.state.val;

    text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';

    setState(idAnsage, text);

});
das Ergebnis war dann die richtige Anzahl an Fenster

2. das Skript "deleteDuplicates" unter Global gepackt
3. das Blocky Skript mit dem Namen "Fensterabfrage" eingerichtet und entsprechend an den Echo angepasst. Die Ausgabe funktioniert.
4. in der Cloud das Skript "scriptEnabled.rules.Alexa_sagt.Fensterabfrage" als Smart Gerät eingefügt.

Jetzt kommt mein Verständnisproblem. Das Fensterabfrage-Blocky-Skript macht ja nur eine Ausgabe. Die Ermittlung der offenen und geschlossenen Fenster erfolgt ja in dem Skript unter Punkt 1. Müsste ich dieses dann nicht als Smart Gerät einbinden? Wenn ich das aber mache, wie wird dann das Blocky aufgerufen um die Ausgabe an den Speak vom Echo zu geben?

Kann mir das bitte einer erklären. Wo liegt mein Fehler in der Logik.Für mich ist das interessant da ich noch andere Themen umsetzen will und entsprechende Skripte entwickeln und implementieren möchte.

Vielen Dank schon mal im Vorfeld

Ich habe mir einen extra Datenpunkt angelegt, denn wenn Du das Script in den Cloudadapter packst sabbelt Alexa ja auch beim Scriptstart los. Bei mehreren Scripten wird das dann lustig. (oder beim JS Adapter Neustart....oder mitten in der Nacht)

z.B. so,

Code: Alles auswählen

//Alexa Fensterabfrage-Ansage
createState("Eigene_Datenpunkte.Alexa_antwortet.Fensteransage", {
    name: 'Alexa_Fensteransage', 
    role: 'switch',
    type: 'boolean', 
    read:  true, 
    write: true,
    "smartName": {
    "de": "Alexa Fensteransage",
    "smartType": "SWITCH"
}
});
kannst aber auch einen Button machen

Code: Alles auswählen

//Alexa Fensterabfrage-Ansage
createState("Eigene_Datenpunkte.Alexa_antwortet.Fensteransage", {
    name: 'Alexa_Fensteransage', 
    "type": "object",
    "role": "button",
    read:  true, 
    write: true,
    "smartName": {
    "de": "Alexa Fensteransage",
    "smartType": "SWITCH"
}
});
Dann noch ein Blockly was die Fensterdatenpunkte (oder auch Licht, oder Steckdosen usw) von Deinem Script abfragt.
z.B. so (Screenshot passt nicht ganz drauf)
Bildschirmfoto 2018-11-08 um 21.44.59.png
Und in der Alexa App auf dem Handy eine neue Routine anlegen, wo dann Dein neuer Datenpunkt geschaltet wird....z.B. Alexa, sind noch Fenster auf.

Hier noch der Blockly Export
Spoiler: Show hidden text

Code: Alles auswählen

<xml xmlns="http://www.w3.org/1999/xhtml">
  <block type="on_ext" id="4O(a~f,K8t9;VKQ1gVX*" x="-538" y="-1138">
    <mutation items="1"></mutation>
    <field name="CONDITION">any</field>
    <field name="ACK_CONDITION"></field>
    <value name="OID0">
      <shadow type="field_oid" id="gVMgi@bFNV0L^d#eht9#">
        <field name="oid">javascript.0.Eigene_Datenpunkte.Alexa_antwortet.Fensteransage</field>
      </shadow>
    </value>
    <statement name="STATEMENT">
      <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)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.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@]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.xxx.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.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="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.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/,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.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">aktuell 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;8UT11wT`dCQi#">
                        <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="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.xxx.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.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="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.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>
    </statement>
  </block>
</xml>

Rene.Home
starter
Beiträge: 21
Registriert: 20.01.2018, 08:24

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Rene.Home » 08.11.2018, 22:06

Ja verstehe... aber damit löse ich doch immer nur das Blocky-Skript aus. Dieses liest aber nur den Inhalt der Variablen aus.

Aber wie werden die Inhalte der Variablen aktualisiert. Dieses wird doch in dem ersten Skript gemacht. Ich sehe immer noch nicht die Verbindung oder ist es so das das erste Skript zum aktualisieren der Variablen einen Timer bekommen muss der unabhängig von der Abfrage via Alexa läuft.

Ich bin immer davon ausgegangen das die Aufforderung an Alexa erst einmal eine Prüfung ablaufen lässt gefolgt von der Ausgabe.

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 08.11.2018, 22:31

Rene.Home hat geschrieben:Ja verstehe... aber damit löse ich doch immer nur das Blocky-Skript aus. Dieses liest aber nur den Inhalt der Variablen aus.

Aber wie werden die Inhalte der Variablen aktualisiert. Dieses wird doch in dem ersten Skript gemacht. Ich sehe immer noch nicht die Verbindung oder ist es so das das erste Skript zum aktualisieren der Variablen einen Timer bekommen muss der unabhängig von der Abfrage via Alexa läuft.

Ich bin immer davon ausgegangen das die Aufforderung an Alexa erst einmal eine Prüfung ablaufen lässt gefolgt von der Ausgabe.
ich verstehe nicht so ganz was Du meinst. Das Fensterscript läuft ja immer, somit sind die Datenpunkte auch immer aktuell (offene Fenster).

Das Blockly greift ja wiederum nur diese Datenpunkte vom Fensterscript ab und gibt diese per Speak wieder.
Das Blockly selbst wird nur über einen Datenpunkt getriggert damit es los läuft wenn der Datenpunkt aktualisiert wurde. Das geschiet durch Deine Anfrage bei Alexa.

Vielleicht verstehe ich auch nicht was Du meinst ?

Benutzeravatar
dslraser
professional
Beiträge: 728
Registriert: 15.10.2017, 21:37

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von dslraser » 08.11.2018, 22:34

......
hier stand was für einen anderen Beitrag drinn...
Zuletzt geändert von dslraser am 08.11.2018, 22:34, insgesamt 5-mal geändert.

Rene.Home
starter
Beiträge: 21
Registriert: 20.01.2018, 08:24

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von Rene.Home » 08.11.2018, 22:38

Das mit dem Blocky war mir klar und ich habe mich nochmals mit dem Fensterskript beschäftigt und den trigger-Part in dem Skript übersehen der auf die Änderung in dem Status des betreffenden Objekte reagiert.
Spoiler: Show hidden text

Code: Alles auswählen

//  Trigger

    cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Verschluss

    if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat

    checkDevices();

});
Dadurch schläft das Skript und aktualisiert nur die Werte in den Variablen wenn ein Triggerevent durch die Gewerke ausgelöst wurde.

Somit ist alles klar.....

tadek
starter
Beiträge: 52
Registriert: 07.10.2017, 17:05

Re: Skriptsammlung für den neuen ALEXA2.0 Adapter

Beitrag von tadek » 09.11.2018, 10:02

Hätte vielleicht noch jemand ideen, warum der skill die History nicht updatet?

Antworten