Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Text to Speach

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • henfri
    hat ein Thema erstellt Alexa Text to Speach

    Alexa Text to Speach

    Moin,

    ich würde gerne die Alexa von Sh.py fernsteuern.
    Dafür habe ich folgendes Paket gefunden:
    https://github.com/ewenchou/alexa-agent

    Code:
     alexa.say("Hello World")  
     alexa.ask(["What is today's date", "How is the weather in San Francisco"])
    Damit müsste dann auch "Spiele WDR 5" funktionieren.
    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.

  • psilo
    antwortet
    Dann erstmal gute Erholung

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Bin ebenfalls in Urlaub
    hab die Kommunikation weitestgehend auf requests umgebaut. Prüfe ich wenn ich zurück bin nochmal

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Inzwischen sind die Devices wieder befüllt.. vielleicht wieder Session-Konflikt, nachdem ich parallel meine Urlaubsfotos in die Amazon Cloud gebackuppt habe? Hätte aber vermutet, dass mehrere Cookies / Account zulässig sein sollten? Müsste doch auch gleichzeitig in versch. Browsern online sein dürfen?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Du siehst, Du darfst einfach nicht in Urlaub gehen

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Nachdem ich jetzt 2 Wochen in Urlaub war, liefert mir das Plugin nach jedem Neustart:

    2019-06-13 16:12:28 ERROR plugins.alexarc4shng Error while checking login state: Expecting value: line 8 column 1 (char 7)
    2019-06-13 16:12:28 ERROR plugins.alexarc4shng Error while checking login state: Expecting value: line 8 column 1 (char 7)
    2019-06-13 16:12:38 ERROR plugins.alexarc4shng Error while checking login state: Expecting value: line 8 column 1 (char 7)
    2019-06-13 16:12:38 ERROR plugins.alexarc4shng Error while checking login state: Expecting value: line 8 column 1 (char 7)

    Die Liste der Devices im WebIf bleibt leer?!

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Das sollte schon via rest api des admin ifs gehen und gemacht werden. Ob wir das aber schon dokumentiert haben?!

    ich bin nicht sicher, ob ein webif eines plugins laufen kann, die admin oberfläche aber nicht. Das gäbe ggf einen konflikt

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo,

    ich hab mir das mit dem encoden von den credentials nochmal durch den Kopf gehen lassen. (Nachdem ich die Doku für encoden in python ergänzt habe).
    Ist doch alles gar nicht notwendig, wir haben doch ein Web-Interface fürs Plugin !
    Ich würde das dort einbauen, soll heissen - Eingabefeld für die Credentials, dann via button ans plugin schicken und encodieren, Rückgabe der encodierten
    crendentials.
    Ich denke soweit, so gut.
    Nächste Idee - das könnte man ja auch direkt in der ./etc/plugin.yaml speichern (das admin-Interface kann das ja auch) - eventuell mit Check-Box (store credentials permanent) im Web-Interface

    Msinn Frage :
    Gibt es eine "public methode" im Core um Einträge in der ./etc/plugin.yaml zu verändern ? Sprich einen Wert an der entsprechenden Stelle einzutragen.
    Falls nicht würde etwas dagegen sprechen eine entsprechende Funktion im Plugin einzubauen ?

    Gruss Andre

    Einen Kommentar schreiben:


  • psilo
    antwortet
    AndreK soweit hatte ich im code nicht gelesen .. ist nicht böse gemeint wenn ich hier feedback gebe, ich hoffe das kommt nicht falsch an.. wir versuchen halt auch nur so gut es geht zu standardisieren, weil sie nur so a) manche features im core umsetzen lassen. weiterhin sehe ich das feedback auch bezogen auf wartbarkeit der plugins. ich habe damals bei enigma2 und avm auch noch einige mal geflucht, bin aber froh nochmal umstrukturiert zu haben.

    wie Msinn schon sagte, immer zuerst im smartplugin schauen, ob es eine methode schon gibt.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hab ich bemerkt (war ja nur 20 Minuten Core-debuggind), deshalb hatte ich den präfix selber hinzugefügt. (Hat jeder sicher bemerkt, dass es trotzedem unter den plugin-schedulern im Web-IF war )
    Egal, passiert mir nicht mehr

    Habs geändert (auf self.scheduler_add() ), war ja nicht viel, und hochgeladen.


    Gruss Andre

    Einen Kommentar schreiben:


  • psilo
    antwortet
    scheduler_add wrappt die methoden aus der scheduler lib, damit an den namen des schedulers ein smartplugin spezifischer präfix kommt

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    scheduler_add wie in der Plugin Doku beschrieben (siehe auch Methoden der SmartPlugin Klasse) ist richtig. So ist das ja auch im sample_plugin (unter /dev/sample_plugin) beschrieben.

    Das "Write a Plugin in 5 Minutes" ist grob überholungsbedürftig. Ich habe vor dem Release die gröbsten veralteten Stellen in der Doku beseitigt, die Seite ist aber immer noch in Teilen veraltet.

    Im Zweifelsfall immer der Doku zur Klasse SmartPlugin (https://www.smarthomeng.de/developer...artplugin.html) folgen. Diese Beschreibung wird aktuell aus dem Sourcecode generiert.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    psilo

    Das mit dem scheduler hab ich hin und her überlegt was richtig ist, hier ist die Doku, aus meiner Sicht, nicht ganz eindeutig.
    Hier wird das so beschrieben, ich habe mir etliche plugins angesehen, dort haben alle die oben erwähnte methode "scheduler_add" implementiert.

    Nach deinem Hinweis mit lib.item war ich der Meinung lib.scheduler zu nutzen wäre der richtige Weg. Siehe auch hier.

    Was nun ist "richtig" ? (Ohne Wertung)

    Ich glaube es ist an dieser Stelle recht schwer den aktuellen "conventions" zu folgen, daher mein Vorschlag eine schlanke guidline für plugins
    mit Verweis auf die Doku zu machen. (war eine PN)

    Zum Thema redundanter Code :
    Es sieht zwar auf den ersten Blick aus als wäre alles redundant, ist es aber nicht, ein Teil ist "curl GET" ein Teil ist "curl POST". OK, die zwei Fallunterscheidungen
    kann man sicher zusammenfassen, aber ...

    Ich bin immer noch am Testen ob man das nicht mittels "requests" abhandeln kann, bin zwar ein Stück weiter, ist aber noch nicht final.
    Ich würde dann die ganze Kommunikation nochmal umbauen.

    Wenn sonst alles läuft, ist ja alles gut, sicherlich gibt es noch Optimierungspotential - das Thema ist ja nicht in 100 code-zeilen erledigt.

    Gruss Andre

    Einen Kommentar schreiben:


  • psilo
    antwortet
    neben der sache mit den smartplugin-schedulern von oben:

    ich glaube im plugin ist noch einiges an redundantem code, den man sicher zusammenfassen kann. bspw die ganzen "myCurl.setopt"s. wäre sicher vor einem PR nicht schlecht, macht alles wartbarer.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    nach dem erneuten restart ist auch der error weg... vermutlich weil das cookie da noch invalid war.

    Einen Kommentar schreiben:

Lädt...
X