[37_echodevice] Amazon Echo Modul (nicht Alexa)

Begonnen von michael.winkler, 12 Januar 2018, 18:20:12

Vorheriges Thema - Nächstes Thema

Marlen

Hab das mit Durchsagen so gelöst!
Durchsage_Alexa:.* {
my $volold = ReadingsNum('Alexa','volume','');
my $play = 0;
if (ReadingsVal("Alexa","playStatus","") eq "playing") {
$play = "1";
}
my $voldurchs = ReadingsNum('Durchsage_Alexa','Volume','');
fhem "setreading $SELF Vol_old $volold";
my $durchsage = ReadingsVal('Durchsage_Alexa','state','');
my $laenge = round(0.5 + (length($durchsage) * 0.15),0);
fhem "set Alexa pause" if ($play eq "1");
fhem "set Alexa volume $voldurchs";
fhem "sleep 0.1; set Alexa speak $durchsage";
fhem "sleep $laenge; set Alexa volume $volold";
fhem "sleep $laenge; sleep 0.2; set Alexa play" if ($play eq "1");
}


Ich multipliziere die Anzahl der Buchstaben mit 0,15 Sek.
my $laenge = round(0.5 + (length($durchsage) * 0.15),0);

Funktioniert so ganz gut!

LG
Marlen

awel

Hallo allerseits,

ist bei den letzten Updates die Account-Funktion "set <account> textmessage" irgendwo auf der Strecke geblieben?
Die Abfrage "get <account> conversations" liefert bei auch nur noch den fett gedruckten Text "IDDateMessage" - offensichtlich eine Überschrift.

Mit der Android-App funktionieren Textnachrichten einwandfrei.

Danke!
VG Achim

michael.winkler

Zitat von: awel am 14 September 2018, 09:59:58
Hallo allerseits,

ist bei den letzten Updates die Account-Funktion "set <account> textmessage" irgendwo auf der Strecke geblieben?
Die Abfrage "get <account> conversations" liefert bei auch nur noch den fett gedruckten Text "IDDateMessage" - offensichtlich eine Überschrift.

Mit der Android-App funktionieren Textnachrichten einwandfrei.

Danke!
VG Achim
Ja, die Funktion ist in Eurer Version gerade nicht vorhanden.

Hier muss ich noch was testen. Sobald es wieder geht gebe ich Euch bescheid.

awel

Danke für die Info und besonders für deinen unermüdlichen Einsatz!
VG Achim

awel

Hallo Michael,

in seinem Blog "Lötzimmer" beschreibt Alexander Noack die Möglichkeit, mit seinem  alexa_remote_control-Script das Gerät abzufragen, welches als letztes einen Voice-Befehl empfangen hat. 
Könnte man das mittelfristig auch in das fhem-Alexa-Modul einbinden? Ok, falsche Formulierung: Könntest du...  ;)
ZitatDas Gerät, welches zuletzt einen Voice Befehl empfangen hat fragt dazu folgendes Kommando ab:
     alexa_remote_control.sh -lastalexa
...
# 2018-02-27: v0.8e added "lastalexa" option for HA-Bridge to send its command to a specific device
#  (Markus Wennesheimer: https://wennez.wordpress.com/light-on-with-alexa-for-each-room/)

In Verbindung mit dem speak-Befehl könnte die fhem-Alexa dann auf dem richtigen Gerät antworten. Zur Zeit versuche ich das angesprochene Device über eine Abfrage der Timestamps vom voice-Reading herauszubekommen - aber trotz manueller Aktualiserung mit "get <account> Settings" dauert das relativ lange.

Vielen Dank, Gruß
Achim

Marlen

Hallo,

ich versuche über den Voice-Reading ein bisschen was zu schalten.

Jetzt hab ich mir gedacht die Temperatur damit zu steuern.

Ein "Alexa, stell das Wohnzimmer auf 22 Grad" kommt im reading so an "alexa stell das wohnzimmer auf zweiundzwanzig grad".

Hat jemand eine Idee wie man das in echte Zahlen bekommen bzw. umwandeln kann?

LG
  Marlen

cs-online

...ich hab das mal mit einem array gemacht...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Marlen

Aha....

Gesendet von meinem Aquaris U Plus mit Tapatalk


Marlen

Magst ein bisschen ausführlicher beschreiben wie du das gemacht hast?

Gesendet von meinem Aquaris U Plus mit Tapatalk


Byte09

#1119
Zitat von: Marlen am 22 September 2018, 13:01:37
Magst ein bisschen ausführlicher beschreiben wie du das gemacht hast?

Gesendet von meinem Aquaris U Plus mit Tapatalk

ich denke er meint , dass er den string über ein array (assioziatives) umwandelt in eine zahl.

ich habe das mal kann kurz in einem userreading zusammengebastelt . nur als beispiel , das geht deutlich feiner. ausserdem würde ich hier auf die 99utils ausweichen.

kurzbeispiel als userreading :
Actions:.* {my %translate =("alexa stell das wohnzimmer auf zweiundzwanzig grad"=>"22","alexa stell das wohnzimmer auf elf grad"=>"11");; my $test = ReadingsVal("$NAME","state",0); return $translate{"$test"};;}

gruss Byte09

edit hingebastelter dummy zur verdeutlichung ( nicht schön, aber schnell hingebogen )

defmod BD_Taster1 dummy
attr BD_Taster1 room 1_Test
attr BD_Taster1 userReadings Actions:.* {my %translate =("alexa stell das wohnzimmer auf zweiundzwanzig grad"=>"22","alexa stell das wohnzimmer auf elf grad"=>"11");;;; my $test = ReadingsVal("$NAME","state",0);; return $translate{"$test"};;;;}
attr BD_Taster1 webCmd alexa stell das wohnzimmer auf zweiundzwanzig grad: alexa stell das wohnzimmer auf elf grad

setstate BD_Taster1 alexa stell das wohnzimmer auf zweiundzwanzig grad
setstate BD_Taster1 2018-09-23 10:07:06 Actions 22
setstate BD_Taster1 2018-09-23 10:07:06 state alexa stell das wohnzimmer auf zweiundzwanzig grad




... schöne variante ( glaube ich ) - kuzfassung , da habe ich gerade keine lust das zusammenzubasteln  ;)

die ganze überprüfung in die 99Utils auslagern , aufruf durch userreading  -> dort den ganzen satz 'zerpflücken' auf 'zahlenwörter' durch ein a. array prüfen  und diese durch den numerischen wert ersetzen . den rest auf numerischen wert reduzieren und diesen zurückgeben um ihn in das userreading zu schreiben .


awel

Hallo,
wäre für derartige Steuerungen der fhem-Smart-Home-Skill für Alexa nicht besser geeignet?
Das ist allerdings reichlich Frickelarbeit mit nicht unbedingt vollständiger Dokumentation.

Es wurde ja auch die Entwicklung eines offiziellen Alexa-FHEM-Skills angekündigt, der dann auf dem FHEM-Vereinsserver laufen sollte.
Dann wäre die Installation einfach - leider hört man nichts mehr davon...
https://forum.fhem.de/index.php/topic,82860.0.html

Gruß Achim

Markus M.

Zitat von: Byte09 am 23 September 2018, 10:04:48
my %translate =("alexa stell das wohnzimmer auf zweiundzwanzig grad"=>"22","alexa stell das wohnzimmer auf elf grad"=>"11");
"alexa heizung im wohnzimmer auf 22 grad" => "fail"

Wenn du das stattdessen mit sinnvollen Keywords machst, kann im Zweifelsfall auch Yoda deine Heizung einstellen.
In diesem Fall wäre die Anwesenheit von "wohnzimmer" und "grad" oder "heizung" ein Hinweis auf das Thermostat, wenn dann noch eine Zahl enthalten ist, hast du dein Kommando zusammen.
Hatte nicht irgendwo jemand schon mal ein Modul vorgestellt, das genau das macht?!
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Byte09

#1122
Zitat von: Markus M. am 23 September 2018, 12:49:25
"alexa heizung im wohnzimmer auf 22 grad" => "fail"

Wenn du das stattdessen mit sinnvollen Keywords machst, kann im Zweifelsfall auch Yoda deine Heizung einstellen.
In diesem Fall wäre die Anwesenheit von "wohnzimmer" und "grad" oder "heizung" ein Hinweis auf das Thermostat, wenn dann noch eine Zahl enthalten ist, hast du dein Kommando zusammen.
Hatte nicht irgendwo jemand schon mal ein Modul vorgestellt, das genau das macht?!

.... hatte ja gesagt , das ich es in 2 minuten hingefrickelt habe - als beispiel - und das in jedem fall ferfeinerbar ist .  ;)  . die frage war je erstmal nur , wie aus 'zweiundzwanzig' -> 22 wird.

gruss Byte09

Marlen

#1123
Dann kann ich das ja auch so:

Alexa:voice:.* {
######################### in Zahl umwandeln ###########
my $zahl = 0;
if ($EVENT =~ /zwanzig/) {
$zahl = 20;
goto weiterzahl;
}elsif ($EVENT =~ /dreißig/) {
$zahl = 30;
goto weiterzahl;
}elsif ($EVENT =~ /vierzig/) {
$zahl = 40;
goto weiterzahl;
}
goto endezahl;
weiterzahl:
if ($EVENT =~ /ein und/) {
$zahl = $zahl + 1;
}elsif ($EVENT =~ /zwei und/) {
$zahl = $zahl + 2;
}elsif ($EVENT =~ /drei und/) {
$zahl = $zahl + 3;
}elsif ($EVENT =~ /vier und/) {
$zahl = $zahl + 4;
}elsif ($EVENT =~ /fünf und/) {
$zahl = $zahl + 5;
}elsif ($EVENT =~ /sechs und/) {
$zahl = $zahl + 6;
}elsif ($EVENT =~ /sieben und/) {
$zahl = $zahl + 7;
}elsif ($EVENT =~ /acht und/) {
$zahl = $zahl + 8;
}elsif ($EVENT =~ /neun und/) {
$zahl = $zahl + 9;
}
fhem "setreading Alexa voice_zahl $zahl";
endezahl:


in mein notify einbauen!?

LG
  Marlen

Marlen

Zitat von: Marlen am 10 September 2018, 22:22:44
Also, jetzt habe ich ein
COOKIE_STATE OK

Gesten war ich wieder disconnected, also genau nach 14 Tagen!!

Von alleine hat sich das dann nicht mehr connected! Ist das so richtig?

Musste dann wieder ein captcha lösen.

LG
  Marlen