[37_echodevice] Amazon Echo Modul (nicht Alexa)

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

Vorheriges Thema - Nächstes Thema

Guenni1404

Hi,

ich habe folgendes Problem mit POM:
Nach dem starten spielt Alexa einen Werbeclip, anschließend aber nicht meinen Stream.

POM ist korekt eingerichtet, ging früher auch.
Der Stream von MPD wird auch gestartet, kann ihn übern den Browser anhören.
Der Tunein Sender exisitiert.

Hat vielleicht jemand einen Tipp warum nach der Werbung keine Musik kommt?

Borkk

Hallo Zusammen,

ich möchte Euch von einem merkwürdigem Phänomen berichten.

Seit kurzem habe ich in meinem Schlafzimmer einen Echo Dot 4. mit Uhr um einen Zweiten zu einem Stereopaar erweitert.
Starte ich nun auf dem Stereopaar Device über 
set sz_echo tunein s57109
meinen lokalen Radiosender, spielt dieser "langsamer" ab. Also ich meine wirklich langsamer, die Stimmen sind tiefer und langsamer, die Lieder laufen langsamer so als würde man eine Schallplatte mit zu wenig Umdrehungen abspielen. Auf einem einzelnen Echo Device läuft das ganz normal.

Da es auf dem Stereopaar den Befehl textcommand nicht gibt, habe ich mit
set sz_echo_l textcommand spiele HR3
den Sender auf dem linken Echo Device gestartet. Im Ergebnis spiel der Sender in korrekter Geschwindigkeit dann auch auf beiden Devices, so als würde man den Befehl per Sprache erteilen.

Ich habe also meine Lösung gefunden, war aber schon ein paar Tage verwundert, warum das Radio morgens so langsam spielt :)
Proxmox & Docker:  FHEM, Raspberrymatic, ConBee3, Nginx ReverseProxy, ConfigDB, MQTT, NodeRed, InfluxDB, Grafana, HmIP Akt- /Sensoren, Shelly´s, Alexa, ASC, Gardena, E-Paper, FritzBox; (Tado° x), iBeacon, OLED ; ESP32/8266, SwitchBot ... (Netatmo & Homekit über HomeAssistant)

rs

Ciao

Ich weiss nicht recht wo ich nachfragen kann, versuche es hier, es ist ja ein echodevice.

Unsere FHEM Anwendung läuft ja auf einem fhem server, der http ergebnisse liefert, die wir im Browser an den verschiedenen Geräten (Tablet, Phone, PC) steuern können.

Ich hätte nun gerne einige Geräte aus meinem FHEM direkt in einem Widget ia meinem EchoShow15 angezeigt. Da der Show15 einen touch screen hat, sollte das so gehen, wie an einem Tablet oder Phone.

Ich weiss schon, das ist noch etwas neu und auch nur wenige Widgets sind implementiert, wäre aber froh um Anregung, Links, ... wenn sich schon jemand die gleiche Frage stellte.

Gruss&Dank
RS
rpi3+ & RaspBee | Phillips, Osram, IKEA, SIlvercrest Devices | FHEM 6.3 | Echo Show 15 | Yamaha YAS| LG TV | Ubuntu 24.10 - NextCloud 30 - OpemVPN - Wordpress - NAS - ...

MadMax-FHEM

#5208
Da denke ich bist du hier falsch (wenn ich richtig verstanden habe)...
EDIT: also ich habe verstanden, dass du Geräte hast, die du per fhem steuern kannst. Diese willst du per Alexa-App steuerbar haben, damit solten diese ja auch als "Widget" auf einem Echo-Show o.ä. genutzt/geschalten werden können...

Du müsstest eher deine per fhem steuerbaren Geräte mittels alexa-fhem per Alexa steuerbar machen.
https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa

Dann tauchen sie in der Alexa App auf und somit kannst du sie verm. auch per Echo-Screen bedienen (und nat. Sprache ;) )...

EDIT: ansonsten könntest du nat. auch einen Browser auf dem Echo-Show installieren und dort deine fhem-Seite aufrufen?

