Ankündigung

Einklappen
Keine Ankündigung bisher.

Alexa Text to Speech

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

  • psilo
    antwortet
    AndreK mit welcher version von core/backend bist du denn unterwegs? bin gar nicht sicher ob das feature schon im letzten release drin war, aber glaube schon...

    jetzt mit dem admin interface kommt es aber sowieso nochmal überarbeitet..

    du musst in editor sh. eingeben, dann sollten vorschläge "nach unten" ausklappen. (items und plugin api)

    ich glaube die plugin api die aus der plugin.yaml ausgelesen wird, geht aber wirklich erst auf dem develop.. früher hatte ich das via reflection ermittelt

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo psilo,

    neue Version ist hochgeladen. IO = In Ordnung. Das mit Gross/Klein ist nur für mich wegen der Lesbarkeit, geht irgendwie automatisch.
    Da werd ich mich wohl umorientieren müssen ;-( - (siehe oben)
    Vor einem PR im Develop würde ich das noch anpassen.

    Ich hab Deinen Vorschlag "plugin_functions" eingebaut, denoch wird im Logik-Editor nichts vorgeschlagen.
    Wo liegt hier das Problem, bitte schau da noch mal drüber.

    Ich habe die requirements.txt für pycurl ergänzt. Bitte schau da auch nochmal drüber
    Danke

    Gruss Andre

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Klar, aber die Kamele wandern auch durch die Javascript Namenskonventionen

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Msinn ich meinte schon richtiges Java und nicht Javascript

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    camelCase ist im Javascript der Ersatz (camelCase statt camel_case).

    Ich komme da im Moment im ständigen Wechsel zwischen Python und Javascript auch ab und zu in den Tüddel.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Msinn ich dachte ich hätte aber irgendwo auch was bzgl. aus java bekannter camelcase notation gefunden.. wie auch immer, erster buchstabe gross scheint mir so oder so falsch :>

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von psilo Beitrag anzeigen
    Was mich noch etwas verwundert bei Dir ist, dass Du Funktionsnamen immer mit einem Großbuchstaben beginnst. Ich hätte das wie in Java gemacht und nur Klassen mit Großbuchstaben beginnen lassen. Ist etwas ungewöhnlich wenn man das im Logikedtior jetzt via Autocomplete sieht..
    Gibt es in Python irgendwo eine Konvention die das so macht? Sonst vielleicht vor einem PR noch anpassen
    In den Python Namenskonventionen http://www.python.org/dev/peps/pep-0008/ ist vorgesehen, dass Funktionsnamen komplett in Lowercase sind mit Underlines als „Worttrenner“

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Update: jetzt raff ichs erst, in deinem Repo ist noch gar keine neue Version... dann warte ich erstmal

    Hier sammle ich über den Tag Feedback:

    - Die init Methode ist noch nicht auf neue Art und Weise implementiert. Mehr siehe https://www.smarthomeng.de/developer...n5minutes.html (def __init__(self, sh, *args, **kwargs)
    Zugriff auf Plugin Parameter dann wie in https://www.smarthomeng.de/developer...artplugin.html erklärt
    Zuletzt geändert von psilo; 01.05.2019, 06:46.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Hi,

    was ist ein IO? Input Output?

    Was mich noch etwas verwundert bei Dir ist, dass Du Funktionsnamen immer mit einem Großbuchstaben beginnst. Ich hätte das wie in Java gemacht und nur Klassen mit Großbuchstaben beginnen lassen. Ist etwas ungewöhnlich wenn man das im Logikedtior jetzt via Autocomplete sieht..
    Gibt es in Python irgendwo eine Konvention die das so macht? Sonst vielleicht vor einem PR noch anpassen

    Ich teste dann mal die aktuelle Version und gebe noch bis heute EOB Feedback.. Bin längere Zeit weg, da super Wetter hier.

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hallo psilo , hallo Juergen ,

    hab mir alles nochmal angesehen.


    sleep-Problem - ist behoben - keine Ahnung warum ich das übersehen habe (bzw. mein Python-Interpreter hat das so akzeptiert, wieso auch immer und der von Jürgen wohl auch)
    hard-coded paths - ist behoben
    API-Doku wie von psilo vorgeschlagen ist in der plugin.yaml eingearbeitet
    dynamische Inhalte - ist erledigt, es kann mit einem Platzhalter #item-Pfad/# der Wert des items in den Text integriert werden
    Vergleiche <= / >= / = / < / > sind eingebaut - in der config sieht das dann so aus :

    Code:
    alexa_cmd_01: "<20.0:EchoDotKueche:Text2Speech:Die Temperatur in der Kueche ist niedriger als 20 Grad Die Temperatur ist jetzt #test.testzimmer.temperature.actual/# Grad"
    Prüfung auf Umlaute und Sonderzeichen ist eingebaut.
    Bei Angabe eines Items in der plugin.yaml unter
    Code:
    Item2EnableAlexaRC: 'OG.Buero.Alexa'
    wird geprüft ob die Ansteuerung des Echos erlaubt ist.
    Das Item kann dann via USZU, Bewegungsmelder oder wie auch immer geschalten werden.

    Zur Info - Das Cookie sollte 6-8 Wochen halten, danach muss man manuell erneuern. Ein automatisches Einloggen mittels Amazon-User und Passwort bin ich noch am
    ausprogrammieren. In der plugin.yaml sind bereits Parameter für die Credentials vorgesehen, es funktioniert aber noch nicht.

    Ich muss jetzt noch eine Upload-Version herstellen und die Doku überarbeiten. Dann wirds hochgeladen. Ich geb dann nochmal eine kurze Info raus.
    Wenn psilo ein IO gibt stell ich das auch gerne im Develop bereit.

    Gruss Andre

    Einen Kommentar schreiben:


  • AndreK
    antwortet
    Hi Jungs,

    jetzt gebt ihr aber Gas. Das ist alles noch Alpha (hard-coded pathes usw.) Ich wollte Jürgen nur noch ein paar Brocken, was alles möglich ist, für den Stammtisch hinwerfen.
    Wenn das alles schon (fast) perfekt wäre gäbs einen PR fürs Develop.

    Aber ich sehe dass Ganze findet Interesse. Ich hab bereits einen weiteren Upload in Arbeit, wird aber noch bis Mittwoch abend dauern.
    Eventuell schafft es das Plugin in dann noch in Release.
    Dann können wir (shNG) auch SSML. (Many Thanks to jonofe )

    Gerne auch Hinweise hier im Forum, versuche ich zu berücksichtigen.

    Gruss

    Andre
    Zuletzt geändert von AndreK; 29.04.2019, 20:30.

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Wäre schön, wenn es zu solchen Funktionen ein Beispiel für C&P gäbe, damit sich nicht jeder den Kopf zerbrechen muss ;-)
    Evals, die etwas unter einer bestimmten Bedingung machen, geistern doch wie sand am Meer hier als Beispiele herum?! und danach nur den Pluginaufruf wie ich ihn oben nutze, müsste gehen!

    Das Plugin ist echt cool, aber fürs Release braucht es doch noch Feinschliff.. Ich habe recht viel an anderen Baustellen zu tun. Zudem kenne ich @andrek's pläne nicht.. ich könnte schon schauen, die flaws die ich noch sehe rauszubauen (konfiguration pfade, plugin.yaml, ggf mehr infos fürs README). Ich weiss auch garnicht inwieweit der Sourcecode ins Release dürfte.
    Zuletzt geändert von psilo; 29.04.2019, 18:36.

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Hallo Psilo,

    da habe ich heute noch drüber gesprochen: Eine Temperaturwarnung wie im Auto: Wenn Wert kleiner 2°, dann Sprachausgabe "Achtung Frostgefahr".
    Wäre schön, wenn es zu solchen Funktionen ein Beispiel für C&P gäbe, damit sich nicht jeder den Kopf zerbrechen muss ;-)

    Andre hat wohl auch noch eine Stummschaltung über Schaltuhr (UZSU) realisiert, schaun mer mal, was er noch schreibt.

    Gruß Jürgen

    Einen Kommentar schreiben:


  • psilo
    antwortet
    Jürgen wenn du das Plugin aus einer Logik aufrufst, oder evtl über ein EVAL, müsste mehr gehen.. siehe mein Beispiel oben Ich habe gerade meinen Sohn durch Alexa ins Bett geschickt -g-

    Sowas geht so halbwegs bspw:

    sh.alexarc4shng.SendCmdByCurl('Büro','Text2Speech' ,'Die Aussentemperatur ist %s Grad' %sh.eta_unit.temperature_outside.value())

    ich rege zudem diese Änderung an der plugin.yaml an - damit taucht das Plugin dann im Autocomplete des Logikeditors auf:
    Code:
    plugin_functions:
        # Definition of function interface of the plugin
    
        SendCmdByCurl:
            type: str
            description:
                de: "Sendet einen Befehl an Alexa."
                en: "Sends a command to Alexa."
            parameters:
                dvName:
                    type: str
                    description:
                        de: "Name des Alexa Devices."
                        en: "Name of Alexa device."
                cmdName:
                    type: str
                    description:
                        de: "Name des Befehls, z.b. Text2Speech."
                        en: "Name of command, e.g. Text2Speech."
                mValue:
                    type: str
                    description:
                        de: "Wert, der gesendet werden soll."
                        en: "Value to send."
    Zuletzt geändert von psilo; 29.04.2019, 18:29.

    Einen Kommentar schreiben:


  • Jürgen
    antwortet
    Hallo,

    keine Ahnung, Cookie hält seit 24 Stunden ;-)

    In der Doku hat Andre auch die Lautstärke als existing command, bei mir ist es nicht drin. In Foren ist erwähnt, dass man die gewünschte Lautstärke (1-6 oder 0-100%) dem Sprachtext voranstellen kann. Klappt aber im Testfenster zumindest nicht.
    Da würde ich gerne per Komando einen Default setzen, damit man die Sprachausgabe bei Bedarf in der Nacht auf Null setzen kann und die Texte nur Auf Wunsch ausgegeben werden.

    Ich habe auch das Problem, dass zwar Schaltzustände nur bei Wertänderung gesprochen werden, die = / 1 meiner Wetterstation für den Regenmelder aber als 1 Bit Wert 00 und 01 kommen und zyklisch wiederholt werden.

    Gruß Jürgen
    Zuletzt geändert von Jürgen; 29.04.2019, 18:24.

    Einen Kommentar schreiben:

Lädt...
X