NEWS
UNSOLVED Alexa Ansage in Blockly durch Timeout verhindern?
-
@dslraser Import hat funktioniert, vielen Dank für die txt-Datei!
Frage zu den Einstellungen, was muss ich noch anpassen? Siehe Bilder und die markierten Abschnitte.
Besten Dank!
-
Beim oberen Teil wird ein Datenpunkt erstellt. Dieser ist dann auch in Iot oder Cloud zu finden. In Iot/Cloud dann noch einen Switch draus machen.
In der Amazon App dann eine Gerätesuche starten. Der Datenpunkt sollte nun da erscheinen.
Dann noch eine Routine in der App anlegen. z.B. so und den Datenpunkt damit schalten(aktualisieren-, ist ein Button)
Im Blockly selbst arbeite ich nicht mit Speak sondern mit ssml. Der Datenpunkt ssml ist im Alexa2 Adapter (Version 2.2.0) enthalten. Da kann man dann mit verschiedenen Stimmen arbeiten.
Wenn Du nur einen Echo hast kannst Du die Erkennung welcher Echo angesprochen wurde (falls Echo Büro=Büro) auch weg lassen, dann reicht auch steuere ssml. -
@dslraser Top, funktioniert!!! Jetzt füge ich noch die restlichen Echos dazu, dann sollte die Abfrage auch in jedem Zimmer funktionieren.
Schönes Wochenende!
-
@flkontakt sagte in Alexa Ansage in Blockly durch Timeout verhindern?:
@dslraser Top, funktioniert!!! Jetzt füge ich noch die restlichen Echos dazu, dann sollte die Abfrage auch in jedem Zimmer funktionieren.
Schönes Wochenende!
Prima.
Danke Dir auch ein schönes WE.PS: das Blockly lässt sich natürlich auch für Licht und Steckdosen usw. anpassen.
Mit dem Ausgabetext kann man ja "spielen".
Ich lasse mir z.B. auch die Temperaturen von allen Räumen und von draussen nacheinander ansagen. Wobei dann jeweils ein Wert von Vicki, einer von Hans usw. im Wechsel angesagt wird. Ist nicht so langweilig -
Hallo zusammen,
ich habe mich hier auch versucht durch zu wühlen. Habe den Datenpunkt erstellt und der kommt auch in der Cloud an und Alexa findet ihn.
Spreche ich meine angelegte Routine nun zu Alexa wird nur mit einem Ja geantwortet aber nicht mit dem Text? Vielleicht kann mir ja jemand helfen, anbei mein Blockly, was komplettes Neuland für mich ist.Vielen Dank schon mal
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="MFaJ%JF29}}1JfRo}[38">Name</variable> <variable type="" id="BYsPhr2LR1o+5oiuWYbw">Initialisierung</variable> <variable type="" id=")H3#ru3*TKR2:~Py|9OV">Beschreibung</variable> <variable type="" id="l(u+YBxz@]o6aalTJH,U">Type</variable> <variable type="" id="R5`G^ze~mV`|1yVOG39e">Rolle</variable> <variable type="" id="u)zE%a?aXF)?3K5FKAZf">smartName</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="m8_t9F{e_EYi@Gqnv03T">Ansage</variable> </variables> <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" collapsed="true" x="-837" y="-2437"> <mutation statements="false"> <arg name="Name" varid="MFaJ%JF29}}1JfRo}[38"></arg> <arg name="Initialisierung" varid="BYsPhr2LR1o+5oiuWYbw"></arg> <arg name="Beschreibung" varid=")H3#ru3*TKR2:~Py|9OV"></arg> <arg name="Type" varid="l(u+YBxz@]o6aalTJH,U"></arg> <arg name="Rolle" varid="R5`G^ze~mV`|1yVOG39e"></arg> <arg name="smartName" varid="u)zE%a?aXF)?3K5FKAZf"></arg> </mutation> <field name="NAME">Variablen anlegen</field> <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIG5hbWU6IEJlc2NocmVpYnVuZywNCiAgcmVhZDogdHJ1ZSwgDQogIHdyaXRlOiB0cnVlLCANCiAgdHlwZTogVHlwZSwgDQogIGRlZjogZmFsc2UsDQogIHJvbGU6IFJvbGxlLA0KICBzbWFydE5hbWU6IHNtYXJ0TmFtZQ0KICANCiAgDQogIA0KICAgICAgDQp9KTsNCg==</field> <comment pinned="false" h="80" w="160">Hier ist das Javascript drin.</comment> </block> <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="-823" y="-2375"> <mutation name="Variablen anlegen"> <arg name="Name"></arg> <arg name="Initialisierung"></arg> <arg name="Beschreibung"></arg> <arg name="Type"></arg> <arg name="Rolle"></arg> <arg name="smartName"></arg> </mutation> <value name="ARG0"> <block type="text" id="nSr7Hq~;DUU2#lB+Yj:}"> <field name="TEXT">Eigene_Datenpunkte.01Alexa2Ansagen.Ansagen.Beleuchtung</field> </block> </value> <value name="ARG1"> <block type="text" id="xlqa55O11o`@{+#@Yj;%"> <field name="TEXT">true</field> </block> </value> <value name="ARG2"> <block type="text" id="yEhqZqxh*}Ip8?yzOW7I"> <field name="TEXT">Beleuchtung</field> </block> </value> <value name="ARG3"> <block type="text" id="sYAGk@@-Fz^fIDONX!/i"> <field name="TEXT">boolean</field> </block> </value> <value name="ARG4"> <block type="text" id="/t]#6;-K%9u+eD1jG09@"> <field name="TEXT">button</field> </block> </value> <value name="ARG5"> <block type="text" id="f?//#sV0P}x+|S.8nzy`"> <field name="TEXT">Beleuchtung</field> </block> </value> <next> <block type="on_ext" id="Ac;^b|`@QSn~WL%:8Hxc"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="hD}F{s%j}T;e:l|Y_t5O"> <field name="oid">javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Ansagen.Beleuchtung</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="yJ:a?7nA]vQl}h+o]sLp"> <field name="NAME">timeout</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"> <field name="VAR" id="m8_t9F{e_EYi@Gqnv03T" variabletype="">Ansage</field> <value name="VALUE"> <block type="text_join" id="-reB^tvXSWM:(3]y*~s9"> <mutation items="34"></mutation> <value name="ADD0"> <block type="text" id="j0I[|eJM@1.d0b?e+L@i"> <field name="TEXT"><speak><voice name="Alexa"></field> </block> </value> <value name="ADD1"> <block type="text" id="%B1fdN3/P-0nDW@Z9IRy"> <field name="TEXT">Alex, wo ist noch Licht an? </field> </block> </value> <value name="ADD2"> <block type="text" id="Mg-11r+bSVB`_Z60kYvf"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD3"> <block type="text" id="|VjM^bW}3bR:1eZ+Bm-@"> <field name="TEXT">Okay, los gehts . </field> </block> </value> <value name="ADD4"> <block type="text" id="j_4t/AIMsG8`Umup#rPM"> <field name="TEXT">aktuell sind, </field> </block> </value> <value name="ADD5"> <block type="text" id="N}-CzvJahH(/)/vDF!Z@"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD6"> <block type="logic_ternary" id="}rNgt:IN3coO_lBrVGSU"> <value name="IF"> <block type="get_value" id="|,n}dK#d9S@8!j(u{gV!"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#94152C#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="text" id="_7=1K0C~XVTG1,o`X./5"> <field name="TEXT">im Schlafzimmer,</field> </block> </value> <value name="ELSE"> <block type="text" id="U77tMrnXHC0@4q6AYyv|"> <field name="TEXT">im Schlafzimmer ist alles aus</field> </block> </value> </block> </value> <value name="ADD7"> <block type="text" id="ijDxkX;Jl{CN0pa7^4,r"> <field name="TEXT"></voice><voice name="Alexa"></field> </block> </value> <value name="ADD8"> <block type="logic_ternary" id="vT.Z-4R9=nEqy4M94U_4"> <value name="IF"> <block type="logic_operation" id="OEg~3vm)G#[?GPI-Z@M#" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id="7C:q%-YR6r_?b8JMc3v~"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-21#55C8E2#1.Relay0.Switch</field> </block> </value> <value name="B"> <block type="get_value" id="+(;V+[V5YS-8Ug8*URl%"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-21#55C8E2#1.Relay1.Switch</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="r.QEj21(A[z[d!?L_*ql"> <field name="TEXT">im Wohnzimmer</field> </block> </value> <value name="ELSE"> <block type="text" id="zC?@~nP(U_zYBfU%E.DU"> <field name="TEXT">im Wohnzimmer ist alles aus</field> </block> </value> </block> </value> <value name="ADD9"> <block type="text" id="F-F],icxo/G,J9T7jFU0"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD10"> <block type="logic_ternary" id="W6O5o`l_YxNh.v[-8T!4"> <value name="IF"> <block type="get_value" id=":{h./Y$/I|o40$tjpS^;"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#944610#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="text" id="+~/dlQnQjLO-D+n)lY[;"> <field name="TEXT">im Badezimmer</field> </block> </value> <value name="ELSE"> <block type="text" id="6AER6%GT,$I.EEc_3#Ye"> <field name="TEXT"></field> </block> </value> </block> </value> <value name="ADD11"> <block type="text" id="pQQBXYDeU,T!YcGboKsU"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD12"> <block type="logic_ternary" id="28Kin_TkfaP[lBdq[sX5"> <value name="IF"> <block type="get_value" id="51tqKBw$o`G)VxnkG-~v"> <field name="ATTR">val</field> <field name="OID">shelly.0.SHSW-1#943F60#1.Relay0.Switch</field> </block> </value> <value name="THEN"> <block type="text" id="GRtSYPAp:+YiaDguIy3a"> <field name="TEXT">im Arbeitszimmer</field> </block> </value> <value name="ELSE"> <block type="text" id="j56O6.*.{BUWZy5-wNMA"> <field name="TEXT"></field> </block> </value> </block> </value> <value name="ADD13"> <block type="text" id="yVUwJ3!_ziN7K=K:Os?H"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD14"> <block type="logic_ternary" id="3%RPK*-|;93zctbhto[8"> <value name="IF"> <block type="logic_operation" id="J7x%K(.4%ismUoYYD,wN" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id="%wmrDt%-c?)x={@V~{m,"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Sideboard.POWER</field> </block> </value> <value name="B"> <block type="get_value" id="}}}nu:w/*OU.0B5[z/1b"> <field name="ATTR">val</field> <field name="OID">sonoff.0.Vitrine.POWER</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="mRE@m;B:0ot6)kV}SV|l"> <field name="TEXT">die Wohnwand</field> </block> </value> <value name="ELSE"> <block type="text" id="*vV/eNyUAx**,=j?%V(}"> <field name="TEXT"></field> </block> </value> </block> </value> <value name="ADD15"> <block type="text" id="%!RH_i%Hc|At=W]_Z7^~"> <field name="TEXT"></voice><voice name="Vicki"></field> </block> </value> <value name="ADD16"> <block type="logic_ternary" id="._g(w3(.Ph}6dWkY:MyB"> <value name="IF"> <block type="logic_operation" id="i^d]v@eZ8*IISr3ko*Ge" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id="h;W2:Pt*]oPPi3.1F[_i"> <field name="ATTR">val</field> <field name="OID">sonoff.0.X-Mas1.POWER</field> </block> </value> <value name="B"> <block type="get_value" id="f:e#j}=[OBnEL:(Jpr|Y"> <field name="ATTR">val</field> <field name="OID">sonoff.0.X-Mas2.POWER</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="nGYLU-8fQ*p{B!}5{!Z@"> <field name="TEXT">Weihnachtsbeleuchtung 1 und 2</field> </block> </value> <value name="ELSE"> <block type="text" id="`(F0a!r@Xz()2HSh7+}%"> <field name="TEXT"></field> </block> </value> </block> </value> <value name="ADD17"> <block type="logic_ternary" id="@g]Z%k(K:P.i?ooGx0PC"> <value name="IF"> <block type="logic_operation" id="UuHGAe]E_;h!+$gv~it)" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="get_value" id="yF=M)7K#y,?B-L@o7^a7"> <field name="ATTR">val</field> <field name="OID">sonoff.0.X-Mas3.POWER</field> </block> </value> <value name="B"> <block type="get_value" id="c|0uz~zlW]jbvn@k:{sq"> <field name="ATTR">val</field> <field name="OID">sonoff.0.X-Mas4.POWER</field> </block> </value> </block> </value> <value name="THEN"> <block type="text" id="?|BzRJZSs3^r2)~CJdM$"> <field name="TEXT">Weihnachtsbeleuchtung 3 und 4</field> </block> </value> <value name="ELSE"> <block type="text" id="U2}6QUQMgc)F(G[wJ*c3"> <field name="TEXT"></field> </block> </value> </block> </value> <value name="ADD18"> <block type="text" id="9vU-nxV?O)1#YfLXO21i"> <field name="TEXT"></voice><voice name="Alexa"><prosody volume="+6dB"></field> </block> </value> <value name="ADD19"> <block type="text" id="gzxbj0B1!~=aQo(gJ_Z3"> <field name="TEXT">Das wäre dann alles . </field> </block> </value> <value name="ADD20"> <block type="text" id="7G1Dbx1lYn(f{UBIY9:,"> <field name="TEXT"></prosody></field> </block> </value> <value name="ADD21"> <block type="text" id="es=J8PONm]wt9VU]sus5"> <field name="TEXT"></voice></speak></field> </block> </value> </block> </value> <next> <block type="comment" id="s30b2{fSQ:a0uC3`+QWU"> <field name="COMMENT">Peters Echo</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">Peters Echo</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.G090LV037193009G.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."> <field name="VAR" id="m8_t9F{e_EYi@Gqnv03T" variabletype="">Ansage</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </xml>
-
@gmx99
ich habe hier nochmal ein aktuelleres Fenster Ansage Blockly rein gestellt, vielleicht willst Du lieber das nehmen. -
@gmx99
Dein Blockly habe ich jetzt noch nicht importiert, aber da geht es um Licht, oder ?
(kann ich mir später aber mal ansehen, ich bin noch nicht zu Hause) -
@gmx99
ich habe Dir mal ein/Dein Blockly zusammengesteckt/umgearbeitet. Diese beiden default musst Du noch an Deine Installation anpassen:
Probieren konnte ich es nicht, da ich Deine Geräte nicht habe, die Geräte habe ich aber gleich drinn gelassen.
Versuche mal ob es funktioniert. Vorher das Blockly einmal starten, die benötigten Datenpunkte werden beim Start erstellt. Einmal die Gerätesuche starten und den Datenpunkt in der Routine an diesen hier anpassen (01Beleuchtung)
Wenn es funktioniert, also Grundsätzlich erstmal, dann kannst Du ja den Text nach belieben anpassen. -
@dslraser Hallo ja danke dir für die Hilfe, ich probiere es sofort mal aus.
dein anderes Skript habe ich schon gesehen, aber für mich als Anfänger sieht das noch verwirrender aus
-
ich hab es mal eingebaut und die Defaults angepasst, er bringt trotzdem keine Sprachaussage. Das ist aber auch noch ein Echo der 1. Generation? Ist das noch entscheidend? Hab die Defaults mal angehängt, die sollten ja so passen.
Vielen Dank für deine Hilfe
PS: habe grad mal geschaut, er schreibt auch nichts ins ssml. Bestätigt wird meine Abfrage, aber der Zeitstempel beim SSML ändert sich auch nicht.
-
@gmx99
zeig mal bitte einen Screenshot von Deiner Routine. -
@dslraser
Guten MorgenIch denke ich habe einen anderen Fehler,
da ich keine andere Stimme möchte, habe ich mir gedacht stelle ich die Stimmwechsel alle auf Alexa Voice, aber dann könnte ich es ja auch rausnehmen oder?
In meiner Alexa Routine ist nur der Triggerpunkt 01Beleuchtung drin?! -
@gmx99
ich habe es mir eben noch mal schnell angesehen, ist mir gestern gar nicht aufgefallen.
In Deiner Prüfung fehlt die Logik bzw. der Vergleich. Ich weiss nicht was die Geräte bei Dir ausgeben (true / false, oder 0 und 1 ?)
Die Prüfung muss ungefähr so aussehen -
@gmx99
ich prüfe nur ob irgendwo Fenster auf sind (in diesem Fall Fenster) und lasse mir dann nur den Raum ansagen.
Wenn alle Fenster zu sind kommt diese Prüfung und Ansage.
-
Hallo,
ich habe es grad mal eingebaut.
Ich habe den Stimmwechsel rausgenommen und die Prüfung der Stati eingebaut.Es kommt ich wie vor nichts alas Ausgabe.
Die Routine bei Alexa muss ja nur die 01Beleuchtung beinhalten oder?
Leider schreibt er mir nix in SSML beim Commands rein?!
Sollte da nicht der angesagt Text erscheinen?!Ich habe mir das Skript jetzt 100 mal angesehen, bekomme auch keine Fehlermeldungen im Log...
-
@gmx99
ich habe vorhin in dem Blockly mal alle Prüfungen, bis auf die Zeitansage deaktiviert, also nur das erste alexa voice und das Ende nach der Zeitansage aktiv gelassen und auf einen Echo (der heisst Wohnzimmer bei mir) angepasst. Dann habe ich den kurz angesprochen (dann ist er in der History drinn) und dann einmal auf den selbst erstellten Button in der Ansage gedrückt, dann kam sofort die Ansage.
Hast Du nur einen Echo ? (dann kann man es einfacher testen)
Das war jetzt nur zum testen(also ohne die Routine)
Die Routine macht letztenendes das gleiche. Du sprichst Deinen Echo an, dann wird der Button gedrückt, dann erscheint fast Zeitgleich Dein Echo in History, das Blockly prüft, ob es dieser Echo mit dem Namen des/Deines Echo ist (ginge auch über die Seriennummer) und arbeitet den Inhalt ab und die Ansage kommt.
Einen Echo 1 habe ich nicht, aber Du kannst ja direkt mal ein fertiges ssml in den Datenpunkt kopieren um zu schauen ob der Echo 1 ssml kann. -
@gmx99
fertige Beispiele findest Du hier im ersten Beitrag, da kannst Du es kopieren...https://forum.iobroker.net/topic/18693/austausch-zu-neuem-alexa2-alpha-2-1-ssml-feature
-
@gmx99
bitte nicht stören ist aber aus in der App ?
Kommunikation ist an ? -
so heißt mein ECHO in den Objekten
genau so muß es dann auch hier stehen
In der History steht dann immer der zuletzt angesprochene ECHO drinn
dafür ist das
und das hier
und so habe ich probiert ob es grundsätzlich funktioniert (tut es, es kommt dann nur die aktuelle Zeit)
-
@dslraser Erstmal vielen Dank für die schnelle und wirklich klasse Hilfe.
Ich habe Kommunikation an und nicht stören aus
Ich denke den Fehler habe ich gefunden, bei mir kommt in der History nicht mein Echo Name sondern this device als Echo Name...
Habe da ein falsches Feld gewählt.
Mein Objekt SSML wird nun mit diesem Code
trueaktuell ist, im Schlafzimmer alles aus, trueim Wohnzimmer alles aus, trueim Badezimmer alles aus, trueim Arbeitszimmer alles aus, truedie Wohnwand ausgeschaltet, trueWeihnachtsbeleuchtung eins und zwei eingeschaltet, trueWeihnachtsbeleuchtung drei und vier eingeschaltet, truees ist jetzt 11 Uhr und 17 Minuten.true</voice><voice name="Alexa"><prosody volume="+6dB">Das wäre dann erstmal Alles !</prosody></voice></speak>
geschrieben.