TapHome

Fonestar WA-225W

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026
Fonestar WA-225W

Fonestar WA-225W este un amplificator stereo Wi-Fi compact, care acceptă DLNA și AirPlay pentru streaming audio în rețea. TapHome comunică cu dispozitivul prin HTTP, cu mesaje XML UPnP/SOAP trimise pe portul 49152. Șablonul folosește profilul standard UPnP AV Media Renderer, așa că ar trebui să funcționeze cu orice dispozitiv Fonestar care implementează DLNA (WA-225W, FONCAST și modele similare).

Șablonul oferă controlul volumului, dezactivarea sunetului, comenzile de redare (play, pauză, stop, piesa următoare, piesa anterioară) și un selector al modului de redare. Nu este necesară conexiunea la cloud — toată comunicația are loc în rețeaua locală.

Configurare

La importul șablonului în TapHome, introduceți adresa IP a dispozitivului. Valoarea implicită afișată este 192.168.0.1, iar dispozitivul ascultă pe portul 49152 (portul standard UPnP AV).

Pentru a afla adresa IP a dispozitivului, consultați lista clienților DHCP din router sau folosiți o aplicație de scanare UPnP/SSDP. WA-225W se anunță în rețeaua locală ca UPnP MediaRenderer. Aplicația însoțitoare MUZO (iOS/Android) afișează și ea dispozitivele conectate și adresele lor IP.

Dispozitivele UPnP folosesc SSDP pentru descoperire, nu mDNS. Dacă adresa IP a dispozitivului se schimbă după reînnoirea DHCP, trebuie să actualizați adresa IP în TapHome. Pentru a evita problemele de conectivitate, atribuiți în router o adresă IP statică sau o rezervare DHCP.

Funcțiile dispozitivului

Controlul volumului

În șablon, volumul este un dispozitiv de tip dimmer. Acțiunea UPnP GetVolume returnează o valoare în intervalul 0–100, pe care șablonul o normalizează la 0,0–1,0 pentru modelul dimmer din TapHome (la citire împarte la 100, la scriere înmulțește cu 100). Setarea volumului la 50 % în TapHome trimite dispozitivului DesiredVolume=50.

Dezactivare sunet

În șablon, dezactivarea sunetului este un dispozitiv de tip comutator. Starea curentă se citește prin GetMute (returnează 0 sau 1) și se scrie prin SetMute. Ambele operații vizează canalul audio Master al serviciului RenderingControl:1.

Comenzile de redare

Șablonul oferă cinci dispozitive de tip buton pentru controlul redării:

  • Play — trimite acțiunea AVTransport:1 Play (reia sau pornește redarea)
  • Pauză — trimite acțiunea Pause (oprește redarea la poziția curentă)
  • Stop — trimite acțiunea Stop (oprește complet redarea)
  • Piesa următoare — trimite acțiunea Next (trece la piesa următoare)
  • Piesa anterioară — trimite acțiunea Previous (revine la piesa anterioară)

Acestea sunt butoane numai pentru scriere. Redarea trebuie pornită mai întâi din altă sursă (de ex. din aplicația MUZO sau din alt controler DLNA), deoarece șablonul nu include acțiunea SetAVTransportURI pentru setarea sursei media.

Mod de redare

Dispozitivul pentru modul de redare este un comutator cu mai multe valori, care controlează modul de repetare prin GetTransportSettings și SetPlayMode. Funcționează trei moduri:

PozițieEticheta în TapHomeUPnP PlayModeEfect
0NormalNORMALRedare secvențială, fără repetare
1Repetare toateREPEAT_ALLRepetarea întregii cozi
2Repetare piesăREPEAT_TRACKRepetarea piesei curente

Șablonul definește 10 poziții, dar numai pozițiile 0–2 corespund unor moduri de redare UPnP reale. Pozițiile 3–9 (etichetate „Redare aleatorie fără repetare”, „Redare aleatorie” etc.) la scriere trimit implicit valoarea NORMAL, deoarece modul UPnP SHUFFLE nu este mapat în scriptul șablonului. Folosiți numai primele trei poziții.

Funcții suplimentare

Standardul UPnP AV oferă și raportarea stării redării (STOPPED, PLAYING, PAUSED), informații despre poziția și durata piesei, gestionarea URI-urilor media (SetAVTransportURI pentru punerea pieselor în coadă), funcția de căutare în piesă (seek), controlul volumului în decibeli, funcția loudness și presetări de redare. Aceste funcții pot fi adăugate într-o actualizare viitoare a șablonului.

Depanare

Dispozitivul nu răspunde
  1. Verificați dacă amplificatorul este pornit și conectat la Wi-Fi (sau la Ethernet prin RJ-45)
  2. Verificați dacă adresa IP din TapHome corespunde adresei IP curente a dispozitivului — consultați lista clienților DHCP din router
  3. Încercați să accesați http://{device-ip}:49152/ într-un browser — dacă dispozitivul este accesibil, ar trebui să se încarce un XML cu descrierea dispozitivului UPnP
  4. Verificați dacă TapHome Core și amplificatorul sunt în aceeași rețea / VLAN — implicit, traficul UPnP nu trece dintr-o subrețea în alta
Butoanele de redare nu au efect

Butoanele de redare (Play, Pauză, Stop, Piesa următoare, Piesa anterioară) funcționează numai când pe dispozitiv este deja încărcat un conținut media. Șablonul nu include acțiunea SetAVTransportURI, așa că redarea trebuie pornită mai întâi din altă sursă (de ex. din aplicația MUZO, de pe un server media DLNA sau din alt punct de control UPnP). După ce redarea a pornit, butoanele TapHome o controlează.

Modificările volumului nu se aplică

Dacă modificările volumului din TapHome nu au efect, verificați dacă sunetul dispozitivului nu este dezactivat. Unele renderere DLNA ignoră modificările volumului cât timp sunetul este dezactivat. Verificați și dacă niciun alt punct de control (de ex. aplicația MUZO) nu trimite simultan comenzi contradictorii.

Dispozitive disponibile

Fonestar Modul
Volum Dimmer

Nivelul volumului Master — intervalul UPnP 0–100 normalizat la scala dimmerului din TapHome (0,0–1,0)

numeric Unitate: %

Volum

Citirea nivelului
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
Scrierea nivelului
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\"");
Piesa următoare Buton
button

Piesa următoare

Scrierea stării butonului
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\"");
Pauză Buton
button

Pauză

Scrierea stării butonului
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 Buton
button

Play

Scrierea stării butonului
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\"");
Piesa anterioară Buton
button

Piesa anterioară

Scrierea stării butonului
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 Buton
button

Stop

Scrierea stării butonului
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\"");
Dezactivare sunet Comutator
boolean
Valori / Stări: ON · OFF

Dezactivare sunet

Citirea stării comutatorului
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
Scrierea stării comutatorului
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\"");
Mod de redare Comutator cu mai multe valori

Modul de repetare a redării — funcționează modurile Normal, Repetare toate și Repetare piesă; pozițiile 3–9 nu au corespondent UPnP și la scriere trimit implicit Normal

enum
Valori / Stări: Normal · Repeat all · Repeat one · Shuffle no repeat · Shuffle · Shuffle repeat one

Mod de redare

Citirea stării comutatorului
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
Scrierea stării comutatorului
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\"");
Conexiune: Packet Parser → HTTP
Îmbunătățiri posibile (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)

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal