Samlung von Sprachkomandos. Was habt ihr bereits Realisiert?

Begonnen von Markus, 09 Februar 2014, 11:58:15

Vorheriges Thema - Nächstes Thema

Markus

Viele von uns steuern FHEM bereits über die Sprache und viele wollen das auch noch Realisieren :-)
Ich hab mir gedacht warum sollen wir alle das Rad nochmals neu erfinden?
es wäre doch Toll wenn es eine Sammlung von Befehlen gäbe die man nur kopieren und anpassen bräuchte.
Ich Poste also hier mal meine .cfg und hoffe das es mir viele nachmachen und wir gemeinsam einen riesigen Wortschatz
für unser geliebtes FHEM zusammenbekommen ;-D



##################### Licht

define speech_Licht_Wohnzimmer_ein1 notify .*voiceRecognitionLastResult.*icht.*ohnzimmer.*(ein|an|1).* \
set Licht_Wohnzimmer on;; set @ ttsSay Ich habe das Licht im Wohnzimmer eingeschaltet

define speech_Licht_Wohnzimmer_ein2 notify .*voiceRecognitionLastResult.*ohnzimmer.*icht.*(ein|an|1).* \
set Licht_Wohnzimmer on;; set @ ttsSay Ich habe das Licht im Wohnzimmer eingeschaltet

define speech_Licht_Wohnzimmer_aus1 notify .*voiceRecognitionLastResult.*icht.*ohnzimmer.*aus.* \
set Licht_Wohnzimmer off;; set @ ttsSay Ich habe das Licht im Wohnzimmer ausgeschaltet

define speech_Licht_Wohnzimmer_aus2 notify .*voiceRecognitionLastResult.*ohnzimmer.*icht.*aus.* \
set Licht_Wohnzimmer off;; set @ ttsSay Ich habe das Licht im Wohnzimmer ausgeschaltet

#####################
define speech_Licht_Kuche_ein1 notify .*voiceRecognitionLastResult.*üche.*icht.*(ein|an|1).* \
set Licht_Kuche on;; set @ ttsSay Ich habe das Licht in der Küche eingeschaltet

define speech_Licht_Kuche_ein2 notify .*voiceRecognitionLastResult.*üche.*icht.*(ein|an|1).* \
set Licht_Kuche on;; set @ ttsSay Ich habe das Licht in der Küche eingeschaltet

define speech_Licht_Kuche_aus1 notify .*voiceRecognitionLastResult.*icht.*üche.*aus*.* \
set Licht_Kuche off;; set @ ttsSay Ich habe das Licht in der Küche ausgeschaltet

define speech_Licht_Kuche_aus2 notify .*voiceRecognitionLastResult.*icht.*üche.*aus*.* \
set Licht_Kuche off;; set @ ttsSay Ich habe das Licht in der Küche ausgeschaltet

#####################
define speech_Licht_Bad_ein1 notify .*voiceRecognitionLastResult.*(Bad|bad).*icht.*(ein|an|1).* \
set Licht_Bad on;; set @ ttsSay Ich habe das Licht im Bad eingeschaltet

define speech_Licht_Bad_ein2 notify .*voiceRecognitionLastResult.*icht.*(Bad|bad).*(ein|an|1).* \
set Licht_Bad on;; set @ ttsSay Ich habe das Licht im Bad eingeschaltet

define speech_Licht_Bad_aus1 notify .*voiceRecognitionLastResult.*(Bad|bad).*icht.*aus*.* \
set Licht_Bad off;; set @ ttsSay Ich habe das Licht im Bad ausgeschaltet

define speech_Licht_Bad_aus2 notify .*voiceRecognitionLastResult.*icht.*(Bad|bad).*aus*.* \
set Licht_Bad off;; set @ ttsSay Ich habe das Licht im Bad ausgeschaltet

#####################
define speech_Licht_Schlafzimmer_ein1 notify .*voiceRecognitionLastResult.*chlafzimmer.*icht.*(ein|an|1).* \
set Licht_Schlafzimmer on;; set @ ttsSay Ich habe das Licht im Schlafzimmer eingeschaltet

define speech_Licht_Schlafzimmer_ein2 notify .*voiceRecognitionLastResult.*icht.*chlafzimmer.*(ein|an|1).* \
set Licht_Schlafzimmer on;; set @ ttsSay Ich habe das Licht im Schlafzimmer eingeschaltet

define speech_Licht_Schlafzimmer_aus1 notify .*voiceRecognitionLastResult.*chlafzimmer.*icht.*aus.* \
set Licht_Schlafzimmer off;; set @ ttsSay Ich habe das Licht im Schlafzimmer ausgeschaltet

define speech_Licht_Schlafzimmer_aus2 notify .*voiceRecognitionLastResult.*icht.*chlafzimmer.*aus.* \
set Licht_Schlafzimmer off;; set @ ttsSay Ich habe das Licht im Schlafzimmer ausgeschaltet

################## Fernsehen

define speech_Fernsehen_Ein notify .*voiceRecognitionLastResult.*(möchte|will).*Fernsehen.* \
set Fernsehen on;; set @ ttsSay welchen Sender möchtest du Sehen?

define speech_Fernsehen_Aus notify .*voiceRecognitionLastResult.*(möchte|will).*nicht.*Fernsehen.* \
set Fernsehen off;; set @ ttsSay OK Dann Schalte ich ihn aus.

define speech_Pro7 notify .*voiceRecognitionLastResult.*Pro7.* \
set TV channel 1

define speech_RTL notify .*voiceRecognitionLastResult.*RTL.* \
set TV channel 2

define speech_RTL2 notify .*voiceRecognitionLastResult.*RTL2.* \
set TV channel 3

define speech_RTL_2 notify .*voiceRecognitionLastResult.*RTL 2.* \
set TV channel 3

define speech_SAT1 notify .*voiceRecognitionLastResult.*(Sat1|Sat|SAT1|SAT).*(eins|1|ein).* \
set TV channel 4

define speech_VOX notify .*voiceRecognitionLastResult.*VOX.* \
set TV channel 5

define speech_ORF1 notify .*voiceRecognitionLastResult.*(ORF|ORF1).*(eins|1|ein).* \
set TV channel 6

define speech_ORF2 notify .*voiceRecognitionLastResult.*(ORF|ORF2|orrf|Orf).*(zwei|2|Zwei).* \
set TV channel 7

