[37_echodevice] Amazon Echo Modul (nicht Alexa)

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

Vorheriges Thema - Nächstes Thema

87insane

Guck mal meinen Post vor kurzem... Mach einfach genau das und es wird wieder laufen.

retikulum

So clever war ich auch schon.

Hattest du denn exakt dieselbe Fehlermeldung "alexa-cookie modul not found"?

87insane

#2297
Nein aber da ich andere Probleme hatte, die aber auch in diese Richtung gingen hatte ich NPM INSTALL und NPM login new gemacht.

2019.02.13 13:43:48 3: [EchoWohnzimmer] [echodevice_LoginStart] Alter COOKIE=773778/6000 Refresh Cookie!
Diese Aussage impliziert, das der cookie neu muss....

2019.02.13 13:43:48 3: [EchoWohnzimmer] [echodevice_NPMLoginRefresh] alexa-cookie modul not found
Diese hier, würde mir sagen das ggf. NPM Install neu gemacht werden muss.
NPMLoginRefresh versucht er schon aber kann er nicht. Kann am Ende ja nur auf Installation des Moduls hinweisen oder aber auf Rechte Probs. Glaube nach wie vor das 1.

ZitatZum Nutzen der neuen NPM Anmeldung müsst ihr das Linux Paket "NPM" auf eurem FHEM Server installieren. Wenn dies vorhanden ist geht es wie folgt weiter.

1. ein set NPM_install am Account Device durchführen
2. ein set NPM_login new am Account Device durchführen

Gruß
Michael

michael.winkler

Zitat von: 87insane am 13 Februar 2019, 15:32:51
Nein aber da ich andere Probleme hatte, die aber auch in diese Richtung gingen hatte ich NPM INSTALL und NPM login new gemacht.

2019.02.13 13:43:48 3: [EchoWohnzimmer] [echodevice_LoginStart] Alter COOKIE=773778/6000 Refresh Cookie!
Diese Aussage impliziert, das der cookie neu muss....

2019.02.13 13:43:48 3: [EchoWohnzimmer] [echodevice_NPMLoginRefresh] alexa-cookie modul not found
Diese hier, würde mir sagen das ggf. NPM Install neu gemacht werden muss.
NPMLoginRefresh versucht er schon aber kann er nicht. Kann am Ende ja nur auf Installation des Moduls hinweisen oder aber auf Rechte Probs. Glaube nach wie vor das 1.
Das Modul findet die NPM Umgebung nicht. ein npm Install sollte da helfen. Wenn das nicht funktioniert solltest Du mal im LOG nachschauen ob dort ersichtlich ist was nicht passt.

PingPong

Guten Morgen,
hat jemand von Euch denn schon die Sonos One über dieses Modul angebunden?
Was könnt Ihr damit alles anstellen? Wie nutzt Ihr das?

VG
Marc

retikulum

Zitat von: michael.winkler am 13 Februar 2019, 17:01:52
Das Modul findet die NPM Umgebung nicht. ein npm Install sollte da helfen. Wenn das nicht funktioniert solltest Du mal im LOG nachschauen ob dort ersichtlich ist was nicht passt.

Moin.
Japp, scheinbar hab ich ein NPM-Problem seit ich auf Debian 10 upgegraded hab. Laut Fhem-Logs findet er die binary von npm nicht (habe die bin in attribute eingetragen).
Ich weiß nicht mehr, wie ich node damals installiert hab, zumindest mal nicht über apt. Ich muss das dann jetzt mal auseinanderpflücken und am besten via apt neu installieren zwecks besserer Verwaltbarkeit...

michael.winkler

Zitat von: retikulum am 14 Februar 2019, 10:49:10
Moin.
Japp, scheinbar hab ich ein NPM-Problem seit ich auf Debian 10 upgegraded hab. Laut Fhem-Logs findet er die binary von npm nicht (habe die bin in attribute eingetragen).
Ich weiß nicht mehr, wie ich node damals installiert hab, zumindest mal nicht über apt. Ich muss das dann jetzt mal auseinanderpflücken und am besten via apt neu installieren zwecks besserer Verwaltbarkeit...
Ist eigentlich alles sauber beschrieben. Auf Seite 1 steht etwas dazu und auch in der Dokumentation.

balli1187

Zitat von: balli1187 am 11 Februar 2019, 23:27:32
@Michael
Gibt es einen Grund speak und speak_ssml parallel anzubieten? Ich meine, wenn bei speak_ssml keine Tags angegeben werden, wird doch nur der Text gesprochen oder übersehe ich da was?
Sorry wenn ich nochmal dazwischen haue aber ich wollte die Frage nochmal kurz aufwerfen.


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

rolf

Zitat von: rolf am 13 Februar 2019, 10:45:18
Hallo Michael - bitte bei Gelegenheit mal prüfen und ein kurzes Statement ob o.g. ins Module aufgenommen werden kann - ich bau diese Modifikation regelmässig von Hand in die neueste Version ein. Habe in all meinen Routinen ein "Alexa sagt Moment bitte" drin - dient als kurze Bestätigung das Alexa auch richtig verstanden hat und die Routine aufgerufen hat. Ohne o.g. Modifikation geht mir damit leider immer der eigentliche voice-Befehl verloren - mit o.g. Modifikation klappt das wunderbar...

Vielen Dank vorab,
Gruß,
Rolf

Hab die Modifikation von awel gerade in die aktuelle Version des Moduls eingetragen - funktioniert weiterhin einwandfrei - nur die Zeilennummern haben sich natürlich mittlerweile etwas verändert.

Zeile 347, einfügen:
               "intervalvoice:slider,0,1,100 ".
            ->   "ignoreVoiceCommand ".
               "server ".

Zeile 2576, einfügen:
               my $timestamp = int(ReadingsVal($echohash->{NAME},'voice_timestamp',time));
            ->   my $IgnoreVoiceCommand = AttrVal($name,"ignoreVoiceCommand","");
               #Log3 $name, 3, "[$name] [echodevice_Parse] [" . $echohash->{NAME} . "] timestamp = $timestamp / " . int($card->{creationTimestamp});
               
Zeile 2585, einfügen:
               next if($card->{description} !~ /firstUtteranceId/);
            ->   next if($IgnoreVoiceCommand ne "" && $card->{description} =~ m/$IgnoreVoiceCommand/i);

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

87insane

#2304
Guten Morgen zusammen,

habe mir eine kleine Funktion gebastelt. Diese wertet aus, welcher Wecker der späteste gestellte Wecker ist.
Hintergrund bei mir ist ganz einfach: SZ Rollo fährt mit dem letzten Wecker hoch. Natürlich kann man auch anderes damit anfangen.
Ich habe mein event-on-change-reading natürlich angepasst auf die Alarme und mein notify geht nun bei einem wechsel von
alarm_status hin und prüft anhand von alarm_count usw. wie viele Wecker existieren, wie viele davon aktiv sind und nimmt dann den letzten
und schreibt diesen in ein Reading von meiner Alexa.

Vielleicht hat noch einer Ideen oder kann es auch gebrauchen. Viel Spaß damit!


define letzter_wecker notify (ECHO_123456789:alarm_.._status:.(on|off)) {
my $k = "0";
my $alarmoff = "0";

foreach $k (1..ReadingsVal("$NAME", "alarm_count", "0"))
{
my $schleifennr = "1";
$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] > [ReadingsVal("$NAME", "LastAlarm", "0")] || ReadingsVal("$NAME", "LastAlarm", "0") eq "disable")
{
fhem("setreading $NAME LastAlarm $wecker")
}
elsif (ReadingsVal("$NAME", "alarm_".$schleifennr."_status", "") eq "off")
{
$alarmoff = $alarmoff + 1;

if (sprintf("%02d", $alarmoff) eq $schleifennr)
{
fhem("setreading $NAME LastAlarm disabled")
}
}
}
}


