[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: mahowi am 23 März 2018, 22:36:11
Version 0.0.31. Ich habe nicht gesehen, daß es wieder eine neue Version gibt.
ok, die sollte eigentlich passen. Wie gesagt ich habe es bei mir gerade getestet. Device wird sauber angelegt. Kannst Du mir mal ein Verbose 5 LOG zusenden. Wenn du das autocreate durchführst. Eventuell sehe ich da einen Unterschied.

blasterx

Hallo Michael,
erstmal riesiges Lob für das Modul und Deine Arbeit. Das Modul läuft bei mir wunderbar. Jetzt habe ich das mit dem Icecast Server getestet es scheint aber bei mir ein Problem mit dem MPD-Fhem zu geben. wenn ich auf Play drücke hängt Fhem für ein Stück, und in der Weboberfläche von Icecast sehe ich auch keinen Mountpoint Eintrag.
Ich habe mir die fhem_status.sh angesehen
curl --data "fwcsrf=$(curl -s -D - 'http://10.10.0.232:8084/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')" http://10.10.0.232:8084/fhem?cmd.dummy=get%20mpd.buero%20statusRequest
Einen csrfToken habe ich nicht vergeben, sprich ich betreibe Fhem ohne csrfToken.
Wie muß da die fhem_status.sh aussehen?

Gruß BlasterX
Gruß-BlasterX

michael.winkler

#557
Zitat von: blasterx am 23 März 2018, 23:22:28
Hallo Michael,
erstmal riesiges Lob für das Modul und Deine Arbeit. Das Modul läuft bei mir wunderbar. Jetzt habe ich das mit dem Icecast Server getestet es scheint aber bei mir ein Problem mit dem MPD-Fhem zu geben. wenn ich auf Play drücke hängt Fhem für ein Stück, und in der Weboberfläche von Icecast sehe ich auch keinen Mountpoint Eintrag.
Ich habe mir die fhem_status.sh angesehen
curl --data "fwcsrf=$(curl -s -D - 'http://10.10.0.232:8084/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')" http://10.10.0.232:8084/fhem?cmd.dummy=get%20mpd.buero%20statusRequest
Einen csrfToken habe ich nicht vergeben, sprich ich betreibe Fhem ohne csrfToken.
Wie muß da die fhem_status.sh aussehen?

Gruß BlasterX

Habe es in der Doku schon erweitert  8)

Probiere es mal so

#!/bin/sh
curl -s http://10.10.0.232:8084/fhem?cmd.dummy=get%20mpd.buero%20statusRequest
curl -s http://10.10.0.232:8084/fhem?cmd.dummy=get%20mpd.kueche%20statusRequest


PS: Das Skript aktualisiert aber nur FHEM. Wenn dein MPD-Server Musik abspielt, sollte das direkt im IceCast zu sehen sein. Wenn nicht müsstes du mal das LOG vom MPD Server bzw. vom IceCast lesen. Da wird sicherlich ein Hinweis zum Fehler zu sehen sein.

blasterx

Danke das wars, jetzt geht es. Superschneller Support. :)

Gruß BlasterX
Gruß-BlasterX

michael.winkler

Zitat von: blasterx am 23 März 2018, 23:41:18
Danke das wars, jetzt geht es. Superschneller Support. :)

Gruß BlasterX
Aktuell glaube ich dass das MPD Modul ein Problem hat. Schau mal in den Thread vom MPD Modul. Da habe ich geschrieben welche Zeile geändert werden muss, damit sich dieser wieder aktualisiert.


Gesendet von iPhone mit Tapatalk

blasterx

#560
Ich habe es mal geändert und werde Beobachten.

Gruß BlasterX
Gruß-BlasterX

stefanpf

Zitat von: michael.winkler am 23 März 2018, 22:32:14
Heute hatte schon jemand Probleme mit einem Nginx Webserver. Eventuell verhält der sich gegen über den ECHOs komisch. Du kannst ja mal Testweise deinen Nginx Web Server herunterfahren und den mini-httpd probieren.

Sorry, die Beiträge hatte ich zwar gesehen und überflogen, es aber so verstanden, dass dort auch die MP3 requested wurde und trotzdem nicht abgespielt wird.

Mit dem mini-httpd hast du mich aber auf den richtigen Weg gebracht.... (mini alleine funktioniert, mini hinter nginx funktioniert....)

Ursache war der fehlende / falsche Mime Type für M3U Erweiterungen im Nginx.
Als RegEx Legastheniker habe ich mir erst einmal so beholfen:

        location ~* \.(m3u$)$ {
            add_header 'Cache-Control' 'no-cache';
            add_header Content-Type  audio/x-mpegurl;
            root /opt/fhem/www/echodevice;
        }
        location ~* \.(mp3)$  {
            add_header 'Cache-Control' 'no-cache';
            root /opt/fhem/www/echodevice;
        }


Vielen Dank für den Stups in die richtige Richtung  ;)

michael.winkler

Zitat von: stefanpf am 24 März 2018, 08:19:43
Sorry, die Beiträge hatte ich zwar gesehen und überflogen, es aber so verstanden, dass dort auch die MP3 requested wurde und trotzdem nicht abgespielt wird.

Mit dem mini-httpd hast du mich aber auf den richtigen Weg gebracht.... (mini alleine funktioniert, mini hinter nginx funktioniert....)

Ursache war der fehlende / falsche Mime Type für M3U Erweiterungen im Nginx.
Als RegEx Legastheniker habe ich mir erst einmal so beholfen:

        location ~* \.(m3u$)$ {
            add_header 'Cache-Control' 'no-cache';
            add_header Content-Type  audio/x-mpegurl;
            root /opt/fhem/www/echodevice;
        }
        location ~* \.(mp3)$  {
            add_header 'Cache-Control' 'no-cache';
            root /opt/fhem/www/echodevice;
        }


Vielen Dank für den Stups in die richtige Richtung  ;)
In welche Datei hast du das mit eingetragen. Schick mir bitte etwas mehr Infos, dann nehme ich das in die Doku mit auf.


Gesendet von iPhone mit Tapatalk

stefanpf

Eingetragen wird dies in den server {} Block der Seitenkonfiguration von nginx.
In meinem Fall (ich nutze nur die Standardwerte und habe keine vhosts konfiguriert ) in die
/etc/nginx/sites-available/default


server {
       listen 80 default_server;
       listen [::]:80 default_server;
root /usr/share/nginx/www;
index index.html index.htm;

server_name localhost;

location / {
try_files $uri $uri/ /index.html;
}

location ~* \.(m3u$)$ {
            add_header 'Cache-Control' 'no-cache';
            add_header Content-Type  audio/x-mpegurl;
            root /opt/fhem/www/echodevice;
        }
        location ~* \.(mp3)$  {
            add_header 'Cache-Control' 'no-cache';
            root /opt/fhem/www/echodevice;
        }
}


Werden M3u Dateien aufgerufen, so sucht er diese im abweichenden Verzeichnis /opt/fhem/www/echodevice
und setzt / überschreibt den Mimetype im Header der Httpantwort mit audio/x-mpegurl
Zusätzlich wird noch das Zwischenspeichern (Cache-Control no cache) deaktiviert. Dies war bislang nicht notwendig und erfolgt nur prophylaktisch.

Den location ~* \.(mp3)$  {} Block nutze ich nur für die Umleitung auf das richtige Verzeichnis (damit ich mir den symlink spare).

Anmerkungen:
- das ist nicht 100% sauber, da alle mp3/m3u Dateien nun im echodevice Verzeichnis gesucht werden.
  Benötigt man die Erweiterungen noch an anderer Stelle, müsste man hier die 3 Dateinamen angeben.
-Die Konfiguration habe ich gerade zur Veranschaulichung am Tablet zusammengetippt.... Tip-/Syntaxfehler sind nicht auszuschließen

Mathea

#564
Hi Michael,

mir ist ein komisches Verhalten meiner Echo Dots in Verbindung mit deinem Modul aufgefallen:
- Ich kann die Lautstärke meiner Echo Dots nicht mit dem Modul setzen, die meines normalen Echos allerdings schon
- Die Lautstärke der Echo Dots stellt sich immer wieder auf irgendwas sehr leises, auch wenn man am Gerät mittels Buttons die Lautstärke wieder hochstellt. Nach einiger Zeit ist das Gerät wieder auf unhörbar leise eingestellt. Das volume Reading der devices bleibt dabei auf dem letzten Wert, den man (ohne Resultat am Gerät) über FHEM gesetzt hat. Mein normaler Echo ist davon ebenfalls nicht betroffen.

Ich update immer auf die aktuelle Version deines Moduls, habe also gerade die .32er Version (Im FHEM Reading wird dennoch Versionsnummer 28 angezeigt). Das beschriebene Problem hatte ich allerdings schon seit einigen Wochen.

Ich habe seither testweise mal eines der echodevices gelöscht und neu per autocreate anlegen lassen. Bei diesem Gerät werden bei einem "get settings" auch nun nicht mehr alle Readings geladen. Lediglich die folgenden Readings sind nun existent:

channel    -                 2018-03-24 09:46:13
currentAlbum     -                 2018-03-24 09:46:13
currentArtist      -                  2018-03-24 09:46:13
currentArtwork   -                 2018-03-24 09:46:13
currentTitle        -                 2018-03-24 09:46:13
model Echo        Dot              2018-03-24 09:46:11
playStatus         stopped         2018-03-24 09:46:13
presence           present         2018-03-24 09:46:11
progress           0                   2018-03-24 09:46:13
progresslen       0                   2018-03-24 09:46:13
state                connected       2018-03-24 09:46:13
version             601481020     2018-03-24 09:46:11
volume             70                 2018-03-24 09:46:59


Das volume 70 steht da nur weil ich vorher ein "set volume 70" abgesetzt habe. Direkt nach dem autocreate stand das volume reading auf 0.

Hast du eine Idee woran das liegen könnte?

michael.winkler

Zitat von: Mathea am 24 März 2018, 09:55:50
Hi Michael,

mir ist ein komisches Verhalten meiner Echo Dots in Verbindung mit deinem Modul aufgefallen:
- Ich kann die Lautstärke meiner Echo Dots nicht mit dem Modul setzen, die meines normalen Echos allerdings schon
- Die Lautstärke der Echo Dots stellt sich immer wieder auf irgendwas sehr leises, auch wenn man am Gerät mittels Buttons die Lautstärke wieder hochstellt. Nach einiger Zeit ist das Gerät wieder auf unhörbar leise eingestellt. Mein normaler Echo ist davon ebenfalls nicht betroffen.

Ich update immer auf die aktuelle Version deines Moduls, habe also gerade die .32er Version (Im FHEM Reading wird dennoch Versionsnummer 28 angezeigt). Das beschriebene Problem hatte ich allerdings schon seit einigen Wochen.

Ich habe seither testweise mal eines der echodevices gelöscht und neu per autocreate anlegen lassen. Bei diesem Gerät werden bei einem "get settings" auch nun nicht mehr alle Readings geladen. Lediglich die folgenden Readings sind nun existent:

channel    -                 2018-03-24 09:46:13
currentAlbum     -                 2018-03-24 09:46:13
currentArtist      -                  2018-03-24 09:46:13
currentArtwork   -                 2018-03-24 09:46:13
currentTitle        -                 2018-03-24 09:46:13
model Echo        Dot              2018-03-24 09:46:11
playStatus         stopped         2018-03-24 09:46:13
presence           present         2018-03-24 09:46:11
progress           0                   2018-03-24 09:46:13
progresslen       0                   2018-03-24 09:46:13
state                connected       2018-03-24 09:46:13
version             601481020     2018-03-24 09:46:11
volume             70                 2018-03-24 09:46:59


Das volume 70 steht da nur weil ich vorher ein "set volume 70" abgesetzt habe. Direkt nach dem autocreate stand das volume reading auf 0.

Hast du eine Idee woran das liegen könnte?
Bist du dir sicher dass du die aktuelle Version eingespielt hast? Du musst ein "shutdown restart" danach ausführen. Ich würde auch mal die Moduldatei im FHEM Verzeichnis prüfen. "/opt/fhem/FHEM"

michael.winkler

Zitat von: stefanpf am 24 März 2018, 09:10:24
Eingetragen wird dies in den server {} Block der Seitenkonfiguration von nginx.
In meinem Fall (ich nutze nur die Standardwerte und habe keine vhosts konfiguriert ) in die
/etc/nginx/sites-available/default


server {
       listen 80 default_server;
       listen [::]:80 default_server;
root /usr/share/nginx/www;
index index.html index.htm;

server_name localhost;

location / {
try_files $uri $uri/ /index.html;
}

location ~* \.(m3u$)$ {
            add_header 'Cache-Control' 'no-cache';
            add_header Content-Type  audio/x-mpegurl;
            root /opt/fhem/www/echodevice;
        }
        location ~* \.(mp3)$  {
            add_header 'Cache-Control' 'no-cache';
            root /opt/fhem/www/echodevice;
        }
}


Werden M3u Dateien aufgerufen, so sucht er diese im abweichenden Verzeichnis /opt/fhem/www/echodevice
und setzt / überschreibt den Mimetype im Header der Httpantwort mit audio/x-mpegurl
Zusätzlich wird noch das Zwischenspeichern (Cache-Control no cache) deaktiviert. Dies war bislang nicht notwendig und erfolgt nur prophylaktisch.

Den location ~* \.(mp3)$  {} Block nutze ich nur für die Umleitung auf das richtige Verzeichnis (damit ich mir den symlink spare).

Anmerkungen:
- das ist nicht 100% sauber, da alle mp3/m3u Dateien nun im echodevice Verzeichnis gesucht werden.
  Benötigt man die Erweiterungen noch an anderer Stelle, müsste man hier die 3 Dateinamen angeben.
-Die Konfiguration habe ich gerade zur Veranschaulichung am Tablet zusammengetippt.... Tip-/Syntaxfehler sind nicht auszuschließen

Habe es mal in die Doku mit aufgenommen. Wäre super wenn du mal drüber schauen könntest.
https://mwinkler.jimdo.com/smarthome/sonstiges/amazon-echo-tts-mp3s/#HTTP_Vorhanden

Gruß & Danke
Michael

michael.winkler

Zitat von: Steffen am 23 März 2018, 11:46:07

