[37_echodevice] Amazon Echo Modul (nicht Alexa)

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

Vorheriges Thema - Nächstes Thema

michael.winkler

Zitat von: dan21 am 15 Februar 2019, 16:51:19
So, habe meine Docker config geändert. Wenn der Container als host im Netzwerk hängt gibt es intern keine IP. Jetzt hängt der Container normal drin und ich konnte die IP-Adresse rausfinden:


npm_proxy_ip            192.168.1.90
npm_proxy_listen_ip   172.23.0.8


Ich bekomme aber imemrnoch im Log:

2019.02.15 16:47:40 3: [Amazon.connect] [echodevice_NPMLoginNew] Node Version 11.8.0

sh: 1: ip: not found
2019.02.15 16:47:40 3: [Amazon.connect] [echodevice_NPMLoginNew] wrong IP-Address


Auf der Weboberfläche kommt:


Login Ergebnis


Die Ermittlung der IP-Adresse 127.0.0.1 des FHEM Servers hat nicht funktioniert, bitte das Attribut "npm_proxy_ip" entsprechend anpassen.


Noch weitere Ideen?
sende mal einen get status vom Account Device

dan21

Zitat von: michael.winkler am 15 Februar 2019, 16:56:40
sende mal einen get status vom Account Device
Bitte sehr:

Beschreibung    Bereich    Wert
STATE    Reading connected but loginerror
Version    Reading 0.0.51v
COOKIE_STATE    Reading START
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading unbekannt
icon    Attribut echo
npm_proxy_ip    Attribut 192.168.1.90
npm_proxy_listen_ip    Attribut 172.23.0.8
room    Attribut 90_System
browser_save_data    Attribut 0
DbLogExclude    Attribut .*
disable    Attribut 0
verbose    Attribut 5

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading session-id=258-36133....
COOKIE_STATE    Reading START
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading unbekannt
.COOKIE    Helper session-id=258-36133....
.COMMSID    Helper ....
.CSRF    Helper ubi....
.DIRECTID    Helper ....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper 0
LOGINERROR    Helper 3

michael.winkler

Zitat von: dan21 am 15 Februar 2019, 17:05:18
Bitte sehr:

Beschreibung    Bereich    Wert
STATE    Reading connected but loginerror
Version    Reading 0.0.51v
COOKIE_STATE    Reading START
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading unbekannt
icon    Attribut echo
npm_proxy_ip    Attribut 192.168.1.90
npm_proxy_listen_ip    Attribut 172.23.0.8
room    Attribut 90_System
browser_save_data    Attribut 0
DbLogExclude    Attribut .*
disable    Attribut 0
verbose    Attribut 5

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading session-id=258-36133....
COOKIE_STATE    Reading START
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading unbekannt
.COOKIE    Helper session-id=258-36133....
.COMMSID    Helper ....
.CSRF    Helper ubi....
.DIRECTID    Helper ....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper 0
LOGINERROR    Helper 3

Du verwendest eine alte Version! Bitte die Version von Seite 1 verwenden.

balli1187

Zitat von: michael.winkler am 15 Februar 2019, 16:33:03
Beides funktioniert über unterschiedliche Wege. Daher sind beide Befehle getrennt im Modul.
Okay.
Welche Unterschiede gibt es denn für den User? Beim testen konnte ich bei Texten ohne Tags keinen Unterschied zwischen speak und speak_ssml feststellen.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

dan21

Zitat von: michael.winkler am 15 Februar 2019, 17:08:18
Du verwendest eine alte Version! Bitte die Version von Seite 1 verwenden.
Ich habe die Version heute runtergeladen und eingespielt. Im Changelog der Datei steht schon Version 0.0.51w, aber Modulinfo sagt v. Es ist also die aktuellste Version.

awel

Zitat von: michael.winkler am 15 Februar 2019, 16:39:16
Wenn ich das richtig verstehe wird hier aber nur ein einziges Command herausgefiltert, richtig?
Da die Änderung auf meinem Mist gewachsen war, schalte ich mich mal ein.
Die Idee war ursprünglich, dieses "sprich mir nach..." herauszufiltern und den ursprünglichen Voice-Befehl zur Verfügung zu haben.
Dazu dient das Attribut "ignoreVoiceCommand", in dem man den herauszufilternden Sprachbefehl einträgt. Bleibt das Attribut leer, wird auch nichts gefiltert - die Sache ist also optional!

Zu Deiner Frage:
Eigentlich müsste man als Attribut-Inhalt einen regulären Ausdruck angeben und damit auch mehrere Filter setzen können wie z.B. "sprich mir nach.*|Filter2|Filter3", oder?

Und da wir gerade beim Wunschzettel sind:
Könntest du bei Alarmen auch das "_recurringPattern" als Reading zur Verfügung stellen? Im Code scheint es vorhanden zu sein, wird nur nicht als Reading zur Verfügung gestellt (irgendwo in der Gegend von Zeile 2928). Damit wäre es möglich, bei mehreren Weckern denjenigen für den nächsten Tag zu finden.

DANKE!
VG Achim

michael.winkler

Zitat von: dan21 am 15 Februar 2019, 17:14:13
Ich habe die Version heute runtergeladen und eingespielt. Im Changelog der Datei steht schon Version 0.0.51w, aber Modulinfo sagt v. Es ist also die aktuellste Version.
Mist da muss ich Dir leider recht geben.

Auf Seite 1 ist jetzt die Version 0.0.51x. Dort habe ich den Fehler beseitig. Bitte mal probieren.

In der Version ist auch das Attribut "ignorevoicecommand" in der ersten Version.

dan21

Zitat von: michael.winkler am 15 Februar 2019, 17:33:42
Auf Seite 1 ist jetzt die Version 0.0.51x. Dort habe ich den Fehler beseitig. Bitte mal probieren.

Super Arbeit, es klappt. Danke.

87insane

#2318
@michael.winkler:

Warum läuft alarm_count bei Aktivierung oder Deaktivierung nicht auf die Gesamtzahl sondern kurzzeitig auf den auslösenden Wecker?

Beispiel:
alarm_count im Alexa Gerät = 16

Nun geht einer oder mehrere Wecker aktiv/inaktiv. In diesem Moment ist die Anzahl nicht die gesamte Anzahl der Wecker, sondern nur die Zahl des auslösenden Weckers.
Wenn z.B. Wecker 12 auslöst, ist kurzzeitig alarm_count 12. Leider hindert mich das daran meine "letzter Wecker"-Prüfung durch zu führen. Ich müsste ein extra Reading bauen, welches immer die tatsächliche (egal ob online oder offline) Anzahl der Wecker vor hält.

rolf

Zitat von: michael.winkler am 15 Februar 2019, 17:33:42
Mist da muss ich Dir leider recht geben.

Auf Seite 1 ist jetzt die Version 0.0.51x. Dort habe ich den Fehler beseitig. Bitte mal probieren.

In der Version ist auch das Attribut "ignorevoicecommand" in der ersten Version.

Habe gerade die 0.0.51x installiert - das Attribut "ignorevoicecommand" funktioniert - vielen Dank an awel für diese coole Idee ! - danke Michael fürs Einbauen ins offizielle Modul - perfekt !

Gruß,
Rolf
System 1: Intel NUC (ubuntu 18.04.1 lts) mit diversen Homematic-Komponenten + CUNO mit Uniroll/Hoermann + RFXTRX mit TFA + EnOcean mit Eltako + Alexa + Harmony + per HMCCU gekoppelter PI3-Raspberrymatic mit HM-IP-Komponenten
System 2: PI2-Raspberry (Jessie) + Signalduino mit Somfy/RTS

Jack_n

#2320
Hallo,

ich habe aktuell das Problem, das die Sprachausgabe trotz set auf dem richtigen Device auf einem nicht gewünschten Device ausgegegen wird.

Habt ihr mir zu diesem Verhalten bitte einen Tip ?

Vielen Dank

Joachim

87insane

#2321
Guten Morgen zusammen,

anbei nochmal der verbesserte und auch funktionierende Code zum Thema letzter Wecker.
Nur mit dem Reading alarm_count kämpfe ich noch. Leider ist die Ausgabe des Readings fehlerhaft bzw. geht nicht für diesen Zweck. Da muss ich noch etwas basteln. Habe nur noch keine Idee wie ich die Anzahl der Wecker zusammenfasse.