define speech_ORF3 notify .*voiceRecognitionLastResult.*(ORF|ORF3|orrf|Orf).*(drei|3|Drei).* \
set TV channel 8

define speech_Kabel1 notify .*voiceRecognitionLastResult.*(Kabel|KABEL|kabel|Kabel1).*(eins|1|Eins).* \
set TV channel 9

define speech_Das_Vierte notify .*voiceRecognitionLastResult.*(Das|das|DAS).*(Vierte|Vierte|vierte).* \
set TV channel 10

define speech_Tele5 notify .*voiceRecognitionLastResult.*(Tele5|Tele).*(5|Fünf).* \
set TV channel 11

####################### Kochen #########################
define speech_Herd_ein notify .*voiceRecognitionLastResult.*chalt.*(Herd|Ofen|herd|ofen).*(ein|an|1).* \
set Dunstabzug,E_Herd on ;; set @ ttsSay Du hast die erlaubnis die Küche zu Benutzen

####################### Begrüsung ######################

define Markus_Kommt_Heim1 notify Tur_Eingang:open {if (Value("Begrussung") eq "Hallo" & Value("Markus") eq "present") \
{fhem "set androidTablet ttsSay Hallo Markus ;; set Begrussung erledigt"} \
}
define Markus_Kommt_Heim2 notify Markus:present {if (Value("Begrussung") eq "Hallo") \
{fhem "set androidTablet ttsSay Hallo Markus ;; set Begrussung erledigt"} \
}
######
define Markus_Kommt_vom_Urlaub1 notify Tur_Eingang:open {if (Value("Begrussung") eq "Urlaub" & Value("Markus") eq "present") \
{fhem "set androidTablet ttsSay Hallo Markus, wie war dein Urlaub? ;; set Begrussung erledigt"} \
}
define Markus_Kommt_vom_Urlaub2 notify Markus:present {if (Value("Begrussung") eq "Urlaub") \
{fhem "set androidTablet ttsSay Hallo Markus, wie war dein Urlaub? ;; set Begrussung erledigt"} \
}
######
define Markus_Kommt_Alarm_war1 notify Tur_Eingang:open {if (Value("Begrussung") eq "Alarm" & Value("Markus") eq "present") \
{fhem "set androidTablet ttsSay Hallo Markus, wärend deiner Abwesenheit wurde der Alarm Ausgelöst! ;; \
set Begrussung erledigt"} \
}
define Markus_Kommt_Alarm_war2 notify Markus:present {if (Value("Begrussung") eq "Alarm") \
{fhem "set androidTablet ttsSay Hallo Markus, wärend deiner Abwesenheit wurde der Alarm Ausgelöst! ;; \
set Begrussung erledigt"} \
}

####################### Hausturglocke

define Leuten dummy

define Klingel1 notify Klingel {\
if (Value("whg_HomeStat1") eq "on" & Value("Leuten") ne "nein") \
{fhem ("set androidTablet ttsSay Es hat Geleutet, Bitte die Haustüre Öffnen!;; \
set Leuten nein ;; delete Leuten_Entprellen ;; define Leuten_Entprelllen at +00:00:05 set Leuten ja");; \
}\
if (Value("whg_HomeStat1") eq "off" & Value("Leuten") ne "nein") \
{NMA_send("Hausture","Es hat an der Hausture Geleutet!",0,"Markus")} \
{fhem "set Leuten nein ;; delete Leuten_Entprellen ;; define Leuten_Entprelllen at +00:02:00 set Leuten ja"} }





################ Temperatur abfragen

define speechRecognizer_bad_Temp notify .*voiceRecognitionLastResult.*Temperatur.*(Bad|bad).* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("ThermostatBad","measured-temp","Fehler"))." Grad") }
define speechRecognizer_schlaf_Temp notify .*voiceRecognitionLastResult.*Temperatur.*chlafzimmer.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("ThermostatSchlaf","measured-temp","Fehler"))." Grad") }
define speechRecognizer_kuche_Temp notify .*voiceRecognitionLastResult.*Temperatur.*üche.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("Thermostat_Kuche","measured-temp","Fehler"))." Grad") }
define speechRecognizer_wohn_Temp notify .*voiceRecognitionLastResult.*Temperatur.*ohnzimmer.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("Thermostat_Wohnzimmer","measured-temp","Fehler"))." Grad") }

#Lang Markus 30 10 2013

###################### Waschmaschine Fertig ###################

define Waschen dummy
attr Waschen devStateIcon pause:scene_washing_machine@green eins:scene_washing_machine@wheit zwei:scene_washing_machine@green benachrichtigt:scene_washing_machine@red drei:scene_washing_machine@green
attr Waschen fp_Grundriss 155,895,0,



define Waschmaschine_Fertig notify Waschmaschine {\
if (Value("Waschen") eq "eins" && Value("Bewohner") eq "present") \
{fhem "set androidTablet volume 10 ;;sleep 5;;\
set androidTablet ttsSay Die Waschmaschine ist jetzt Fertig ;; \
delete Waschten_Neustart ;; define Waschen_Neustart at +00:05:00 set Waschen eins ;;\
set Waschen pause ;; delete Waschen_Entprellen ;; define Waschen_Entprelllen at +00:02:00 set Waschen zwei" \
} \
if (Value("Waschen") eq "zwei" && Value("Bewohner") eq "present") \
{fhem "set androidTablet ttsSay Die Waschmaschine ist Fertig, Bitte die Wäsche zum Trocknen aufhängen;; \
delete Waschten_Neustart ;; define Waschen_Neustart at +00:05:00 set Waschen eins ;;\
set Waschen pause ;; delete Waschen_Entprellen ;; define Waschen_Entprelllen at +00:02:00 set Waschen drei" \
} \
if (Value("Waschen") eq "drei" && Value("Bewohner") eq "present") \
{fhem "set androidTablet volume 15 ;;\
set androidTablet ttsSay Ich hab gesagt die Waschmaschine ist Fertig! kannst du jetzt die Wäsche Aufhängen! ;; \
set androidTablet volume 10 ;;sleep 5;;\
delete Waschten_Neustart ;; define Waschen_Neustart at +00:05:00 set Waschen eins ;;\
set Waschen pause ;; delete Waschten_Entprellen ;; define Waschen_Entprelllen at +00:05:00 set Waschen eins" \
} \
if (Value("Waschen") eq "eins" && Value("Bewohner") ne "present") \
{NMA_send("Waschmaschine","Die Waschmaschine ist jetzt Fertig!",0,"Markus")} \
{fhem "delete Waschten_Neustart ;; define Waschen_Neustart at +01:00:00 set Waschen eins ;;\
set Waschen benachrichtigt;;set Begrussung Waschen_Fertig" \
} \
}

