TapHome

Fonestar WA-225W

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 06. 2026
Fonestar WA-225W

Der Fonestar WA-225W ist ein kompakter Wi-Fi-Stereoverstärker mit DLNA- und AirPlay-Unterstützung für Netzwerk-Audio-Streaming. TapHome kommuniziert mit dem Gerät über HTTP mittels UPnP/SOAP-XML-Nachrichten, die an Port 49152 gesendet werden. Die Vorlage zielt auf das Standard-UPnP-AV-Media-Renderer-Profil ab und sollte daher mit jedem Fonestar-Gerät funktionieren, das DLNA implementiert (WA-225W, FONCAST und ähnliche Modelle).

Die Vorlage bietet Lautstärkeregelung, Stummschaltung, Wiedergabesteuerung (Play, Pause, Stop, nächster Titel, vorheriger Titel) und einen Wiedergabemodus-Umschalter. Es ist keine Cloud-Verbindung erforderlich — die gesamte Kommunikation erfolgt im lokalen Netzwerk.

Konfiguration

Geben Sie beim Import der TapHome-Vorlage die IP-Adresse des Geräts ein. Der Standard-Platzhalter ist 192.168.0.1 und das Gerät lauscht auf Port 49152 (der Standard-UPnP-AV-Port).

Um die IP-Adresse des Geräts zu finden, prüfen Sie die DHCP-Client-Liste Ihres Routers oder verwenden Sie eine UPnP/SSDP-Scanner-App. Der WA-225W meldet sich im lokalen Netzwerk als UPnP-MediaRenderer an. Die Begleit-App MUZO (iOS/Android) zeigt ebenfalls verbundene Geräte und deren IP-Adressen an.

UPnP-Geräte verwenden SSDP für die Erkennung, nicht mDNS. Wenn sich die IP-Adresse des Geräts nach einer DHCP-Erneuerung ändert, müssen Sie die IP-Adresse in TapHome aktualisieren. Erwägen Sie die Zuweisung einer statischen IP-Adresse oder einer DHCP-Reservierung auf Ihrem Router, um Verbindungsprobleme zu vermeiden.

Gerätefunktionen

Lautstärkeregelung

Die Vorlage stellt die Lautstärke als Dimmer bereit. Die UPnP-Aktion GetVolume gibt einen Wert im Bereich 0–100 zurück, den die Vorlage für das TapHome-Dimmer-Modell auf 0,0–1,0 normalisiert (beim Lesen durch 100 dividiert, beim Schreiben mit 100 multipliziert). Das Einstellen der Lautstärke auf 50 % in TapHome sendet DesiredVolume=50 an das Gerät.

Stummschaltung

Die Stummschaltung wird als Schalter bereitgestellt. Sie liest den aktuellen Stummschaltungszustand über GetMute (gibt 0 oder 1 zurück) und schreibt über SetMute. Beide Operationen zielen auf den Master-Audiokanal des RenderingControl:1-Diensts ab.

Wiedergabesteuerung

Die Vorlage bietet fünf Tastengeräte zur Wiedergabesteuerung:

  • Play — sendet die Play-Aktion des AVTransport:1-Diensts (nimmt die Wiedergabe auf oder startet sie)
  • Pause — sendet die Pause-Aktion (hält die Wiedergabe an der aktuellen Position an)
  • Stop — sendet die Stop-Aktion (stoppt die Wiedergabe vollständig)
  • Nächster Titel — sendet die Next-Aktion (springt zum nächsten Titel)
  • Vorheriger Titel — sendet die Previous-Aktion (kehrt zum vorherigen Titel zurück)

Dies sind reine Schreib-Tasten. Die Wiedergabe muss zuerst von einer anderen Quelle gestartet werden (z. B. die MUZO-App oder ein anderer DLNA-Controller), da die Vorlage keine SetAVTransportURI-Aktion zum Festlegen der Medienquelle enthält.

Wiedergabemodus

Das Wiedergabemodus-Gerät ist ein Mehrwert-Schalter, der den Wiederholungsmodus über GetTransportSettings und SetPlayMode steuert. Drei Modi sind funktionsfähig:

PositionTapHome-BezeichnungUPnP PlayModeEffekt
0NormalNORMALSequenzielle Wiedergabe, keine Wiederholung
1Repeat AllREPEAT_ALLGesamte Warteschlange wiederholen
2Repeat OneREPEAT_TRACKAktuellen Titel wiederholen

Die Vorlage definiert 10 Mehrwert-Positionen, aber nur die Positionen 0–2 entsprechen tatsächlichen UPnP-Wiedergabemodi. Die Positionen 3–9 (bezeichnet als „Shuffle no repeat", „Shuffle" usw.) werden beim Schreiben auf NORMAL gesetzt, da der UPnP-Modus SHUFFLE im Vorlagen-Skript nicht zugeordnet ist. Verwenden Sie nur die ersten drei Positionen.

Weitere Funktionen

Der UPnP-AV-Standard stellt auch Wiedergabezustandsmeldungen (STOPPED, PLAYING, PAUSED), Informationen zu Titelposition und -dauer, URI-Medienverwaltung (SetAVTransportURI zum Einreihen von Titeln), Suchfunktion, Lautstärkeregelung in Dezibel, Loudness-Verbesserung und Rendering-Voreinstellungen bereit. Diese Funktionen können in einem zukünftigen Vorlagen-Update hinzugefügt werden.

Fehlerbehebung

Gerät antwortet nicht
  1. Stellen Sie sicher, dass der Verstärker eingeschaltet und mit Wi-Fi (oder Ethernet über RJ-45) verbunden ist
  2. Bestätigen Sie, dass die IP-Adresse in TapHome mit der aktuellen IP des Geräts übereinstimmt — prüfen Sie die DHCP-Client-Liste Ihres Routers
  3. Versuchen Sie, http://{geraete-ip}:49152/ im Browser aufzurufen — wenn das Gerät erreichbar ist, sollte ein UPnP-Beschreibungs-XML geladen werden
  4. Stellen Sie sicher, dass TapHome Core und der Verstärker im selben Netzwerk / VLAN sind — UPnP-Datenverkehr überquert standardmäßig keine Subnetzgrenzen
Wiedergabe-Tasten haben keine Wirkung

Die Wiedergabe-Tasten (Play, Pause, Stop, Nächster Titel, Vorheriger Titel) funktionieren nur, wenn bereits Medien auf dem Gerät geladen sind. Die Vorlage enthält keine SetAVTransportURI-Aktion, daher muss die Wiedergabe zuerst von einer anderen Quelle gestartet werden (z. B. die MUZO-App, ein DLNA-Medienserver oder ein anderer UPnP-Kontrollpunkt). Sobald Medien abgespielt werden, können die TapHome-Tasten die Wiedergabe steuern.

Lautstärkeänderungen werden nicht übernommen

Wenn Lautstärkeanpassungen aus TapHome keine Wirkung zeigen, stellen Sie sicher, dass das Gerät nicht stummgeschaltet ist. Einige DLNA-Renderer ignorieren Lautstärkeänderungen bei aktiver Stummschaltung. Bestätigen Sie außerdem, dass kein anderer Kontrollpunkt (z. B. die MUZO-App) gleichzeitig widersprüchliche Befehle sendet.

Verfügbare Geräte

Fonestar Modul
Lautstärke Dimmer

Hauptlautstärke — UPnP-Bereich 0–100, normalisiert auf die TapHome-Dimmer-Skala (0,0–1,0)

numeric Einheit: %

Lautstärke

Level lesen
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:GetVolume xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\"><InstanceID>0</InstanceID><Channel>Master</Channel></u:GetVolume></s:Body></s:Envelope>";

VAR response := SENDHTTPREQUEST("/upnp/control/rendercontrol1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:RenderingControl:1#GetVolume\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"" );

IF response.IsSuccess
    VAR responseXml := response.Content;
    RETURN(PARSEXML(responseXml, "//CurrentVolume") / 100.0);
ELSE
    ADDERROR(response.Content);
    RETURN(NaN);
END
Level schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:SetVolume xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>" + ROUND(Le * 100) + "</DesiredVolume></u:SetVolume></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendercontrol1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:RenderingControl:1#SetVolume\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Nächster Titel Taster
button

Nächster Titel

Tastenstatus schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:Next xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID></u:Next></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#Next\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Pause Taster
button

Pause

Tastenstatus schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:Pause xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID></u:Pause></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#Pause\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Play Taster
button

Play

Tastenstatus schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:Play xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#Play\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Vorheriger Titel Taster
button

Vorheriger Titel

Tastenstatus schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:Previous xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID></u:Previous></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#Previous\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Stop Taster
button

Stop

Tastenstatus schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:Stop xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID><Speed>1</Speed></u:Stop></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#Stop\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Stummschaltung Schalter
boolean
Werte / Zustände: ON · OFF

Stummschaltung

Schaltzustand lesen
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:GetMute xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\"><InstanceID>0</InstanceID><Channel>Master</Channel></u:GetMute></s:Body></s:Envelope>";

VAR response := SENDHTTPREQUEST("/upnp/control/rendercontrol1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:RenderingControl:1#GetMute\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");

IF response.IsSuccess
    VAR responseXml := response.Content;
    RETURN(PARSEXML(responseXml, "//CurrentMute"));
ELSE
    ADDERROR(response.Content);
    RETURN(NaN);
END
Schaltzustand schreiben
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:SetMute xmlns:u=\"urn:schemas-upnp-org:service:RenderingControl:1\"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>" + St +"</DesiredMute></u:SetMute></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendercontrol1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:RenderingControl:1#SetMute\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Wiedergabemodus Mehrwertschalter

Wiederholungsmodus — Normal, Repeat All, Repeat One sind funktional; Positionen 3–9 haben keine UPnP-Zuordnung und werden auf Normal gesetzt

enum
Werte / Zustände: Normal · Repeat all · Repeat one · Shuffle no repeat · Shuffle · Shuffle repeat one

Wiedergabemodus

Schaltzustand lesen
VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:GetTransportSettings xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID></u:GetTransportSettings></s:Body></s:Envelope>";

VAR response := SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#GetTransportSettings\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");

IF response.IsSuccess
    VAR responseXml := response.Content;
    VAR mode := PARSEXML(responseXml, "//PlayMode");
    RETURN(SWITCH(mode, "NORMAL", 0, "REPEAT_ALL", 1, "REPEAT_TRACK", 2, 0));
ELSE
    ADDERROR(response.Content);
    RETURN(NaN);
END
Schaltzustand schreiben
VAR mode := SWITCH(Mu, 0, "NORMAL", 1, "REPEAT_ALL", 2, "REPEAT_TRACK", "NORMAL");

VAR body := "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body><u:SetPlayMode xmlns:u=\"urn:schemas-upnp-org:service:AVTransport:1\"><InstanceID>0</InstanceID><NewPlayMode>" + mode +"</NewPlayMode></u:SetPlayMode></s:Body></s:Envelope>";

SENDHTTPREQUEST("/upnp/control/rendertransport1", "POST", body, "SOAPACTION: \"urn:schemas-upnp-org:service:AVTransport:1#SetPlayMode\"", "CONTENT-TYPE: text/xml; charset=\"utf-8\"");
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (8)
  • Set Media URI — Required action — sets the URI of the media to play. Without this, the device can only control already-playing media (started from another source like the MUZO app).
  • Transport State — Returns current TransportState (STOPPED, PLAYING, PAUSED_PLAYBACK, etc.) — useful for showing playback status in TapHome
  • Track Position Info — Returns current track number, duration, and playback position — would enable progress display
  • Media Info — Returns number of tracks and media duration
  • Seek — Required action — seek by track number, absolute or relative time
  • Volume in dB — Optional — volume control in decibels rather than 0-100 linear scale
  • Loudness — Optional — loudness enhancement toggle
  • Rendering Presets — Required actions — list and select rendering presets (e.g. EQ profiles)

Quellen

Haben Sie ein Problem mit dieser Gerätevorlage gefunden?

Sagen Sie uns, was nicht funktioniert, was fehlt oder wie sich die Vorlage verhalten sollte. Ihr Feedback hilft uns, den Katalog genau zu halten.

Von TapHome verifiziert

Möchtest du das in deinem TapHome Core verwenden?

Öffne diese Vorlage im Kundenportal, um sie auf eine deiner Wohnungen anzuwenden, oder entwirf eine Anpassung und reiche sie an den Katalog ein.

Im Portal öffnen