NEWS
Skriptsammlung für den neuen ALEXA2.0 Adapter
-
@ totocotonio
Das Script ist in JS geschrieben:
var sperre = false; on({id: 'sonoff.0.Eingang.POWER2', change: "any"}, function (obj) { if(!sperre) { sperre = true; setState("tr-064.0.states.ring"/*ring*/, '**610, 15'); sendTo("pushover", "send", { message: 'Klingel', sound: "" }); setState("alexa2.0.Echo-Devices.G2A0P30XXXXXXLLE.Commands.speak"/*speak*/, 'Mach ma Tür auf'); setTimeout(function() { sperre = false; }, 5000); } });
Der Teil "Sperre" wird benötigt, da der erste der geklingelt hat ein kleiner Nachbarsjunge war. Der hat dann mehrfach schnell hintereinander auf den Taster gedrückt und dadurch das Klingeln gestoppt.
Der Bereich :````
*/, '**610, 15');Weiter unten ist dann noch Pushover integriert das mir eine Meldung aufs Smartphone zaubert wenn ich nicht zu Hause bin. Zu guter Letzt ist dann noch die Sprachausgabe über Alexa realisiert die mit beliebigen Text gefüttert werden kann. Den Originaltext: "Mach mal de scheiße Tür auf" musste ich nach kleineren Diskussionen mit meiner Frau dann doch ändern :( Dabei war der eigentlich gut: [https://www.youtube.com/watch?v=-kxXSk7nqcw](https://www.youtube.com/watch?v=-kxXSk7nqcw)
-
Sau gut :lol: :lol: :lol:
Danke für die Info´s.
Welchen sonoff hast du den da gewählt?
Die Sperre ist das eine variable?
Ich versuche das morgen mal umzusetzen
-
Der Sonoff ist ein Basic über den noch zusätzlich verschiedene andere Sachen laufen:
Relais schaltet Außenlicht
GPIO 1 und 3 sind mit einem BMP 280 verbunden für Außen-Temperatur, -Druck und - Feuchte
GPIO 14 ist der Taster für die Klingel.
Die Sperre wird gesetzt solange das Script abgearbeitet wird.
-
Hallo ich habe das Fenster / Zählen Script und das Lichter Zählen Script Installiert.. Funktioniert soweit ganz gut, nur wird die Eingeschaltete Lichter / Fenster Variable nicht richtig angezeigt bzw ausgewertet..
! /* Status Zahl Lichter
! zählt die Lichter in allen Räumen und meldet die Eingeschalteten namentlich
! Daten kommen vom Gewerk "licht"
! erstellt: 17.06.2015 nach diesem Vorbild: viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564
! 23.06.2015 globale Variablendefinition zählen_Lichter.textLichterAn fehlte und wurde hinzugefügt
! Log Ausgabe auskommentiert
! 05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php … t=20#p9267
! 24.03.2016 keine Anzeigen von virtuellen Kanälen mehr (in Abhängigkeit der Abfrage des Namens)
! 06.05.2016 Datenpunkt für Ansagen zugefügt
! 02.07.2016 abgeschaltet, da Fehler
! 03.07.2016 Zähl-Funktion getrennt nach Schalter und Dimmer
! search statt indexOf und RegEx für Suche nach Virtuellen Kanälen
! 27.11.2016 Verschoben in Status
! Code optimiert
! 23.12.2016 Räume eingebaut
! */
! 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', // <---- NEU
! 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 auf sind als Variable unter Javascript.0 anlegen
! type: 'number',
! name: 'Anzahl der eingeschalteten Lichter',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idText, { // Anzahl der brennenden 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 // <---- NEU
! 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');
! var cacheSelectorPOWER = $('channelstate.id=*.POWER'); // Sonoff Lampen (müssen im Gewerk Licht sein)
! 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"); // <–-- NEU
! // ########## 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); // <---- NEU
! }
! ++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")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms"); // <---- NEU
! // ########## 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); // <---- NEU
! }
! ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
! // } // Ende Abfrage VK
! });
! if (logging) {
! log('++++++ Lichter Anzahl ++++ ');
! log('#### SCHALTER ##### ');
! }
! cacheSelectorPOWER.each(function (id, i) { // Schleife für jedes gefundenen Element *.POWER 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("POWER")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms"); // <---- NEU
! // ########## 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); // <---- NEU
! }
! ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
! // } // ENDE VK-Abfrage
! });
! // Array mit Lichternamen sortieren
! textLichterAn.sort();
! textRaum.sort(); // <---- NEU
! // 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(',
')); // 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 // <---- NEU
! setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU
! }
! // 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();
! });
! cacheSelectorPOWER.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();
! });
! function main() {
! setTimeout(function(){
! if (logging) log('Auslöser Skriptstart');
! checkDevices();
! }, 2000);
! }
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
! function strip_tags(data) {
! var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
! return(rueckgabe);
! }
! on(idText, function (obj) {
! var text = obj.state.val;
! text = (getState(idAnzahl).val > 0 ) ? 'Lichter eingeschaltet: ' + strip_tags(text) : 'Alle Lichter sind ausgeschaltet';
! setState(idAnsage, text);
! });! // Status Fenster. Das Script zählt alle Fenster im Gewerk Fenster (Aufzählungen-Funktion)
! // Telegramnachricht bei Abwesenheit wenn sich der Fensterstatus ändert. Bei Anwesenheit in der Homezone keine Nachricht senden.
! // Anwesenheit Datenpunkte separat erstellt und durch die Adapter google-sharedlocation und Places geschaltet
! var logging = true;
! var
! idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
! idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
! idText = 'javascript.0.Status.Fenster.Text',
! idRaum = 'javascript.0.Status.Fenster.Raum',
! idAnsage = 'javascript.0.Status.Fenster.Ansage';
! // Ab hier nix mehr ändern
! createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster
! type: 'number',
! name: 'Anzahl aller Fenster',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
! type: 'number',
! name: 'Anzahl der geoeffneten Fenster',
! min: 0,
! def: 0,
! role: 'value'
! });
! createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen
! type: 'string',
! name: 'geoeffnete Fenster',
! desc: 'Namen der geoeffneten Fenster',
! def: ' ',
! role: 'value'
! });
! createState(idAnsage, {
! type: 'string',
! name: 'geoeffnete Fenster (Ansage)',
! desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
! def: ' ',
! role: 'value'
! });
! createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
! type: 'string',
! name: 'Räume mit geoeffneten Fenster',
! desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
! def: ' ',
! role: 'value'
! });
! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Fenster
! function checkDevices(obj) {
! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0
! var anzahlFensterAuf = 0;
! var anzahlFenster = 0;
! var textFensterAuf = [];
! var textRaum = [];
! if (logging) {
! log('++++++ Fenster Anzahl ++++ ');
! log('#### SCHALTER ##### ');
! }
! cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster
! var obj = getObject(id);
! var name = getObject(id).common.name;
! var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
! var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
! var raumname = getObject(id, "rooms");
! if (logging) {
! log('–-----');
! log('Kanal: ' + name);
! log('Status: ' + status);
! }
! if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
! ++anzahlFensterAuf;
! textFensterAuf.push(devicename); // Zu Array hinzufügen
! textRaum.push(raumname.enumNames); //
! }
! ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
! });
! textRaum = deleteDuplicates(textRaum);
! // Array mit Fensternamen sortieren
! textFensterAuf.sort();
! textRaum.sort();
! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
! if (logging) log("Text: " + textFensterAuf);
! if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
! setState(idText, textFensterAuf.join(',\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 Fenster
! // setState(idRaum, textRaum.join(',
')); // 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 Fenster
! if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
! checkDevices();
! });
! function main() {
! setTimeout(function() {
! if (logging) log('Auslöser Skriptstart');
! checkDevices();
! }, 2000);
! }
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
! function strip_tags(data) {
! var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
! return (rueckgabe);
! }
! on(idText, function(obj) {
! var text = obj.state.val;
! text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';
! setState(idAnsage, text);
! });
! // Bei Anwesenheit zu Hause keine Telegramnachricht–-Bei Abwesenheit sendet Telegram eine Nachricht
! // on({id: 'javascript.0.Status.Fenster.Ansage', change: "ne"}, function (obj) {
! // var value = obj.state.val;
! // var oldValue = obj.oldState.val;
! // if (getState("javascript.0.Anwesenheit.Heiko.Home.Heiko_Home").val === false) {
! // sendTo("telegram", "send", {
! // text: getState("javascript.0.Status.Fenster.Ansage").val,
! // disable_notification: true // ohne Ton am Handy
! //});
! //}
! //}); -
Ich habe ein Script aus einem YouTube Video nachgebastelt.
Hierbei wird auch der Status der offenen Fenster und Türen abgefragt.
! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
! <block type="on_ext" id="K;bmqNo6Lb~VU03-c0O" x="-1087" y="-87"><mutation items="11"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="EUGRQt0^0=,T/{nU:R?*"><field name="oid">lupusec.0.devices.RF:03039a10.status_ex</field></shadow></value> ! <value name="OID1"><shadow type="field_oid" id="%LH-+B9.zpsxC0{zQo^!"><field name="oid">lupusec.0.devices.RF:03141610.status_ex</field></shadow></value> ! <value name="OID2"><shadow type="field_oid" id="=.NCmu#@tq?i2ulPOkNi"><field name="oid">lupusec.0.devices.RF:0322d810.status_ex</field></shadow></value> ! <value name="OID3"><shadow type="field_oid" id="ZGZRsr%J2j(vGCzo
uz_"><field name="oid">lupusec.0.devices.RF:03044c10.status_ex</field></shadow></value>
! <value name="OID4"><shadow type="field_oid" id="tyIzwcivSq=Ks#!8e_jg"><field name="oid">lupusec.0.devices.RF:030bb810.status_ex</field></shadow></value>
! <value name="OID5"><shadow type="field_oid" id="Ob3QJI(PBtg.gopijJp"><field name="oid">lupusec.0.devices.RF:03c08510.status_ex</field></shadow></value>
! <value name="OID6"><shadow type="field_oid" id=",R_0gag}.U[KG:!uVuSt"><field name="oid">lupusec.0.devices.RF:03879610.status_ex</field></shadow></value>
! <value name="OID7"><shadow type="field_oid" id="I/^n~iE*Wu(|)f|l^6@}"><field name="oid">lupusec.0.devices.RF:030fa710.status_ex</field></shadow></value>
! <value name="OID8"><shadow type="field_oid" id="KJtvXoo^m[O,~ksX:P/4"><field name="oid">lupusec.0.devices.RF:0387df10.status_ex</field></shadow></value>
! <value name="OID9"><shadow type="field_oid" id="xA386|eU7|N/d**E/u8"><field name="oid">lupusec.0.devices.RF:0319ac10.status_ex</field></shadow></value>
! <value name="OID10"><shadow type="field_oid" id="(;C2C2w,CCB8-rPAFc^"><field name="oid">lupusec.0.devices.RF:0324a610.status_ex</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="W:zWwagz/As5a8b#9OzP"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_operation" id="p^([UcjTOP1|ut5IOjXR"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="0ge-Vs+r8E;35~Lqffn
"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="/m=n2X%[vYY!tx!NKP2Z"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:03039a10.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="]wZtUa~@kF|.-b/iCNmA"><field name="BOOL">FALSE</field></block></value></block></value>
! <value name="B"><block type="logic_operation" id=",Z*/u5u]9AAGv_ZQXX9B"><field name="OP">AND</field>
! <value name="A"><block type="logic_compare" id="w0XCE~moK6!N|~b~2DHi"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="Lu*)}gw=06EFCPFNm}Y="><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:03141610.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="2lF;Ebc.0PW2b+jTx/-]"><field name="BOOL">FALSE</field></block></value></block></value>
! <value name="B"><block type="logic_operation" id="oD05sh#q!K1m9sv-U^b"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="/33nhjK%{!5B_YW|FD}R"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="0.GEO{<EMAIL email=" x@m.mejgve"="">X@M.meJGvE]!aV"> ! <field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0322d810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="^|SZF#M/?{W#Ijf^.+_n"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="OP?UzpLr=OJMT{IKiHtv"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="QS~7|dA/=,bsA#;~KNWv"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="@O5z^zwP|vo#_A[0O49o"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03044c10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="jKVKy?bcvBw)2rK^V/ED"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="fea~1z3F(re|,,+<EMAIL email=" 7@y.w"="">7@y.W"> ! <field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id=")ak6oVTn8g3.DBn1;Tfz"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="xn!0mijmQ~ppc#z2b*sJ"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:030bb810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="gdTQWzgPxAWqx03;4l(M"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="H|dL~Y2#T!b_j+txXv,{"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="sobtS
ak5+wHb~bLYQX^"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id=",8N?@.-YjS[BQA:,t|u"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:03c08510.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="N4(Lz1d{WwSjuY0/BJ:#"><field name="BOOL">FALSE</field></block></value></block></value>
! <value name="B"><block type="logic_operation" id="RgQdmQM@uBKHTN6bz^"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="KEX,qIcEarbmh)xI|jnO"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="+UG1A,Iz5sF41oAnU-sX"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03879610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="wHqfFfyN6p7pQ]Ex]QEg"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="zrkqQHb;-;Sr9a47wpE|"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="q:2Gm%5c+L+C~j,e|@4-"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="Mym?3e9ZCBB/.L~X`DM`"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:030fa710.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="!.,H(e831jM/tDcLvaFN"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="IWs,;*5WWF[PwvNi#=u]"><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="(KjkFX?);@|5xts/kBZy"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="8?}|S|Ih)UX:mQZ|,aKx"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0387df10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="(B-?DNy81ju;pxZnilsa"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_operation" id="iqUSGR)=%?@Wx`c)cXj="><field name="OP">AND</field> ! <value name="A"><block type="logic_compare" id="e.oXNHLj/zB!()R5`Ttn"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="Bu/~xr6H;fqp*)|Ji+9R"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0319ac10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="64l^d?2*|W5QVrVWtRU+"><field name="BOOL">FALSE</field></block></value></block></value> ! <value name="B"><block type="logic_compare" id="^zr^Ac:Sjx(w+8iIMl2L"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="4E7..LjQq)WU27bSi/?S"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0324a610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="gr(PYK)wc`ZeR2b!yQo~"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value></block></value></block></value></block></value></block></value></block></value></block></value></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="9xdLRL8Et~8!{BaOR2b?"><field name="VAR">gesamt</field> ! <value name="VALUE"><block type="text" id="-jnh{ah9#XOYTQLaHICQ"><field name="TEXT">Es sind keine Fenster geöffnet!</field></block></value></block></statement> ! <statement name="ELSE"><block type="variables_set" id="V@+W*p}Jlu8(#vAC-1Ji"><field name="VAR">gesamt</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="e[`[V7l}(@l;:rQSnE+@"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="y|.2=KF9RGsp!nv:?W;z"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="wnUBpdD(tr,(7~m,i:_0"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03039a10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id=")DE;e#Dt~_sS@-ym|H[a"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="2]YC;)PU?~o-eAvhLpKf"><field name="VAR">Terassenthüre_links</field> ! <value name="VALUE"><block type="text" id=")Od]Z`1GTK^Fr/GJCij*"><field name="TEXT">die Terrassentüre links,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="K#CX/CmT#yso._#Dp.T}"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="L{`!{-=#UJgg,39:@5+i"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03039a10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="Xq-gC*S=*Ut##jLqylls"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="UgTTC||un~A?O%l8[bpo"><field name="VAR">Terassenthüre_links</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="OOiaV0zk@LW7!NFhPCfh"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id=":NRHmz_%V~Ox1ZGX?j%m"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="TMFH0wjqz|eUZ`TRJ2[!"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03141610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="r{fb77NLLHJkt|(z4KmI"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="!7diN?b=1wv9o}lG5_[Q"><field name="VAR">Terrassentüre_rechts</field> ! <value name="VALUE"><block type="text" id="-e}qmaJ=#,%p#12gsB^S"><field name="TEXT">die Terrassenrüre rechts,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="%l^E1w`DP{zK+yH=%`:H"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="Gs9cW4:B^QteMnKohm[O"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03141610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="]W2ktaRp|!.A1;bo/M##"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="/oxH#o{d9]A!)m/7Q9jR"><field name="VAR">Terrassentüre_rechts</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="^.A64YYuZUOgfO)Z9JLF"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="k[Mu@oxI1W*1dg(v%wyi"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id=":KT(^/DWA#u-u*Y//lmq"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0322d810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="=Y#N5)-]AYy#Y80:}?1H"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="FQzRxZ=bk9N/s?0O%jyT"><field name="VAR">Küchenfenster</field> ! <value name="VALUE"><block type="text" id="vi+(]As`SK[z=0p;_w18"><field name="TEXT">das Küchenfenster,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="RS1dRE*t-+Fd|Oqx}B7u"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="c6Rc!hME_;+IqN:2QpB}"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0322d810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id=")Bld5n8%_NX6PV}T{XU}"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="`EXq|aOl__u?Ly6P!?0E"><field name="VAR">Küchenfenster</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="qoGXR]VdK={[Xtr2hcSy"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="j@2O]00v@^he(c.X]haE"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="_wN^u0/RD:4=,Htht[:|"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03044c10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="k#5|+M@`np!F=4QVs=xQ"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="B/Y*3G9wrRu0B,XCscy`"><field name="VAR">Kaminfenster</field> ! <value name="VALUE"><block type="text" id="q*Wc{byBs{wWj;us~ht,"><field name="TEXT">das Kaminfenster,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="`fDn1/6|m(Ik,Aw7W.aI"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="hkULKMuKuOfJ:mbxbL;b"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03044c10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="Wk!tzIcw}IKGCaSAwlBI"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="UkRx1n(s{D5PPaqU8;_Z"><field name="VAR">Kaminfenster</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="4k=^nYuS;mqOHib!.%qL"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="DSh2Fi!V^p4M=]3p^h)W"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="IYTq-H(ON4U@va{79gry"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:030bb810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="9`ZJM=AT-CjJU)c#RKi}"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="o`|)UadWT|X2@6D:*T]V"><field name="VAR">Haustüre</field> ! <value name="VALUE"><block type="text" id="8PZHj:gqY;R+=27cM@7Q"><field name="TEXT">die Haustüre,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="eEV*#/?bkp)E/`/[?}z9"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="j9w[[:kORK_@Ilv`^!04"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:030bb810.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="#+#nNxXrw+iD#Zf;Ai5Q"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="<EMAIL email=" 5ltzg@x7.jlq"="">5LTZg@X7.JLQ_Fy4QFxN"> ! <field name="VAR">Haustüre</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="H?Mzn#eINY_suEg5*#FL"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="o.,J83fk6g0|f,]4M%W2"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="S9%c5i9E3nFEw.#o]@3."><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03c08510.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id=",Bkf8A=}89i9J^sE3]U]"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="Xu|F)}@sMrA7B0!Y6@.B"><field name="VAR">Bad</field> ! <value name="VALUE"><block type="text" id="8x2:|)Ml%Ocdi9k?b.Da"><field name="TEXT">Im Badezimmer,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="lyRo86Iak+U@]v6sX40)"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="*NzHU!cp~ZwFB~{l^%oq"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03c08510.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id=";Cqvyx3Q
NtkI3GUsu"><field name="BOOL">FALSE</field></block></value></block></value>
! <statement name="DO1"><block type="variables_set" id="%;2kWxV84lws3E@?[^8s"><field name="VAR">Bad</field>
! <value name="VALUE"></value></block></statement>
! <next><block type="controls_if" id="DfRYgl2H2tVSx
JwPaB"><mutation elseif="1"></mutation>
! <value name="IF0"><block type="logic_compare" id="?=|/C,5GTc-s[h)MJda9"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="-,y2H!Va:o8OW^(%sNZ["><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:03879610.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="V3.Eg]:3mkq}n@~3%Q@8"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="variables_set" id="d)Z7g/gm6piJkOlmU~)d"><field name="VAR">Josephine</field>
! <value name="VALUE"><block type="text" id="To8ViRs#AuOAV=q?ZMH"><field name="TEXT">bei Josephine,</field></block></value></block></statement>
! <value name="IF1"><block type="logic_compare" id="aV{j5qiqJ{OdJbxG]zK"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="4N49k5O_Gn,K-YLpgU32"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:03879610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="QTi/UhA+;L^cW%l
iFa+"><field name="BOOL">FALSE</field></block></value></block></value>
! <statement name="DO1"><block type="variables_set" id="[Qy}LlNu[5CY#(j4P5C"><field name="VAR">Josephine</field>
! <value name="VALUE"></value></block></statement>
! <next><block type="controls_if" id="d.y-3~7fa4wTiAvfZisk"><mutation elseif="1"></mutation>
! <value name="IF0"><block type="logic_compare" id="z:Z7L3~L025=8GWHe8D"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="O]ci8^Z0IY*h{tg6}GnX"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:030fa710.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="1Bzrn.{:5FF
{hJ%U?n"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="de-!{[Z*?,xS%bBSR0n!"><field name="VAR">Nicklas</field> ! <value name="VALUE"><block type="text" id="4)4Rm!bAZc,OM~eHce|@"><field name="TEXT">bei Nicklas,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="9C)VspT*#K4Mf}ne#%H)"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="J),AK%V(L_7yFu~
TTnZ"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:030fa710.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="%ksI{#}}XvuZYMM4@w{"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="IgqCuN2Go{
OUG7W+|+M"><field name="VAR">Nicklas</field>
! <value name="VALUE"></value></block></statement>
! <next><block type="controls_if" id="8Vy7EXECH[eqh6g0veV]"><mutation elseif="1"></mutation>
! <value name="IF0"><block type="logic_compare" id="H;[6?lH)DWO%./FRmF;["><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="a7p1;=d{~N-{^?g=fl/"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:0387df10.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="RmVr+C@AZ9:uqt8a,LAe"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="variables_set" id="AS{]3.+%xsRXDKh18|=a"><field name="VAR">Schlafzimmer</field>
! <value name="VALUE"><block type="text" id="Lu=K?O(}npUS,nrLDZ"><field name="TEXT">im Schlafzimmer,</field></block></value></block></statement>
! <value name="IF1"><block type="logic_compare" id="PqOTSbU{YbI;5HgnNZvx"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="t}=%_u93=YlutT-:*um"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0387df10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="YYh#w*y6gIil7(HW21XY"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="Hj{~G3EDk[t3dC_hvj8A"><field name="VAR">Schlafzimmer</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="NaV9+V,?!|2LN!dvCf~t"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="fo}mjiOCc3Zd)#mnsX(A"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="|V),)t*DVvSXFS9J*T
}"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:0319ac10.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="[N86xkA2b7I:ktpe1Q!H"><field name="BOOL">TRUE</field></block></value></block></value>
! <statement name="DO0"><block type="variables_set" id="u:m]blE+#zsmSXXceeg]"><field name="VAR">Kellerfenster</field>
! <value name="VALUE"><block type="text" id="x?GYpNN?]H;[Dan*T;2"><field name="TEXT">das Kellerfenster,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id=";fvV!_y:Ni6IVQ#A2#ew"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="K(E~s=Ud6GFJ+C!4@R?r"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0319ac10.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="|[Zw{HQyxyPGZViAhEAW"><field name="BOOL">FALSE</field></block></value></block></value> ! <statement name="DO1"><block type="variables_set" id="A805k^zhyz;/]#._wmA+"><field name="VAR">Kellerfenster</field> ! <value name="VALUE"></value></block></statement> ! <next><block type="controls_if" id="m0sQj07=)O@s1xhaKa7V"><mutation elseif="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="b6qO|,+Tem(/J%r=?T8H"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="HX[#YkKO})-L+,EQYr6G"><field name="ATTR">val</field> ! <field name="OID">lupusec.0.devices.RF:0324a610.status_ex</field></block></value> ! <value name="B"><block type="logic_boolean" id="ngD2IeIVz1G_T7:YWg9w"><field name="BOOL">TRUE</field></block></value></block></value> ! <statement name="DO0"><block type="variables_set" id="Zv0M6XhA9m[~rU-RaIC:"><field name="VAR">Kellertüre</field> ! <value name="VALUE"><block type="text" id="a7s}X?X+{+BZHCBW,,[l"><field name="TEXT">die Kellertüre,</field></block></value></block></statement> ! <value name="IF1"><block type="logic_compare" id="PO2,W()(!5=mLqSI
?k5"><field name="OP">EQ</field>
! <value name="A"><block type="get_value" id="QGu.Vo/y?TWl=Qdm))W4"><field name="ATTR">val</field>
! <field name="OID">lupusec.0.devices.RF:0324a610.status_ex</field></block></value>
! <value name="B"><block type="logic_boolean" id="Z+fV,6Jjc?6lbhEorVSF"><field name="BOOL">FALSE</field></block></value></block></value>
! <statement name="DO1"><block type="variables_set" id="H,vdV@UyP;B1Uvp1YN)"><field name="VAR">Kellertüre</field>
! <value name="VALUE"></value></block></statement>
! <next><block type="control" id="NTv?kI9rF+=Y)TkJ:~ZB"><mutation delay_input="false"></mutation>
! <field name="OID">zuhause.0.fenster_status</field>
! <field name="WITH_DELAY">FALSE</field>
! <value name="VALUE"><block type="text_join" id="J9?J_6H;07)%yInKWj1"><mutation items="12"></mutation>
! <value name="ADD0"><block type="variables_get" id="VY;2/DK(EC=NS=g@@](F"><field name="VAR">gesamt</field></block></value>
! <value name="ADD1"><block type="variables_get" id=";MeRT;a{h{p1((B-j!pJ"><field name="VAR">Terassenthüre_links</field></block></value>
! <value name="ADD2"><block type="variables_get" id=".^)|PRX9AX/5WgGPGOz@"><field name="VAR">Terrassentüre_rechts</field></block></value>
! <value name="ADD3"><block type="variables_get" id="MoRXr@dF^x-vf#VsI["><field name="VAR">Küchenfenster</field></block></value> ! <value name="ADD4"><block type="variables_get" id="[U7?[xu^o
UPDE^zd]!9"><field name="VAR">Kaminfenster</field></block></value>
! <value name="ADD5"><block type="variables_get" id="KwLsXj%:vCV4BY%^?lzV"><field name="VAR">Haustüre</field></block></value>
! <value name="ADD6"><block type="variables_get" id="JfgI~8S~C(Swm=zE:{B"><field name="VAR">Bad</field></block></value>
! <value name="ADD7"><block type="variables_get" id="Mgk+)!0;k9~@M[sHh]ql"><field name="VAR">Josephine</field></block></value>
! <value name="ADD8"><block type="variables_get" id="s7U38qTS]pe:y,.#GF0u"><field name="VAR">Nicklas</field></block></value>
! <value name="ADD9"><block type="variables_get" id="H|t8Gq6.1f-;^dM(@2^~"><field name="VAR">Schlafzimmer</field></block></value>
! <value name="ADD10"><block type="variables_get" id="{9cH4X,0VXf[|?vBXqT"><field name="VAR">Kellerfenster</field></block></value>
! <value name="ADD11"><block type="variables_get" id="nKkYBD!KZ/`:DcJ+9Wr:"><field name="VAR">Kellertüre</field></block></value></block></value></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></xml> /spoiler] -
Ist es eigentlich möglich Alexa automatisch sprechen zu lassen?
Ich lasse mit einem Script die offenen Fenster überwachen.
Das heißt, wenn Fenster geöffnet wird, dann prüfe, ob es draußen kälter als 20°C ist.
Wenn ja, starte einen Timer von 10 Minuten. Nach 10 Minuten prüfe, ob Fenster immer noch geöffnet ist. Wenn ja, sende eine Pushover an die Bewohner.
Ist es möglich, dass ich zusätzlich Alexa automatisch sagen lassen kann, dass noch ein Fenster geöffnet ist?
-
Na klar.
Einfach statt oder parallel zu deinem Push… den Datenpunkt "speak" im Commands Knoten des jeweiligen Echo Devices mit einem Text füllen.
-
Echt, das wäre ja super.
Kannst du mir zeigen ,wie ich das machen muss?
Edit, Habe es selber hinbemkommen.
Vielen Dank trotzdem!
-
Hi,
hier nochmal die Anruferansage mit Blockly und dem tre064 Adapter.
Hier wird zusätzlich die aktuelle Lautstärke der Geräte vorher ausgelesen und nach der Ansage wieder auf den ursprünglichen Wert gesetzt:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="EzngFtDf/j0zTSANQN7=" x="-862" y="-337"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="6i/pNayPyVE~lI#c)+5s"><field name="oid">tr-064.0.callmonitor.ringing</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="@;OueA1}3ZkAhpm8_j+L"><value name="IF0"><block type="logic_operation" id="d}963/U9T|Jh@aoJI/9y"><field name="OP">AND</field> <value name="A"><block type="get_value" id="40P2`Ean^F(8W,`C6b5h"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.ringing</field></block></value> <value name="B"><block type="logic_boolean" id="xVL)BPe/4n+*mVGh)F5-"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="8_z8_`(aMbJP3I`J,9{4"><field name="VAR">Lautstärke_Wohnzimer</field> <value name="VALUE"><block type="field_oid" id="o/i:Ma_TL%rusP[;wQ?["><field name="oid">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field></block></value> <next><block type="variables_set" id="2J.Lh8h_b6tpIF@~lA8W"><field name="VAR">Lautstärke_Küche</field> <value name="VALUE"><block type="field_oid" id="9f.7,c4p)xn(~C/Mdz0w"><field name="oid">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field></block></value> <next><block type="variables_set" id="k(}b%tB~rLOe`*Wx:^/4"><field name="VAR">Lautstärke_Lars</field> <value name="VALUE"><block type="field_oid" id="{VjwRLugSgSn{7=nyzv("><field name="oid">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field></block></value> <next><block type="timeouts_settimeout" id="0FzXDtgmZ*oyI!44h+_="><field name="NAME">timeout4</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="controls_if" id="ca)+E=xHBC%/NE:9}a)7"><value name="IF0"><block type="logic_compare" id="a{)8dM/s5*P5VUW2/)gE"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="++y#P+H,mT^Fhj4Fok9t"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="B"></value></block></value> <statement name="DO0"><block type="variables_set" id="j~m5nJy~6[=^U_~G(w/~"><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="(6p7BX#~~2P}xj7Wn1@;"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="M76-)zYehBG]!LdyeY5q"><field name="TEXT">Hallo,</field></block></value> <value name="ADD1"><block type="get_value" id="+23FeR%/`)Vy3Ni[(7za"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="ADD2"><block type="text" id="h3zw.w5%hhgoy1:0?AYT"><field name="TEXT">ruft gerade an</field></block></value></block></value></block></statement> <next><block type="controls_if" id="O5wH)1^NlMW*dqhHD`A,"><value name="IF0"><block type="logic_compare" id="C55@Vus4XJOJY6[+ziLN"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="dFipC!^bmP=*.kydV?vo"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="B"></value></block></value> <statement name="DO0"><block type="variables_set" id="fUa!*mqwos!-oUi?6hh["><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="I/pf!JOkvITbMuQj4LuJ"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="-7ysPHsGv%hc=fRGgaDW"><field name="TEXT">Hallo,</field></block></value> <value name="ADD1"><block type="text" id="r;}O}7DeY5hGfB,m`63|"><field name="TEXT">unbekannter Teilnehmer</field></block></value> <value name="ADD2"><block type="text" id="P]x}F2Sd;(bXS4,#3SHG"><field name="TEXT">ruft gerade an</field></block></value></block></value></block></statement></block></next></block></statement> <next><block type="timeouts_settimeout" id="7;^i~IH^-RjbQ@?gSza2"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="update" id="W1FD}K5:+!TMEle6OEo@"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="mJ!3g6sg5MmrWZ|iH%dh"><field name="NUM">90</field></block></value> <next><block type="update" id="-.JH(M;Qvc`)o1^aH;Ns"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="eSnV9(6i3-b=2IwZg.7M"><field name="NUM">90</field></block></value> <next><block type="update" id="8.aqlJD|4|xV+HPD[9PS"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="N9dz9is@i0?juv_MIrUK"><field name="NUM">90</field></block></value></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="5h04#8}5%_uL=vb=c(kE"><field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="control" id="?WB3cxnc1VW;,;wpT7.m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="52KT0A^kpeOw^bUV^uk{"><field name="VAR">Ausgabetext</field></block></value> <next><block type="control" id="CW9DJb~mu;7mJb{JP;#S"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="c:WC*^n{Q~|Wu*!)t1Xz"><field name="VAR">Ausgabetext</field></block></value> <next><block type="control" id="Da6Tn}r_jOGFs/9S0DXX"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="BDRNI_Wg?t9~/{8^-nL,"><field name="VAR">Ausgabetext</field></block></value></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="U6CR:r_U/E43(F)p`HdL"><field name="NAME">timeout3</field> <field name="DELAY">1500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="update" id="r9LIyUmTAYS1a@Xf!EOx"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="og(G2:a.RKTJc8Tr8(Qa"><field name="VAR">Lautstärke_Küche</field></block></value> <next><block type="update" id="~UErQJ69MiBL#]`uzr%V"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="!#WKN`#7o4F7h#rdjV`-"><field name="VAR">Lautstärke_Lars</field></block></value> <next><block type="update" id="U8?*Ed.Pn@H6zVRe)#yi"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="8~(Tv]99;IeR_00L-N3S"><field name="VAR">Lautstärke_Wohnzimer</field></block></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block></xml> ```` `
Könnte man das nicht einfacher über Speak-Volume lösen?
-
Hi,
hier nochmal die Anruferansage mit Blockly und dem tre064 Adapter.
Hier wird zusätzlich die aktuelle Lautstärke der Geräte vorher ausgelesen und nach der Ansage wieder auf den ursprünglichen Wert gesetzt:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="EzngFtDf/j0zTSANQN7=" x="-862" y="-337"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="6i/pNayPyVE~lI#c)+5s"><field name="oid">tr-064.0.callmonitor.ringing</field></shadow></value> <statement name="STATEMENT"><block type="controls_if" id="@;OueA1}3ZkAhpm8_j+L"><value name="IF0"><block type="logic_operation" id="d}963/U9T|Jh@aoJI/9y"><field name="OP">AND</field> <value name="A"><block type="get_value" id="40P2`Ean^F(8W,`C6b5h"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.ringing</field></block></value> <value name="B"><block type="logic_boolean" id="xVL)BPe/4n+*mVGh)F5-"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="8_z8_`(aMbJP3I`J,9{4"><field name="VAR">Lautstärke_Wohnzimer</field> <value name="VALUE"><block type="field_oid" id="o/i:Ma_TL%rusP[;wQ?["><field name="oid">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field></block></value> <next><block type="variables_set" id="2J.Lh8h_b6tpIF@~lA8W"><field name="VAR">Lautstärke_Küche</field> <value name="VALUE"><block type="field_oid" id="9f.7,c4p)xn(~C/Mdz0w"><field name="oid">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field></block></value> <next><block type="variables_set" id="k(}b%tB~rLOe`*Wx:^/4"><field name="VAR">Lautstärke_Lars</field> <value name="VALUE"><block type="field_oid" id="{VjwRLugSgSn{7=nyzv("><field name="oid">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field></block></value> <next><block type="timeouts_settimeout" id="0FzXDtgmZ*oyI!44h+_="><field name="NAME">timeout4</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="controls_if" id="ca)+E=xHBC%/NE:9}a)7"><value name="IF0"><block type="logic_compare" id="a{)8dM/s5*P5VUW2/)gE"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="++y#P+H,mT^Fhj4Fok9t"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="B"></value></block></value> <statement name="DO0"><block type="variables_set" id="j~m5nJy~6[=^U_~G(w/~"><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="(6p7BX#~~2P}xj7Wn1@;"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="M76-)zYehBG]!LdyeY5q"><field name="TEXT">Hallo,</field></block></value> <value name="ADD1"><block type="get_value" id="+23FeR%/`)Vy3Ni[(7za"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="ADD2"><block type="text" id="h3zw.w5%hhgoy1:0?AYT"><field name="TEXT">ruft gerade an</field></block></value></block></value></block></statement> <next><block type="controls_if" id="O5wH)1^NlMW*dqhHD`A,"><value name="IF0"><block type="logic_compare" id="C55@Vus4XJOJY6[+ziLN"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="dFipC!^bmP=*.kydV?vo"><field name="ATTR">val</field> <field name="OID">tr-064.0.callmonitor.inbound.callerName</field></block></value> <value name="B"></value></block></value> <statement name="DO0"><block type="variables_set" id="fUa!*mqwos!-oUi?6hh["><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="I/pf!JOkvITbMuQj4LuJ"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="-7ysPHsGv%hc=fRGgaDW"><field name="TEXT">Hallo,</field></block></value> <value name="ADD1"><block type="text" id="r;}O}7DeY5hGfB,m`63|"><field name="TEXT">unbekannter Teilnehmer</field></block></value> <value name="ADD2"><block type="text" id="P]x}F2Sd;(bXS4,#3SHG"><field name="TEXT">ruft gerade an</field></block></value></block></value></block></statement></block></next></block></statement> <next><block type="timeouts_settimeout" id="7;^i~IH^-RjbQ@?gSza2"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="update" id="W1FD}K5:+!TMEle6OEo@"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="mJ!3g6sg5MmrWZ|iH%dh"><field name="NUM">90</field></block></value> <next><block type="update" id="-.JH(M;Qvc`)o1^aH;Ns"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="eSnV9(6i3-b=2IwZg.7M"><field name="NUM">90</field></block></value> <next><block type="update" id="8.aqlJD|4|xV+HPD[9PS"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_number" id="N9dz9is@i0?juv_MIrUK"><field name="NUM">90</field></block></value></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="5h04#8}5%_uL=vb=c(kE"><field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="control" id="?WB3cxnc1VW;,;wpT7.m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="52KT0A^kpeOw^bUV^uk{"><field name="VAR">Ausgabetext</field></block></value> <next><block type="control" id="CW9DJb~mu;7mJb{JP;#S"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="c:WC*^n{Q~|Wu*!)t1Xz"><field name="VAR">Ausgabetext</field></block></value> <next><block type="control" id="Da6Tn}r_jOGFs/9S0DXX"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="BDRNI_Wg?t9~/{8^-nL,"><field name="VAR">Ausgabetext</field></block></value></block></next></block></next></block></statement> <next><block type="timeouts_settimeout" id="U6CR:r_U/E43(F)p`HdL"><field name="NAME">timeout3</field> <field name="DELAY">1500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="update" id="r9LIyUmTAYS1a@Xf!EOx"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G000MW0773420FA7.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="og(G2:a.RKTJc8Tr8(Qa"><field name="VAR">Lautstärke_Küche</field></block></value> <next><block type="update" id="~UErQJ69MiBL#]`uzr%V"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G070RQ118097068H.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="!#WKN`#7o4F7h#rdjV`-"><field name="VAR">Lautstärke_Lars</field></block></value> <next><block type="update" id="U8?*Ed.Pn@H6zVRe)#yi"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090LB097414030P.Player.volume</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="8~(Tv]99;IeR_00L-N3S"><field name="VAR">Lautstärke_Wohnzimer</field></block></value></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement></block></xml> ```` `
Könnte man das nicht einfacher über Speak-Volume lösen? `
Habe ich mit speak volume gelöst. Anders kam nichts aus dem Echo. -
genau so habe ich gestern angefangen alles bei mir umzustellen. (ich wußte es vorher auch nicht besser)
Dann fährt auch der Staubsauger oder Rasenmäher (oder eben alle anderen geschalteten Geräte) nicht selbst los. `
Anfängerfrage von mir
Das hat aber nur mit den Geräten zu tun, die ich über Alexa steuere?
Oder hat dies mit allen Scripten zu tun, die etwas schalten können?
zB Zeitschaltuhr oder zB das Telegram Menü?
-
genau so habe ich gestern angefangen alles bei mir umzustellen. (ich wußte es vorher auch nicht besser)
Dann fährt auch der Staubsauger oder Rasenmäher (oder eben alle anderen geschalteten Geräte) nicht selbst los. `
Anfängerfrage von mir
Das hat aber nur mit den Geräten zu tun, die ich über Alexa steuere?
Oder hat dies mit allen Scripten zu tun, die etwas schalten können?
zB Zeitschaltuhr oder zB das Telegram Menü? ` alle Scripte und Blocklys die was schalten und beim Start vom JS Adapter ausgeführt werden.
-
alle Scripte und Blocklys die was schalten und beim Start vom JS Adapter ausgeführt werden. `
Puhhh, hab da eh noch nicht so viele.
Aber wie funktioniert das zB bei JS oder Blockly?
Oder soll ich lieber einen eigenen Thread dazu aufmachen?
-
Hallo zusammen,
ich würde gerne morgens, sobald ich die Lampe in der Küche anmache von Alexa gefragt werden, ob Sie mir die Nachrichten vorlesen soll. Schalterveknüpfung funktioniert und die Frage stellt Alexa mir auch.Jetzt würde ich aber gerne mit einem "Ja" oder "Nein" antworten und sie soll entsprechend reagieren. Wie bekomme ich das hin? Ich habe hierzu noch keine Lösung gefunden oder stehe einfach nur auf dem Schlauch.
Update:
Habe glaube ich das richtige Stichwort gefunden: Bespoken
Scheint nicht so einfach zu sein bzw. auch wohl nicht so recht zu funktionieren. -
Hallo zusammen,
ich versuche gerade über Alexa den Fernseher auszuschalten, bzw. einzuschalten. Ich hatte das bis gestern mit Homebridge gemacht, der Raspberry hat sich aber verabschiedet und nun wollte ich nicht extra für den TV einen neuen PI kaufen.Folgendes habe ich gemacht:
-
in IOBroker / Objecte / javascript.0.scriptEnabled die folgende Variable angelegt: Name: vAlexaTV
-
In der Instanz
ein neues Smartgerät mit dem Namen TriggerAlexaTV angelegt -
In Blockly ein Script angelegt, dass auf die Varible reagiert:
-
Anschließend iot.0 neu gestartet und über die Webseite Alexa neue Smartgeräte suchen lassen.
-
Alexa hat das neue Gerät auch gefunden
-
Nun über die Alexa App eine neue Routine angelegt mit Sprachbefehl: Alexa,schalte tv aus und dann mit der Aktion Smartgerät "TriggerAlexaTV"
Alles gespeichert und getestet. Über die App selber kann ich die Funktion erfolgreich testen und der Fernseher wird an, bzw. ausgeschaltet. Wenn ich aber zu Alexa sagt "Alexa, schalte den tv aus" erhalte ich immer die Rückmeldung, der Trigger kann nicht gefunden werden.
Was mache ich falsch?
-
-
Habe den Fehler gefunden. Alexa sendet als Trigger immer "Alexa, schalte t.v. an" und ich hatte als Satz "Alexa, schalte tv an". Das kann wohl nicht geändert werden, da in der Routine kein Sonderzeichen wie ein Punkt gesetzt werden kann. Nun habe ich das TV durch Fernseher ersetzt und es funktioniert.
-
@sissiwup Hallo, sag mal läuft das Script noch bei Dir mit dem aktuellen Alexa2 Adapter ? Weil bei mir bekomme ich seit ein paar Tagen keine Antwort wenn ich Alexa frage wer angerufen hat. Es lief wochenlang ohne Probleme und jetzt ist Schluss.
-
@OstfrieseUnterwegs Mich würde mal interessieren wie du die Anwesendheitskontrolle vorgenommen hast
Michael