NEWS
über Alexa Geräte steuern - Hilfe
-
@djmarc75
War nur des Dankeschön für den Ratschlag mit der ID ixxenProblem ist noch offen
-
@schalle-0 sagte in über Alexa Geräte steuern - Hilfe:
Problem ist noch offen
na dann zeig doch mal die Objektdaten von den Datenpunkten bitte
-
Das Problem wurde im Topic schon genannt. Elfriede ist nicht elfriede
Mache einfach den Befehl klein, entferne zur sicherheit leerzeichen an den Enden und dann frage gegen kleingeschriebenes ab. Die Befehle findest du unter Text
Das sind Testspracheingaben von mir. hab leichte Namen gewählt
2023-07-08 22:56:14.319 info script.js.Test.Skript_1: gehe nach hause 2023-07-08 22:56:07.898 info script.js.Test.Skript_1: gebe tim 2023-07-08 22:55:57.673 info script.js.Test.Skript_1: steuere tanja
-
@schalle-0 sagte in über Alexa Geräte steuern - Hilfe:
Auch mit dem eingefügtem Trigger läuft nur der Start, die anderen funktionen wollen einfach nicht.
Du hast auch ein ganz anderes Blockly als von mir vorgeschlagen
-
@ticaki
Ich verstehe dein Script noch nicht.
Soll es so sein das ich damit dann nicht nur den gleichen Wortlaut sagen muss sondern das auch ähnliche aktzeptiert werden?
Oder erklär mir dein Vorhaben bitte.Wie im ersten Post schon erwähnt arbeite ich mich erst in die ganze Materie ein. Sorry
-
@djmarc75
Soo habe es mal angepasst und funktioniert zur Hälfte.
Ich sage "schicke Elfriede nach Hause" wird dann der nächste Befehl gemacht nähmlich Pasuse. Dies ist auch wenn ich "stoppe Elfriede" sage dann startet Sie.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="3#3Prx@$4|_[^n1-+Kyo">befehl</variable> </variables> <block type="on_ext" id="l3u_cJZVO=D!E:8cI*SC" x="-367" y="-106"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="xxxxx"> <field name="oid">alexa2.0.History.summary</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="$/Xc5x:{SN.3:izHkE7("> <field name="VAR" id="3#3Prx@$4|_[^n1-+Kyo">befehl</field> <value name="VALUE"> <block type="on_source" id="q-R{LcF6k[w3nP[2UQ4*"> <field name="ATTR">state.val</field> </block> </value> <next> <block type="controls_if" id="F^O%L}B]*Uf*Y,X|E:0("> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_compare" id="mtubGykkK6NcM(.CN/wN"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="rh4#vW%bma3qMc[z+m@2"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="!y|?cKT,D!W`D!LbqtLh"> <field name="VAR" id="3#3Prx@$4|_[^n1-+Kyo">befehl</field> </block> </value> <value name="FIND"> <shadow type="text" id="kE-{aNNml!4+hMFV$:e|"> <field name="TEXT">schicke elfriede nach hause</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="=:y4zPucpP}S^hE~vBRm"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="rXXMZ51deT3]gWI2$X6%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">ecovacs-deebot.0.control.charge</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`v.nZVt/LWW~#DXiDyvI"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="Grx$W0Yc=5MUD4M4bxhG"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="AOd]9@bi,j$h;3?J?S$-"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="%-F@f**u;zPhQGbP{6##"> <field name="VAR" id="3#3Prx@$4|_[^n1-+Kyo">befehl</field> </block> </value> <value name="FIND"> <shadow type="text" id="rVoGi:.N{/j[~cun1n.t"> <field name="TEXT">stoppe elfriede</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="P=GG*OkmmS,4kxRrES5,"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="Mz90T:Mh)n7B5T`jFMS)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">ecovacs-deebot.0.control.pause</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ET6l3/`G6?cXr(9_DRM9"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_compare" id="piXnZgYugf#0Cpvpvv9^"> <field name="OP">EQ</field> <value name="A"> <block type="text_indexOf" id="TTDWf678xZ[s/t%#o2v-"> <field name="END">FIRST</field> <value name="VALUE"> <block type="variables_get" id="xt:5VlgTN1c37B01rs=;"> <field name="VAR" id="3#3Prx@$4|_[^n1-+Kyo">befehl</field> </block> </value> <value name="FIND"> <shadow type="text" id="y,r`AUAF-Qf[WbfpZ9Z{"> <field name="TEXT">starte elfriede</field> </shadow> </value> </block> </value> <value name="B"> <block type="math_number" id="qP3|awt)|Xu3!jM@YbR#"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="5ZR%putOa$:8vHI`1vA2"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">ecovacs-deebot.0.control.clean</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="P,%Q5*|~hN*+9,@W]hqq"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Dies ist mal die Liste der Datenpunkte:
und soweit ist ja klar: starte - clean ; stoppe - Pause ; ab nach Hause - charge
-
@schalle-0
Im Prinzip würde ich diese 3 Befehle je als Routine in der AlexaApp anlegen - ohne Funktion - und die jeweilige Routine dann als Trigger verwenden.
Beispiel:
-
@schalle-0 sagte in über Alexa Geräte steuern - Hilfe:
@ticaki
Ich verstehe dein Script noch nicht.
Soll es so sein das ich damit dann nicht nur den gleichen Wortlaut sagen muss sondern das auch ähnliche aktzeptiert werden?
Oder erklär mir dein Vorhaben bitte.Wie im ersten Post schon erwähnt arbeite ich mich erst in die ganze Materie ein. Sorry
Nein, das geht nur über lange Falls abfragen.
Der lower case Befehlt macht aus: "Ich SCHREI GERNE" "ich schrei gerne". Damit ist sicher das die Prüfung gegen einen kleingeschriebenen Text nicht daran scheitert das ein Großbuchstabe drin ist.
-
@djmarc75
Ist dies ok wenn ich den Baustein direkt auf einen anderen lege da dieser nicht zu löschen ist? musste ich bei dem ersten "ID`s vom Selektor" und bei dem vorletzten "Elfriede Status" also "Text" gegen "wahr,falsch"ersetzten.Bei ID´s vom Selektor habe ich den Routine Ordner der Alexa genommen. Öffnen konnte ich Ihn nicht.
Der Gelb hinterlegte Baustein bedarf bitte weiterer Erklärung.
"erstelle Text aus" habe ich gefüllt mit dem Ordner in dem alle Alexa Geräte enthalten sind.
Wert vom Objekt ID - welche serialNumber?
Commands Speak ist von von Alexa der Datenpunkt Commands.
Elfriede Status habe ich nur reingeschrieben oder sollte da der DP von dem Staubsauger - Status rein?
Reicht es wenn ich nur die ID der Alexa rausnehme oder alle ID´s ixxen?
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="xxx" x="13" y="13"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="xxx"> <field name="oid">default</field> </shadow> <block type="selector" id="xxx"> <field name="TEXT">alexa2.0.Echo-Devices.xxx.Routines</field> </block> </value> <statement name="STATEMENT"> <block type="control" id="xxx"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">Object ID</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="xxx"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="comment" id="xxx"> <field name="COMMENT">Bestätigung vom angesprochenen Echo</field> <next> <block type="control_ex" id="xxx"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid" id="j03`Jry=rCegI}fze6ZH"> <field name="oid">Object ID</field> </shadow> <block type="text_join" id="xxx"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="xxx"> <field name="TEXT">alexa2.0.Echo-Devices</field> </block> </value> <value name="ADD1"> <block type="get_value" id="xxx"> <field name="ATTR">val</field> <field name="OID">ID auswählen</field> </block> </value> <value name="ADD2"> <block type="text" id="xxx"> <field name="TEXT">alexa2.0.Echo-Devices.xxx.Commands.speak</field> </block> </value> </block> </value> <value name="VALUE"> <shadow type="logic_boolean" id="xxx"> <field name="BOOL">TRUE</field> </shadow> <block type="text" id="xxx"> <field name="TEXT"></field> </block> </value> <value name="DELAY_MS"> <shadow type="math_number" id="xxx"> <field name="NUM">0</field> </shadow> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
........
-
@schalle-0
alles sehr verwirrend was Du da schreibstWir fangen jetzt mal folgend an:
Hast Du die Routinen angelegt ?
Wenn ja dann müssten diese in jedem Echo Device angezeigt werden unter
alexa2.0.Echo-Devices.*.Routines
das * soll den jeweiligen Echo Device Ordner ersetzen und ist hier nur symbolisch !!!
bei mir z.B.
alexa2.0.Echo-Devices.*.Routines.a59ff301-ce03-4820-8bfd-34a11876e3bf
wenn Du keine Routinen anlegst brauchen wir auch nicht mit dem ID Selektor weitermachen
-
@djmarc75
Doch doch, in der Alexa App habe ich 3 Routinen hinzugefügt, also nur den Namen Starte Stoppe und schicke Elfriede nach Hause und mit nichts verknüpft.Jetzt sind sie auch vorhanden, hat anscheinend bisschen gedauert. Konnte Sie jetzt auch nicht mehr auseinanderhalten und habe jetzt nur eine Routine mit "starte Elfriede".
Ok ist eingefügt..
Und klar doch, zum einen möchte ich was zusammengebastelt bekommen und dabei mir auch was aneignen
-
@schalle-0 ok, dann bastle ich mal ein Blockly mit Erklärungen für Dich zusammen .... aber kann bissle dauern wegen Privatleben
-
@djmarc75
Ja nur kein Stress, finds ehh klasse das mir geholfen wird -
@schalle-0 sodele...
das Einzige was Du anpassen musst ist der Pfad zu Deiner "starte Elfriede" Routine oben im Selektor.
Dazu gehst Du in egal welcher Alexa zu dem Datenpunkt der Routine, klickst auf das kopieren Symbol:und fügst dann den Pfad ein. Die ID der Alexa ersetzt Du dann mit einem Sternsymbol " * "
Hier der Code zum Importieren:
Bei Fragen einfach fragen
-
@djmarc75
Gude, ja danke für deine Zeit und Mühe
Da ich auch nicht nur Copy & Paste`n will möchte ich kurz das Script durchbügeln und was mitnehmen.
Falls Alexa die "passende" Routine erkennt wird im Script nicht erst damit rumgespielt um mein gesprochenes zu vergleichen sondern gleich mit der Routine gestartet.
Soweit ist es auch klar das der "erstelle Text" die Alexa wieder angesprochen wird mit der ID und eine Sprachausgabe startet die weiter unten im Wert steht.Also sehr einfach zu verstehen.
Jetzt kann ich z.B. ganz einfach eine Hue Lampe dabei angehen lassen die grün angeht wenn Elfriede am arbeiten ist.
Danke vorab, jetzt wird mir die ein oder andere Idee kommen die ich erstmal selber bauen kann bis ich Dich wieder bräuchte
Ich wünsch schonmal ein schönes Wochenende