EDIT: mittels echodevice-Modul kannst du ECHO-/Alexa-Geräte steuern, also sprechen lassen, Sprach-Befehle (Alexa, schalte XYZ ein/aus) "an" einen Echo "senden" (so als würdest du zu diesem gesprochen haben ;)  ) usw.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

rs

ZitatEDIT: ansonsten könntest du nat. auch einen Browser auf dem Echo-Show installieren und dort deine fhem-Seite aufrufen?

Stimmt, das funktionert, ich kann natürlich die Webseite mittels Browser aufrufen und wie mit dem tablet mein fhem steuern. Werde mal etwas forschen ..
rpi3+ & RaspBee | Phillips, Osram, IKEA, SIlvercrest Devices | FHEM 6.3 | Echo Show 15 | Yamaha YAS| LG TV | Ubuntu 24.10 - NextCloud 30 - OpemVPN - Wordpress - NAS - ...

Scaramanga

Hallo zusammen,

zunächst mal: Ich bin nicht so der Profi und habe schon viel hier im Forum und im Google hierzu gesucht.

Ich hänge leider bei der Installation fest.
Nach Set NPM_install im FHEM erhalte ich
Installationsergebnis


Installation wird angestartet

up to date, audited 83 packages in 2s

5 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
!!Installation fehlgeschlagen!!


NPM und Nodejs habe ich nach Anleitung auf dem Pi 4 (Raspbian 10) installiert, testweise wieder komplett de- und wieder neuinstalliert.

Auf dem Pi:
pi@raspberrypi:~ $ node -v
v17.7.0
pi@raspberrypi:~ $ npm -v
8.5.2


Außerdem habe ich noch ausprobiert:
pi@raspberrypi:~ $ sudo npm init
pi@raspberrypi:~ $ sudo npm audit fix
pi@raspberrypi:~ $ sudo npm install
was ich in anderen Hinweisen gefunden habe.
Diese Befehle laufen problemlos durch.
Beim Init habe ich "fhem" als Package Name vergeben.

Stauts des echodevice:
Modul Infos:

Beschreibung    Bereich    Wert
STATE    Reading unbekannt
Version    Reading 0.2.9
NPM Cookie Version    Reading 4.0.1
COOKIE_STATE    Reading unbekannt
COOKIE_TYPE    Reading NEW
COOKIE_MODE    Reading NPM
amazon_refreshtoken    Reading unbekannt
icon    Attribut echo
room    Attribut Amazon

Amazon Cookie:

Beschreibung    Bereich    Wert
.COOKIE    Reading unbekannt....
COOKIE_STATE    Reading unbekannt
COOKIE_TYPE    Reading NEW
amazon_refreshtoken    Reading unbekannt
.COOKIE    Helper ....
.COMMSID    Helper ....
.CSRF    Helper ....
.DIRECTID    Helper ....
RUNLOGIN    Helper 0
RUNNING_REQUEST    Helper
LOGINERROR    Helper 0


Hat jemand einen Tipp für mich?

MadMax-FHEM

Hast du nun schon mal ins fhem Log geschaut?

Oder mal die Installation auf der Linux Console gestartet?

Hier gibt's weitere Infos zur "Historie" der Anfrage/Probleme von Scaramanga: https://forum.fhem.de/index.php/topic,126673.msg1212714.html#msg1212714

Bzgl. sudo: seit (mind.) Buster (denke aber Stretch) ist es bei Raspbian so, dass jeder User seine eigene sudoers unter /etc/sudoers.d/ hat. Ich mache immer eine Kopie der Datei für den User pi und passe das dann an. Wie hast du die sudoers bearbeitet? Mit visudo? Oder "einfach so" mit "irgendeinem Editor"?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Scaramanga

Nach dem NPM_install wird nichts ins Log eingetragen. Lediglich nach NPM_Login erscheint im Log
2022.03.10 15:58:33 3: [MyEcho] [echodevice_NPMLoginNew] alexa-cookie modul not found

und
Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch
als Fehlermeldung.

Von der Konsole habe ich das probiert:
pi@raspberrypi:~ $ sudo npm install

up to date, audited 1 package in 815ms

found 0 vulnerabilities


Für die sudoers habe ich
pi@raspberrypi:~ $ sudo visudo
verwendet.
Das steht da drin:
Zitat# User privilege specification
root    ALL=(ALL:ALL) ALL
pi      ALL=(ALL:ALL) ALL
fhem    ALL=(ALL) NOPASSWD: ALL

