Hallo,
meine kleine Steuerung mit einem Tiny4313 möchte ich gern
sprachbedienen, die serielle Schnittstelle wäre noch frei. Wie bring ich
Alexa (Echo.dot) jetzt dazu, meinem Controller Gesprochenes als
auswertbare ASCII Textstrings zu liefern?
Timmo H. schrieb:> via philips hue Emulation bzw wemo ist es eine sache> von 2 Minuten
Klingt interessant, das Wie ist mir erstmal egal wenn ich nur seriell an
die Daten komme. Wenn es so einfach ist kannst Du mir sicher sagen was
in den 2 Minuten dafür zu tun ist?
Roland schrieb:>> Klingt interessant, das Wie ist mir erstmal egal wenn ich nur seriell an> die Daten komme. Wenn es so einfach ist kannst Du mir sicher sagen was> in den 2 Minuten dafür zu tun ist?
Lernen, lernen, nochmals lernen...
Old-Papa
Hannes J. schrieb:> Statt Stasi-Alexa Snips und einen Pi nehmen?
Ich suche hier ausdrücklich keine alternative Hardware. Also nochmal:
Wie ist das Problem im Eröffnungs-Posting in 2 Minuten zu lösen?
Roland schrieb:> Hannes J. schrieb:>> Statt Stasi-Alexa Snips und einen Pi nehmen?>> Ich suche hier ausdrücklich keine alternative Hardware. Also nochmal:> Wie ist das Problem im Eröffnungs-Posting in 2 Minuten zu lösen?
Schrieb ich schon...
Old-Papa
Timmo H. schrieb:> Aber via philips hue Emulation bzw wemo ist es eine sache von 2 Minuten
Dort steht bereits im zweiten Post ein sinnvoller Ansatz. Der Echo-Dot
kann philips hue und wemo "bedienen". Jetzt brauchst Du "nur" in Deiner
Hardware einen Webserver, der eines der beiden Protokolle emuliert. Für
die Sonoff-Schalter aus Fernost gibt es dazu eine alternative
quelloffene Software (Tasmota), die genau das macht. Da könntest Du
einmal im Quelltext schauen, ob Dich das weiterbringt.
PS: Noch ein Nachtrag... Dass Dir die Alexa wirklich das "Gesprochene"
liefert, anstatt definierter Kommandos, das ist m.E. nicht ganz so
trivial...Dazu müsstest Du für Alexa wohl auch noch einen eigenen Skill
entwickeln...
Tom V. schrieb:> Dass Dir die Alexa wirklich das "Gesprochene"> liefert, anstatt definierter Kommandos, das ist m.E. nicht ganz so> trivial...
Genau darum gehts aber- und ob das geht oder nicht.
Denn daß via Alexa/Cloud Sprache in Texte übersetzt wird scheint ja
außer Frage zu stehen.
Wenn ich für meine kleine Steuerung noch irgendwelche größere Hardware
und Webserver bräuchte wo doch Alexa eigentlich alles schon liefern
könnte wär das ziemlich unattraktiv. Mit meinem laienhaften Verständnis
hätte ich mir vorgestellt, daß Alexa via irgendeines Skills den Klartext
ins lokale Netzwerk schickt aus dem er dann irgendwie herausgefischt
werden kann. Zum Beispiel mit einem kleinen XPort, falls den wer kennt?!
Schonmal geschaut wie Alexa funktioniert? Es wird die Sprache in die
Cloud geschickt und von dort kommt auch das Resultat. Und das nicht
einfach nur als ASCII String. Da benötigt es schon etwas mehr Power als
nur ein tiny. Rpi zB.
Martin
Und um das sicher zu machen wird noch https benutzt und du brauchst eine
Domain und ein Zertifikat. Oder man nutzt eine Servicecloud von ioBroker
oder NodeRed, dann würde das auch erstmal über einen RPi laufen.
Man nehme einen ESP8266 oder ESP32 und bringe dort eben jene Philips
Hue/Tasmota/Wemos/... Firmware zum laufen und bringe ihr bei, aus den
ankommenden Befehlen etwas zu basteln, dass dann als Befehl über UART an
den Tiny geht.
Das ist in etwa so, als würde man in einen Golf einen Porschemotor
einbauen und mit angezogener Handbremse fahren.
Nimm statt deines tinys einen ESP8266 o.Ä. für 3€
Der hat WLAN und genug power für alles was du brauchst an board...
Dein Tiny kann einfach nicht das, was du erreichen willst und dagegen zu
diskutieren wird nichts bringen.
Hallo Roland,
hier https://youtu.be/dlH6I8Ycs6A kannst du dir mal anschauen wie du
einen Skill einrichtest, und was da dann für Daten bekommst. Er macht
die Auswertung zwar auf einem PI mit NodeRed, an den JSON-Daten die von
Amazon bekommst ändert das aber nichts. Mit nem ESP könntest du dir die
Daten seriell ausgeben. Aber wie schon vorgeschlagen kannst du den
ATTiny dann auch gleich durch den ESP ersetzen.
Ohne zusätzliche Netzwerkfähige Hardware wird es jedenfalls nicht
gehen.
Sascha
Roland schrieb:> Old P. schrieb:>> Schrieb ich schon...>> Ich würde mal sagen Du hast Null Ahnung.
Das wird so sein, doch wenn ich so ein Problem angehen würde, dann würde
ich mich hinsetzen und das lernen.
> Die Aufgabe an sich ist doch lächerlich einfach> hätte ich gemeint...
Hättest Du gemeint. Warum hast Du dann gefragt?
Old-Papa
Rene schrieb:> Dein Tiny kann einfach nicht das, was du erreichen willst und dagegen zu> diskutieren wird nichts bringen.
Oh, der Tiny ist schon dazu in der Lage, ASCII Text auszuwerten! Genau
das will ich: Alexa auch mit einfachster Hardware nutzen!
Sascha W. schrieb:> an den JSON-Daten die von Amazon bekommst> ändert das aber nichts.
Wenn Alexa Antworten in natürlicher Aussprache gibt werden das sicher
weder JSON Daten noch ganze Soundfiles sein. Vermute ich mal. Der reine
Sprachtext liegt bei Amazon definitiv vor- es kann doch wohl kein
Problem sein an die paar Textzeichen heranzukommen!
> Aber wie schon vorgeschlagen kannst du den ATTiny dann auch> gleich durch den ESP ersetzen.
Genau das war nicht Sinn der Sache.
> Ohne zusätzliche Netzwerkfähige Hardware wird es jedenfalls nicht gehen.
Das mag gut sein. Mindestens einen LAN/Seriell Wandler wirds schon
brauchen. Mehr aber sollte diese an und für sich einfache Aufgabe auch
nicht verdienen! So ein simples Textinterface wäre doch für viele Zwecke
interessant weil simpel verwendbar...
Old P. schrieb:> Roland schrieb:>> Old P. schrieb:>>> Schrieb ich schon...>>>> Ich würde mal sagen Du hast Null Ahnung.>> Das wird so sein, doch wenn ich so ein Problem angehen würde, dann würde> ich mich hinsetzen und das lernen.>>> Die Aufgabe an sich ist doch lächerlich einfach>> hätte ich gemeint...>> Hättest Du gemeint. Warum hast Du dann gefragt?>> Old-Papa
Sorry, dass ich mich einmische.
Aber dann wäre jedes Forum obsolet.
Ich finde den Weg, hier nach Erläuterungen zu suchen, sehr sinnvoll.
Dir ist wohl langweilig oder möchtest du nur etwas Aufmerksamkeit?
Roland schrieb:> Oh, der Tiny ist schon dazu in der Lage, ASCII Text auszuwerten! Genau> das will ich: Alexa auch mit einfachster Hardware nutzen!
Dir fehlt aber eine kompatible Schnittstelle zwischen Alexa und dem
ATtiny. Oder kennst du einen Anbieter, der dir (ohne zusätzliche
Elektronik) eine UART Schnittstelle ins Haus legt, die zu Alexa führt?
> So ein simples Textinterface wäre doch für viele Zwecke> interessant weil simpel verwendbar...
Gehen wir mal davon aus, dass ein weiteres Gerät/Modul als
Netzwerk-Interface dazwischen geschaltet wird. Dann stellt sich noch die
Frage, ob Alexa tatsächlich über ein "so simples" Text-Interface
gesteuert wird. Wenn ja, dann würde ich mir sorgen um den Datenschutz
machen. Wenn es aber gut abgesichert und verschlüsselt ist, dann stehen
die Chancen hoch, dass handelsübliche WLAN Adapter (den ESP-01 nenne ich
mal als simpelsten Vertreter) dazu nicht genügen.
Ich würde es gar nicht erst versuchen. Früher oder später kommen weitere
Anforderungen dazu, die nach einem richtigen Linux System rufen. Ergo
geht es wohl eher in Richtung Raspberry Pi (oder ähnlich). Den kannst du
direkt mit deinem ATtiny verbinden.
Oder den Raspi anstelle mit Schieberegistern/Portexpandern erweitern,
dann hast du nicht zwei Baustellen, die du programmieren musst.
Stefanus F. schrieb:> Dir fehlt aber eine kompatible Schnittstelle zwischen Alexa und dem> ATtiny. Oder kennst du einen Anbieter, der dir (ohne zusätzliche> Elektronik) eine UART Schnittstelle ins Haus legt, die zu Alexa führt?
Das Echo.Dot hat offensichtlich keine UART Schnittstelle. Soviel scheint
klar. Deshalb sprach ich ja auch von der Notwendigkeit eines LAN/Seriell
Wandlers. So denn Alexa transkribierten Text erhalten kann.
Stefanus F. schrieb:> Ich würde es gar nicht erst versuchen. Früher oder später kommen weitere> Anforderungen dazu
Nein die kommen nicht dazu und ich will das nicht erst aufwändig mit
einem Raspi o. ä. samt zugehörigem IT Studium ermöglicht wissen. Zu
versuchen gibt es derzeit nichts, deshalb frag ich ja. Nach einer
angemessen einfachen Lösung!
Du hast keine Ahnung, postulierst aber Forderungen bzgl. der Umsetzung
die technisch nicht im geringsten Sinn machen. Jeder Einwand und Versuch
dir eine Lösung sowie die Anforderungen zu erläutern werden direkt mit
dem sturen Wiederholen der ursprünglichen Forderung und wie
einfach/praktisch das doch ist beantwortet. Bist du ein Manager?
Roland schrieb:> Nein die kommen nicht dazu und ich will das nicht erst aufwändig mit> einem Raspi o. ä. samt zugehörigem IT Studium ermöglicht wissen.
Wenn du denkst, dass Netzwerk-Programmierung auf einem so kleinen
Mikrocontroller einfacher sei, als auf einem Raspberry Pi, dann lasse
Dir von einem in beiden Bereichen erfahrenen Softwareentwickler eins
sagen: Deine Annahme ist völlig falsch. Falscher geht es gar nicht.
Falls Du mir nicht glaubst, schau Dir dieses Projekt an:
http://stefanfrings.de/net_io/index.html
Wenn du den ganzen Quelltext nachvollziehen kannst, dann bist du doch
fit, es mal selbst zu versuchen.
Narfie schrieb:> Du hast keine Ahnung, postulierst aber Forderungen bzgl. der> Umsetzung die technisch nicht im geringsten Sinn machen.
Nun die Einschätzung scheint mir eher dafür zu sprechen daß Du keine
Ahnung hast.
Stefanus F. schrieb:> Wenn du denkst, dass Netzwerk-Programmierung auf einem so kleinen> Mikrocontroller einfacher sei,
Wer spricht hier von Netzwerk-Programmierung für einen kleinen
Controller? Der soll nur ein paar Bytes Text verarbeiten die ja ohnehin
bereits fertig in der Amazon-Cloud vorliegen!
Ansonsten helfen hier prahlerische Zurechtweisungen Null komma nichts
weiter.
Kenntnis in der Sache hatte bislang hier leider keiner.
Roland schrieb:> Wer spricht hier von Netzwerk-Programmierung für einen kleinen> Controller? Der soll nur ein paar Bytes Text verarbeiten die ja ohnehin> bereits fertig in der Amazon-Cloud vorliegen!
Und wie kommt er ohne Netzwerkanbindung an die Bytes?
Zumal ich mir sicher bin, dass die Befehle nicht einfach irgendwo
griffbereit in der Cloud rumwuseln und nur darauf warten, von einem
ATTiny abgerufen zu werden.
Mit einem ENC- oder WizNet-Modul ist es sicherlich möglich, den
Controller ans Netzwerk zu bekommen, aber ob die Speicher ausreichen, um
etwas Alexa-Kompatibles daruzstellen und zu parsen?
Zumal ja auch noch Platz für die eigentliche Anwendung sein muss...
Kastanie schrieb:>>>> Die Aufgabe an sich ist doch lächerlich einfach>>> hätte ich gemeint...>>>> Hättest Du gemeint. Warum hast Du dann gefragt?>>>> Old-Papa>>> Sorry, dass ich mich einmische.> Aber dann wäre jedes Forum obsolet.>> Ich finde den Weg, hier nach Erläuterungen zu suchen, sehr sinnvoll.
Das ja, doch wenn man ihm was vorschlägt (nicht ich) und er meint, das
wäre ja alles lächerlich einfach, warum sucht er dann Erläuterungen? Und
sucht er überhaupt?
Old-Papa
Roland schrieb:> Der soll nur ein paar Bytes Text verarbeiten die ja ohnehin> bereits fertig in der Amazon-Cloud vorliegen!
Wo kommen die denn her, wenn nicht übers Netzwerk?
Man muss zwar kein IT Studium machen, um Netzwerke zu verstehen und
Netzwerkdienste zu programmieren. Aber es ist andererseits schon mehr,
als ein Kinderspiel.
Old P. schrieb:> Das ja, doch wenn man ihm was vorschlägt (nicht ich) und er meint, das> wäre ja alles lächerlich einfach, warum sucht er dann Erläuterungen? Und> sucht er überhaupt?>> Old-Papa
Das stimmt wiederum!
Sebastian R. schrieb:> Und wie kommt er ohne Netzwerkanbindung an die Bytes?
Das ist hier die zentrale Frage.
Alexa sitzt an der Quelle, gibt die Daten aber nicht leichtfertig her.
> Zumal ich mir sicher bin, dass die Befehle nicht einfach irgendwo> griffbereit in der Cloud rumwuseln
Da bin ich mir schon sicher daß es abrufbar wäre.
Wenn man nur will. Ein bischen Googlen fördert nämlich zutage, daß
Amazon durchaus einen Speech to Text Transkriptionsservice anbietet,
freilich gegen Bezahlung. Allerdings scheint mir der, von der Warte
meines Tinys aus, nicht minder kompliziert nutzbar.
Es ist schon ärgerlich: Im Grunde ist alles für die Aufgabe vorhanden
nur die Alexa Software mag den Klartext nicht dem lokalen Netzwerk
offenbaren.
Mir scheint, du überschätzt die lokale Intelligenz der Alexas. Alexa
kann die Transkription des erkannten Textes nicht im lokalen Netz zur
Verfügung stellen weil sie sie nicht hat. Alexa sendet den gesprochenen
Text als Soundfile an den Amazon Web Service (AWS). Die gesamte
Spracherkennung nebst Transkription sowie Auswertung übernimmt dann der
AWS. Es gibt keine Rückübermittlung des transkribierten Textes an die
Alexa, von der die Anfrage gekommen ist.
In der AWS Cloud bekommt man nach Auswertung ein JSON (wie das aussieht,
entscheidet sich u.A. durch das utterancefile, die ebenfalls JSON sind -
unter developer.amazon.com findet man alles, was man dazu braucht. Ein
Skill ist sehr einfach umzusetzen.). Ich z.B. mache aus der AWS heraus
ein HTTP Request nach Hause, wo ich das JSON dann einfach per POST
hinschicke, was ich hier dann auswerte und die Antwort generiere
(ebenfalls JSON) - so kann Alexa auch was sagen.
Ich habe meinen Skill nun seit bestimmt 2 Jahren im Testmodus laufen
(nur fuer mich sichtbar - es kostet auch nichts, bei den paar Requests.)
In AWS habe ich die paar Brocken JSON senden/empfangen/parsen mit ein
paar Zeilen Python erschlagen.
eine kleine Frage an die Moderatoren:
sollte man nicht extra für solche Fragen einen neuen Forumszweig bilden?
So im Sinne von:
ist mir doch egal wer mich überwacht, ausspioniert und sämtliche Daten
in die Welt hinausposaunt,
zB kurz und knapp: „mir_doch_egal”
?
Peter N. schrieb:> So im Sinne von:> ist mir doch egal wer mich überwacht, ausspioniert und sämtliche Daten> in die Welt hinausposaunt,
Wer sich das über alle Maßen fest einbildet hat immer noch die
Möglichkeit, das Teil aus der privaten Umgebung fernzuhalten, stimmts?
Leider mögen sich dieselben Leute aber nicht vom Smartphone trennen-
meist am Mann und immer abhörbereit... Schon etwas inkonsequent,
stimmts?
@devzero: Das muß ich mir mal genauer anschauen. Endlich was
Substanzielles hier. Danke.
Roland schrieb:> @devzero: Das muß ich mir mal genauer anschauen. Endlich was> Substanzielles hier. Danke.>> Sascha W. schrieb:>>> an den JSON-Daten die von Amazon bekommst>>> ändert das aber nichts.>>>> Wenn Alexa Antworten in natürlicher Aussprache gibt werden das sicher>> weder JSON Daten noch ganze Soundfiles sein. Vermute ich mal. Der reine>> Sprachtext liegt bei Amazon definitiv vor- es kann doch wohl kein>> Problem sein an die paar Textzeichen heranzukommen!
Ach jetzt auf einmal
Sascha
Sascha W. schrieb:> Ach jetzt auf einmal
So richtig befriedigend ist das alles nicht, den gewünschten Klartext
zur einfachstmöglichen Auswertung erhält man so nicht. Es läuft darauf
hinaus, die konkrete Kommando-Entscheidung basierend auf der
Spracheingabe bereits in der AWS Cloud treffen zu müssen und die
generierte Antwort dann zuhause quasi nur noch dumm auszuführen. Das mag
für viele Fälle ausreichend sein aber es ist zur Spracherweiterung
eigener, schwachbrüstiger Elektronik eben auch wahnsinnig unflexibel und
umständlich, samt zusätzlich nötiger AWS Programmierung und JSON
Implementierung.
Ein Skill müsste den Klartext schicken können, das scheint aber bewusst
nicht gewünscht zu sein.
Roland schrieb:> Sascha W. schrieb:>> Ach jetzt auf einmal>> So richtig befriedigend ist das alles nicht, den gewünschten Klartext> zur einfachstmöglichen Auswertung erhält man so nicht. Es läuft darauf> hinaus, die konkrete Kommando-Entscheidung basierend auf der> Spracheingabe bereits in der AWS Cloud treffen zu müssen und die> generierte Antwort dann zuhause quasi nur noch dumm auszuführen.
Das kann man sehen wie man will, für schwachbrüstige Endgeräte würde ich
es durchaus als Vorteil sehen. Als Nachteil sehe ich nur das man
Änderungen/Erweiterungen immer an 2 Stellen machen muss.
> Ein Skill müsste den Klartext schicken können, das scheint aber bewusst> nicht gewünscht zu sein.
Wurde nicht erst kürzlich darüber berichtet man können sich das alles
bei Amazon ansehen wa s Alexa so aufgeschnappt hat? Könntest du ja dann
auf der Website auslesen.
Sascha
Sasche hat den Trick erkannt.
Mit MZCachwView findet man Dateien im Browser-Cache
https://alexa.amazon.de/api/cards/... zum Beispiel mit dem folgenden
Inhalt:
Damit kann man als Hobbyprogrammierer an einer relativ übersichtlichen
Aufgabe arbeiten.
Eine weiter Möglichkeit ist der Skill E-Mail Notiz. In dieser findet man
die gesprochen und gesendeten Worte (Steuerbefehle) wieder und muss sie
ähnlich extrahieren. Es fehlt dann nur die Rückmeldung über den
IST-Zustand (ON oder OFF).
Claus