MP3-Datei abspielen: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „Natürlich kann AutoMagic schon von sich aus Dateien abspielen, die lokal auf dem Android-Gerät liegen. Wenn man aber eine beliebige Datei abspielen möchte,…“)
 
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Natürlich kann AutoMagic schon von sich aus Dateien abspielen, die lokal auf dem Android-Gerät liegen. Wenn man aber eine beliebige Datei abspielen möchte, muss diese erst hochgeladen werden. Dazu legt man einen einfach Flow an.
[[Datei:RunRemoteMP3.jpg|links|mini|480x480px]]Natürlich kann AutoMagic schon von sich aus Dateien abspielen, die lokal auf dem Android-Gerät liegen. Wenn man aber eine beliebige Datei abspielen möchte, muss diese erst hochgeladen werden. Dazu legt man einen einfachen Flow an.


Als Trigger verwendet man HTTP Request (Trigger Typ: HTTP Request). Dieser Trigger errichtet einen minimalen Webserver, der auf eingehende HTTP Requests wartet. Als Parameter gibt man an:
Als Trigger verwendet man HTTP Request (Trigger Typ: HTTP Request). Dieser Trigger errichtet einen minimalen Webserver, der auf eingehende HTTP Requests wartet. Als Parameter gibt man an:
  Pfad: /automagic/*
  Pfad: /automagic/*
  Port: 8080
  Port: 8080
und wählt die checkbox WLAN aktiv halten aus.
und wählt die Checkbox WLAN aktiv halten aus.


Die erste Aktion im Flow ist dann das Stoppen eines gegenwärtig eventuell abgespielten Audiofiles (Aktion Typ: Stoppe Aktion Sound).
Die erste Aktion im Flow ist dann das Stoppen eines gegenwärtig eventuell abgespielten Audiofiles (Aktion Typ: Stoppe Aktion Sound).


Die zweite Aktion im Flow ist die Extraktion des Dateinamens aus dem eintreffenden HTTP Request (Aktion Typ: Script)
Die zweite Aktion im Flow ist die Extraktion des Dateinamens aus dem eintreffenden HTTP Request (Aktion Typ: Script)
  Script: file_name=replace(request_path,"automagic/","")
  <nowiki>Script: file_name=replace(request_path,'automagic/','')</nowiki>
Auf diese Aktion kann man im Prinzip verzichten, wenn man immer denselben lokalen Dateinamen wählt.
Auf diese Aktion kann man im Prinzip verzichten, wenn man immer denselben lokalen Dateinamen wählt.


Die dritte Aktion im Flow ist das verschieben der empfangenen Datei an die Stelle mit dem richtigen Namen (Aktion Typ: Dateien verschieben)
Die dritte Aktion im Flow ist das Verschieben der empfangenen Datei an die Stelle mit dem richtigen Namen (Aktion Typ: Dateien verschieben)
  Quelldateien: {file_data}
  Quelldateien: {file_data}
  Ziel: /storage/emulated/0/Automagic/httpd{file_name}
  Ziel: /storage/emulated/0/Automagic/httpd/{file_name}
oder
oder
  Ziel: /storage/emulated/0/Automagic/httpd/speech.mp3
  Ziel: /storage/emulated/0/Automagic/httpd/speech.mp3
Zeile 20: Zeile 20:


Die letzte Aktion im Flow ist das Abspielen (Aktion Typ: Sound)
Die letzte Aktion im Flow ist das Abspielen (Aktion Typ: Sound)
  Datei: /storage/emulated/0/Automagic/httpd{file_name}
  Datei: /storage/emulated/0/Automagic/httpd/{file_name}
oder
oder
  Datei: /storage/emulated/0/Automagic/httpd/speech.mp3
  Datei: /storage/emulated/0/Automagic/httpd/speech.mp3

Aktuelle Version vom 12. Januar 2023, 12:38 Uhr

RunRemoteMP3.jpg

Natürlich kann AutoMagic schon von sich aus Dateien abspielen, die lokal auf dem Android-Gerät liegen. Wenn man aber eine beliebige Datei abspielen möchte, muss diese erst hochgeladen werden. Dazu legt man einen einfachen Flow an.

Als Trigger verwendet man HTTP Request (Trigger Typ: HTTP Request). Dieser Trigger errichtet einen minimalen Webserver, der auf eingehende HTTP Requests wartet. Als Parameter gibt man an:

Pfad: /automagic/*
Port: 8080

und wählt die Checkbox WLAN aktiv halten aus.

Die erste Aktion im Flow ist dann das Stoppen eines gegenwärtig eventuell abgespielten Audiofiles (Aktion Typ: Stoppe Aktion Sound).

Die zweite Aktion im Flow ist die Extraktion des Dateinamens aus dem eintreffenden HTTP Request (Aktion Typ: Script)

Script: file_name=replace(request_path,'automagic/','')

Auf diese Aktion kann man im Prinzip verzichten, wenn man immer denselben lokalen Dateinamen wählt.

Die dritte Aktion im Flow ist das Verschieben der empfangenen Datei an die Stelle mit dem richtigen Namen (Aktion Typ: Dateien verschieben)

Quelldateien: {file_data}
Ziel: /storage/emulated/0/Automagic/httpd/{file_name}

oder

Ziel: /storage/emulated/0/Automagic/httpd/speech.mp3

bei festem Dateinamen.

Die letzte Aktion im Flow ist das Abspielen (Aktion Typ: Sound)

Datei: /storage/emulated/0/Automagic/httpd/{file_name}

oder

Datei: /storage/emulated/0/Automagic/httpd/speech.mp3

Um nun eine Datei auf das Android-Gerät hochzuladen und gleich abzuspielen, kann man das Linux-Hilfsprogramm curl benutzen. Der Aufruf auf der Linux-Kommandozeile muss lauten

curl -F "data=@<Vollständige Pfadangabe für die Datei>" http://<IP-Adresse des Android-Gerätes>:8080/automagic/speech.mp3