define Tablet_Laut at *08:05:00 set androidTablet volume 10
define Tablet_Leise at *21:00:00 set androidTablet volume 5



Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Invers

Mann, du hast ja schon alles konfiguriert, was irgendwie geht. :-)
Was bleibt da noch offen?

Welchen TV hast du denn? Mein dummer Samsung ES8090 kann solche Befehle nicht. Mein nächster TV kommt garantiert nicht mehr von Samsung. Alles, was die mal versprochen hatten, geht einfach nicht oder ging lange nicht.

Man könnte noch eine Fenster-offen-Warnung realisieren.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

Ich habe mal deine Temperaturansage probiert. Leider sagt die bei mir keinen Ton.

Folgenden Code habe ich benutzt:
.*voiceRecognitionLastResult.*Temperatur.*ohnzimmer.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("FHT_4955","measured-temp","Fehler"))." Grad") }

Da kommt der Fehler:
2014.02.09 17:54:42 3: speechRecognizer_wohn_Temp return value: Undefined subroutine &main::str_replace called at (eval 314647) line 1.

Hast du ne Idee, woran das liegen kann?
Bei dir läuft es doch auch. Ich habe doch nur den Namen der Heizung ausgetauscht.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Steffen

Hallo!

Ist es auch Möglich, das Webview immer zu Hört und vielleicht auf Schlüssel-Wörter reagiert?

Hatte ja es schon mit Voicecommand auf Pi versucht, komme aber da mit meiner Hardware nicht weiter, deshalb würde mich das hier sehr Interssieren, hätte hier 2 Android Tabs die ich dafür nutzen könnte.

Fhem läuft jetzt schon seit ca.2 Jahren beim mir im Haushalt und bin sehr zu frieden, doch was dem "WAF" noch fehlt wäre eine Autarke Sprachsteuerung!

Mfg Steffen

Rince

#4
Kuzl ist an sowas grade dran:
http://forum.fhem.de/index.php/topic,17409.0.html

Mangels vernünftigem Internet kann ich es leider nicht testen :(


@invers
Doch, bestimmte Kanäle und das Ausschalten kann dein TV. Nur Einschalten und eine best. Lautstärke einstellen geht nicht.

@Markus
Sehr beeindruckend. Auch wenn ich einen universelleren Weg für einfacher fände. Aber das ist nur meine Meinung.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

Ich hab eine Panasonic TV leider kann ich ihn nur mit der Fernbedienung einschalten über fhem geht das nicht aber bei meinem altem Gerät ging das aber ganz gut.

Das mit einem Schlüsselwort wäre ja so richtig genial!

Ein universeller weg würde mir auch besser gefallen aber es ist ein Anfang ;-)

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Invers

Markus, kannst du mal weiter oben nach meinem Fehler gucken?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Markus

define speechRecognizer_bad_Temp notify .*voiceRecognitionLastResult.*Temperatur.*(Bad|bad).* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("ThermostatBad","measured-temp","Fehler"))." Grad") }


ThermostatBad   ist der Name meines hm Thermostat
measured-temp   ist der Name der im logfile vor der gemessenen Temperatur steht

Auszug aus dem log
2014-01-23_00:11:49 ThermostatBad T: 22.6 H: 74
2014-01-23_00:11:49 ThermostatBad measured-temp: 22.6
2014-01-23_00:11:49 ThermostatBad humidity: 74



Ich hoffe das hilft dir weiter

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

dieda

Klasse, die ProRetina (Blinden) Community ist immer auf der Suche nach Dingen, die das Leben erleichtern. Vom Radio, TV (da gibt es Sendungen mit Audiodiskription), Waschmaschine, Trockner, Rollläden.

Einziger Haken, es muss out-of-the-Box gehen und per iPhone mit Voice-over, wenn die Sprachsteuerung  mal nicht geht.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Invers

Sieht bei mir genau so aus und geht aber trotzdem nicht. Ich bekomme halt nur eine Fehlermeldung und weiss nicht, warum.
Funktioniert es denn bei jemandem? Bitte mal melden, falls ja, oder falls nein.

Hier nochmal die Codes:

define speechRecognizer_wohn_Temp notify .*voiceRecognitionLastResult.*emperatur.*ohnzimmer.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("FHT_4955","measured-temp","Fehler"))." Grad") }


Fehlermeldung:
2014.02.11 09:21:09 3: speechRecognizer_wohn_Temp return value: Undefined subroutine &main::str_replace called at (eval 1231112) line 1.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Rince

Logisch.
str_replace ist kein Perl Befehl. Deshalb mußt ihn ja auch extra definieren.

Schau mal da:
http://forum.fhem.de/index.php/topic,10628.msg104507.html#msg104507

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

danke Rince das hatte ich Total vergessen...
damit solltet ihr es hinkriegen schließlich hab ich es auch geschaft  ;D

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Invers

#12
OK, jetzt geht das scheinbar an der Stelle mit
sub str_replace($$$)
{
  my ($find,$replace,$string) = @_;
  $string =~ s/$find/$replace/g;
  return $string;
}


aber dafür bekomme ich nun einen anderen Fehler.

2014.02.11 15:17:48 3: speechRecognizer_wohn_Temp return value: Undefined subroutine &main::say called at (eval 27748) line 1.

Die Zahl hinter eval ist jeweils verschieden.

Zitatdanke Rince das hatte ich Total vergessen...
damit solltet ihr es hinkriegen schließlich hab ich es auch geschaft

Ja klar, aber damit dürfte der von dir angestrebte Sinn dieser Sammlung passé sein.
Ich hoffe, dass ich nun nicht in myUtils noch einen Fehler habe. Ich habe schon gesucht, wie ein Tier, aber ich finde nicht die Lösung.

@Rince
Danke für den Link.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Rince

Ich hatte dir ja ne PN geschickt mit nem Lösungsansatz :)
Vielleicht schaust ja mal rein.

Also:
Dein fhem kennt das say nicht.

Wenn ich nicht irre (kann aber sein!) ist das say der Vorschlag von Dirk gewesen bei der WebViewControl App die Sprachausgabe auf einem Tablet anzustoßen.

Da gibt es mehr Möglichkeiten.

Die Frage ist, wie nennt sich deine Sprachausgabe denn?
Oder anders:
Auf welchem Gerät soll die Sprachausgabe denn erfolgen?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Invers

Entschuldige bitte, aber ich habe die PN leider übersehen. Nun habe ich sie gelesen und beantwortet. PNs müssten sich im Forum optisch mehr aufdrängen. Wer rechnet schon damit.

Ich benutze Ivona, weil bei meinem Tab aus irgendwelchemGrund die Sprachgeschichte von Google nicht funktioniert.
Auf dem Handy geht aber google, die Sprachausgabe der Temperatur, also say, geht aber auch da nicht.

Benutzen möchte ich beide Geräte.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Rince

Wenn ich die Fehlermeldung richtig deute, kann sie auch nicht gehen, da nicht definiert ;)

Hast du das so in etwa eingerichtet?
http://www.fhemwiki.de/wiki/WebViewControl#Konfiguration_in_FHEM
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Invers

ja, bis
define androidTablet WebViewControl 12345
habe ich die einrichtung so gemacht, den Rest wollte ich noch nicht.
Sprachausgabe der anderen Befehle zum Lichtschalten funktioniert auch. Toast ebenfalls. Nur Say nicht.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Rince

Funktioniert die Sprachausgabe direkt am Tab mit einer anderen App?

Probiere mal CoolReader aus. Der ist ziemlich klasse. Mitlerweile lasse ich mir über den manchmal ein Buch vorlesen. Mit Ivona (also der Stimme)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Invers

Davon gibt es mindestens 4 Versiuonen von verschiedenen Anbietern. Welche meinst du?
Ich denke zwar, das wird nichts ändern, aber ich probier es gerne aus.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

herrmannj

moin, moin,

Zitatdefine speechRecognizer_wohn_Temp notify .*voiceRecognitionLastResult.*emperatur.*ohnzimmer.* {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("FHT_4955","measured-temp","Fehler"))." Grad") }
vielleicht hab ich das ja überlesen aber wo kommt denn "say" her ? Oder soll hherkommen ?

Der richtige Befehle lautet doch "set device ttsSay ....". Den kannst Du ganz normal über das webif im Detailscreen des tablets testen. Funktioniert das mit ttsSay ?

vg
Jörg

Invers

Achherrje. Ich merke nun, dass die Eingabezeile in meinem Tab gar nichts annimmt. Mus ich nun auch das erstmal klären, leider.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Rince

Das da
https://play.google.com/store/apps/details?id=org.coolreader

Ist natürlich auch nur eine App, die eine installierte Sprachausgabe braucht, wenn sie vorlesen soll. Also nix, was du über die Systemeinstellungen nicht auch kontrollieren könntest. Es entspricht quasi dem Tip: ich komme mit Firefox nicht ins Internet, dann probiere doch Chrome aus.

Aber Cool Reader macht mehr Spaß ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

dieda

Zitat von: Rince am 11 Februar 2014, 16:31:52

Also:
Dein fhem kennt das say nicht.

Da hänge ich mich mal dran. Zum Einsatz sollen ein HTC Sensation und ein Nexus 5 kommen. Auch bei mir klappt "say" nicht.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Rince

Herrmannj hat es doch etwas weiter oben geschrieben.
set <devicename> ttsSay und hier den Text tippen der gesprochen werden soll


Klappt das so?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

2P4u

Hallo. Hab ein Nexus7.
Habe auch keine Sprachausgabe.
Der Befehl bringtset <devicename> ttsSay und hier den Text kein Erfol.

Es bleibt einfach ruhig :(

Jemand ne Idee?
Ja mein Sound ist an und tss geht sonst auch...
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

dieda

#25
Hatte das mal so eingefügt, aber ich habe von Dirk einen anderen Hinweis bekommen, den muss ich nun testen.

http://forum.fhem.de/index.php/topic,10628.msg137410.html#msg137410

edit: Dirk's Tipp funktioniert.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

mediastudio

Hallo,
bei mir funktioniert die Sprachausgabe ohne Probleme, aber die Temperatur ansage funktioniert nicht.
Habe nun die Vorschläge ausprobiert, immer wieder Fehlermeldung.

Fehlermeldung: speechRecognizer_wohn_Temp return value: Undefined subroutine &main::say called at (eval 46043) line 1.

Was mach ich falsch? Würde gerne die Ansage der Temperatur realisieren.

Rince

Ja, weil es die Routine say in deinem fhem nicht gibt.
Versuch es doch mal mit
ttsSay
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Markus

oder du packst das in deine my_utils...

Güße

##############################################
#
package main;

use strict;
use warnings;
use POSIX;


sub
SprechKommaUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub say($)
{
  my ($msg) = @_;
  fhem "set androidTablet ttsSay $msg";

}
sub str_replace($$$)
{
  my ($find,$replace,$string) = @_;
  $string =~ s/$find/$replace/g;
  return $string;
}
1;
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

mediastudio

ja nun sagt sie schon was, folgendes fehlte mir:

sub say($)
{
  my ($msg) = @_;
  fhem "set androidTablet ttsSay $msg";

danke, ein Schritt weiter.

mediastudio

Hallo, das mit der Temperatur funktioniert nu super, aber ich habe da noch ein kleines Problem.
Ich schalte mein Smart TV Samsung auch über Sprache, funktioniert auch sehr Gut.
Nur bei Sender die einen gleichen Namen haben z. B.  Pro 7   oder "Pro 7 Maxx" dann schaltet er immer nur auf Pro 7.
Sprache wird richtig erkannt ProSieben Maxx oder ProSieben, wenn ich Pro 7 rausnehme dann reagiert er richtig und schaltet auch  Pro 7 Maxx. Hier mal meine define:

define speechRecognizer_ProSiebenMaxx_TV notify .*voiceRecognitionLastResult.*ProSieben Maxx.* set STV1 4 1 8  ;; set @ ttsSay auf ProSieben Maxx umgeschaltet
define speechRecognizer_PRO7_TV notify .*voiceRecognitionLastResult.*ProSieben.* set STV1 7 ;; set @ ttsSay auf Pro sieben umgeschaltet

Wie gesagt, von der Spracherkennung kommen das hier:

voiceRecognitionLastResult.*ProSieben Maxx
voiceRecognitionLastResult.*ProSieben

was könnte das sein?


Kuzl

In dem notify von Pro 7 suchst du nach allem was mit Pro 7 anfängt. Versuch mal das ".*" wegzulassen

mediastudio

es verhält sich zwar anders, wenn ich das so setze, dann reagiert "ProSieben" auch nur auf ProSieben,
ProSieben Maxx macht nichts mehr.
voiceRecognitionLastResult.*ProSieben Maxx
voiceRecognitionLastResult.*ProSieben

so geht nichts, auch nicht "ProSieben Maxx"
voiceRecognitionLastResult.*ProSieben Maxx.*
voiceRecognitionLastResult  ProSieben

so geht nichts
voiceRecognitionLastResult  ProSieben Maxx
voiceRecognitionLastResult  ProSieben



Kuzl

Versuchs bitte so, dass du NUR das .* hinter Pro 7 (ohne maxx) weglässt. Alles andere so lassen, höchstens vll ein x wegmachen weil ich nicht glaube dass das google wirklich mit zwei x schreibt :D

mediastudio

google schreibt Maxx tatsächlich so, habe jetzt folgende Kombination gemacht und nun funktioniert es.
beide Sprachbefehle werden so richtig umgesetz, Dein Tipp mit dem ".*" weglassen hat mich dann zum Erfolg gebracht.
 
voiceRecognitionLastResult.*ProSieben.*(ProSieben|Max|Maxx).*
voiceRecognitionLastResult.*ProSieben

Besten Dank für den Tipp.

dieda

off-Topic:

Aber wie bekommst du die Programme geschaltet? Meiner (UE46D6500) hat die aktuelle Firmware. Programme kann ich nicht schalten.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

mediastudio

ich habe folgendes in der cfg

# SAMSUNG Smart TV
define STV1 dummy
attr STV1 group TV
attr STV1 room TEST
attr STV1 webCmd REWIND:STOP:PLAY:FF:REWIND:REC:PAUSE:TOOLS:DISC_MENU:OPEN:DOOR:TV:HDMI:PCMODE:REWIND_:FF_

define n_STV notify STV.* { samsungtv($EVENT);; fhem("setstate $NAME .");; -1;;}

Die Sprachbefehle sehen bei mir so aus und hier z.B. die 1 ist der Kanal STV1 1
für Kanal Nr. 142 schreibt man  STV1 1 4 2 immer ein frei lassen zwischen den Zahlen.

define speechRecognizer_ARD_TV notify .*voiceRecognitionLastResult.*ARD set STV1 1 ;; set @ ttsSay auf ARD erste Programm umgeschaltet

Ich habe dazu schon einen Beitrag im Forum.

dieda

Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

herrmannj

Zitat von: mediastudio am 26 Februar 2014, 17:32:11
google schreibt Maxx tatsächlich so, habe jetzt folgende Kombination gemacht und nun funktioniert es.
beide Sprachbefehle werden so richtig umgesetz, Dein Tipp mit dem ".*" weglassen hat mich dann zum Erfolg gebracht.
 
voiceRecognitionLastResult.*ProSieben.*(ProSieben|Max|Maxx).*
voiceRecognitionLastResult.*ProSieben

Besten Dank für den Tipp.

so als Nachtrag: in den regex ganz oben war das "space" das Problem, in "regexesisch" ist das ein "\s". Generell macht es sich auch sehr gut die Regex möglichst spezifisch (genau) zu formulieren, sprich ein .* wirklich nur mit Bedacht einzusetzen. Das ".*" hat Nebenwirkungen, solche wie oben, aber auch in Bezug auf die Geschwindigkeit weil die regex engine bei längerem input weiter versucht "treffer" zu bekommen.

Passt nicht ganz, zeigt aber welche Spaßbremse in Bezug auf performance eine "unglückliche" regex sein kann: http://www.regular-expressions.info/catastrophic.html

vg
Jörg

nabbl

Ich blicke bei dem Thread nicht mehr so ganz durch.

Funktioniert "Hotwording"? (Sowas wie "XBOX" bei der XBOX One)
Wenn ja, welches Modul?
Geht sowas dann auch mit Raummikrofonen?

Kuzl

Sowas geht beim Handy leider nur mit Tasker unter sehr starkem Akkuentzug :D
Rice hat mal ein kleines Script für Linux (auch Raspi) vorgestellt, das in der ct drin war, das konnte das.
Alternative ist voicecommand 3.

Geht dann auch mit Raummikrofonen, falls die saubere Signale liefern.

Agamemnon

Hallo,
ich weiß, dieser Thread ist schon älter, aber ich dachte hier passt es am besten rein.
Ich versuche per Sprachkommande die Tmeperatur vorgelesen zu bekommen und nutze dazu WebControlView.
Grundsätzlich funktioniert das, ich kann zum Beispiel meine Thermostate steuern.
Bei der Ausgabe der Temperatur stell ich mich aber irgendwie an.
So sieht mein notify aus:

.*voiceRecognitionLastResult.*Temperatur.*Wohnzimmer.* set @ ttsSay ("Die aktuelle Temperatur im Wohnzimmer ist " . str_replace('\.',' komma ',ReadingsVal("LaCrosse_Wohnzimmer","temperature","Fehler"))." Grad")


Leider wird aber weder der str_replace noch das ReadingsVal ausgeführt sondern der gesammte String einfach nur vorgelesen.
Habe das ganze auch schon in {} gepackt gehabt, aber dann passiert gar nichts.
Kann mir jemand einen Tipp geben?

Gruß
Matze
Raspberry Pi / CULV3 und JeeLinkLaCrosse
MAX Thermostat
LaCrosse TX29DTH

dieda

Probier es mal so:
Zitat.*voiceRecognitionLastResult.*wie.*warm.*ist.*es.*(draußen|außen).* {my $temp=ReadingsVal("T_Auszen", "temperature", "0");{fhem("set androidTablet ttsSay die Außentemperatur betraegt $temp Grad") } }

Erst die Variable definieren, dann den Text.

Du hast innerhalb des TTS-Befehls die Variable definiert.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Agamemnon

Vielen Dank für die schnelle Antwort!
Werde das heute Abend mal testen.
Verstehen tu ich das aber immer noch nicht so ganz mit den notifies und den verschiedenen Klammern.
Laut Hilfe:
ZitatIf <command> is enclosed in {}, then it is a perl expression, if it is enclosed in "", then it is a shell command, else it is a "plain" fhem.pl command (chain).
Nach deinem Beispiel wäre dann aber der ReadingsVal Befehl eine "perl expression", müsste aber doch ein fhem Befehl sein, oder?
Wäre wirklich super, wenn mir das mit den Klammern noch mal ganz kurz jemand erklären kann.
Vielen Dank!

Gruß
Matze
Raspberry Pi / CULV3 und JeeLinkLaCrosse
MAX Thermostat
LaCrosse TX29DTH

dieda

Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Agamemnon

Raspberry Pi / CULV3 und JeeLinkLaCrosse
MAX Thermostat
LaCrosse TX29DTH

dlinus

Hm....worum geht´s hier nun !?  Sprachkomandos, oder Sprachausgabe ?!
Hier poste mal beides, wie ich es realisiert habe.....

Sprachausgabe :
an einem Raspberry einen aktiven kleinen Lautsprecherwürfel via Klinke angeschlossen.
Auf meinem Ipad habe ich eine App welche Text zu Mp3 konvertiert, diese erstellen Mp3 auf dem Raspberry nach mpg321 /media kopieren, der Aufruf erfolgt so:
define Rollosprachausgabe at *{sunset(-2000,"15:00","23:00")} "mpg321 /media/Rolladen_ab.mp3"

In der Rolladen_ab.mp3 wird "gesagt":  die Rolläden fahren gleich herunter

Spracheingabe:
Auf meinem Handy die APP AIVC Pro (Alice) installiert.
Dort kann mann eigene HTTP Request´s hinterlegen
Nach dem Motto:
Licht an.......Licht aus.....Heizung im Wohnzimmer an....Heizung im Wohnzimmer aus.
Hat Charme- wenn man es übertreiben wollte, kann jedes Komando auch mit einer Sprachausgabe quittiert werden.
Nun habe ich noch ein altes Handy herumliegen. Damit werde ich am WE einmal testen, ob es klappt wie in der Beschreibung von Alice
beschrieben. Alice soll auch im Hintergrund zuhören und Befehle ausführen, dass wär´s natürlich. Dann müßte man nicht mal mehr einen Knopf drücken



Markus

Ja so hab ich es auch aber leider versteht mich das Handy nicht mehr wenn ich weiter weg bin und da ich eigentlich alles über fhem Programmieren möchte warte ich mit dem kauf einer vernünftigen Freisprecheinrichtung noch bis Dirk wvc soweit ändert das die app auch immer zuhört
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

hotwebnet

Hallo Markus, hört das Handy oder Tablet jetzt immer zu ??? das mit der Akkuanzeige zum starten der Voice Kontrolle ist nicht gut gelöst, oder hast du eine andere Lösung gefunden......

Michi240281

Hi,

habt Ihr auch folgende Auffälligkeit:

Das letzte Kommando, welches vom speechrecognizer empfangen wurde, wird ständig wiederholt ausgeführt! Es steht zwar noch bei den "voiceRecognitionLastResult", aber das notify darf doch nicht am laufenden Band auf den alten trigger reagieren?

So sehen meine notifies bislang aus:

define speechRecognizer_Vase_aus notify .*voiceRecognitionLastResult.*Vase|Warte|Waage|Base|sage|geradeaus.*(aus).* set Vase aus
define speechRecognizer_Vase_an notify .*voiceRecognitionLastResult.*Vase|Base|base|salam|Vasse.*(ein|an|am).* set Vase an
define speechRecognizer_Alarmanlage_scharf notify .*voiceRecognitionLastResult.*Alarmanlage.*scharf|an.* set Anlage_Scharf ein
define speechRecognizer_Alarmanlage_scharf2 notify .*voiceRecognitionLastResult.*Alarmanlage.*scharf.* set Anlage_Scharf ein
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

pnewman

#50
Hallo zusammen,
hier mal was ich so zusammen habe:

In 99_myUtils.pm:
##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;



# Enter you functions below _this_ line.

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub str_replace($$$)
{
  my ($find,$replace,$string) = @_;
  $string =~ s/$find/$replace/g;
  return $string;
}
sub
SprechKommaUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub say($)
{
  my ($msg) = @_;
  fhem "set androidTablet ttsSay $msg";

}


1;

Dies damit die Temperaturangaben auch angesagt werden und zwar mit Komma, also 21 Komma 4!!

Sprachkommandos:
#
#            WebviewControl fuer Android
#
define androidTablet webViewControl XXXXX
attr androidTablet group AndroidTablet
attr androidTablet icon it_smartphone
attr androidTablet room Haus
#
#            Hilfefunktion für Spracheingabe (WebViewControl)
#
define speechRecognizer_HILFEFHEM notify .*voiceRecognitionLastResult.*Hilfe.* set @ ttsSay Folgende Sprachbefehle führe Ich aus: Temperatur Wohnzimmer, Wohnzimmer 17, Wohnzimmer 21, Wohnzimmer 22, Wohnzimmer buhst, Wohnzimmer Stehlampe an, ein, aus.
attr speechRecognizer_HILFEFHEM group WebviewControl
attr speechRecognizer_HILFEFHEM room Haus
define speechRecognizer_Hallo notify .*voiceRecognitionLastResult.*Hallo.* set @ ttsSay Hallo, schön das Du da bist, was kann Ich für Dich tun.
attr speechRecognizer_Hallo group WebviewControl
attr speechRecognizer_Hallo room Haus
define speechRecognizer_Wohnzimmer_Temp notify .*voiceRecognitionLastResult.*Temperatur.*Wohnzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("T_Wohn","temperature","Fehler"))." Grad") }
attr speechRecognizer_Wohnzimmer_Temp group WebviewControl
attr speechRecognizer_Wohnzimmer_Temp room Haus
define speechRecognizer_Wohn_17 notify .*voiceRecognitionLastResult.*Wohnzimmer.*17 set T_Wohn desiredTemperature 17.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 17 Grad
attr speechRecognizer_Wohn_17 group WebviewControl
attr speechRecognizer_Wohn_17 room Haus
define speechRecognizer_Wohn_21 notify .*voiceRecognitionLastResult.*Wohnzimmer.*21 set T_Wohn desiredTemperature 21.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 21 Grad
attr speechRecognizer_Wohn_21 group WebviewControl
attr speechRecognizer_Wohn_21 room Haus
define speechRecognizer_Wohn_22 notify .*voiceRecognitionLastResult.*Wohnzimmer.*22 set T_Wohn desiredTemperature 22.0 ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich auf 22 Grad
attr speechRecognizer_Wohn_22 group WebviewControl
attr speechRecognizer_Wohn_22 room Haus
define speechRecognizer_Wohn_boost notify .*voiceRecognitionLastResult.*Wohnzimmer.*boost set T_Wohn desiredTemperature boost ;; set @ ttsSay Die Heizung im Wohnzimmer stelle Ich für 10 Minuten auf Buust
attr speechRecognizer_Wohn_boost group WebviewControl
attr speechRecognizer_Wohn_boost room Haus
define speechRecognizer_Wohn_Stehlampe_ein notify .*voiceRecognitionLastResult.*Wohnzimmer.*Stehlampe.*(ein|an).* set  SD_WZ_Angel on ;; set @ ttsSay Die Stehlampe im Wohnzimmer ist an
attr speechRecognizer_Wohn_Stehlampe_ein group WebviewControl
attr speechRecognizer_Wohn_Stehlampe_ein room Haus
define speechRecognizer_Wohn_Stehlampe_aus notify .*voiceRecognitionLastResult.*Wohnzimmer.*Stehlampe.*aus.* set SD_WZ_Angel off ;; set @ ttsSay Die Stehlampe im Wohnzimmer ist aus
attr speechRecognizer_Wohn_Stehlampe_aus group WebviewControl
attr speechRecognizer_Wohn_Stehlampe_aus room Haus
define speechRecognizer_Wohn_Rollo_Re_oeffnen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).* rechts.*(öffnen|hoch|auf).* set  R_WZ_RE Auf ;; set @ ttsSay Das Rollo im Wohnzimmer rechts fährt hoch
attr speechRecognizer_Wohn_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_Re_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_Re_schliessen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*rechts.*(schließen|runter|zu).* set  R_WZ_RE Zu ;; set @ ttsSay Das Rollo im Wohnzimmer rechts fährt runter
attr speechRecognizer_Wohn_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_Re_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_LI_oeffnen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*links.*(öffnen|hoch|auf).* set  R_WZ_LI Auf ;; set @ ttsSay Das Rollo im Wohnzimmer links fährt hoch
attr speechRecognizer_Wohn_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_LI_oeffnen room Haus
define speechRecognizer_Wohn_Rollo_LI_schliessen notify .*voiceRecognitionLastResult.*Wohnzimmer.*(Rollo|rollo).*links.*(schließen|runter|zu).* set  R_WZ_LI Zu ;; set @ ttsSay Das Rollo im Wohnzimmer links fährt runter
attr speechRecognizer_Wohn_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Wohn_Rollo_LI_oeffnen room Haus
define speechRecognizer_Amelie_Rollo_schliessen notify .*voiceRecognitionLastResult.*Amelie.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Amelie Zu ;; set @ ttsSay Das Rollo bei Amelie fährt runter
attr speechRecognizer_Amelie_Rollo_schliessen group WebviewControl
attr speechRecognizer_Amelie_Rollo_schliessen room Haus
define speechRecognizer_Amelie_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Amelie.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Amelie Auf ;; set @ ttsSay Das Rollo bei Amelie fährt hoch
attr speechRecognizer_Amelie_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Amelie_Rollo_oeffnen room Haus
define speechRecognizer_Amelie_Temp notify .*voiceRecognitionLastResult.*temperatur.*amelie {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Amelie","temperature","Fehler"))." Grad") }
attr speechRecognizer_Amelie_Temp group WebviewControl
attr speechRecognizer_Amelie_Temp room Haus
define speechRecognizer_Badezimmer_Rollo_schliessen notify .*voiceRecognitionLastResult.*Badezimmer.*(Rollo|rollo).*(schließen|runter|zu).* set  R_BAD Zu ;; set @ ttsSay Das Rollo im Badezimmer fährt runter
attr speechRecognizer_Badezimmer_Rollo_schliessen group WebviewControl
attr speechRecognizer_Badezimmer_Rollo_schliessen room Haus
define speechRecognizer_Badezimmer_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Badezimmer.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_BAD Auf ;; set @ ttsSay Das Rollo im Spielzimmer fährt hoch
attr speechRecognizer_Badezimmer_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Badezimmer_Rollo_oeffnen room Haus
define speechRecognizer_Badezimmer_Temp notify .*voiceRecognitionLastResult.*temperatur.*Badezimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_BAD","temperature","Fehler"))." Grad") }
attr speechRecognizer_Badezimmer_Temp group WebviewControl
attr speechRecognizer_Badezimmer_Temp room Haus
define speechRecognizer_GWC_Rollo_schliessen notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(schließen|runter|zu).* set  R_GWC Zu ;; set @ ttsSay Das Rollo im Gäste WC fährt runter
attr speechRecognizer_GWC_Rollo_schliessen group WebviewControl
attr speechRecognizer_GWC_Rollo_schliessen room Haus
define speechRecognizer_GWC_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(öffnen|hoch).* set  R_GWC Auf ;; set @ ttsSay Das Rollo im Gäste WC fährt hoch
attr speechRecognizer_GWC_Rollo_oeffnen group WebviewControl
attr speechRecognizer_GWC_Rollo_oeffnen room Haus
define speechRecognizer_GWC_Rollo_65 notify .*voiceRecognitionLastResult.*Gäste.*(Gäste|WC).*(Rollo|rollo).*(beschatten|Schatten|schatten|65).* set  R_GWC 65 ;; set @ ttsSay Das Rollo im Gäste WC beschattet
attr speechRecognizer_GWC_Rollo_65 group WebviewControl
attr speechRecognizer_GWC_Rollo_65 room Haus
define speechRecognizer_GWC_Temp notify .*voiceRecognitionLastResult.*temperatur.*Gäste.*(Gäste|WC) {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_GWC","temperature","Fehler"))." Grad") }
attr speechRecognizer_GWC_Temp group WebviewControl
attr speechRecognizer_GWC_Temp room Haus
define speechRecognizer_Schlafzimmer_Temp notify .*voiceRecognitionLastResult.*Temperatur.*Schlafzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Schlaf","temperature","Fehler"))." Grad") }
attr speechRecognizer_Schlafzimmer_Temp group WebviewControl
attr speechRecognizer_Schlafzimmer_Temp room Haus
define speechRecognizer_Spielzimmer_Rollo_schliessen notify .*voiceRecognitionLastResult.*Spielzimmer.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Spielzimmer Zu ;; set @ ttsSay Das Rollo im Spielzimmer fährt runter
attr speechRecognizer_Spielzimmer_Rollo_schliessen group WebviewControl
attr speechRecognizer_Spielzimmer_Rollo_schliessen room Haus
define speechRecognizer_Spielzimmer_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Spielzimmer.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Spielzimmer Auf ;; set @ ttsSay Das Rollo im Spielzimmer fährt hoch
attr speechRecognizer_Spielzimmer_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Spielzimmer_Rollo_oeffnen room Haus
define speechRecognizer_Spielzimmer_Temp notify .*voiceRecognitionLastResult.*temperatur.*spielzimmer {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Spielzimmer","temperature","Fehler"))." Grad") }
attr speechRecognizer_Spielzimmer_Temp group WebviewControl
attr speechRecognizer_Spielzimmer_Temp room Haus
define speechRecognizer_Zoe_Rollo_schliessen notify .*voiceRecognitionLastResult.*Zoe.*(Rollo|rollo).*(schließen|runter|zu).* set  R_Zoe Zu ;; set @ ttsSay Das Rollo bei Zoe fährt runter
attr speechRecognizer_Zoe_Rollo_schliessen group WebviewControl
attr speechRecognizer_Zoe_Rollo_schliessen room Haus
define speechRecognizer_Zoe_Rollo_oeffnen notify .*voiceRecognitionLastResult.*Zoe.*(Rollo|rollo).*(öffnen|hoch|auf).* set  R_Zoe Auf ;; set @ ttsSay Das Rollo bei Zoe fährt hoch
attr speechRecognizer_Zoe_Rollo_oeffnen group WebviewControl
attr speechRecognizer_Zoe_Rollo_oeffnen room Haus
define speechRecognizer_Zoe_Temp notify .*voiceRecognitionLastResult.*temperatur.*zoe {say ("Aktuelle Temperatur " . str_replace('\.',' komma ',ReadingsVal("HZ_Zoe","temperature","Fehler"))." Grad") }
attr speechRecognizer_Zoe_Temp group WebviewControl
attr speechRecognizer_Zoe_Temp room Haus
define speechRecognizer_Kueche_Rollo_Re_schliessen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(schließen|runter|zu).* set  R_KUECHE_RE Zu ;; set @ ttsSay Das Rollo in der Kueche rechts fährt runter
attr speechRecognizer_Kueche_Rollo_Re_schliessen group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_schliessen room Haus
define speechRecognizer_Kueche_Rollo_Re_oeffnen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(öffnen|hoch|auf).* set  R_KUECHE_RE Auf ;; set @ ttsSay Das Rollo in der Kueche rechts fährt hoch
attr speechRecognizer_Kueche_Rollo_Re_oeffnen group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_oeffnen room Haus
define speechRecognizer_Kueche_Rollo_Re_65 notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*rechts.*(beschatten|Schatten|schatten|65).* set  R_KUECHE_RE 65 ;; set @ ttsSay Das Rollo in der Kueche rechts beschattet
attr speechRecognizer_Kueche_Rollo_Re_65 group WebviewControl
attr speechRecognizer_Kueche_Rollo_Re_65 room Haus
define speechRecognizer_Kueche_Rollo_LI_schliessen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(schließen|runter|zu).* set  R_KUECHE_LI Zu ;; set @ ttsSay Das Rollo in der Kueche links fährt runter
attr speechRecognizer_Kueche_Rollo_LI_schliessen group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_schliessen room Haus
define speechRecognizer_Kueche_Rollo_LI_oeffnen notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(öffnen|hoch|auf).* set  R_KUECHE_LI Auf ;; set @ ttsSay Das Rollo in der Kueche links fährt hoch
attr speechRecognizer_Kueche_Rollo_LI_oeffnen group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_oeffnen room Haus
define speechRecognizer_Kueche_Rollo_LI_65 notify .*voiceRecognitionLastResult.*Küche.*(Rollo|rollo).*links.*(beschatten|Schatten|schatten|65).* set  R_KUECHE_LI 65 ;; set @ ttsSay Das Rollo in der Kueche links beschattet
attr speechRecognizer_Kueche_Rollo_LI_65 group WebviewControl
attr speechRecognizer_Kueche_Rollo_LI_65 room Haus


Ja, die ersten Sachen waren Spielerei ;), aber jeder fängt ja mal an.
Und ich kann den kleinen Jungen in mir nicht immer einsperren. :)

Viel Spass damit und danke an die Mitglieder im Forum die dies alles ermöglicht haben!

Gruß
Ralf
Raspberry Pi3B+ / Nano-Cul 868 - MAX!=Heizung, HM-Lan - Rollo+Licht, JeeLink-Clone 868 - LaCrosse, JeeLink-Clone 868 - PCA301, CUL 434 - IT-Steckdosen+Fernbedienung

C1500

Servus pnewmen,
hab gerade viel bei dir abgeschaut und eine neue Idee.
Ich würde mir gerne die Uhrzeit ansagen lassen.

Aber irgendwie finde ich keine Variabel mit der das klappt.

Ich habe es jetzt so probiert:
define speechRecognizer_Fun_Zeit notify .*voiceRecognitionLastResult.*(wie|wieviel).*(spät|Spät|Uhr) {say ("Es ist jetzt " . str_replace('\:',' Uhr ',ReadingsVal("$now")).) }


Das führt aber zu folgende Fehlermeldung:
ZitatGlobal symbol "$now" requires explicit package name at (eval 95) line 1.
Not enough arguments for main::ReadingsVal at (eval 95) line 1, near ""$now")"
syntax error at (eval 95) line 1, near ".) "
Bin in Perl recht unbedarft. Ist $now nicht global verwendbar?

Hast du ne Idee wie das klappen könnte?

Gruß Peer

Puschel74

Wenn man sich den Syntax von ReadingsVal ansiehst erkennt man das damit ein Reading eines Devices abgefragt werden kann.
Beispiel:
ReadingsVal("OG_Zimmer_Heizung","window",undef);
Hier wird aus dem Devcie OG_Zimmer_Heizung das Reading window abgefragt oder undef zurückgegeben sollte das Reading nicht existieren.

$now so abzufragen macht logischerweise keinen Sinn.

Ich meine im Forum aber schon gesehen zu haben das jemand deine Anforderung, vorlesen der Uhrzeit, umgesetzt hat.
Da aber die Beitragstitel nicht gerade berauschend gewählt werden artet die Suche danach zur Sysiphusarbeit aus.

Edith: Ich meine das es unter Codeschnipsel oder Automatisierung zu finden sein dürfte.
In der Suche kann man dann auf diese 2 Unterforen einschränken.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.