EDIT: Geht nun komplett dank Byte09 ! Ein zusätzliches Reading im betroffenem Gerät löst das Problem.
Inhalt des Readings: AlarmCount {my $anz = grep( m/alarm_.._status/, ( keys %{$hash->{READINGS}} )); return $anz;}

So läuft nun die Schleife sauber und das Script hat in meinen Tests keine Fehler mehr. Egal wie ich Wecker stelle, der letzte / späteste Wecker wird bei mir immer korrekt ermittelt :)

Viel Spaß damit....

(ECHO_123456:alarm_.._status:.(on|off)) {
my $k = "0";
my $alarmoff = "0";
my $schleifennr = "1";
my $lastalarmalexa = "0";

foreach $k (1..ReadingsVal("$NAME", "AlarmCount", ""))
{
$schleifennr = sprintf("%02d", $k);
my $wecker = ReadingsVal("$NAME", "alarm_".$schleifennr."_originalTime" ,"0");
$wecker =~ s/:00.000$//;

if (ReadingsVal("$NAME", "alarm_".$schleifennr."_status", "") eq "on" && "$wecker" gt "$lastalarmalexa")
{
$lastalarmalexa = $wecker;
}

elsif (ReadingsVal("$NAME", "alarm_".$schleifennr."_status", "") eq "off")
{
$alarmoff = $alarmoff + 1;

if (sprintf("%02d", $alarmoff) eq $schleifennr)
{
$lastalarmalexa = 0;
}
}
fhem("setreading $NAME LastAlarm $lastalarmalexa")
}
}


Die Ausgabe ist entweder 0, wenn alle Wecker aus sind.
Oder sie ist eine Zeit im Standard Format (e.g. 12:15).
Dies wird in ein Reading (LastAlarm) des Gerätes geschrieben. Ich selber triggere damit dann z.B. das Schlafzimmer Rollo.


EDIT:
@Michael.winkler: Ist es möglich das wecker mit Wiederholung oder Tagen angezeigt werden? Mein script triggert aktuell über on/off vom Status der Wecker. Das ist super für wecker die jeden Tag gestellt werden, wie ich es mache. Aber wenn jemand einen wecker stellt der nur am WE angehen soll zb, würde dieser jeden Tag mit drin stehen, da im Modul keine angabe dazu ist. Danke für ggf anpassungen oder Infos :)

Hinzu nochmal die Frage, die ich weiter oben stellte. Alarm_Count ... Danke für alle Infos.

raiderxxl

#2322
Hallo,

mal ne ganz blöde frage.. wie bekomme ich den String für die Routinen (play_routine) rauskopiert? Damit ich ne Routine über ein DOIF starten kann?

Ich habe die Routinen ja nur im Setfeld und da kann ich nix im Browser kopieren...

Grüßle

Pascal

FHEM VM Ubuntu-Server auf Intel® NUC-Kit NUC6i5SYH ESXi 6.5
FHEM auf Raspberry2 OSMC Hyperion und TTS

Homematic,TradfriHub und Lampen,WIFILight,Fritzbox,FritzDECT,NanoCul433,IT Steckdosen,Diverse Nachbar-Sensoren,XiaomiZigbee,
ESP_Signalduino,ESPEasy,Amad,HarmonyHub,WLED,MQTT,Tasmota....

dk3572

Zitat von: pfeffi am 05 Februar 2019, 14:53:30
habe jede Menge Meldungen  --- bluetooth disconnected --- in den Readings
hat jemand eine Idee wie ich die löschen kann ?

Hallo,

gibt es eigentlich hierzu neue Erkenntnisse?
Die Einträge werden bei mir auch immer mehr.

Danke und VG
Dieter

michael.winkler

Zitat von: dk3572 am 17 Februar 2019, 14:07:36
Hallo,

gibt es eigentlich hierzu neue Erkenntnisse?
Die Einträge werden bei mir auch immer mehr.

Danke und VG
Dieter
Hier hatte ich um Logdateien und HTML Results gebeten. Leider habe ich diese bis heute nicht erhalten. Daher gibt es auch keinen neuen Erkenntnisse!

Benötige ein HTML Result von "xxx_bluetoothstate.html". Eventuell ist da ersichtlich warum so viele Geräte auftauchen.