[39_Talk2Fhem.pm] Flexible Sprachsteuerunghilfsmodul

Begonnen von Phill, 12 Dezember 2017, 12:24:09

Vorheriges Thema - Nächstes Thema

Phill

Habe mal wieder ein paar neue Features spendiert.
Datei siehe erster Beitrag.

Achtung! Wenn ihr schon if's verwendet, sollten diese in das neue Attribut T2F_if verschoben werden. Das "if=>" kann hier entfallen.

Kurze Beschreibung der neuen Features.
Neue set Befehle: cleartimers und cleartriggers löschen jeweils die wartenden Befehle
Neue get Befehle: standarfilter log und eine Möglichkeit um die Wortlisten besser zu vergleichen.
Neue Klammermodifikationstypen: float und numeral kann Zahlenwörter und Gleitkommazahlen in korrekte Zahlen modifizieren.
Neue Attribute: T2F_if und T2F_origin letzterer kann zur Benutzerbestimmung verwendet werden
Neue Umgebungsvariablen: $NAME, $IF, $0, $TIME

Siehe Commandref
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Phill

Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Phill

Hi,

Ähm nein.  :P
Das ist nicht die Aufgabe dieses "Moduls" sich um die Herkunft zu kümmern, denn dazu sind sie viel zu vielfältig. Das würde einen unnötigen und unbeherrschbaren Pflegeaufwand bedeuten.

Nach Einsicht in winconnect gibt es das Reading speechmessage. Könnte hierauf nicht eine notify angesetzt werden der dann den Sprachbefehl rüberschaufelt?

Grüße
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Abercrombie1892

talk2fhem läuft wieder einwandfrei nach einem update. das fhem sich nach umlauten über iffft kurz disconnected bleibt zwar bestehen, aber liegt ja nicht an deinem modul und negative auswirkungen hat es bisher auch nicht.

Phill

#169
Zitat von: Abercrombie1892 am 18 Februar 2018, 21:28:06
hallo und einen schönen abend,

vielleicht kannst du mir kurz helfen. ich habe jetzt mal die räume mit keywordlist und die geräte in der modwordlist und möchte so entsprechend die lampen schalten, aber leider findet er keinen match

licht (\S+ ){0,2} (@rooms) (\S+) = set $2[@lights] $3{ true => on, false => off }

Im WIKI war ein Fehler drin, ich hab's korrigiert. Müsste so aussehen:
licht (\S+ ){0,2}(@rooms) (\S+) = set $2[@lights] $3{ true => on, false => off }

Das Problem laut RegExp hätten zwei Leerzeichen hintereinander stehen müssen. Das kann nie eintreten. Ist leider etwas auf das man achten muss. Habe auch keine Idee sowas codeseitig zu ignorieren
licht im  Wohnzimmer an.
        ^^


Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Tabu

Ich komme bei den Umlauten nicht weiter. Habe schon gesucht, kann es mir aber nicht erklären:

2018.02.19 12:30:07 5: Talk2Fhem Version: 0.4.1
2018.02.19 12:30:07 3: Decoding Text: , mache das Licht auf türkis
2018.02.19 12:30:07 4: Command part: '  mache das Licht auf  ürkis'
2018.02.19 12:30:07 4: Command left: 'mache das Licht auf ürkis'
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /wie (kalt|warm|grad|temperatur) && (@rooms)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle) && Temperatur && (@rooms) (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle) && (@rooms) && temperatur (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && (@colors)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && aus/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && an/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /licht && (dunkler|dim\S*)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /licht && (hell\S*)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache|dimme) && licht && auf (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Fernseh\S*|TV) && (ein\S*|an)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Smart.TV|Netflix|Maxdome) && (ein\S*|an)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|stelle) && (@sender)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Fernseh\S*|TV) && (aus|ab)/i
2018.02.19 12:30:07 1: No match: '  mache das Licht auf  ürkis'
2018.02.19 12:30:07 1: Nothing to do: , mache das Licht auf türkis


Die Umlaute werden meines Erachtens sauber an T2F übergeben. Nutze ich z.B. Königsblau als Farbe, läuft alles durch, bei Grün das gleiche wie bei Türkis...
Habe schon versucht dass Attribut T2F_disableumlautescaping mit 0 und 1, bei beiden das gleiche Ergebnis.

Was kann das sein?

Phill

#171
Ein Fehler in Talk2Fhem. Ich kann Umlaute ab jetzt endgültig nicht mehr leiden...

Probier es bitte mal mit der angehängten Datei.

[EDIT] ab morgen per update verfügbar.
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

Tabu

Perfekt, nun läuft es wie es soll.

Vielen Dank

Abercrombie1892

Zitat von: Tabu am 19 Februar 2018, 12:38:43
Ich komme bei den Umlauten nicht weiter. Habe schon gesucht, kann es mir aber nicht erklären:

2018.02.19 12:30:07 5: Talk2Fhem Version: 0.4.1
2018.02.19 12:30:07 3: Decoding Text: , mache das Licht auf türkis
2018.02.19 12:30:07 4: Command part: '  mache das Licht auf  ürkis'
2018.02.19 12:30:07 4: Command left: 'mache das Licht auf ürkis'
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /wie (kalt|warm|grad|temperatur) && (@rooms)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle) && Temperatur && (@rooms) (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle) && (@rooms) && temperatur (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && (@colors)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && aus/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache) && licht && an/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /licht && (dunkler|dim\S*)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /licht && (hell\S*)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|setze|stelle|mache|dimme) && licht && auf (\d+).*/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Fernseh\S*|TV) && (ein\S*|an)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Smart.TV|Netflix|Maxdome) && (ein\S*|an)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(schalte|stelle) && (@sender)/i
2018.02.19 12:30:07 5: talk Evaluate search:
mache das Licht auf ürkis =~ /(mache|schalte\S*) && (Fernseh\S*|TV) && (aus|ab)/i
2018.02.19 12:30:07 1: No match: '  mache das Licht auf  ürkis'
2018.02.19 12:30:07 1: Nothing to do: , mache das Licht auf türkis


Die Umlaute werden meines Erachtens sauber an T2F übergeben. Nutze ich z.B. Königsblau als Farbe, läuft alles durch, bei Grün das gleiche wie bei Türkis...
Habe schon versucht dass Attribut T2F_disableumlautescaping mit 0 und 1, bei beiden das gleiche Ergebnis.

Was kann das sein?

Wie bekommst du die Umlaute sauber zu fhem? Über iffft kommt ja immer das Rautensymbol mit dem Fragezeichen.

Mit freundlichen Grüßen

Tabu

Bei IFTTT das TextField in spitzen Klammern gesetzt: <<<TextField>>>

Abercrombie1892

Zitat von: Tabu am 19 Februar 2018, 14:22:16
Bei IFTTT das TextField in spitzen Klammern gesetzt: <<<TextField>>>

Alter Schwede.. Danke  ;D

uwettl

Hallo,
ich habe ein Problem mit der Abfrage von verschiedenen Temperatursensoren.
Ich habe aus dem Wiki nur das Beispiel kopiert:

wie.*(kalt|warm|grad|temperatur) =
( answer =>
       { "Die Temperatur beträgt ".ReadingsVal("tempdev", "temperature", "Fehler") }
)

und einen bei mir vorhanden Devicenamen eingesetzt. ("badtemp" statt "tempdev").

Leider kommt gibts immer einen Error in answer eval: { "Die Temperatur beträgt ".ReadingsVal("badtemp"
Die ReadingsVal() Abfrage funktioniert auf der Kommandozeile von Fhem n liefert ein Ergebnis. (21.0)

Ich habe schon alles mögliche mit Klammern und Anführungszeichen probiert. Die Antwort bricht immer am 1. Komma ab un die geschweiften Klammern und Anführungszeichen sollten auch nicht in answer zu sehen sein.

Übersehe ich was ?
Stimmt das Besipiel nicht mehr ?
Statusabfrage mit devspec2array funktioniert.

Gruß

U.




Phill

#177
Hallo, und Willkommen.  ;)
Ja das Beispiel stimmt leider nicht, hätte es wohl besser testen sollen anstatt einfach davon auszugehen das es geht.  :-[
Ich habe versucht die Syntax etwas flexibler zu gestalten, aber das klappt leider nicht wie ich gerade sehe. Also doch so wie vorher immer in einfachen Anführungszeichen setzen.
wie.*(kalt|warm|grad|temperatur) =
( answer =>
       ' "Die Temperatur beträgt ".ReadingsVal("bell", "temperature", "Fehler") '
)

Genau genommen ist das Komma (,) schuld. Denn ab diesem wird eine neue Option erwartet. Das lässt sich nur über 'einfache Anführungszeichen' vermeiden. Ansonsten können aber auch Klammern genommen werden.
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

uwettl

Prima, jetzt funktionierts, die Variante hatte ich noch nicht probiert. Beispiel im WIKI ist auch geändert. Hab gleich mal die raumbezogene Temperaturabfrage umgesetzt. Geht prima.
Danke

U.


uwettl

Ausgabe per Notify funtioniert auch mit dem SIRD Modul mit dem passenden WLAN_Radio prima.
fhem("set SIRDDev speak $EVENT");

Gruß

U.