Weil ich das Thema gerade auch in einer PN hatte, hier nochmal meine Gedanken zu dem Thema:
Mein use case für ist das ich mehrere ESPuinos betreue, die sich in unterschiedlichen Haushalten befinden, die RFID Tags aber durchaus zwischen den Kindern getauscht werden.
Um den Content zu Syncronisieren müsste ich mich da aufwändig mit VPN, etc. zu den einzelnen ESPuinos verbinden. Das ist nicht wirklich praktikabel. Ein wichtiges Kriterium für mich ist, das die Zuordnung der RFID UIDs zu den Audiodaten auf einem zentralen Server erfolgen soll.
Um das mit DLNA umzusetzen fallen mir zwei Varianten ein:
ESPuino such alle bzw. einen eingestellten DLNA Digital Media Server (DMS) nach einer Bestimmten Datei ab (z.B. im Ordner /ESPuino/$UID.m3u). Das dürfte mit allen DMS Implementierungen kompatibel sein. Man brächte aber wieder irgend eine extra Software, die die Dateien auf dem DMS entsprechend erstellt (manuell wäre mir zu fehleranfällig/aufwändig).
Alternativ könnte man einen Search Request an den/die DMS schicken, der z.B. nach einem bestimmten Kriterium (z.B. rfid:uid==$UID
oder dc:title=="ESPuino-$UID.m3u"
) sucht. Das würde die Implementierung/Arbeit auf Seiten des ESPuino einfacher machen, aber viele einfache DMS unterstützen keine Suche (von speziellen Such Kriterien mal ganz abgesehen). Bei einer Fritz Box würde ich z.B. nicht erwarten das dort eine Suche Unterstützt wird. Man bräuchte entsprechend wieder einen richtigen DMS der das kann.
Im klassischen Use-Case erfolgt das ganze Discovery via Multicast, Server und Client müssen entsprechend im selben Subnetz sein. Eine Limitierung auf das selbe Subnetz wäre für mich ein KO-Kriterium. Eine manuelle Spezifikation und entsprechende direkte unicast Kommunikation mit einem externen Server sollte aber möglich sein (Relevant für meinen use case).
Mein größtes Problem mit DLNA ist aber, dass das ganze Protokoll auf SOAP/XML basiert. XML parsen/erzeugen ist so ziemmlich das schlimmste was man einen CPU/Speicher limitierten Gerät antuen kann
Entsprechend bin ich auch eher ein Freund von einfachen HTTP REST calls.
Was ich Interessanter fände, wäre die Implementierung eines DLNA Digital Media Renderer (DMR). Damit mann via DLNA z.B. eine Datei vom Handy auf einen ESPuino Streamen kann (Anstelle von Bluetooth). Streamen von z.B. Amazon Music übers Handy auf einen ESPuino würde aber vermutlich damit auch nicht gehen. Entsprechend auch wieder nur ein sehr spezieller use case.
Mit DLNA
DLNA nutzt für die Kommunikation SOAP/XML. Das zu parsen/erzeugen ist nicht besonderes Speicher freundlich. Es wäre mit entsprechenden massiven Overhead verbunden, das möchte ich den ESPuinos aktuell nicht antun.
Die fritz box Implementiert soweit ich weis nur einen dummen media server der quasi