Wenn das Reading nun in meiner Alexa steht, lasse ich einfach ein DOIF meine Rollos bedienen um die Uhrzeit, die im Reading steht.

Bei Fragen, stehe ich gern zur Verfügung.
Das dies mein erstes komplett alleine erzeugter Code ist, seid bitte Nachsichtig mit mir. Danke!


EDIT: Ich musste leider feststellen, dass alarm_count mir nicht den richtigen Wert zurück gibt und deswegen die Schleifen nicht sauber durch laufen. Ich weiß aktuell nicht warum das Reading alarm_count im Alexa Gerät z.B. 16 anzeigt aber in meinem Code kommt der mal auf 12 und mal auf 15.....  Somit stimmt der letzte Wecker nicht immer. Ich suche aber nach dem Fehler....

retikulum

Zitat von: michael.winkler am 14 Februar 2019, 11:10:26
Ist eigentlich alles sauber beschrieben. Auf Seite 1 steht etwas dazu und auch in der Dokumentation.

Gelöst: alexa-cookie -Ordner vorher löschen... dann klappts auch mit npm_install ^^

87insane

Verstehe nicht warum alarm_count in meinem Code nicht die korrekte Zahl ausgibt.
Aktuell wäre der alarm_count 16.
Wenn ich ihn einfach über die Zeile oben in Fhem abfrage kommt auch 16 bei rauß.
Wenn ich ihn aber mit logge in meinem Code, dann kommt aktuell z.B. 15.


my $test2 = "0";
$test2 = ReadingsVal("ECHO_123456", "alarm_count", "");
Log (1,"WECKER_notify - alarm_count ist: $test2");


Hier brauche ich mal ne Info. Danke!

michael.winkler

Zitat von: balli1187 am 14 Februar 2019, 11:12:16
Sorry wenn ich nochmal dazwischen haue aber ich wollte die Frage nochmal kurz aufwerfen.


Gesendet von iPhone mit Tapatalk
Beides funktioniert über unterschiedliche Wege. Daher sind beide Befehle getrennt im Modul.

michael.winkler

Zitat von: rolf am 15 Februar 2019, 07:16:08
Hab die Modifikation von awel gerade in die aktuelle Version des Moduls eingetragen - funktioniert weiterhin einwandfrei - nur die Zeilennummern haben sich natürlich mittlerweile etwas verändert.

Zeile 347, einfügen:
               "intervalvoice:slider,0,1,100 ".
            ->   "ignoreVoiceCommand ".
               "server ".

Zeile 2576, einfügen:
               my $timestamp = int(ReadingsVal($echohash->{NAME},'voice_timestamp',time));
            ->   my $IgnoreVoiceCommand = AttrVal($name,"ignoreVoiceCommand","");
               #Log3 $name, 3, "[$name] [echodevice_Parse] [" . $echohash->{NAME} . "] timestamp = $timestamp / " . int($card->{creationTimestamp});
               
Zeile 2585, einfügen:
               next if($card->{description} !~ /firstUtteranceId/);
            ->   next if($IgnoreVoiceCommand ne "" && $card->{description} =~ m/$IgnoreVoiceCommand/i);

Gruß,
Rolf
Wenn ich das richtig verstehe wird hier aber nur ein einziges Command herausgefiltert, richtig?

dan21

#2309
Zitat von: store2704 am 12 Februar 2019, 07:20:08
Na ja. Die Lösung ist ja noch die gleiche. Nur musst Du halt die IP Adresse des Containers herausfinden. Da gibt es wie immer viele Wege. Ich habe Dir nur ein Beispiel gezeigt. Wenn bei IPAdsress nur "" steht, ist der Container normalerweise nicht an.

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?