Hallo,
die Loginseite anzuzeigen wäre sicher eine gute Lösung - aber kriegt man den Cookie dann auf den Rechner, der sh.py ausführt 'rüber?
Ich denke, es wäre vorerst auch ok, wenn man den Cookie manuell rüber kopiert.
Gruß,
Hendrik
Ankündigung
Einklappen
Keine Ankündigung bisher.
Alexa Text to Speech
Einklappen
X
-
Hallo Hendrik,
authentifizerung über das Cookie, keine Benutzerdaten erforderlich, eventuell erneuern des Cookies nach gewisser Zeit (manuell oder wahlweise
mit Credentials automatisch) , kann man eventl. im WebInterface (was es noch nicht gibt) anzeigen wie lange noch gültig.
Die machen das alle indem Sie den Login-WebSite automatisch bedienen. Problem ist hier immer, das eventuell eine Captcha zurückkommt. Dieses
kann nicht automatisch bestätigt werden (Grafik mit Text zum eingeben) :-(
Grundsätzlich könnte man sicherlich auch ein User-Interface im Backend anzeigen (... mal so aus der Hüfte geschossen, nicht zu Ende gedacht)
Wie siehst Du das ?
Gruss Andre
Einen Kommentar schreiben:
-
Hallo Andre,
das macht Sinn für mich.
Ich hatte es nicht so interpretiert, dass die Alexa sich selbst das Kommando vorliest. Aber ich habe keinerlei Indizien dafür oder dagegen.
Zur zweifaktor Authentifizierung (2FA): Amazon unterstützt ja -für den normalen Amazon-Login- 2FA. Vom OpenHab Binding wird diese nicht unterstützt:
Ich denke, das liegt daran, dass das Openhab Binding kein User-Interface von Amazon zeigen kann/will, in dem man den zweiten Faktor eingibt.- Create an 'Amazon Account' thing
- Configure your credentials in the account thing (2 factor authentication is not supported!)
Aber dir schwebt vor, dass man den Login im Browser macht und den Cookie zu sh.py kopiert? Dann hätte man das Problem ja nicht.
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Hallo Hendrik,
aus meiner Sicht ist das wie folgt:
die Authentifizierung spielt nicht wirklich eine Rolle, es wird die der Web-Session genutzt, das hat nichts mit den Dev-Accounts zu tun.
(Vielleicht verstehe ich Deine Bedenken an der Stelle auch nicht, was meinst Du mit 2-Faktor-Auth, bzw. an welcher Stelle ?)
Es wird via HTTPS kommuniziert. Wenn man kein Automatisches update des Cookies will benötigt keiner die Zugangsdaten)
Ich habe mich mit "angemeldet bleiben" angemeldet und dann den Cookie weggesichert -> Ablaufdatum des Cookies unbegrenzt.
Hier gibt es nicht Besseres (hab zumindest nichts gefunden)
Wenn die API für den Browser/die Alexa-App geändert wird, ist das wie immer, der Developer muss nachziehen (siehe Payload V2/V3)
Die offizielle API gibt das gar nicht her. Ich denke die wollen den Remote-Control der Echo's usw. gar nicht.
Das mit natürlicher Sprache senden wäre eine Option (offizielle API). Ich glaube aber das wird ziemlich komisch wenn zuerst "vorgelesen" wird "Alexa mach das Licht aus",
dann macht "Alexa" -> smartHomeNG das Licht aus und dann bestätigt Alexa ihren selbst angeforderte Aufforderung mit "OK".
Ich stelle mir das ziemlich gruselig vor
Nachtrag :Ich bin auch gar nicht sicher (habs nich probiert) ob Alexa auf sich selbst hört während Sie spricht !
Ich denke/glaube wenn das grundsätzlich auf dem Weg von den "Anderen" umgesetzt wird (in my point of view the best/only way) das es in Zukunft Anpassungen geben wird. Diese sollten aber überschaubar sein. (Auch die API entwickelt sich weiter)
Egal wie, man könnte bei den "Anderen" Etliches abschauen, einen Teil müsste man sicherlich selbst noch erforschen, wenn es API-Änderungen gibt
sind alle im selben/gleichen Boot. Da die Änderungen dann alle betreffen wird es hier auch schnell Anpassungen geben.
Fazit : Eine API mit direktem Zugriff wäre mir auch am Liebsten. Gibt es nach Kenntnisstand heute aber nicht, also Pest oder Cholera, dann würde ich die Nutzung
der Web-API (mit allen Nachteilen - Änderungen - CookieLogin) bevorzugen (großes Boot, viele Mitspieler)
Gruss Andre
Einen Kommentar schreiben:
-
Hallo Andre,
toll, dass du dir das angesehen hast. Danke!
Beim nutzen der "Web-Browser-Api" habe ich zwei Sorgen:
1) Funktioniert das, wenn man bei Amazon 2-Faktor-Auth verwendet?
2) Wenn die Browser-App geändert wird, funktioniert die Schnittstelle nicht mehr.
Bei der offiziellen API habe ich die zwei Sorgen:
1) komplizierte Einrichtung (könnte aber die Gleiche sein, wie für das existierende Plugin)
2) ich habe bisher nur gefunden, dass man ein Kommando in natürlicher Sprache an die Alexa senden kann (siehe Link oben).
Ist also beides nicht ganz ideal. Was denkst du?
Gruß,
Hendrik
Einen Kommentar schreiben:
-
Hallo henfri ,
ich habe das mal soweit geprüft. Das funktioniert auch aus Python heraus.
Es werden die Befehle die über die Alexa-App oder ein Webinterface gesendet werden nachgestellt. Echtes TTS funktioniert auch.
Es wird kein AVS benötigt.
SSML wird anscheinend ebenfalls unterstützt, wie das genau funktioniert muss noch herausgefunden werden.
Im Moment verwende ich dafür "pycurl" mit normalen HTTP-Requests hatte es nicht funktioniert. (Werd ich aber nochmal versuchen,
da ich jetzt verstanden habe wies funktioniert)
Das einloggen funktioniert aktuell wie bei den anderen mittels des Cookies. Eine andere Möglichkeit habe ich bisher nicht gefunden.
Es ist von Seiten Amazon anscheinend nicht vorgesehen die API via Dev-Account zugänglich zu machen. (Falls einer eine Möglichkeit kennt gerne melden).
Ich würde das dann vielleicht doch im Alexa4P3-Plugin einbauen da hier schon viel an Substanz da ist welche ich in einem zusätzlichen Plugin erst herstellen
müsste. (Überleg ich mir nochmal)
Falls Du hier gerne selber was machen möchtest stelle ich Dir gerne meine bisherigen Erkenntnisse zur Verfügung.
Ich würde das in der Item-Konfiguration in etwa so vorsehen (Vorschlag zur Diskussion)
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: speak:<Dein Text>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: speak:<Dein Text>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: Activate:<Dein Radiosender>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: Deactivate:<Dein Radiosender>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: Inc_Volume:<Step>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: Dec_Volume:<Step>"
alexa_rc_command : "<alexa-gerate_name>:<on_item_value>: Set_Volume:<Step>"
Man könnte dann mit einem Taster, der USZU oder was auch immer das Echo mit Events triggern.
Ist Multi-Room ein Thema ? (ansprechen mehrerer Geräte gleichzeitig) Dann müsste man eine Gruppendefinition vorsehen.
Ideen was man alles machen kann gibts hier
Bleibt ein spannendes Thema
Gruss Andre
Einen Kommentar schreiben:
-
Hallo henfri ,
ich schau mir das mal an, ich denke das könnten wir als Plugin realisieren.
Ich würde das aber als seperates Plugin sehen. Bei zu vielen Baustellen im Alexa4P3-Plugin wird das
nie release fähig. (Bin noch mit dem Kamera-Proxy zugange damit man private Cams aus dem LAN streamen kann -
das wird auch seperates Plugin).
Wie stellst du dir das vor ?
Szene "Kochen" wird via Taster aktiviert -> Alexa meldet "Die Szene Kochen wurde aktiviert"
Das Licht im OG der Garage wird eingeschalten -> Alexa meldet "Oh Mann, jetzt hat schon wieder einer ausversehen das Licht in der Garage oben eingeschalten"
(Das wäre mein UseCase)
Gruss Andre
Einen Kommentar schreiben:
-
Alexa Text to Speech
Moin,
ich würde gerne die Alexa von Sh.py fernsteuern.
Dafür habe ich folgendes Paket gefunden:
https://github.com/ewenchou/alexa-agent
Damit müsste dann auch "Spiele WDR 5" funktionieren.Code:alexa.say("Hello World") alexa.ask(["What is today's date", "How is the weather in San Francisco"])
Allerdings brauch alexa-agent das Paket
https://github.com/ewenchou/alexa-client
Dabei wirkt die Einrichtung ähnlich kompliziert wie die vom sh.py Plugin.
Da kommt bei mir die Frage, ob es Synergien zwischen den beiden Anmeldungen gibt? Kann man die Einrichtung abkürzen, wenn man schon das sh.py Plugin installiert hat? Wenn ja, würde es vielleicht sogar Sinn machen, die o.g. Funktionalität im existierenden sh.py Plugin zu integrieren?
Allerdings funktioniert das dann über den "Audio-Kanal" von Alexa. D.h. Alexa muss erstmal das Kommando von natürlicher Sprache übersetzen. Eigentlich ist das garnicht das, was ich will. Dieses Skript kommt meinem Wunsch viel näher:
https://blog.loetzimmer.de/2017/10/a...hell-echo.html
Dieses scheint direkt mit Alexa zu interagieren, indem es echte ("IT") Kommandos an Alexa schickt - statt natürlicher Sprache. Das halte ich für robuster. Ich habe aber bisher keine Implementierung ähnlich dieser in Python gefunden.
Kennt jemand etwas?
Usecases wären bei mir Szenen: Morgens Musik oder Wetter ansagen z.B.
Gruß,
Hendrik
Zuletzt geändert von henfri; 07.03.2019, 07:48.Stichworte: -


Einen Kommentar schreiben: