NEWS
Skriptsammlung für den neuen ALEXA2.0 Adapter
-
ich glaube ich habe es falsch erklärt…[emoji29] Ich bin unterwegs und melde mich später…
-
name und speak sind immer dem selben Echo zugeordnet.
Es steht unter speak auch bei allen der Text drin. Im Moment sind … ` ich habe es falsch erklärt, nicht Deine Schuld….
Bei echo device name kommt immer der history name hin.Bei speak der jeweilige ECHO des Raumes...
Diese Werte werden verglichen.
Ich hoffe so stimmt es, ich bin immer noch unterwegs und nur am Handy.
![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 577a6c.jpg">https://uploads.tapatalk-cdn.com/20180815/77cf9214a113c0091da1e61b96577a6c.jpg</link_text>" />![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201808 ... 085b08.jpg">https://uploads.tapatalk-cdn.com/20180815/0340575b2e69c0a27bca8e5a46085b08.jpg</link_text>" />~~~~ -
Alles klar.
Geändert und es funktioniert.
Nun habe ich gleich noch das Lichterscript mit eingebaut, funktioniert auch
(Ich war mutig, habe aus level einfach state gemacht)
Nochmals Danke für deine Unterstützung.
-
Prima, freut mich.
Ich habe bei mir gestern noch eine Steckdosenabfrage auf die gleiche Weise eingebaut[emoji3]
-
Hi,
das Script funktioniert leider nicht. Die Datenpunkte werden angelegt aber der Zähler zeigt immer Null.
Gruß
Lars
Also dann hier weiter. Im Alexa2 Adapter Beitrag kam der Hinweis Scripte und Anwendungsmöglichkeiten hier zu posten. Ich antworte hier jetzt nur auf eine Frage aus dem anderen Beitrag.
viewtopic.php?p=167951#p167951
Beim ersten Scriptstart werden erst Objekte angelegt. Am Besten danach mal kurz den JS Adapter mal aktualisieren/anhalten -neu starten, das klappt bei mir immer am Besten.
Licht prüfen Script
! ````
//Lichter Status
var logging = true;
! var idAnzahlEin = 'javascript.0.Status.Lichter.Anzahl_ein',
idAnzahl = 'javascript.0.Status.Lichter.Anzahl',
idText = 'javascript.0.Status.Lichter.Text',
idRaum = 'javascript.0.Status.Lichter.Raum',
idAnsage = 'javascript.0.Status.Lichter.Ansage';
! // Ab hier nix mehr ändern
createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
type: 'number',
name: 'Anzahl aller Lichter',
min: 0,
def: 0,
role: 'value'
});
createState(idAnzahlEin, { // Anzahl der Lichter, die an sind als Variable unter Javascript.0 anlegen
type: 'number',
name: 'Anzahl der eingeschalteten Lichter',
min: 0,
def: 0,
role: 'value'
});
createState(idText, { // Anzahl der eingeschalteten Lichter und deren Namen als Variable unter Javascript.0 anlegen
type: 'string',
name: 'Eingeschaltete Lichter',
desc: 'Namen der eingeschalteten Lichter',
def: ' ',
role: 'value'
});
createState(idAnsage, {
type: 'string',
name: 'Eingeschaltete Lichter (Ansage)',
desc: 'Namen der eingeschalteten Lichter (für Ansage aufbereitet)',
def: ' ',
role: 'value'
});
createState(idRaum, { // Räume, in denen Lichter brennen
type: 'string',
name: 'Räume mit eingeschalteten Lichter',
desc: 'Namen der Räume, in denen Lichter eingeschaltet sind',
def: ' ',
role: 'value'
});
! var cacheSelectorState = $('channelstate.id=*.state'); // Gewerk Licht
var cacheSelectorLevel = $('channelstate.id=*.level');
! function checkDevices(obj) {
// Setzt die Zähler vor dem Durchlauf aller Elemente *.state im Gewerk Licht auf 0
var anzahlLichterAn = 0;
var anzahlLichter = 0;
var textLichterAn = [];
var textRaum = [];
if (logging) {
log('++++++ Lichter Anzahl ++++ ');
log('#### SCHALTER ##### ');
}
cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element *.state im Gewerk Licht
var obj = getObject(id);
var name = getObject(id).common.name;
var status = getState(id).val; // Zustand *.state abfragen (jedes Element)
var devicename = name.substring(0, name.indexOf(".state")); //.state aus Text entfernen
var raumname = getObject(id, "rooms");
! // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
//if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) {
if (logging) {
log('-------');
log('Kanal: ' + name);
log('Status: ' + status);
}
if (status) { // wenn Zustand = true, dann wird die ANzahl der Lichter hochgezählt
++anzahlLichterAn;
textLichterAn.push(devicename); // Zu Array hinzufügen
textRaum.push(raumname.enumNames);
}
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
// } // ENDE VK-Abfrage
});
! if (logging) log('#### DIMMER ##### ');
cacheSelectorLevel.each(function (id, i) { // Schleife für jedes gefundenen Element *.level im Gewerk Licht
var obj = getObject(id);
var name = getObject(id).common.name;
var status = getState(id).val; // Zustand *.level abfragen (jedes Element)
var devicename = name.substring(0, name.indexOf(".level")); //.level aus Text entfernen
var raumname = getObject(id, "rooms");
! //########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
! if (logging) {
log('-------');
log('Kanal: ' + name);
log('Status: ' + status + '%');
}
if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
++anzahlLichterAn;
textLichterAn.push(devicename); // Zu Array hinzufügen
textRaum.push(raumname.enumNames);
}
++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
} // Ende Abfrage VK
});
! // Array mit Lichternamen sortieren
textLichterAn.sort();
textRaum.sort();
// Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
if (logging) log("Text: " + textLichterAn);
if (logging) log("Anzahl Lichter: " + anzahlLichter + " # davon Lichter an: " + anzahlLichterAn);
// die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
setState(idText, textLichterAn.join(', und ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
//setState(idRaum, textRaum.join(',
')); // Räume, in denen Licht brennt
setState(idRaum, textRaum.join(', und ')); // Räume, in denen Licht brennt
}
! // Trigger
cacheSelectorState.on(function(obj) { // bei Zustandänderung *.state im Gewerk Licht
if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
checkDevices();
});
cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.level im Gewerk Licht
if (logging) log('Auslösender Dimmer: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
checkDevices();
});
! function main() {
setTimeout(function(){
if (logging) log('Auslöser Skriptstart');
checkDevices();
}, 2000);
}
! main(); // Skriptstart-Auslöser
! // Aufbereitung für Ansage
//function strip_tags(data) {
//var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
//return(rueckgabe);
//}
! on(idText, function (obj) {
var text = obj.state.val;
text = (text.length > 1) ? '' + text : 'alle Lampen ausgeschaltet';
setState(idAnsage, text);
});PS: das Licht-Script wird im Cloud Adapter als "Smart Gerät" hinzu gefügt. Blockly Export Ausgabe Ansage über speak: >! ```` <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-187" y="-162"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.History.#trigger</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{`Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="]irLwLWGul].x{m`.#.@"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation> <value name="ADD0"><block type="text" id="75Z)Wn`YF@;38~bIM;pA"><field name="TEXT">aktuell sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Ansage</field></block></value></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3`+QWU"><field name="COMMENT">Wohnzimmer</field> <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B`*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-`nV"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field> <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs*2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="_amxz6B=9F}_2uEGsK}`"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2Xr`HBIz5h"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="5q6/z~S`0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7N;yy7cC=tE`}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="z`vyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="xF~b7`{fV||4n}zB-}.u"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="E#D1a/,rcH`dm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE`^zf9[4"><value name="IF0"><block type="logic_compare" id="*:X%VM^+2MoYl-:u!WK`"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@`4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement> <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field> <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Anzahl_ein</field></block></value> <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value> <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field> <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">Im Moment sind im</field></block></value> <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M`_S5@d?;q"><field name="ATTR">val</field> <field name="OID">javascript.0.Status.Lichter.Raum</field></block></value> <value name="ADD2"><block type="text" id="NqEob9;8UT11wT`dCQi#"><field name="TEXT">eingeschaltete Lampen</field></block></value></block></value> <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T.*"><field name="COMMENT">Wohnzimmer</field> <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Oe@)VM+1Y`_1YJn?6xyl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field> <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU`)sv"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id="JS`zfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="*lX{ZM`VBTc}A`1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field> <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field> <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id=";7jyou9f+V(`5**;CDV?"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="`?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Zr`S-l8E!}8.4{,qM9*i"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field> <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="ZB}mEWERKZ/fb~*Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="kPLG+9decg*iGUm87`-2"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="`;ot|i:*)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="5Gh*aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.XXXXXXXXXXX.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></next></block></xml>
Hier die Screenshots. `
-
ich habe nur Hue Lampen, und frage dort level ab, dann musst Du vielleicht auf state anpassen. (oder was hat Dein Licht für Datenpunkte ? In Deinem Screenshot sind leider keine Datenpunkte zu sehen.)
–-cache selektor--- für Dein Gewerk
-
So war es bei mir auch am Anfang.
Einfach aus alles was level heißt ein state machen.
Ich habe mich dabei am Fensterscript orientiert, dort werden ja state verarbeitet.
-
Hi,
der bereich mit den Virtuellen Geräte fragt doch States ab, wieso klappt das denn nicht ?
So war es bei mir auch am Anfang.
Einfach aus alles was level heißt ein state machen.
Ich habe mich dabei am Fensterscript orientiert, dort werden ja state verarbeitet. `
Hier ein Datenpunkt:
Leider habe ich auch einen Dimmer, benötige den Punkt also.Gruß
Lars
-
ich glaube im originalen Script war beides drinn. Suche mal im Forum danach. Ich hatte es nur für mich angepasst…
schau mal hier rein
viewtopic.php?p=142924#p142924
oder hier
-
Hallo,
ich hätte da mal eine Frage: Wie kann ich bei einem zusammengesetzten Text (siehe Anhang)
Alexa dazu bringen eine kleine Sprachpause zu machen?
-
Ich mach das mit einem komma
-
-
Hallo,
grundsätzlich findie ich diese Skriptsammlung gut. Wäre es nicht noch etwas günstiger, wenn man hier nur die Links zu den einzeln "under-Threads" der jeweiligen Skripte anzeigt? Dann wäre das hier doch etwas geordneter.
Mein Beispiel:
Ich würde gerne mein bisher angewandtes Gehrig-Skript bzw. dessen Anwendungen "umziehen" und Skripte konkret auf ioBroker laufen lassen.
Das sind
-
das hier im skript angezeigte "alle Echos aus" Trigger soll jedoch nicht ein Parameter eines Datenpunktes, sondern einfach die Ansage: Alexa mache alle Echos aus sein. Wenn ich das skript hier in diesem Thread verwende, es im Smarthome ioBroker auswähle - läufts so nicht an.
-
Starten eines Radiosenders
Hier könntet Ihr fragen - wozu? Sage es doch direkt Alexa. Ja aber: jedesmal sagen "Alexa spiele tunein RadioXY in überall geht aufn sender. Ich habe mit dem Gehrig - Skript und der HA-Bridge ein Skript ausführen lassen bei: "Alexa starte RadioXY"
3)Radiowecker auf mehreren Geräten, die nicht unbedingt Mitglied dergleichen Gruppe sind (muss nicht unbedingt synchron sein)
hier habe ich das Skript von diesem Thread übernommen und angepasst (Datenpunkte).
Problem: Das Skript funktioniert nur, wenn man kurz zuvor den Sender auf den entsprechenden Geräten (zB Dot oder Echo) aufgerufen und pausiert hat.
Am nächsten Tag läuft der Sender nicht automatisch. Man hört zwar einen "Bestätigungston" (Kurzer Beep), wenn die Lautstärke sich automatisch einstellt. Der Sender jedoch läuft nicht…
- Gruppen kurzfristig verändern und auch wieder zurückstellen
Da es leider nicht geht, dass ein Gerät in mehreren Gruppen sein kann, gibt es nur diesen Umweg.
Bei Gehrig habe ich einfach ein Skript entworfen , welches mit Ändere Gruppe Alle funktioniert.
Hier habe ich noch nichts gefunden.
5)Anrufansagen via TRxx
-Läuft die Ansage auch auf Gruppen? wäre genial
-
-
@Semanchekare
die Idee mit den einzelnen Threads pro Skript wäre sicherlich besser. Da gebe ich Dir recht … dann wären die Diskussionen nicht so durcheinander.
Andererseits würde man sich dann den Wolf suchen, um ein bestimmtes Skript zu finden, wenn man nicht genau weiß wonach man suchen soll.
Von daher ist das eher eine Ideensammlung hier ...
Zu deinen kleineren Problemen:
zu 1.) Ich denke Du willst das über eine Routine lösen so wie ich das verstehe, aber dann braucht die Routinen einen Datenpunbkt, der von Alexa getriggert wird, um im ioBroker irgendwas zu veranstalten. Wenn ich das so richtig verstanden habe.
zu 2.) Damit habe ich keinbe Probleme: Bei mir statet jeder Sender auf TuneIn mit "Alexa, spiele Radio Schießmichtot", oder dergleichen. Von daher sehe ich persönlich keinen Bedarf an einem Skript.
zu 3.) Bzgl.d es Radioweckers, da hat sich zwischen der 0.3.8 und de 0.5.1/0.5.2. irgendwann der Datenpunkt geändert. Ist jetzt nicht mehr TuneIn-Direkt, sondern TuneIn-Station. Damit geht es dann wieder.
zu 4.) Habe ich keinen Plan von.
zu 5.) Hier wäre der Adapter-Entwickler gefragt, also Apollon. Aber Gruppen werden vom alexa2-Adapter bisher nicht unterstützt.
Aber man könnte das Skript ja dahingehend ändern, daß das "speak-Command an mehrere Echos gesendet wird; bedarf also nur einer Änderung am Skript.
Irgendwie läßt sich einiges unproblematisch lösen; anderes geht enfach nicht oder wird von der API von Amazon nicht bereitgestellt oder ist einfach noch nicht im Adapter drin.
Von daher darf man diese Skripte hier, nur als Ideen für eigene Umsetzungen verstehen. Out-of-the-box klappt eh nicht, weil die Datenpunkte eh fast überall anders lauten .. oder der eine lieber mit Blockly arbeitet und der andere mit Javascript. Nacharbeiten wird man bei allen Skripten müssen, damit es individuell auf einen paßt.
MfG Markus
-
Vielen Dank für Deine Antworten, ich werde insbesondere den "Wecker-Tipp" sofort umsetzen/testen.
insgesamt scheint das Gehrig-Script also noch etwas "weiter" zu sein als Alexa2.0 Adapter.
Mein Problem ist eigentlich, dass ich nicht beides nebeneinander laufen lassen kann, ohne ständig den Cookie zu ändern, was "Amazon nicht gefällt". D.h. die schalten dann irgendwann auf 2Wege Authentifikation und dann ist aus mit allen Steuerungsmethoden…
Zu diesem Thread:
Es würde ja reichen, wenn wir nur einen Link zu dem jeweiligen Thread mit aussagefähiger Überschrift herein nimmt.
Dann hat man alles:
Sammlung und Gut sortierte Threads...
-
Das ist doch ne gute Idee.
Also der Aufruf an alle: Bei einem neuen Skript einen eigenen Thread dazu erstellen und darauf von hier aus verweisen …
-
Am besten dann im 1. Post immer den aktuellsten Stand halten… (wenn's vom Mod aus geht...)
-
Hallo,
da sich bisher hier nichts getan hat, auch zwecks Sortierung, hier meine Frage zum in diesem Thread vorgestellten Blockly-Script viewtopic.php?f=21&t=15722&start=20#p168895:
1. Die Anruferansage erfolgt nur einmal. Wie kann ich im Blockly solange wiederholen zB nach 7 Sekunden etc. , bis der Anruf abbricht?
Tipps meinerseits:
a) Beim Check Callername empfehle ich "sonst falls mache" und kläre folgendes ab
1. Callername ungleich leer, dann Callername ansagen
sonst falls mache
2. Caller ungleich leer, dann Caller Ansage (Dh wenn nicht im Telefonbuch wird Nr. angesagt.
sonst falls mache
3. Caller gleich leer, dann Ansage "unbekannter Teilnehmer"
So habe ich Anrufe mit Nrn ohne Telefonbuch als Nr. angesagt.
b) Die Steuerung des Textes habe ich auf die Multiroomgruppe veranlasst. Dann höre ich es überall.
jetzt fehlt nur noch die Wiederholung…
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> ```` `
-
Seltsames Verhalten seit gestern, ich nutze ja das Fenster- und das Lichterscript.
Das beide funktionieren sehe ich unter Objekte an der Änderung meiner Datenpunkte.
Alexa mag nur mein Lichterscript nicht mehr.
Als Antwort kommt dann nur "Moment, ich schaue nach …" und dann ist Ruhe.
Das Fensterscript funktioniert nach wie vor.
In der App sind auch beide Routinen drin, die Scripte sind auch über Cloud als Gerät mit drin.
Diese habe ich schon bei Alexa gelöscht und noch mal neu angelegt.
Nun weiß ich nicht mehr wo ich nach Fehlern suchen soll.
Habt ihr Ideen ?
-
Das hatte ich auch, geholfen hat, den iobroker Skill in der Alexa App zu deaktivieren, und dann wieder zu aktivieren.
Danach geht's…