root@happyfamilyserver:/var/log/nginx# tail -f /var/log/nginx/openmediavault-webgui_access.log
127.0.0.1 - - [23/Mar/2018:11:39:39 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"
127.0.0.1 - - [23/Mar/2018:11:40:09 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"
192.168.178.50 - - [23/Mar/2018:11:40:26 +0100] "HEAD /live18-hq.aac.m3u HTTP/1.1" 200 0 "-" "AlexaMediaPlayer/2.0.200159.0 (Linux;Android 5.1.1) ExoPlayerLib/1.5.9"
192.168.178.50 - - [23/Mar/2018:11:40:26 +0100] "GET /live18-hq.aac.m3u HTTP/1.1" 200 42 "-" "AlexaMediaPlayer/2.0.200159.0 (Linux;Android 5.1.1) ExoPlayerLib/1.5.9"
127.0.0.1 - - [23/Mar/2018:11:40:39 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"
127.0.0.1 - - [23/Mar/2018:11:41:09 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"
127.0.0.1 - - [23/Mar/2018:11:41:40 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"
192.168.178.50 - - [23/Mar/2018:11:42:05 +0100] "HEAD /live18-hq.aac.m3u HTTP/1.1" 200 0 "-" "AlexaMediaPlayer/2.0.200159.0 (Linux;Android 5.1.1) ExoPlayerLib/1.5.9"
192.168.178.50 - - [23/Mar/2018:11:42:05 +0100] "GET /live18-hq.aac.m3u HTTP/1.1" 200 42 "-" "AlexaMediaPlayer/2.0.200159.0 (Linux;Android 5.1.1) ExoPlayerLib/1.5.9"
127.0.0.1 - - [23/Mar/2018:11:42:10 +0100] "HEAD / HTTP/1.1" 200 0 "-" "Monit/5.20.0"



root@happyfamilyserver:/var/log/nginx# tail -f /var/log/nginx/openmediavault-webgui_error.log
2018/03/23 09:28:27 [error] 24713#24713: *826 open() "/var/www/openmediavault/stream.m3u" failed (2: No such file or directory), client: 192.168.178.50, server: openmediavault-webgui, request: "HEAD /stream.m3u HTTP/1.1", host: "ic2514.c1916.fast-serv.com"
2018/03/23 09:28:27 [error] 24713#24713: *828 open() "/var/www/openmediavault/stream.m3u" failed (2: No such file or directory), client: 192.168.178.50, server: openmediavault-webgui, request: "GET /stream.m3u HTTP/1.1", host: "ic2514.c1916.fast-serv.com"
2018/03/23 09:59:13 [error] 24713#24713: *960 open() "/var/www/openmediavault/EchoWohnzimmer2.mp3" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /EchoWohnzimmer2.mp3 HTTP/1.1", host: "192.168.178.102"
2018/03/23 09:59:13 [error] 24713#24713: *960 open() "/var/www/openmediavault/css/omv.css" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /css/omv.css HTTP/1.1", host: "192.168.178.102", referrer: "http://192.168.178.102/EchoWohnzimmer2.mp3"
2018/03/23 10:04:11 [error] 24713#24713: *999 open() "/var/www/openmediavault/EchoWohnzimmer2.mp3" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /EchoWohnzimmer2.mp3 HTTP/1.1", host: "192.168.178.102"
2018/03/23 10:04:11 [error] 24713#24713: *999 open() "/var/www/openmediavault/css/omv.css" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /css/omv.css HTTP/1.1", host: "192.168.178.102", referrer: "http://192.168.178.102/EchoWohnzimmer2.mp3"
2018/03/23 10:13:46 [error] 24716#24716: *1087 open() "/var/www/openmediavault/EchoWohnzimmer2.mp3" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /EchoWohnzimmer2.mp3 HTTP/1.1", host: "192.168.178.102"
2018/03/23 10:13:46 [error] 24716#24716: *1087 open() "/var/www/openmediavault/css/omv.css" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /css/omv.css HTTP/1.1", host: "192.168.178.102", referrer: "http://192.168.178.102/EchoWohnzimmer2.mp3"
2018/03/23 10:15:38 [error] 24716#24716: *1101 open() "/var/www/openmediavault/EchoWohnzimmer2.mp3" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /EchoWohnzimmer2.mp3 HTTP/1.1", host: "192.168.178.102"
2018/03/23 10:15:38 [error] 24716#24716: *1101 open() "/var/www/openmediavault/css/omv.css" failed (2: No such file or directory), client: 192.168.178.61, server: openmediavault-webgui, request: "GET /css/omv.css HTTP/1.1", host: "192.168.178.102", referrer: "http://192.168.178.102/EchoWohnzimmer2.mp3"

hier ist aber der letzte von 10:15 von den letzten Abfragen taucht hier nichts auf...

Mfg Steffen

Hi Steffen,

ein anderer Forumsbenutzer hatte die gleichen Probleme wie Du. Er konnt mir dann auch noch eine Lösung liefern. Ich habe seinen Lösung in die Doku mit aufgenommen. Vielleicht hilft dir es weiter:
https://mwinkler.jimdo.com/smarthome/sonstiges/amazon-echo-tts-mp3s/#HTTP_Vorhanden

Gruß
Michael

Steffen

Hallo!

Vielen Danke das hört sich doch schon mal gut an, ich habe aber zwei Config im dem Verzeichnis
könntet ihr mir vielleicht bitte helfen in welche ich die Lösung eintragen könnte?!

default.config

root@happyfamilyserver:/etc/nginx/sites-available# cat default
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /opt/fhem/www/echodevice;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#       listen 80;
#       listen [::]:80;
#
#       server_name example.com;
#
#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}


openmediavault-webgui.config

root@happyfamilyserver:/etc/nginx/sites-available# cat
server {
    server_name openmediavault-webgui;
    root /var/www/openmediavault;
    index index.php;
    autoindex off;
    server_tokens off;
    sendfile on;
    large_client_header_buffers 4 32k;
    client_max_body_size 25M;
    error_log /var/log/nginx/openmediavault-webgui_error.log error;
    access_log /var/log/nginx/openmediavault-webgui_access.log combined;
    error_page 404 = /404.php;
    location /404.html {
        internal;
    }
    location /extjs6/ {
        alias /usr/share/javascript/extjs6/;
        expires 2d;
    }
    location ~ ^/(css|fonts|js|images)/ {
        expires 2d;
    }
    location /favicon {
        expires 14d;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm-openmediavault-webgui.sock;
        fastcgi_index index.php;
        fastcgi_read_timeout 60s;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    listen 80;
    include /etc/nginx/openmediavault-webgui.d/*.conf;
}


mfg Steffen

stefanpf

#569
Zitat von: michael.winkler am 24 März 2018, 10:53:46
Habe es mal in die Doku mit aufgenommen. Wäre super wenn du mal drüber schauen könntest.
https://mwinkler.jimdo.com/smarthome/sonstiges/amazon-echo-tts-mp3s/#HTTP_Vorhanden

Gruß & Danke
Michael

Habe mich gerade noch einmal gefragt ob das nicht schöner geht und an den Rechner gesetzt....

Ursache ist wie gesagt die fehlende Zuordnung des MIME-Types audio/x-mpegurl  zu der Erweiterung *.m3u.

Diese kann auf verschiedenen Wegen hergestellt werden:

1. Editieren der Datei /etc/nginx/mime.types und hinzufügen der Zeile
audio/x-mpegurl m3u;


2. Erweitern der Serverkonfiguration (hier default) in der Datei /etc/nginx/sites-available/default und hinzufügen der Zeilen
include /etc/nginx/mime.types;
types {
audio/x-mpegurl m3u;
}

im Server {} Block

Dies beseitigt das eigentliche Problem.


Um das jetzt alles etwas chic zu verpacken hätte ich folgenden Vorschlag:

1. Einen virtuelle Server mit zwei Servernamen bereitstellen (live.pieci.lv und ic2514.c1916.fast-serv.com) durch Anlegen der Datei /etc/nginx/sites-available/alexa_tts
Code (/etc/nginx/sites-available/alexa_tts) Auswählen

server {
    listen 80;
    listen [::]:80;

    server_name ic2514.c1916.fast-serv.com  live.pieci.lv;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    root /opt/fhem/www/echodevice;

    location / {
        #deny    192.168.252.20;         # verbietet eine IPv4
        #allow   2620:100:e000::8001; # erlaubt eine IPv6
        allow   192.168.252.0/24;      # erlaubt ein Subnetz
        deny    all;                 # verbietet es allen (außer den erlaubten)
        try_files $uri $uri/ =404;
    }

    include /etc/nginx/mime.types;
    types {
        audio/x-mpegurl m3u;
    }

    add_header 'Cache-Control' 'no-cache';
}

Über die Allow / Deny Einträge kann der Zugriff von Extern noch zusätzlich eingeschränkt werden, falls der NGINX auch von aussen erreichbar sein sollte.
Die Einträge können auch auskommentiert werden falls sie nicht benötigt werden.

2. Die soeben angelegte Konfig im Nginx durch einen Symlink aktivieren und Nginx neustarten:
Code (Konsole) Auswählen
#sudo ln -s /etc/nginx/sites-available/alexa_tts  /etc/nginx/sites-enabled/alexa_tts
#sudo service nginx restart


3. Dem FHEM Account Device (bei mir nennt es sich auch "echoAccount") nicht die IP Adresse des Webservers, sondern die jeweiligen FQDNs mitgeben.
Hintergrund: Der DNSMASQ löst diese Adressen wieder auf die IP Adresse des Webservers auf, in dem Header des http-Request ist aber als Host trotzdem der FQDN enthalten. NGINX wertet diesen Host Namen aus und leitet die Anfrage an unserer unter 1 definierten vServer weiter.
Code (FHEM) Auswählen
set echoAccount  TTS_IPAddress live.pieci.lv;
set echoAccount  POM_IPAddress ic2514.c1916.fast-serv.com;


Auf diesem Weg ist keine Modifikation an der vorhandenen Konfig notwenig und man hat eine saubere Trennung zwischen eventuell vorhandenen Servern.
Ich denke, dies ist gerade für Leute interessant, die ihre NGINX Konfig mit Hilfe von Tutorials zusammen kopiert haben (nicht, dass ich da besser wäre) :)