---
title: "Fonestar WA-225W"
description: "Fonestar WA-225W wzmacniacz stereo Wi-Fi DLNA/UPnP. Steruj głośnością, wyciszeniem i odtwarzaniem przez HTTP (SOAP) z TapHome za pomocą Packet Parsera."
url: "https://taphome.com/pl/compatibility/fonestar/"
language: pl
lastmod: 2026-03-27
generator: hugo
ai:
  topics: ["data-pp","http","audio","upnp","dlna","wifi"]
  questions: ["Jak zintegrować wzmacniacz DLNA Fonestar z TapHome?","Co kontroluje szablon Fonestar w TapHome?","Jak podłączyć urządzenie audio UPnP do TapHome przez Packet Parser?","Dlaczego tryb odtwarzania Fonestar ma tylko trzy działające pozycje?","Czy TapHome może sterować dowolnym rendererem DLNA, nie tylko Fonestar?","Jak znaleźć adres IP urządzenia UPnP/DLNA w sieci?"]
---

# Fonestar WA-225W

Komunikacja: Packet Parser → HTTP

- [Strona produktu Fonestar WA-225W](https://fonestar.com/en/wa-225w/)

> Adres w sieci
> 
> TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.
> 
> [Przygotowanie sieci](https://taphome.com/pl/docs/setup/network-preparation/)

## Poradnik integracji

Fonestar WA-225W to kompaktowy wzmacniacz stereo Wi-Fi z obsługą DLNA i AirPlay do strumieniowego przesyłania dźwięku przez sieć. TapHome komunikuje się z urządzeniem przez HTTP, wysyłając wiadomości UPnP/SOAP XML na port 49152. Szablon jest oparty na standardowym profilu UPnP AV Media Renderer, więc powinien działać z każdym urządzeniem Fonestar implementującym DLNA (WA-225W, FONCAST i podobne modele).

Szablon zapewnia sterowanie głośnością, wyciszenie, sterowanie odtwarzaniem (play, pauza, stop, następny utwór, poprzedni utwór) oraz przełącznik trybu odtwarzania. Nie jest wymagane połączenie z chmurą — cała komunikacja odbywa się w sieci lokalnej.

## Konfiguracja

Podczas importu szablonu do TapHome podaj adres IP urządzenia. Domyślny symbol zastępczy to `192.168.0.1`, a urządzenie nasłuchuje na porcie **49152** (standardowy port UPnP AV).

Aby znaleźć adres IP urządzenia, sprawdź listę klientów DHCP routera lub użyj aplikacji do skanowania UPnP/SSDP. WA-225W ogłasza się jako UPnP MediaRenderer w sieci lokalnej. Aplikacja towarzysząca MUZO (iOS/Android) również wyświetla podłączone urządzenia i ich adresy IP.

## Funkcje urządzenia

### Sterowanie głośnością

Szablon udostępnia głośność jako dimmer. Akcja UPnP `GetVolume` zwraca wartość z zakresu 0–100, którą szablon normalizuje do 0,0–1,0 dla modelu dimmera TapHome (przy odczycie dzieli przez 100, przy zapisie mnoży przez 100). Ustawienie głośności na 50% w TapHome wysyła `DesiredVolume=50` do urządzenia.

### Wyciszenie

Wyciszenie jest udostępnione jako przełącznik. Odczytuje aktualny stan wyciszenia przez `GetMute` (zwraca 0 lub 1) i zapisuje przez `SetMute`. Obie operacje są skierowane na kanał audio Master usługi RenderingControl:1.

### Sterowanie odtwarzaniem

Szablon udostępnia pięć urządzeń przyciskowych do sterowania odtwarzaniem:

- **Play** — wysyła akcję `Play` usługi AVTransport:1 (wznawia lub rozpoczyna odtwarzanie)
- **Pauza** — wysyła akcję `Pause` (wstrzymuje odtwarzanie w bieżącej pozycji)
- **Stop** — wysyła akcję `Stop` (całkowicie zatrzymuje odtwarzanie)
- **Następny utwór** — wysyła akcję `Next` (przeskakuje do następnego utworu)
- **Poprzedni utwór** — wysyła akcję `Previous` (wraca do poprzedniego utworu)

Są to przyciski tylko do zapisu. Odtwarzanie musi być najpierw uruchomione z innego źródła (np. aplikacja MUZO lub inny kontroler DLNA), ponieważ szablon nie zawiera akcji `SetAVTransportURI` do ustawienia źródła multimediów.

### Tryb odtwarzania

Urządzenie trybu odtwarzania to przełącznik wielowartościowy, który steruje trybem powtarzania przez `GetTransportSettings` i `SetPlayMode`. Trzy tryby są funkcjonalne:

| Pozycja | Etykieta TapHome | UPnP PlayMode | Efekt |
|---------|-------------------|---------------|-------|
| 0 | Normal | NORMAL | Odtwarzanie sekwencyjne, bez powtarzania |
| 1 | Repeat All | REPEAT_ALL | Powtarzanie całej kolejki |
| 2 | Repeat One | REPEAT_TRACK | Powtarzanie bieżącego utworu |

> [!NOTE]
> Szablon definiuje 10 pozycji wielowartościowych, ale tylko pozycje 0–2 odpowiadają rzeczywistym trybom odtwarzania UPnP. Pozycje 3–9 (oznaczone „Shuffle no repeat", „Shuffle" itp.) przy zapisie ustawiają się na NORMAL, ponieważ tryb UPnP `SHUFFLE` nie jest zmapowany w skrypcie szablonu. Używaj tylko trzech pierwszych pozycji.

### Dodatkowe funkcje

Standard UPnP AV udostępnia również raportowanie stanu odtwarzania (STOPPED, PLAYING, PAUSED), informacje o pozycji i czasie trwania utworu, zarządzanie URI multimediów (SetAVTransportURI do kolejkowania utworów), funkcję wyszukiwania, sterowanie głośnością w decybelach, wzmocnienie loudness oraz presety renderowania. Te funkcje mogą zostać dodane w przyszłej aktualizacji szablonu.

## Rozwiązywanie problemów

### Urządzenie nie odpowiada

1. Sprawdź, czy wzmacniacz jest włączony i podłączony do Wi-Fi (lub Ethernetu przez RJ-45)
2. Potwierdź, że adres IP w TapHome odpowiada aktualnemu IP urządzenia — sprawdź listę klientów DHCP routera
3. Spróbuj otworzyć `http://{ip-urzadzenia}:49152/` w przeglądarce — jeśli urządzenie jest osiągalne, powinien załadować się plik XML opisu UPnP
4. Sprawdź, czy TapHome Core i wzmacniacz są w tej samej sieci / VLAN — ruch UPnP domyślnie nie przekracza granic podsieci

### Przyciski odtwarzania nie działają

Przyciski odtwarzania (Play, Pauza, Stop, Następny utwór, Poprzedni utwór) działają tylko wtedy, gdy multimedia są już załadowane na urządzeniu. Szablon nie zawiera akcji `SetAVTransportURI`, więc odtwarzanie musi być najpierw uruchomione z innego źródła (np. aplikacja MUZO, serwer multimediów DLNA lub inny punkt kontrolny UPnP). Po uruchomieniu odtwarzania przyciski TapHome będą je kontrolować.

### Zmiany głośności nie są stosowane

Jeśli regulacje głośności z TapHome nie odnoszą skutku, sprawdź, czy urządzenie nie jest wyciszone. Niektóre renderery DLNA ignorują zmiany głośności przy aktywnym wyciszeniu. Upewnij się również, że żaden inny punkt kontrolny (np. aplikacja MUZO) nie wysyła jednocześnie sprzecznych poleceń.

## Dostępne urządzenia 8

Te urządzenia pojawią się w TapHome po imporcie.

Fonestar Moduł

Głośność Ściemniacz Odczyt i zapis

Główny poziom głośności — zakres UPnP 0–100 znormalizowany do skali dimmera TapHome (0,0–1,0)

numeric Jednostka: %

Odczyt poziomu

```taphome
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
```

Zapis poziomu

```taphome
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\"");
```

Następny utwór Przycisk Odczyt i zapis

button

Zapis stanu przycisku

```taphome
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\"");
```

Pauza Przycisk Odczyt i zapis

button

Zapis stanu przycisku

```taphome
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 Przycisk Odczyt i zapis

button

Zapis stanu przycisku

```taphome
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\"");
```

Poprzedni utwór Przycisk Odczyt i zapis

button

Zapis stanu przycisku

```taphome
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 Przycisk Odczyt i zapis

button

Zapis stanu przycisku

```taphome
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\"");
```

Wyciszenie Przełącznik Odczyt i zapis

boolean

Wartości / Stany: ON · OFF

Odczyt stanu przełącznika

```taphome
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
```

Zapis stanu przełącznika

```taphome
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\"");
```

Tryb odtwarzania Przełącznik wielowartościowy Odczyt i zapis

Tryb powtarzania — Normal, Repeat All, Repeat One są funkcjonalne; pozycje 3–9 nie mają mapowania UPnP i ustawiają się na Normal

enum

Wartości / Stany: Normal · Repeat all · Repeat one

Odczyt stanu przełącznika

```taphome
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
```

Zapis stanu przełącznika

```taphome
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\"");
```

**Połączenie:** Packet Parser → HTTP

Możliwe ulepszenia (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)

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Adres IP            | `192.168.0.1` |

## Źródła

- Fonestar WA-225W Product Page
  
  [fonestar.com](https://fonestar.com/en/wa-225w/) 2026-03-27
- UPnP AVTransport:1 Service Specification
  
  [upnp.org](https://upnp.org/specs/av/UPnP-av-AVTransport-v1-Service.pdf) 2026-03-27
- UPnP RenderingControl:1 Service Reference
  
  [sonos.svrooij.io](https://sonos.svrooij.io/services/rendering-control) 2026-03-27

## Powiązana dokumentacja

- [Integracja Packet Parser](https://taphome.com/pl/compatibility/packet-parser-guide/)
- [Packet Parser (HTTP, TCP, UDP, FTP, MQTT)](https://taphome.com/pl/docs/integration/packet-parser/)
- [Funkcje Packet parser](https://taphome.com/pl/docs/script/packet-parser/)
- [Funkcje parsowania](https://taphome.com/pl/docs/script/parsing-functions/)

