[39_Talk2Fhem.pm] Flexible Sprachsteuerunghilfsmodul

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

Vorheriges Thema - Nächstes Thema

Ma_Bo

Hey ich glaube es liegt am Komma im Text, besser so machen:

defmod talk.DI.fillAttr DOIF ([global:"^ATTR.*T2F_.*"]) (({my $val = ReadingsVal("$SELF", "e_global_events", ""); $val =~ m/(\S*) (\S*) (\S*) (.*)/; if ($2 ne 'talk' && $2 ne 'global') { fill_T2F_keywordlist("$3", "talk");}}))
attr talk.DI.fillAttr do always


Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Abercrombie1892

hat schon jemand mal probiert das ganze mit dem Echo Modul zu verknüpfen um hier das voice mit entsprechendem zimmer des Echos nutzen zu können?

MBHG

Zitat von: Phill am 24 November 2018, 15:40:54
Hi, Ich glaube das liegt an dem neuen DOIF Perlmode. Das DOIF denkt es soll den Perlmodus verwenden. Wenn ich erst das DOIF anlege und danach im DOIF den Ausführungsteil ändere bleibt das DOIF im "normalen" Modus und es kommt kein Fehler.

Danke, das war es.
-----------------------------------------------------------
https://smarthome.family.blog Debian Linux, NanoCUL 868, Signalduino, 4x HM-SW4, 11x HM Asksin Unisensor, NodeMCU ESP8266, RCS 1000 N Comfort, Magic Home, Rauchmelder PT2262, Babble

MBHG

Kurioserweise erkennt er bei mir nicht das bitte:

?(bitte) && ?(@properties) && (@types_switch) && ?(@rooms) && ?(@places) && (\S+)(schalten|machen)?$ =
(cmd=>'set T2F_types_switch=.*$3@.*:FILTER=T2F_rooms=.*$4@.*:FILTER=T2F_properties=.*$2@.*:FILTER=T2F_places=.*$5@.* $6{true=>on, false=>off}',
answer=>'"$AGAIN" ? "dann $DATE wieder $6{true=>ein, false=>aus}" : "$1{/bitte/=>Gern, else=>Das heißt Bitte}, ich schalte $1{/bitte/=>, else=>trotzdem} folgende Geräte $6{true=>ein, false=>aus}: ".T2F_answer("T2F_types_switch=.*$3@.*:FILTER=T2F_rooms=.*$4@.*:FILTER=T2F_properties=.*$2@.*:FILTER=T2F_places=.*$5@.*","T2F_types_switch")')
   


Er beschwert sich immer, daß ich kein Bitte gesagt hätte...
-----------------------------------------------------------
https://smarthome.family.blog Debian Linux, NanoCUL 868, Signalduino, 4x HM-SW4, 11x HM Asksin Unisensor, NodeMCU ESP8266, RCS 1000 N Comfort, Magic Home, Rauchmelder PT2262, Babble

mig2

Hoi zusammen,
ich bin am Einführen vom Talk2Fhem. Es Funktioniert eigentlich gut. Ich kann einzelne Devices schalten (Lampen / Storen). Wenn aber pro Raum mehrere Devices defniert sind. Geht das schalten nicht.
Aktuell habe ich nur noch die Lampen definiert.
Licht (\S+ ){0,2}(@rooms) (\S+) = set $2[@lights] $3{/ein/ => on,true => on,false => off}
Die Rooms sind wie folgt eingeteteilt:
&rooms = überall|Haus|alles, Büro, Gang, Küche, Eltern, Ivo|Kind1, Kind2, Essen, Badezimmer, Badkinder, Badeltenr, Eingang, Balkon, Stube|WZ|Wohnzimmer
und lights
lights = "ZW_BueroLicht, ZW_GangSpot, ZW_GangLichtDimmer, ZW_Kind2Licht, ZW_ElternLicht", ZW_BueroLicht,ZW_GangSpot, ZW_KuecheLicht, ZW_ElternLicht, ZW_Kind1Licht, ZW_Kind2Licht, ZW_EssenLicht, "ZW_Bad1_Neon, ZW_Bad1_Spot, ZW_Bad2_Neon, ZW_Bad2_Spot", "ZW_Bad1_Neon, ZW_Bad1_Spot", "ZW_Bad2_Neon, ZW_Bad2_Spot", ZW_EingangLicht, ZW_BalkonLicht, ZW_WzLichtDimmer
Der Befehl wird korrekt erkennt:
set Licht Badezimmer ein
Die Umsetzung sieht aber wie folgt aus:
cmds set ZW_Bad1_Neon, ZW_Bad1_Spot, ZW_Bad2_Neon, ZW_Bad2_Spot on
Nun die Frage, ist das überhaupt möglich, dass ich mehrer Lampen miteinander einschalten kann? Oder muss ich über eine Perl Prozedure gehen, wo ich die einzelnen Lampen erkenne und dann einschalte?

Gruss Peter
RPi 3 - CUL 868 (Pigator) - ZWave (RaZberry2)
Homematic:HM-SEC-SC-2 / HM-SEC-SCo / HM-TC-IT-WM-W-EU / HM-ES-PMSw1-Pl-DN-R5
Z-Wave: FGR222 (010f-0302-1000) / FGS223 (010f-0203-1000) / FGD212 (010f-0102-1000) /FGKF601 (010f-1001-1000) / KeyFob / FGS212 (010f-0402-1002)

der-Lolo

Hallo Phill, schön zu lesen das Du Dich in der "kalten" Jahreszeit wieder ein bisschen mehr mit diesem Modul beschäftigen möchtest - ich wünsche mir zur Zeit sehr von extern und intern "syntax freundlich steuern" zu können. Ich habe mir in den Kopf gesetzt von extern aus Telegram zu nutzen, das sollte offensichtlich kein großes Problem sein.
Intern würde ich gerne snips eine chance geben... Hast Du vielleicht mal darüber nachgedacht wie man nachrichten von snips an T2F ankoppeln könnte..?

smart.builder

Hallo der-Lolo, zu Snips und T2F gibt es bereits ein Topic. Ich möchte es demnächst auch testen.
https://forum.fhem.de/index.php/topic,91216.0.html

Gruß
Smart

MBHG

Wg. dem "Bitte":

kann es sein, daß das versehentlich bei Talk2Fhem_realtrim oder Talk2Fhem_filter abgeschnitten wird?


2018.11.25 22:07:34 msgText: bitte mach im Wohnzimmer das Licht aus
2018.11.25 22:07:34 4: Command part: 'msgText: bitte mach im Wohnzimmer das Licht aus'
2018.11.25 22:07:34 4: Command left: 'msgText: mach im Wohnzimmer das Licht aus'


Gruss Marc
-----------------------------------------------------------
https://smarthome.family.blog Debian Linux, NanoCUL 868, Signalduino, 4x HM-SW4, 11x HM Asksin Unisensor, NodeMCU ESP8266, RCS 1000 N Comfort, Magic Home, Rauchmelder PT2262, Babble

AET_FHEM

Hey,
Danke für das Modul funktioniert super!

=> hab da mal ne frage --> ich schalte Fernsehprogramme mit Channels also das erste zdf usw...
jetzt musste ich aber für jeden Channel eine zeile anlegen zdf
(@rooms) ZDF = set KODI_$1 openchannelid 27

--> geht das nicht einfacher wenn ich einmal die Channels definiere hätte ich dafür nur noch eine Zeile ... => ähnlich wie mit den Farben der LED ... (damit habe ich mich aber noch nicht beschäftigt)

Phill

#324
Zitat von: MBHG am 26 November 2018, 08:54:48
Wg. dem "Bitte":

kann es sein, daß das versehentlich bei Talk2Fhem_realtrim oder Talk2Fhem_filter abgeschnitten wird?


2018.11.25 22:07:34 msgText: bitte mach im Wohnzimmer das Licht aus
2018.11.25 22:07:34 4: Command part: 'msgText: bitte mach im Wohnzimmer das Licht aus'
2018.11.25 22:07:34 4: Command left: 'msgText: mach im Wohnzimmer das Licht aus'


Gruss Marc

Ja genau so ist es. Man kann den Filter über T2F_filter beeinflussen. Siehe Commandref.

Zitat von: mig2 am 25 November 2018, 16:55:56
Nun die Frage, ist das überhaupt möglich, dass ich mehrer Lampen miteinander einschalten kann? Oder muss ich über eine Perl Prozedure gehen, wo ich die einzelnen Lampen erkenne und dann einschalte?

