GoogleTV: User Forced PIN Process - but no pin popup

Podman openhab:latest (4.3.3)

Trying to get my Google TV 4K to work with the AndroidTV binding but I am unable to get a pin to pop up on the device.

Bit of log after disabling and re-enabling the thing:

2025-03-01 23:52:56.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from OFFLINE: GoogleTV: PIN Process Incomplete to UNINITIALIZED
2025-03-01 23:53:01.698 [WARN ] [core.thing.internal.ThingManagerImpl] - Disposing handler for thing 'androidtv:googletv:DCE55BD6E827' takes more than 5000ms.
2025-03-01 23:53:01.699 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
2025-03-01 23:53:01.699 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from UNINITIALIZED (DISABLED) to UNINITIALIZED
2025-03-01 23:53:06.700 [WARN ] [core.thing.internal.ThingManagerImpl] - Disposing handler for thing 'androidtv:googletv:DCE55BD6E827' takes more than 5000ms.


2025-03-01 23:53:44.655 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
2025-03-01 23:53:53.378 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2025-03-01 23:53:53.379 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from INITIALIZING to OFFLINE: Protocols Starting
2025-03-01 23:54:06.165 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:DCE55BD6E827' changed from OFFLINE: Protocols Starting to OFFLINE: GoogleTV: User Forced PIN Process

Seems to be trying but nothing happens. Both the device and the remote have the latest firmware.

Suggestions?

Mvh.

Torkil

Did you get this working?

Have a similar problem. The thing in OH shows “GoogleTV: user forced PIN process” but on the device screen no PIN appears. The 2 mentioned apps "GoogleTV2 and “AndroidTV Service” are already installed on my devices.

The devices are Telekom “Magenta TV One” boxes and have been auto-discovered by the binding.

Use openhab-cli for getting and submitting the PIN, as described in the documentation of the binding:

openhab> openhab:androidtv androidtv:googletv:theater pincode REQUEST

openhab> openhab:androidtv androidtv:googletv:theater pincode abc123

Worked fine for me a few weeks ago.

Did it like you but no success so far. But am a Windows11 user and use the Karaf console. Here is the log which i get if switching to TRACE.

2026-05-05 19:27:02.546 [TRACE] [al.console.AndroidTVCommandExtension] - Received CLI Command: androidtv:googletv:10763627BABA pincode |||REQUEST|||
2026-05-05 19:27:02.546 [DEBUG] [al.console.AndroidTVCommandExtension] - Sending CLI Command to Handler: androidtv:googletv:10763627BABA:pincode |||REQUEST|||
2026-05-05 19:27:02.546 [TRACE] [.androidtv.internal.AndroidTVHandler] - 10763627BABA - Command received at handler: pincode REQUEST
2026-05-05 19:27:02.546 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - Command received: pincode
2026-05-05 19:27:02.546 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - Command received: pincode
2026-05-05 19:27:03.502 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 2051F5360A4F - Device Health - Online: true - Logged In: false - Mode: NORMAL
2026-05-05 19:27:07.640 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - Device Health - Online: false - Logged In: false - Mode: NORMAL
2026-05-05 19:27:08.503 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 2051F5360A4F - Device Health - Online: true - Logged In: false - Mode: NORMAL

Okay, hm. My TV is a “native” Google TV. Maybe the Magenta TV has some restrictions for remote access?

But, just to make sure, these two apps are installed with the newest version from Play Store?

Thanks for these hints. Please see also my latest log.

It seems to have to do with the JAVA keystore file “cacerts”. Am not sure if i defined this right because i am a Windows11 user. Entered the following path within the thing configuration: C:\Program Files\Zulu\zulu-21\lib\security\cacerts. Verified my password for opening of this file using the portecle-tool.

2026-05-06 10:35:17.487 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - User Forced PIN Process
2026-05-06 10:35:17.487 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - Disconnecting GoogleTV
2026-05-06 10:35:17.487 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - startChildConnectionManager parent config: 6466 NORMAL false
2026-05-06 10:35:17.487 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 10763627BABA - startChildConnectionManager child config: 6467 PIN false
2026-05-06 10:35:17.489 [DEBUG] [l.googletv.GoogleTVConnectionManager] - General exception
java.lang.NullPointerException: Cannot invoke "java.security.Key.getEncoded()" because the return value of "java.security.KeyStore.getKey(String, char[])" is null
	at org.openhab.binding.androidtv.internal.utils.AndroidTVPKI.loadFromKeyStore(AndroidTVPKI.java:249)
	at org.openhab.binding.androidtv.internal.protocol.googletv.GoogleTVConnectionManager.initialize(GoogleTVConnectionManager.java:485)
	at org.openhab.binding.androidtv.internal.protocol.googletv.GoogleTVConnectionManager.<init>(GoogleTVConnectionManager.java:182)
	at org.openhab.binding.androidtv.internal.protocol.googletv.GoogleTVConnectionManager.startChildConnectionManager(GoogleTVConnectionManager.java:402)
	at org.openhab.binding.androidtv.internal.protocol.googletv.GoogleTVConnectionManager.handleCommand(GoogleTVConnectionManager.java:1275)
	at org.openhab.binding.androidtv.internal.AndroidTVHandler.handleCommand(AndroidTVHandler.java:354)
	at org.openhab.binding.androidtv.internal.console.AndroidTVCommandExtension.execute(AndroidTVCommandExtension.java:87)
	at org.openhab.core.io.console.ConsoleInterpreter.execute(ConsoleInterpreter.java:86)
	at org.openhab.core.io.console.karaf.internal.CommandWrapper.execute(CommandWrapper.java:79)
	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:68)
	at org.apache.karaf.shell.impl.console.osgi.secured.SecuredCommand.execute(SecuredCommand.java:86)
	at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:599)
	at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:526)
	at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:415)
	at org.apache.felix.gogo.runtime.Pipe.doCall(Pipe.java:416)
	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229)
	at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:59)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1583)

Got it done now. The trick was simple: used filename “cacerts” only instead of the full path. Connected two Magenta TV One boxes to openHAB now.