Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin speech parser

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
    marcel0509
    Forums-Einsteiger

  • marcel0509
    antwortet
    Also ich sehe leider auch nicht den Anhang im Post 1, weder im IE, noch im Firefox, noch im Chrome.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Zitat von grisu911 Beitrag anzeigen
    Hallo, soweit funktioniert alles gut. Ein Licht lässt sich via Sprachsteuerung schalten. Im Log ist auch alles nachzuverfolgen, leider bekomme ich bei Tasker nur keine Rückantwort, die Variable %HTTPD bleibt leer. Tasker gibt auch einen Fehler zurück, siehe Anlage.
    Vielleicht hat hat ja einer eine Idee was ich falsch mache, habe Tasker so eingrichtet wie in der README.md.
    Gruß grisu911
    [ATTACH]n821656[/ATTACH]
    Hat sich das Problem bei Dir geklärt? Der Timeout deutet darauf hin, dass das Plugin keine Antwort sendet. Du kannst das Plugin im Browser testen, in dem du die IP mit dem Port in der Adresszeile eingibst und mit einem Slash getrennt den Befehl, z.B. so (%20 = Leerzeichen wird vom Browser automatisch eingesetzt):

    http://IP:2788/Licht%20Küche%20einschalten

    Da muss eine Antwort zurückkommen...

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Zitat von mknx Beitrag anzeigen
    Oder evtl. ein Fehler des neuen Forums?

    Ich kann es sehen und downloaden.
    Bei mir tritt das Problem mit Firefox auf, mit Chrome ist alles i.O.
    Also, die Datei ist vorhanden...

    Einen Kommentar schreiben:

  • callidomus
    Forums-Einsteiger

  • callidomus
    antwortet
    Hi,

    entweder Du bist blind oder warst nicht eingeloggt. Oder evtl. ein Fehler des neuen Forums?

    Ich kann es sehen und downloaden.

    Bis bald

    Marcus

    Einen Kommentar schreiben:

  • kingolli
    Forums-Einsteiger

  • kingolli
    antwortet
    Hallo!

    Bin ich blind oder ist der Anhang im ersten Post verschwunden?!

    Danke und Grüße
    David

    Einen Kommentar schreiben:

  • grisu911
    Forums-Einsteiger

  • grisu911
    antwortet
    Hallo, soweit funktioniert alles gut. Ein Licht lässt sich via Sprachsteuerung schalten. Im Log ist auch alles nachzuverfolgen, leider bekomme ich bei Tasker nur keine Rückantwort, die Variable %HTTPD bleibt leer. Tasker gibt auch einen Fehler zurück, siehe Anlage.
    Vielleicht hat hat ja einer eine Idee was ich falsch mache, habe Tasker so eingrichtet wie in der README.md.
    Gruß grisu911
    Fehler.png

    Einen Kommentar schreiben:

  • OsLee540i
    Forums-Einsteiger

  • OsLee540i
    antwortet
    Hallo,

    Dankeschön ich stand auf dem Schlauch.

    Ich hab natürlich die Liste so übernommen wie sie war und habe versucht über den Befehl die Zahlen zu korrigieren.

    Ich muss meine Liste also noch anpassen.

    Vielen Dank nochmal!

    Gruß Wolfi



    Zitat von panzaeron Beitrag anzeigen
    Hallo Wolfi,

    ich vermute es liegt an der falschen Reihenfolge der Werte (z.B. 2 vor 12). In meinen Variablen war der Fehler, dass z. B. zwanzig vor fünfundzwanzig war und damit traf zwanzig immer zu, weil in fünfundzwanzig schon zwanzig enthalten ist.

    Um das auszuschließen wäre es gut wenn du mir deine Liste zeigst.

    Das genannte Beispiel sieht so aus:
    Code:
    varZahl = [ 
                    [100, ['100', 'hundert', 'einhundert']], 
                    [1000, ['1000', 'tausend', 'eintausend']], 
                    [13, ['13', 'dreizehn']], 
                    [14, ['14', 'vierzehn']],  
                    [15, ['15', 'fünfzehn']],
                    [10, ['10', 'zehn']], 
                    [11, ['11', 'elf']], 
                    [12, ['12', 'zwölf']], 
                    [16, ['16']], 
                    [17, ['17']], 
                    [18, ['18']], 
                    [19, ['19']], 
                    [25, ['25', 'fünfundzwanzig']], 
                    [20, ['20', 'zwanzig']], 
                    [35, ['35', 'fünfunddreizig']], 
                    [30, ['30', 'dreizig']], 
                    [45, ['45', 'fünfundvierzig']], 
                    [40, ['40', 'vierzig']], 
                    [55, ['55', 'fünfundfünfzig']], 
                    [50, ['50', 'fünfzig']], 
                    [65, ['65', 'fünfundsechzig']], 
                    [60, ['60', 'sechzig']], 
                    [75, ['75', 'fünfundsiebzig']], 
                    [70, ['70', 'siebzig']], 
                    [85, ['85', 'fünfundachtzig']], 
                    [80, ['80', 'achtzig']], 
                    [95, ['95', 'fünfundneunzig']], 
                    [90, ['90', 'neunzig']], 
                    [0, ['0', 'null']], 
                    [1, ['1', 'eins']], 
                    [2, ['2', 'zwei']], 
                    [3, ['3', 'drei']], 
                    [4, ['4', 'vier']], 
                    [5, ['5', 'fünf']], 
                    [6, ['6', 'sechs']], 
                    [7, ['7', 'sieben']], 
                    [8, ['8', 'acht']], 
                    [9, ['9', 'neun']]
              ]
    Eine Anmerkung noch: Mittlerweile erkennt die Spracherkennung die Zahlen nicht mehr als Wörter sondern als Zahlen und damit ist das obige Beispiel nicht mehr notwendig, außer man verwendet nicht die google engine.

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Hallo Wolfi,

    ich vermute es liegt an der falschen Reihenfolge der Werte (z.B. 2 vor 12). In meinen Variablen war der Fehler, dass z. B. zwanzig vor fünfundzwanzig war und damit traf zwanzig immer zu, weil in fünfundzwanzig schon zwanzig enthalten ist.

    Um das auszuschließen wäre es gut wenn du mir deine Liste zeigst.

    Das genannte Beispiel sieht so aus:
    Code:
    varZahl = [ 
                    [100, ['100', 'hundert', 'einhundert']], 
                    [1000, ['1000', 'tausend', 'eintausend']], 
                    [13, ['13', 'dreizehn']], 
                    [14, ['14', 'vierzehn']],  
                    [15, ['15', 'fünfzehn']],
                    [10, ['10', 'zehn']], 
                    [11, ['11', 'elf']], 
                    [12, ['12', 'zwölf']], 
                    [16, ['16']], 
                    [17, ['17']], 
                    [18, ['18']], 
                    [19, ['19']], 
                    [25, ['25', 'fünfundzwanzig']], 
                    [20, ['20', 'zwanzig']], 
                    [35, ['35', 'fünfunddreizig']], 
                    [30, ['30', 'dreizig']], 
                    [45, ['45', 'fünfundvierzig']], 
                    [40, ['40', 'vierzig']], 
                    [55, ['55', 'fünfundfünfzig']], 
                    [50, ['50', 'fünfzig']], 
                    [65, ['65', 'fünfundsechzig']], 
                    [60, ['60', 'sechzig']], 
                    [75, ['75', 'fünfundsiebzig']], 
                    [70, ['70', 'siebzig']], 
                    [85, ['85', 'fünfundachtzig']], 
                    [80, ['80', 'achtzig']], 
                    [95, ['95', 'fünfundneunzig']], 
                    [90, ['90', 'neunzig']], 
                    [0, ['0', 'null']], 
                    [1, ['1', 'eins']], 
                    [2, ['2', 'zwei']], 
                    [3, ['3', 'drei']], 
                    [4, ['4', 'vier']], 
                    [5, ['5', 'fünf']], 
                    [6, ['6', 'sechs']], 
                    [7, ['7', 'sieben']], 
                    [8, ['8', 'acht']], 
                    [9, ['9', 'neun']]
              ]
    Eine Anmerkung noch: Mittlerweile erkennt die Spracherkennung die Zahlen nicht mehr als Wörter sondern als Zahlen und damit ist das obige Beispiel nicht mehr notwendig, außer man verwendet nicht die google engine.

    Einen Kommentar schreiben:

  • OsLee540i
    Forums-Einsteiger

  • OsLee540i
    antwortet
    Hallo,

    erstmal großes Lob für das tolle Plugin und die gelungene Anleitung!

    Hab alles auf Anhieb zum Laufen gebracht.

    Schalten und Status alles kein Problem.

    Eine Sache ist mir aufgefallen:

    Ich hab mal versucht meine Solltemperatur für die Heizung zu ändern.

    Über die Androiden wird ja immer ein Zahlenwert geschickt.

    Dort wird z.b. bei Wohnzimmer Solltemperatur 23 Grad,
    immer die 2 als Wert gesendet.
    Wenn ich das in Worten im Browser eingebe, also dreiundzwanzig wird immer die 3 gesendet.
    Jetz hab ich hier gelesen, das das normal is man soll zwanzigdrei nehmen.
    Das hab ich jetzt in allen möglichen Varianten ausprobiert, aber 23 ist nie rausgekommen. 2 oder 3 war immer das Ergebnis.

    Zwanzig in Worten geschrieben funktioniert.


    Mit den Androiden bekomm ich nicht mal eine 20 hin.

    Kann mir da jemand nen Tipp geben?

    Vielen Dank.

    Gruß Wolfi

    Einen Kommentar schreiben:

  • KNXfriend
    Forums-Einsteiger

  • KNXfriend
    antwortet
    Zitat von SvStefan Beitrag anzeigen
    Hi,
    [*]Ich würde mir noch in der Plugin-Config einen Switch wünschen, damit einfach alle Items rw zugreifbar sind (so wie beim visu Plugin)[/LIST]

    LG Stefan
    Ich habe den gleichen Bedarf gehabt (auch zum einfachen Testen) und habe folgende sehr kleine Änderung dazu im Plugin gemacht:

    1) In der Class Speech_Parser() ist die def __init__ um den neuen Parameter default_access erweitert:
    Code:
    def __init__(self, smarthome, ip='0.0.0.0', port='2788', acl='*', config_file="", default_access=""):
    2) Zuweisung einige Zeilen darunter:
    Code:
    self.default_access = default_access
    3) Dann in def parse_input die if-Zeile um or self.default_access == 'rw':erweitert:
    Code:
    if item.conf['sp'] == 'rw' or self.default_access == 'rw':

    In der plugin.conf können dann mit dem neuen Switch default_access = rw alle Items direkt angesprochen werden (ohne die Items in der item.conf jeweils anzupassen):
    Code:
    [sp]
        class_name = Speech_Parser
        class_path = plugins.speech
        config_file = /usr/smarthome/etc/speech.py
        ip = 0.0.0.0
    #   acl = w.x.y.z
        port = 2788
        default_access = rw
    Die obigen Änderungen im Plugin habe ich angehängt (Achtung: Plugin basiert allerdings noch auf der ersten Version von panzaeron von Nov. 2014)
    Angehängte Dateien

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Hallo,
    vielen Dank für eure Rückmeldungen.

    Zitat von SvStefan Beitrag anzeigen
    Die Variablen, z.B. varZahl, müssen auch vom komplexeren zum einfacheren sortiert sein, also zuerst "fünfzig" und dann erst "fünf", da sonst immer Fünf erkannt wird.
    Ups, stimmt hatte ich bei meiner aktiven Version schon geändert, bei der in er ZIP noch nicht, danke für den Hinweis

    Zitat von SvStefan Beitrag anzeigen
    Fixe Werte in den Parse-Einträgen haben nicht funktioniert, z.B. ['fernseher|tv', varSchalten]. Abhilfe: Im Plugin in der Zeile "reg_ex += str(varVars[x]) + ')'" das Leerzeichen hinter der Klammer entfernt
    Danke, ändere ich ab.
    Zitat von SvStefan Beitrag anzeigen
    Dimmwert muss ich noch umrechnen, momentan schickt z.B. 50% den Wert 50 auf das Item, ich verwende aber als Dimmbereich 0-255... hmmm
    Da würden mir auf der schnelle folgende Möglichkeiten einfallen:
    • Du definierst eine varZahlDimm in dem du die Umrechnung schon gemacht hast.
    • Du legst ein extra Item an für 0-100% mit dem DPT 5.001
    • Du triggerst eine Logic und machst darüber die Umrechnung, könnte ggf. recht aufwändig werden
    • Das Plugin wird um diesen Fall ergänzt, allerdings weiß ich noch nicht wie, eine Berechnung ist nicht vorgesehen, könnte aber auch für andere Fälle interessant sein

    Zitat von SvStefan Beitrag anzeigen
    Ich würde mir noch in der Plugin-Config einen Switch wünschen, damit einfach alle Items rw zugreifbar sind (so wie beim visu Plugin)
    Stimmt, das wäre ganz praktisch, muss ich mir mal anschauen wie man das realisiert...
    Zitat von SvStefan Beitrag anzeigen
    Edit: AutoVoice macht den Call auf die HTTP-Url, momentan aber leider immer, also auch wenn ich "neue Nachricht" eingebe und der SMS Dialog kommt... Geht das bei dir korrekt?
    Ja leider, ich weiß noch nicht woran das liegt, aber da ich die Sprachsteuerung nur für das Haus verwende stört es bei mir nicht...

    Einen Kommentar schreiben:

  • SvStefan
    Forums-Einsteiger

  • SvStefan
    antwortet
    Erstes Feedback

    Hi,
    das Plugin selber läuft gleich mal, bravo!
    Erste Anmerkungen:
    1. Die Variablen, z.B. varZahl, müssen auch vom komplexeren zum einfacheren sortiert sein, also zuerst "fünfzig" und dann erst "fünf", da sonst immer Fünf erkannt wird.
    2. Fixe Werte in den Parse-Einträgen haben nicht funktioniert, z.B. ['fernseher|tv', varSchalten]. Abhilfe: Im Plugin in der Zeile "reg_ex += str(varVars[x]) + ')'" das Leerzeichen hinter der Klammer entfernt
    3. Dimmwert muss ich noch umrechnen, momentan schickt z.B. 50% den Wert 50 auf das Item, ich verwende aber als Dimmbereich 0-255... hmmm
    4. Ich würde mir noch in der Plugin-Config einen Switch wünschen, damit einfach alle Items rw zugreifbar sind (so wie beim visu Plugin)


    Daumen hoch!
    Am Abend teste ich dann die Android-Anbindung.

    Edit: AutoVoice macht den Call auf die HTTP-Url, momentan aber leider immer, also auch wenn ich "neue Nachricht" eingebe und der SMS Dialog kommt... Geht das bei dir korrekt?

    LG Stefan

    Einen Kommentar schreiben:

  • SvStefan
    Forums-Einsteiger

  • SvStefan
    antwortet
    Hey!

    Super Sache, werd ich auf jeden Fall auch testen - so ein Plugin hat mir noch gefehlt! Danke für deinen Aufwand, Feedback wird folgen, sobald es läuft.

    LG Stefan

    Einen Kommentar schreiben:

  • tfinell
    Forums-Einsteiger

  • tfinell
    antwortet
    Thank you for the nice plugin,

    It is working very well even in Finnish language. I am using it with "Ok google" from my phone. It is nice to open garage door from the car and put the nice scene to home and etc.

    I am wondering what would be the next level? Would it be a good solution e.g. to put Android installed Raspberry pi (or some else platform) with microphone to those rooms, where you want use it. Then you would get really automated home.

    Maybe in the near future you can use this kind of platform:

    Amazon Echo - Official site - Request an invitation

    BR,
    Tomas

    Einen Kommentar schreiben:


  • panzaeron
    antwortet
    Danke für das Lob

    Die Ein-Wort-Befehle müssten eigentlich schon jetzt funktionieren, zumindest falls ich dich richtig verstanden habe:
    1. Du erzeugst zunächst für smarthome.py ein bool-Item in der Beleuchtungsebene mit einem Namen wie z.B. "um" (d.h. zusätzlich zu "eg.flur.beleuchtung.decke.schalten" noch "eg.flur.beleuchtung.decke.um").
    2. In der Konfigurationsdatei "speech.py" legst du eine weitere Liste an, z.B. "varLichtUM" die nach dem gleichen Muster aufgebaut ist wie die Räume, d. h. als Rückgabewert das "UM-Item" (eg.flur.beleuchtung.decke.um) und als Wort "Flurlicht".
    3. Jetzt noch eine Regel die als einzigen Wert varLichtUM enthält.
    4. In smarthome.py benötigst du zu guter Letzt noch eine Logik die von allen "UM"-Items getriggert wird. Die Logik macht nichts anderes, als bei einem Schaltzustand von 1 des Beleuchtungsobjekts "schalten" (hier: eg.flur.beleuchtung.decke.schalten) selbiges auf Null zu setzen und umgekehrt.
    In der Reihenfolge müsste die varLichtUM-Regel nach den anderen Licht-Regeln kommen, um erst ausgelöst zu werden wenn die anderen nicht zutreffen.

    Die geänderte Version findet sich im Post 1.
    Zuletzt geändert von panzaeron; 18.04.2015, 14:25. Grund: Änderung im Anhang von Post 1 integriert

    Einen Kommentar schreiben:

Lädt...
X