Doch funktioniert bei mir sehr gut. Ich glaube, dass die Leerzeichen nach dem Komma (wenn mehrere Geräte geschalten werden sollen) weg müssen. Mit den Anführungszeichen sorgt man dafür das der Inhalt dazwischen direkt an FHEM gegeben wird und FHEM hier keine Leerzeichen erlaubt.  Also:
lights = "ZW_BueroLicht,ZW_GangSpot,ZW_GangLichtDimmer,ZW_Kind2Licht,ZW_ElternLicht", ZW_BueroLicht,ZW_GangSpot, ZW_KuecheLicht, ZW_ElternLicht, ZW_Kind1Licht, ZW_Kind2Licht, ZW_EssenLicht, "ZW_Bad1_Neon,ZW_Bad1_Spot,ZW_Bad2_Neon,ZW_Bad2_Spot", "ZW_Bad1_Neon,ZW_Bad1_Spot", "ZW_Bad2_Neon,ZW_Bad2_Spot", ZW_EingangLicht, ZW_BalkonLicht, ZW_WzLichtDimmer

Zitat von: AET_FHEM am 26 November 2018, 09:30:07
Hey,
Danke für das Modul funktioniert super!

=> hab da mal ne frage --> ich schalte Fernsehprogramme mit Channels also das erste zdf usw...
jetzt musste ich aber für jeden Channel eine zeile anlegen zdf
(@rooms) ZDF = set KODI_$1 openchannelid 27

--> geht das nicht einfacher wenn ich einmal die Channels definiere hätte ich dafür nur noch eine Zeile ... => ähnlich wie mit den Farben der LED ... (damit habe ich mich aber noch nicht beschäftigt)

Ja klar, probier mal folgendes:
DEF:
schalte && (@rooms) && (ARD|ZDF) = set KODI_$1 openchannelid $2[26,27]
oder zur Übersicht mit Key und Modwordlisten  arbeiten und dort die Auflistungen machen
schalte && (@rooms) && (@channels) = set KODI_$1 openchannelid $2[@channelnumbers]


siehe dazu: https://wiki.fhem.de/wiki/Modul_Talk2Fhem#Variante_2:_nach_Liste
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

mig2

Vielen Dank, dass mit dem leerzeichen war der richtige Typ
RPi 3 - CUL 868 (Pigator) - ZWave (RaZberry2)
Homematic:HM-SEC-SC-2 / HM-SEC-SCo / HM-TC-IT-WM-W-EU / HM-ES-PMSw1-Pl-DN-R5
Z-Wave: FGR222 (010f-0302-1000) / FGS223 (010f-0203-1000) / FGD212 (010f-0102-1000) /FGKF601 (010f-1001-1000) / KeyFob / FGS212 (010f-0402-1002)

MBHG

Zitat von: Phill am 26 November 2018, 23:50:49
Ja genau so ist es. Man kann den Filter über T2F_filter beeinflussen. Siehe Commandref.

Danke. Zusammengefasst habe ich das Attribut T2F_filter angelegt und kommasepariert die Liste der Wörter, die ich generell filtern möchte angelegt.  "Bitte" war nicht dabei, abweichend vom Standard. Damit klappt es.

Der Codeschnipsel kommt aus dem Wiki, jeder der diesen umsetzt wird über das Problem stolpern.

Gruss Marc
-----------------------------------------------------------
https://smarthome.family.blog Debian Linux, NanoCUL 868, Signalduino, 4x HM-SW4, 11x HM Asksin Unisensor, NodeMCU ESP8266, RCS 1000 N Comfort, Magic Home, Rauchmelder PT2262, Babble

TimoD

Hilfe Anfängerfrage:

Wo muss die Konfiguration der Sprachbefehle RegExp-Teil rein? "Die Konfiguration der Sprachbefehle wird Zeile für Zeile in der Definition (DEF) des angelegten Gerätes vorgenommen."

1. Bedeutet des angelegten Geräts: Das talk2fhem device unter DEF oder
2. unter DEF des jeweilig zu steuerenden Gerätes z.B. Wohnzimmer Lampe? (Hier finde ich keine DEF sondern nur unter zugehörigen notifys)

Da ich im Moment nur offline bin kann ich es nicht ausprobieren. Danke für Eure schnelle Hilfe

Grüße

Phill

Hallo,

1. alles im angelegten Talk2Fhem Device.
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

ahlermi

Hallo Phill,

Wirklich abgeschnitten wird leider jeder Zeitbefehl.
Wäre es eine Option die Zeit einfach im String zu lassen nach der Erkennung.

Gruß Michael
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN