LG webOS
Why LG TVs are harder to find on a home network than Samsung ones
Nefarius Apps12 min read
An LG TV is slower to turn up in an iPhone remote app than a Samsung because LG webOS doesn't announce its remote service over Bonjour, the discovery system iOS offers every app. An LG announces it over SSDP instead, and an iPhone app can only listen for SSDP with a multicast entitlement Apple grants on request. An app without that entitlement has to find an LG by checking the network address by address — slower, and the reason an LG TV can go unfound in a remote app on a network where a Samsung appears at once.
Why does a Samsung appear instantly and an LG doesn't?
A Samsung and an LG on the same network are found in two different ways, and the difference in speed comes from that alone. A Samsung Tizen TV announces its remote service over Bonjour, so an iPhone hears it the moment it asks. An LG webOS TV makes no Bonjour announcement for its remote service; it uses a different system, SSDP, which iPhone apps can't listen to without a permission Apple grants separately. An app without that permission has to go looking for the LG rather than waiting to hear from it.
Neither television is faulty, and the remote app isn't broken. The gap comes from one choice LG made about how webOS advertises itself and one choice Apple made about what iPhone apps may do on a home network — and the two only collide on iOS.
| Detail | Samsung Tizen | LG webOS |
|---|---|---|
| Announces its remote service over | Bonjour (multicast DNS) | SSDP |
| Name it announces | _samsung-remote._tcp. | urn:lge-com:service:webos-second-screen:1 |
| Multicast address and port | 224.0.0.251, port 5353 | 239.255.255.250, port 1900 |
| What an iPhone app needs to hear it | The Local Network permission | The Local Network permission and Apple's multicast entitlement |
| Remote-control ports | 8001 and 8002 | 3001; 3000 on some early sets |
How does Bonjour discovery work?
Bonjour is Apple's implementation of multicast DNS service discovery, and it's the discovery system iOS offers every app. A device such as a Samsung TV announces a named service — _samsung-remote._tcp. — on the shared multicast address 224.0.0.251, and answers whenever anything on the network asks who offers that service. An app that wants Samsung TVs asks for that name once and hears back from every set that has it.
The detail that matters on an iPhone is who does the talking. An app doesn't send Bonjour traffic itself: it asks iOS, and a system service sends the question and collects the answers on the app's behalf. Since iOS 14, the app also has to declare in advance, in its Info.plist, every service type it intends to look for. iOS therefore knows exactly what each app is searching for, and the only thing the app needs from the person holding the phone is the Local Network permission.
That's why a Samsung appears so quickly. The phone asks once, the TV answers, and where the TV sits on the network makes no difference to how long that takes.
Why does LG use SSDP instead?
LG webOS TVs advertise their remote service over SSDP, the Simple Service Discovery Protocol from the UPnP family of standards, rather than over Bonjour. SSDP does the same job differently: a device that's searching sends a request to the multicast address 239.255.255.250 on port 1900, matching devices reply, and devices also send announcements of their own to that address from time to time. A webOS TV answers to urn:lge-com:service:webos-second-screen:1, the name LG gives the service that lets phones and other screens work with the TV.
SSDP is a natural fit for a television. It's the discovery half of UPnP, the standard DLNA is built on, and smart TVs have spoken it for years. LG's own developer tooling uses it too — Connect SDK, the open-source library LG published for app makers, finds webOS TVs with exactly that search. On most computers, listening for SSDP is unremarkable. On an iPhone, it runs into a rule Apple introduced with iOS 14.
What does Apple's multicast entitlement block?
Apple's multicast entitlement, com.apple.developer.networking.multicast, is what an iPhone app needs to send or receive multicast and broadcast traffic of its own — and SSDP is multicast traffic. An app without the entitlement can't send an SSDP search to 239.255.255.250, and can't listen for the announcements TVs send to that address. The entitlement is a managed one: a developer has to apply to Apple, explain what the app needs it for, and be approved before an App Store build can use it.
Apple's reasoning follows from what raw multicast allows. A Bonjour search goes through iOS and is limited to the service types an app declared up front, so the system knows exactly what's being looked for. A multicast socket has no such limit — an app holding one can hear every device in the house announce itself, which adds up to an inventory of a household's hardware. That's the kind of information the Local Network permission exists to put behind a question, so Apple reviews who gets the wider access rather than giving it to every app that asks.
How does a remote app find an LG without SSDP?
A remote app without the multicast entitlement finds an LG by asking each address on the network, one connection at a time, whether LG's remote port is open. Current webOS TVs accept remote connections on port 3001, over an encrypted WebSocket, and very little else on a home network listens there — so an address where port 3001 accepts a connection is, in practice, a webOS TV.
Tivi, a universal TV remote app for iPhone from Nefarius Apps, finds LG TVs exactly this way, because it doesn't currently hold the multicast entitlement. While its Bonjour searches run, Tivi takes the iPhone's own Wi-Fi address and tries port 3001 on every other address that shares its first three numbers. A device that accepts is listed as a webOS TV; the connection is closed the moment it opens, nothing is sent over it, and nothing is kept about addresses that don't answer.
| Setting | Value |
|---|---|
| Addresses checked | The 253 others sharing the first three numbers of the iPhone's Wi-Fi address |
| Port tried | 3001 |
| Checked at once | 64 addresses |
| Time given to a silent address | Up to two seconds |
| Order | Numerical, upward from .1 |
| Whole scan, all brands | Up to 15 seconds |
The check works — it's why an LG appears at all — and it's slower by construction. Bonjour gathers every Samsung on the network with one question; the address check asks 253, and an address with nothing on it never answers, so it's only given up on when its two seconds run out. Because the check works upward, an LG at 192.168.1.230 is reached later than one at 192.168.1.20.
An LG found this way arrives with an address and no name, so Tivi lists it as "WebOS TV" until something else supplies one: the name saved from an earlier connection, or — on sets from 2019 onward — the TV's own AirPlay announcement from the same address, which carries the name the TV goes by.
What does it mean when your LG TV isn't found by a remote app?
An LG TV that a remote app doesn't find, on a network where a Samsung appears straight away, has usually failed the address check for one of four reasons: the check hadn't reached it yet, the TV wasn't answering on its remote port, its address was outside the range being checked, or the phone couldn't open a connection to it at all. The first three are specific to finding an LG by address. The fourth affects every brand.
The check hadn't reached it yet
Tivi's scan runs for up to fifteen seconds, and an LG with a high address arrives later in that window than a Samsung ever does. Leaving the TVs screen, switching to another app or locking the phone stops the scan where it is, so watch one scan through to the end before deciding the LG isn't there.
The TV wasn't answering on port 3001
A webOS TV only answers the check while it's fully on and its remote service is enabled. An LG in standby usually isn't on the network at all, even though it's still plugged in. webOS also has a setting that decides whether apps on the network may connect — on older versions it's called LG Connect Apps and sits under Network; newer versions file it with the mobile or connected-device settings. With it off, port 3001 stays closed and there's nothing for the check to find. The earliest webOS sets may offer LG's remote protocol only on an unencrypted port, 3000, which the check doesn't try.
Its address was outside the range being checked
The address check covers every address that shares the iPhone's first three numbers, which is the whole of a standard home network — one whose subnet mask is 255.255.255.0. Some mesh systems and larger routers use a wider range, with a mask such as 255.255.252.0, where a phone at 192.168.4.20 and a TV at 192.168.5.40 are on the same network and reach each other perfectly well. Bonjour finds devices anywhere on a network like that; the address check covers only the phone's own block of 256, so a TV in the next block isn't checked.
To see which you have, open Settings › Wi-Fi on the iPhone and tap the ⓘ beside the network. If Subnet Mask reads 255.255.255.0, the check covers your whole network and this isn't the problem. If it reads anything wider, compare the TV's address with the phone's; where the third numbers differ, reserving the TV an address in the phone's block brings it into range.
The phone couldn't reach the TV at all
Finding an LG by address means connecting to it, so anything that stops the iPhone opening a connection to the TV hides an LG completely: Local Network access switched off for the app, the phone on a guest network, a VPN on the phone, or a router that keeps Wi-Fi devices from talking to each other. None of that is specific to LG, and the checklist for a TV that won't appear takes each one in the order worth checking.
How can you make an LG easier to find?
An LG is found most reliably when it's fully on, sitting at a fixed address in the phone's block, with its remote service enabled — and when the scan is allowed to finish. Most of that is set up once.
Switch the TV fully on first
Use its own remote or power button and wait for the picture. A set in standby won't answer on port
3001.Let one scan run to the end
Keep Tivi open on the TVs screen until the scan finishes. The LG is often among the last devices to appear, and a scan that looks finished at three seconds may still be working through the addresses.
Check the iPhone's subnet mask
Settings › Wi-Fi, then the ⓘ beside the network.
255.255.255.0means the whole network is checked; anything wider means the TV needs an address in the phone's block of 256.Reserve the TV's address in the router
Routers call it a DHCP reservation, a static lease or an address reservation, and it's usually set from the list of connected devices. A fixed address keeps the LG at the same place in the scan and keeps a saved entry pointing at the right television.
Make sure the TV lets apps connect
Look through the TV's network, connection or mobile settings for the switch that lets apps on the network connect to it. On older webOS versions it's labelled LG Connect Apps.
Once an LG has been found and paired, the scan matters far less. Tivi keeps a TV it has connected to in its saved list, along with the address it was found at and the client key webOS returned when the PIN was accepted, so a reconnect can go straight to that address. The address check is what finds the TV the first time, and again whenever the saved address goes stale. The PIN side of that is in how to control an LG TV with your iPhone.
Common questions
My LG appeared as an AirPlay device. Can Tivi control it that way?
No. LG TVs from 2019 on also announce AirPlay over Bonjour, and that announcement can reach the list before the address check reaches the TV. AirPlay is Apple's protocol for streaming to a screen, and third-party apps can't use it as a remote control. Let the scan finish: once port 3001 answers at the same address, Tivi merges the two into one entry for the LG and drives it over LG's own remote protocol.
Why did my LG ask for the PIN again after it had stopped asking?
If nothing else changed, the likely cause is a new address. webOS returns a client key when the PIN is accepted and Tivi saves it with the TV's entry — but an LG found by the address check is recorded under the address it was found at. If the router hands the TV a different address, Tivi can see a TV it hasn't paired with, and a webOS TV that isn't sent a saved key asks for the PIN. Reserving the TV's address in the router prevents it.
Would the multicast entitlement make LG discovery instant?
No, though it would remove the parts that depend on the address. With the entitlement, an app can send one SSDP search and every webOS TV on the network replies, wherever it sits in the address range and whatever the subnet mask. SSDP has a delay of its own, though: a search tells devices how many seconds they may take to reply, and each waits a random part of that window so they don't all answer at once.
Is an LG slower to control once it's connected?
No. Finding a TV and controlling it are separate steps, and the address check only affects the first. Once connected, commands go straight to the TV's address over LG's own remote protocol, whichever route found the TV.
The short version
An LG webOS TV doesn't announce its remote service over Bonjour, and the SSDP announcement it uses instead is out of reach for iPhone apps without Apple's multicast entitlement. An app without it finds an LG by checking each address on the network for port 3001, which works but is slower than hearing a Samsung announce itself — and depends on the TV being fully on, having its remote service enabled, and sitting in the same block of addresses as the phone.
Tivi, a universal TV remote app for iPhone from Nefarius Apps, finds LG webOS TVs this way today and drives them end to end once they're paired. How to control an LG TV with your iPhone covers the PIN and the buttons, the Samsung walkthrough covers the brand that announces itself, and the rest of the LG guides are here. For the groundwork that applies to every brand, start with how to use your iPhone as a TV remote.