Alarm Notifikation aus fhem auf dem Echo.

Begonnen von kawa0815, 11 Juni 2017, 02:14:15

Vorheriges Thema - Nächstes Thema

kawa0815

Amazon hat ja darüber informiert, dass man mit dem Echo demnächst eine Notifikation realisieren will.

Allerdings will man keine direkte Sprachausgabe realisieren sondern man will den Echo die Meldung signalisieren lassen und erst wenn der User nachfragt, die eigentliche Meldung ablaufen lassen.

Schon lange suche ich nach einer Möglichkeit Alarmmeldungen aus fhem auf dem Echo ausgeben zu können. Dabei bin ich auf die Seite von Thorsten Gehrig gestoßen.

https://www.gehrig.info/alexa/Alexa.html

Er zeigt da die Möglichkeit mittels Script TuneIn- Radiostationen über den Echo abzuspielen.

Auch ist es möglich eigene hochgeladene mp3- Files mittels Script abzuspielen.

Man legt also einen Trigger für den Alarm in fhem an, der nach Auslösung die Alarmmeldung in einen Dummy schreibt und anschließend das Script aktiviert. Dieses spielt das MP3- File auf dem Echo ab.
Wenn man den Alarm hört, sagt man ,,Alexa, frage fhem was ist los" und Alexa gibt als Antwort den Inhalt des mittels Trigger gesetzten Dummy aus.

Bei mir löst der Trigger aus, wenn ein Fenster länger als 15 Minuten geöffnet ist.
Mein Echo spielt eine Alarm Meldung ab.
Ich sage ,,Alexa, frage fhem was ist los"
Alexa antwortet dann ,,Deine Frau hat schon wieder das Schlafzimmerfenster offen gelassen".

Hier ist mal mein, nach der Anleitung von Thorsten Gehrig geschriebenes Script.
Wichtig ist, dass man erst das File auf Amazon mittels AmazonMusic hochläd, dann in der Alexa-App nicht TuneIn, sondern das hochgeladene File auswählt und die Daten aus ,,queue-and-play,, verwendet.

alarm-fhem.sh


#!/bin/bash
DEVICENUMBER='G0815ABCDECX'
DEVICETYPE='ABCDE123456789'
CUSTOMERID='123456789ABCDE'
COOKIE='Cookie: x-amzn-dat-gui-client-v=1.24.2112.0; csrf=556644889; session-id=254-4558813-12345687; session-id-time=20821234567; ubid-acbde=251-7774461-78654321; session-token="uQxxrqPlPSYg2FAGG/n5/6ErA8j8AKA20MeuGM4Bogvd7aqtn1U7u97sIIOg9/MIk1LUGrdHCUQHPxdinb14Zj8/+wujCNnzlgUZApGqfJYdU/MFESgmHG4eThTEJJ6JV11ZzX7/ozHzFc7OpnVyHeen7KWf7bXVyYS5RGmGcEnR3SeaZ38SSAbWdmJApnCwpEKVk5X3dX9YApsqwHBES0/bjRpFDkf+i7xhU3+coc8YR1Y="; x-acbde="j38M@P4?wVqF7RaHHJc7GUxTnb4MR?xH"; at-acbde=Atza|IwEBIPguWvlggG0OFjYaX2fxH9Z5HE3P63BInqJ2FA8xfG1HY1-PbKi5l1b_zfMmcJzNY37fRRVb7Wcyt2EGL34H_WaDk5XIUpMQA1sL2j7Yx8h-A8ukeO1fRTYYfynEADQZSBUHWbM_gZekuK9vFRTr-38M@P4?wVqF7RaHHJc7GUxTnb4MR?xH-Ip3gf_5Mfrkrx9_NBOrXZu6lDqy7aQ-719bXPUojTf3pmyPBcW1mTLDMFMdXwrLVgapsmx4PUnuy03QKShbAafNFwM-i98JINhAfHl7YqlfXvFzXidr5-bdsj-5r-HXsTADexf1Il2GhTcPs3Jz-A20MeuGM4Bogvd7aqtn1U7u97sIIOg9-qfTgfKxL8LHR6Q3y-XCr9a8VajfirMh8wBsqI-BFhz9A2wQARkQYFJTN0FBFwMfoS6H8eClp6ZBqhTxnVBVUWXug_yxyuet90G-YxQ2fKA5ZTmJoyrMMgCdpCSKQ1qRe5O3iFAC7MsRZaxA; sess-at-acbde="P8NTp+o/mKu4K5Y9FP/M11234567/t+b0pTNQm1Ws0M="'
CSRF='csrf: 556644889' 

TRACKCMD='{"playlistId":"IMPORTED-V0-OBJECTID","playlistTitle":"Importiert","initialTrackIndex":1,"trackId":"4f48d3b4-3e66-474a-a242-452113b0c63e","playQueuePrime":false}'

#echo "${TRACKCMD}"
URL='https://layla.amazon.de/api/cloudplayer/queue-and-play?deviceSerialNumber='$DEVICENUMBER'&deviceType='$DEVICETYPE'&contentType=station&callSign=&mediaOwnerCustomerId='$CUSTOMERID
curl $URL \
-H "$CSRF" \
-H "$COOKIE" \
--data "${TRACKCMD}" \
--compressed


amenomade

ZitatAllerdings will man keine direkte Sprachausgabe realisieren sondern man will den Echo die Meldung signalisieren lassen und erst wenn der User nachfragt, die eigentliche Meldung ablaufen lassen.
Wie funktioniert das genau? Alexa blinkt irgendwie, und man muss sagen "Alexa, sag was?"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

kawa0815

Wie das dann bei Amazon funktioniert kann ich nicht genau sagen.

Bei mir funktioniert das so:

Ein Fenster im Haus wird geöffnet,
Fhem startet darauf hin ein Script und dieses bewirkt, dass Alexa auf dem Echo eine MP3- Datei abspielt.
Die kann man selber gestalten und es sind auch verschiedene Dateien möglich.

Meine MP3- Datei ist "Achtung, im Haus ist ein Alarm aufgetreten.

Ich frage darauf hin Alexa " Was ist los?" und Alexa gibt dann den eigentlichen Alarm als Text aus.

Marlen

Hallo,

klingt recht interessant! Das möchte ich auch ausprobieren!

Wo muss denn die alarm-fhem.sh liegen?

Und wie starte ich dieses Script?

LG
Marlen

Marlen

Guten Abend,

bei mir schaut das so aus:

TRACKCMD='{""playlistId^\^":^\^"IMPORTED-V0-OBJECTID^\^",^\^"playlistTitle^\^":^\^"Importiert^\^",^\^"initialTrackIndex^\^":1,^\^"trackId^\^":^\^"e7a26d92-96d9-4bbb-9db1-1dc2afa68c57^\^",^\^"isoTimestamp^\^":^\^"2017-07-20T20:49:26.601Z^\^",^\^"playQueuePrime^\^":false}'

Müssen die ^ ersetzt werden?

Prof. Dr. Peter Henning

Die meisten meiner Sprachmeldungen sind vorgefertigt als MP3 - etwa "Die Hauseingangstür ist offen". Zur Sprachsynthese habe ich schon seit Jahren TTS Ivona mit der Stimme von Marlene verwendet. Ivona wurde von Amazon aufgekauft, kann jetzt als Amazon Polly für denselben Zweck genutzt werden. Für die wesentlichen Events braucht es also keine erneute TTS-Synthese (außerdem muss Amazon nicht wissen, welche Events hier ablaufen...), sondern es wird einfach die MP3-Datei abgespielt. Und zwar
- auf Tablets
- auf meinen Echos, die per BT an ein Tablet gekoppelt sind

Also ist das zunächst einmal nichts Neues - ob die Datei nun auf dem Tablet liegt, oder erst von Amazon geschickt werden muss, ist von Ergebnis her weitgehend gleich. Allerdings treten natürlich bei der Amazon Cloud-Lösung auch Latenzproblem auf.