rabehd

Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch
Und, gemacht?
Auch funktionierende Lösungen kann man hinterfragen.

MadMax-FHEM

#5214
Mit auf der Console habe ich das gemeint:

Zitat
Hier kann die Systemvoraussetzung für die NPM Lösung installiert werden.

ACHTUNG!! Der FHEM Benutzer benötigt hierzu "sudo" Berechtigungen.



Dies kann auch manuell per SSH am FHEM Server durchgeführt werden. Hierfür müsst ihr folgenden Befehl verwenden:

    sudo npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2
    sudo chown -R fhem:  /opt/fhem/cache/alexa-cookie

Falls Ihr FHEM in einem anderen Verzeichnis installiert habe, müsst ihr den Pfad /opt/fhem dementsprechend anpassen

Steht in der verlinkten Doku (die du ja [angeblich] gelesen hast ;)  )...

Zitat
Von der Konsole habe ich das probiert:
Code: [Auswählen]

pi@raspberrypi:~ $ sudo npm install

up to date, audited 1 package in 815ms

found 0 vulnerabilities
ist daher nat. (deutlich) zu wenig...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Scaramanga

ZitatCode: [Auswählen]
Das alexa-cookie Modul wurde nicht gefunden. Bitte fuehrt am Amazon Account Device einen set "NPM_install" durch
Und, gemacht?
Darum geht es ja in meiner Anfrage, gleich am Anfang.

Zitatsudo npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2
    sudo chown -R fhem:  /opt/fhem/cache/alexa-cookie
Kannte ich nicht, hab ich jetzt gemacht:
pi@raspberrypi:~ $ sudo npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2

up to date, audited 83 packages in 2s

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
pi@raspberrypi:~ $ sudo chown -R fhem:  /opt/fhem/cache/alexa-cookie

NPM_Login bringt aber immer noch die Meldung mit dem NPM_install.

TL60

Hallo,
Zitat.  pi@raspberrypi:~ $ node -v
v17.7.0
Ich meine irgendwo gelesen zu haben, das man grundsätzlich nur gerade Node Versionen nehmen soll, weil die ungeraden rein experimentell sind und häufig zu Fehlern führen. Ich würde die letzte LTS Version 16 nehmen, die funktioniert mit Sicherheit.
war glaube ich hier auch schonmal Thema, finde es nur gerade nicht.
Gruß Thomas

plopes9000

Just wanted to share a small improvement for the 37_echodevice module:

Basically replacing {\"title\":\"FHEM\",\"body\":\"Speak\"}, with {\"title\":\"FHEM\",\"body\":\"'.$SendData.'\"}, shows the spoken text of set ECHO_XYZ speak_ssml <speak>...</speak> on the echo show devices ... instead of just showing "Speak".

Don't know about you guys, but for me this is an essential improvement.

elsif ($type eq "speak_ssml") {

                #Allgemeine Veariablen
                $SendUrl   .= "/api/behaviors/preview";
                $SendMetode = "POST";

                my $sequenceJson;

                # Sonderzeichen entfernen
                $SendData =~s/"/'/g;

                #my $SpeakVolume;
                $SpeakVolume = int(AttrVal($hash->{IODev}{NAME},"speak_volume",0));
                $SpeakVolume = int(AttrVal($name,"speak_volume",0)) if($SpeakVolume == 0);

                if($SpeakVolume > 0){
                        $SendData = '{"behaviorId":"PREVIEW","sequenceJson":"{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.SerialNode\",\"nodesToExecute\":[{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.DeviceControls.Volume\",\"operationPayload\":{\"deviceSerialNumber\":\"' . $hash->{helper}{".SERIAL"} . '\",\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"locale\":\"de-DE\",\"value\":\"'.$SpeakVolume.'\",\"deviceType\":\"' . $hash->{helper}{DEVICETYPE} . '\"}},{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"AlexaAnnouncement\",\"operationPayload\":{\"expireAfter\":\"PT5S\",\"content\":[{\"locale\":\"\",\"display\":{\"title\":\"FHEM\",[b]\"[b]body\":\"'.$SendData.'\"[/b][/b]},\"speak\":{\"type\":\"ssml\",\"value\":\"' . $SendData . '\"}}],\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"target\":{\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"devices\":[{\"deviceSerialNumber\":\"' . $hash->{helper}{".SERIAL"} . '\",\"deviceTypeId\":\"' . $hash->{helper}{DEVICETYPE} . '\"}]}}},{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.DeviceControls.Volume\",\"operationPayload\":{\"deviceSerialNumber\":\"' . $hash->{helper}{".SERIAL"} . '\",\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"locale\":\"de-DE\",\"value\":\"'.ReadingsVal($name , "volume", 50).'\",\"deviceType\":\"' . $hash->{helper}{DEVICETYPE} . '\"}}]}}","status":"ENABLED"}'
                }
                else {
                        $SendData = '{"behaviorId": "PREVIEW","sequenceJson": "{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"AlexaAnnouncement\",\"operationPayload\":{\"expireAfter\":\"PT5S\",\"content\":[{\"locale\":\"\",\"display\":{\"title\":\"FHEM\",\"body\":\"'.$SendData.'\"},\"speak\":{\"type\":\"ssml\",\"value\":\"' . $SendData . '\"}}],\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"target\":{\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"devices\":[{\"deviceSerialNumber\":\"' . $hash->{helper}{".SERIAL"} . '\",\"deviceTypeId\":\"' . $hash->{helper}{DEVICETYPE} . '\"}]}}}}","status": "ENABLED"}';
                }

                $SendDataL  = $SendData;
        }
...



Also, would be great to implement actionable notifications as on Home Assistant ... is anyone working on actionable notifications?

I am trying ... see below my attempt to trigger a skill.

} elsif ($type eq "run_skill") {

                #Allgemeine Veariablen
                $SendUrl   .= "/api/behaviors/preview";
                $SendMetode = "POST";

                my $sequenceJson;

                # Sonderzeichen entfernen
                $SendData =~s/"/'/g;

                $SendData = '{"behaviorId": "PREVIEW","sequenceJson": "{\"@type\":\"com.amazon.alexa.behaviors.model.Sequence\",\"startNode\":{\"@type\":\"com.amazon.alexa.behaviors.model.OpaquePayloadOperationNode\",\"type\":\"Alexa.Operation.SkillConnections.Launch\",\"operationPayload\":{\"locale\":\"\",\"customerId\":\"' . $hash->{IODev}->{helper}{".CUSTOMER"} .'\",\"targetDevice\":{\"deviceSerialNumber\"'.$hash->{helper}{".SERIAL"}. '\",\"deviceType\":\"'.$hash->{helper}{DEVICETYPE}.'\"},\"connectionRequest\":{\"uri\":\"connection://AMAZON.Launch/'.$SendData.'\",\"input\":\"{}\"}}}},"status": "ENABLED"}';
                $SendDataL  = $SendData;
        }


Cheers,
Paulo

MadMax-FHEM

@plopes9000/Paulo:

regarding triggering of Skill/actionable notifications there is a discussion here: https://forum.fhem.de/index.php/topic,126215.msg1208351.html#msg1208351

but only in German...

This feature would be GREAT! :)

There exists something called Custom Skill ("parallel" to alexa-fhem Connector: "only" Smart Home Skill).

So the idea would/could be: echodevice-module to "ask the user" (speak) and then trigger the Custom Skill like done in Home Assistant...
But no reaction yet from the developer of alexa-fhem and Custom Skill.

I once had a Custom Skill running (maybe I'll try to reactivate that) but had no real use for it...

alexa-fhem Connector: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa

alexa-fhem "old style" and Custom Skill: https://wiki.fhem.de/wiki/Alexa-Fhem

But again: only in German...

Regards, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

plopes9000

Thanks @Joachim

I can read German and there is always in-browser translator nowadays, so no issue. However writing back in German is too hard.

Yes would be great - I think actionable notifications are the next level of interaction with fhem via alexa.
Besides making the interaction feel more real, I can think of various practical cases where I would want to trigger actionable notifications.

I've read up the other thread and will continue the actionable notifications topic there ...

Thank you,
Paulo