LG

pah

kawa0815

#6
Zitat von: Marlen am 20 Juli 2017, 23:25:27
Guten Abend,

bei mir schaut das so aus:

TRACKCMD='{""playlistId^\^":^\^"IMPORTED-V0-OBJECTID^\^",^\^"playlistTitle^\^":^\^"Importiert^\^",^\^"initialTrackIndex^\^":1,^\^"trackId^\^":^\^"e7a26d92-96d9-4bbb-9db1-1dc2afa68c57^\^",^\^"isoTimestamp^\^":^\^"2017-07-20T20:49:26.601Z^\^",^\^"playQueuePrime^\^":false}'

Müssen die ^ ersetzt werden?

Ich habe die Daten aus dem Editor von Chrome kopiert, da sind die  ^  nicht drin.
Du musst sowiso aufpassen, dass dein Texteditor mit den Sriptsprachen umgehen kann und die Zeilenumbrüche nicht verfälscht.

Die alarm-fhem.sh kannst du überall hinlegen, sie muss ausführbar gemacht werden und dann aus fhem gestartet.

Mit  {system ("/opt/fhem/fhem-alarm.sh &")} kannst du dann die Datei starten.

Amenophis86

Zitat von: Prof. Dr. Peter Henning am 22 Juli 2017, 10:34:16
Die meisten meiner Sprachmeldungen sind vorgefertigt als MP3 - etwa "Die Hauseingangstür ist offen". Zur Sprachsynthese habe ich schon seit Jahren TTS Ivona mit der Stimme von Marlene verwendet. Ivona wurde von Amazon aufgekauft, kann jetzt als Amazon Polly für denselben Zweck genutzt werden. Für die wesentlichen Events braucht es also keine erneute TTS-Synthese (außerdem muss Amazon nicht wissen, welche Events hier ablaufen...), sondern es wird einfach die MP3-Datei abgespielt. Und zwar
- auf Tablets
- auf meinen Echos, die per BT an ein Tablet gekoppelt sind

Also ist das zunächst einmal nichts Neues - ob die Datei nun auf dem Tablet liegt, oder erst von Amazon geschickt werden muss, ist von Ergebnis her weitgehend gleich. Allerdings treten natürlich bei der Amazon Cloud-Lösung auch Latenzproblem auf.

LG

pah

"Probelem" ist hierbei, dass man ein zweites Gerät haben muss, welches über Bluetooth den Dot bedient. Und, dass es wiederum nicht klappt, wenn man zB mit dem Dot über die Hifi Anlage Musik hört. Daher ist die Lösung direkt über den Dot es zu starten und abzuspielen für mich angenehmer. Werde es die Tage mal testen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Marlen

Beim mir steht dann in der LogFile
sh: 1: /opt/fhem/alexa-washer.sh: Permission denied

wie kann das sein? Besitzer von der alexa-washer.sh ist fhem!

LG
  Marlen

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Marlen


Hollo

Er meinte ausführbar  ;D
chmod +x /pfad/zu/mein_Skript
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Marlen

Hmmm.....
jetzt hab ich das im Log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   202    0     0  100   202      0    729 --:--:-- --:--:-- --:--:--   729


Scheinbar is ja was passiert, aber es kam zu keiner Sprachausgabe!  ::)

Marlen

Zitat von: Marlen am 31 Juli 2017, 09:10:36
Hmmm.....
jetzt hab ich das im Log
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   202    0     0  100   202      0    729 --:--:-- --:--:-- --:--:--   729


Scheinbar is ja was passiert, aber es kam zu keiner Sprachausgabe!  ::)

Hat keiner eine Idee...waum es nicht auf der Alexa ausgegeben wird??

LG
  Marlen

Amenophis86

Poste mal bitte deine gesamten Script, aber anonymisier die Daten vorher durch einfach XX. Sonst nichts verändern. Ich habe es auch mal nachgebaut und bei mir ging es. Habe es aber bisher nur einmal getestet.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...