AndroidTV Binding [3.2.0;4.0.0)

Hi there. The Thing shows “OFFLINE” - GoogleTV: PIN Process Incomplete". The device is a current Philipps Smart-TV, Model 65OLED707.

And here’s an excerpt of the log (through the log view on port 9001):

2023-05-23 14:54:19.345 [DEBUG] [e.osgi.LoggingCommandSessionListener] - Executing command: ‘openhab:send PIN REQUEST’

==> /var/log/openhab/events.log <==

2023-05-23 14:54:19.352 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘PIN’ received command REQUEST

==> /var/log/openhab/openhab.log <==

2023-05-23 14:54:19.358 [DEBUG] [e.osgi.LoggingCommandSessionListener] - Command: ‘openhab:send PIN REQUEST’ returned ‘null’

==> /var/log/openhab/events.log <==

2023-05-23 14:54:19.361 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item ‘PIN’ predicted to become REQUEST

==> /var/log/openhab/openhab.log <==

2023-05-23 14:54:19.374 [DEBUG] [e.jetty.util.thread.QueuedThreadPool] - queue org.eclipse.jetty.server.AsyncContextState$1@3c0a496d startThread=0

2023-05-23 14:54:19.374 [DEBUG] [e.jetty.util.thread.QueuedThreadPool] - run org.eclipse.jetty.server.AsyncContextState$1@3c0a496d in QueuedThreadPool[qtp2096389068]@7cf45bcc{STARTED,2<=14<=50,i=3,r=-1,q=0}[ReservedThreadExecutor@76061b20{reserved=4/4,pending=0}]

2023-05-23 14:54:19.375 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@7e7dae51[p=0,l=7,c=7,r=7]={<<<event: >>>})

2023-05-23 14:54:19.375 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=7,c=32768,r=7]={<<<event: >>>alive\ndat…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.375 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@1e4bd5d4[p=0,l=7,c=7,r=7]={<<>>})

2023-05-23 14:54:19.376 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=14,c=32768,r=14]={<<<event: message>>>ata: {"ty…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.376 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@efd88d7[p=0,l=1,c=1,r=1]={<<<\n>>>})

2023-05-23 14:54:19.376 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=15,c=32768,r=15]={<<<event: message\n>>>ta: {"typ…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.376 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@18861e0c[p=0,l=6,c=6,r=6]={<<<data: >>>})

2023-05-23 14:54:19.377 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=21,c=32768,r=21]={<<<event: message\ndata: >>>type":"AL…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.377 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@b1a246b[p=0,l=201,c=201,r=201]={<<<{“topic”:"openhab/things/…“ThingStatusInfoEvent”}>>>})

2023-05-23 14:54:19.377 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=222,c=32768,r=222]={<<<event: message\ndata: {“to…“ThingStatusInfoEvent”}>>>el”:"Key …\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.377 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@5286e07b[p=0,l=222,c=32768,r=222]={<<<event: message\ndata: {“to…“ThingStatusInfoEvent”}>>>el”:"Key …\x00\x00\x00\x00\x00\x00\x00} complete=false committing=false callback=Blocker@f2c1472{null}

2023-05-23 14:54:19.378 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: NEED_CHUNK for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@4bbfb5a9] (null,[p=0,l=222,c=32768,r=222],false)@COMMITTED

2023-05-23 14:54:19.378 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: FLUSH for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@4bbfb5a9] (null,[p=0,l=222,c=32768,r=222],false)@COMMITTED

2023-05-23 14:54:19.378 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - write: WriteFlusher@48d38625{IDLE}->null [HeapByteBuffer@6a974b18[p=0,l=6,c=1024,r=6]={<<<\r\nDE\r\n>>>\n\x00\x00\x00\x00\x00\x00\x00\x00…\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5286e07b[p=0,l=222,c=32768,r=222]={<<<event: message\ndata: {“to…“ThingStatusInfoEvent”}>>>el”:"Key …\x00\x00\x00\x00\x00\x00\x00}]

2023-05-23 14:54:19.379 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - update WriteFlusher@48d38625{WRITING}->null:IDLE–>WRITING

2023-05-23 14:54:19.379 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 228 SocketChannelEndPoint@26950ce{l=/192.168.178.100:80,r=/192.168.178.31:56400,OPEN,fill=-,flush=W,to=312/30000}{io=0/0,kio=0,kro=1}->HttpConnection@44b67349[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@497ba4f4{s=COMMITTED}]=>HttpChannelOverHttp@61876f9{s=HttpChannelState@1c1bc5f{s=WAITING rs=ASYNC os=COMMITTED is=IDLE awp=false se=false i=false al=2},r=1,c=false/false,a=WAITING,uri=//server/rest/events?topics=openhab/things//,openhab/links//,age=207224}

2023-05-23 14:54:19.379 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - Flushed=true written=228 remaining=0 WriteFlusher@48d38625{WRITING}->null

2023-05-23 14:54:19.380 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - update WriteFlusher@48d38625{IDLE}->null:WRITING–>IDLE

2023-05-23 14:54:19.380 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: DONE for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@4bbfb5a9] (null,[p=222,l=222,c=32768,r=0],false)@COMMITTED

2023-05-23 14:54:19.380 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false

2023-05-23 14:54:19.380 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@29e63739[p=0,l=1,c=1,r=1]={<<<\n>>>})

2023-05-23 14:54:19.380 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=1,c=32768,r=1]={<<<\n>>>vent: mes…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.381 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@1382a77[p=0,l=1,c=1,r=1]={<<<\n>>>})

2023-05-23 14:54:19.381 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@5286e07b[p=0,l=2,c=32768,r=2]={<<<\n\n>>>ent: mess…\x00\x00\x00\x00\x00\x00\x00}

2023-05-23 14:54:19.381 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@5286e07b[p=0,l=2,c=32768,r=2]={<<<\n\n>>>ent: mess…\x00\x00\x00\x00\x00\x00\x00} complete=false committing=false callback=Blocker@f2c1472{null}

2023-05-23 14:54:19.381 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: NEED_CHUNK for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@5bdb6f47] (null,[p=0,l=2,c=32768,r=2],false)@COMMITTED

2023-05-23 14:54:19.382 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: FLUSH for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@5bdb6f47] (null,[p=0,l=2,c=32768,r=2],false)@COMMITTED

2023-05-23 14:54:19.382 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - write: WriteFlusher@48d38625{IDLE}->null [HeapByteBuffer@1eb15000[p=0,l=5,c=1024,r=5]={<<<\r\n2\r\n>>>\n\n\x00\x00\x00\x00\x00\x00\x00…\x00\x00\x00\x00\x00\x00\x00},DirectByteBuffer@5286e07b[p=0,l=2,c=32768,r=2]={<<<\n\n>>>ent: mess…\x00\x00\x00\x00\x00\x00\x00}]

2023-05-23 14:54:19.382 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - update WriteFlusher@48d38625{WRITING}->null:IDLE–>WRITING

2023-05-23 14:54:19.382 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 7 SocketChannelEndPoint@26950ce{l=/192.168.178.100:80,r=/192.168.178.31:56400,OPEN,fill=-,flush=W,to=3/30000}{io=0/0,kio=0,kro=1}->HttpConnection@44b67349[p=HttpParser{s=CONTENT,0 of -1},g=HttpGenerator@497ba4f4{s=COMMITTED}]=>HttpChannelOverHttp@61876f9{s=HttpChannelState@1c1bc5f{s=WAITING rs=ASYNC os=COMMITTED is=IDLE awp=false se=false i=false al=2},r=1,c=false/false,a=WAITING,uri=//server/rest/events?topics=openhab/things//,openhab/links//,age=207227}

2023-05-23 14:54:19.383 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - Flushed=true written=7 remaining=0 WriteFlusher@48d38625{WRITING}->null

2023-05-23 14:54:19.383 [DEBUG] [org.eclipse.jetty.io.WriteFlusher ] - update WriteFlusher@48d38625{IDLE}->null:WRITING–>IDLE

2023-05-23 14:54:19.383 [DEBUG] [.eclipse.jetty.server.HttpConnection] - generate: DONE for SendCallback@802f731[PROCESSING][i=null,cb=org.eclipse.jetty.server.HttpChannel$SendCallback@5bdb6f47] (null,[p=2,l=2,c=32768,r=0],false)@COMMITTED

2023-05-23 14:54:19.383 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - onWriteComplete(false,null) s=OPEN,api=BLOCKED,sc=false,e=null->s=OPEN,api=BLOCKING,sc=false,e=null c=null cb=null w=false

2023-05-23 14:54:19.384 [DEBUG] [e.jetty.util.thread.QueuedThreadPool] - ran org.eclipse.jetty.server.AsyncContextState$1@3c0a496d in QueuedThreadPool[qtp2096389068]@7cf45bcc{STARTED,2<=14<=50,i=3,r=-1,q=0}[ReservedThreadExecutor@76061b20{reserved=4/4,pending=0}]

2023-05-23 14:54:21.576 [DEBUG] [calimero.link.192.168.178.22:3671 ] - indication 1.1.91->0/0/20 L_Data.ind, low priority hop count 6, tpdu 00 80 00 d0

2023-05-23 14:54:23.575 [DEBUG] [calimero.link.192.168.178.22:3671 ] - indication 1.1.91->0/0/11 L_Data.ind, low priority hop count 6, tpdu 00 80 4f 0c

What does your thing and item configuration look like?

The thing:

UID: androidtv:googletv:TV
label: 65OLED707
thingTypeUID: androidtv:googletv
configuration:
ipAddress: 192.168.178.44

The item:

I think I see it. Put REQUEST in quotes when doing it on the command line. I just ran a test on my side to make sure Google didn’t update anything and it worked cleanly. If you put the binding logging into debug you should see something along the lines of:

openhab> openhab:send ShieldTV_THEATER_PINCODE "REQUEST"
Command has been sent successfully.
openhab> openhab:send ShieldTV_THEATER_PINCODE "D0F06D"
Command has been sent successfully.

2023-05-24 13:35:28.733 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Opening GoogleTV SSL connection to 10.0.0.1:6466
2023-05-24 13:35:28.765 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Assuming server certificate is valid
2023-05-24 13:35:28.766 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Returning empty certificate for getAcceptedIssuers
2023-05-24 13:35:28.771 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Message reader thread started 6466
2023-05-24 13:35:28.771 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command sender thread started 6466
2023-05-24 13:35:28.811 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - GoogleTV PIN Process Incomplete
2023-05-24 13:35:28.811 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - startChildConnectionManager parent config: 6466 NORMAL false
2023-05-24 13:35:28.811 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - startChildConnectionManager child config: 6467 PIN false
2023-05-24 13:35:28.815 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Opening GoogleTV SSL connection to 10.0.0.1:6467
2023-05-24 13:35:28.815 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Message reader thread exiting 6466
2023-05-24 13:35:28.853 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Assuming server certificate is valid
2023-05-24 13:35:28.853 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Returning empty certificate for getAcceptedIssuers
2023-05-24 13:35:28.858 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Message reader thread started 6467
2023-05-24 13:35:28.858 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command sender thread started 6467

2023-05-24 13:37:55.943 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command received: pincode
2023-05-24 13:37:55.943 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command received: pincode
2023-05-24 13:37:55.960 [DEBUG] [tocol.googletv.GoogleTVMessageParser] - theater - PIN Process Successful!
2023-05-24 13:37:55.960 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Disconnecting GoogleTV
2023-05-24 13:37:55.960 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command sender thread exiting 6467
2023-05-24 13:37:55.961 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Disconnecting GoogleTV
2023-05-24 13:37:55.961 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Attempting to reconnect to the GoogleTV
2023-05-24 13:37:55.961 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Disconnecting GoogleTV
2023-05-24 13:37:55.961 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Opening GoogleTV SSL connection to 10.0.0.1:6466
2023-05-24 13:37:55.961 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command sender thread exiting 6466

2023-05-24 13:37:56.001 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Message reader thread started 6466
2023-05-24 13:37:56.001 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Command sender thread started 6466
2023-05-24 13:37:56.052 [DEBUG] [tocol.googletv.GoogleTVMessageParser] - theater - 0a5b08ff041256 "SHIELD Android TV" "NVIDIA" 11 com.google.android.tv.remote.service 5.2.473254133
2023-05-24 13:37:56.053 [INFO ] [tocol.googletv.GoogleTVMessageParser] - theater - Login Successful
2023-05-24 13:37:56.057 [DEBUG] [l.googletv.GoogleTVConnectionManager] - theater - Setting power to true
2023-05-24 13:37:56.066 [DEBUG] [tocol.googletv.GoogleTVMessageParser] - theater - Device Update: 920319084a1009 "SHIELD Android TV" 01
2023-05-24 13:37:56.335 [DEBUG] [tocol.googletv.GoogleTVMessageParser] - theater - Current App: a201210a1f com.google.android.tvlauncher

Thanks! I tried this before in the console but somehow it was doing strange things when I started using quotes. How did you manage to type this?

When I type the following…

openhab:send PIN "

… then my console automatically autocompletes this to…

openhab:send PIN " "

… and I cannot seem to get rid of the whitespace in the quotes, ending up with:

openhab:send PIN "REQUEST "

Not sure something is set incorrectly with my environment. It’s really odd.

Thats the auto complete. For lack of a better way of putting it, that last quote isn’t actually there. Just type the actual last quote and it will disappear.

Oh wow, that is really counter-intuitive. But thank you, that indeed made it work! Great!

Okay I have another minor question now. I am using a String item to detect whenever a key was pressed on the remote control:

String TVKeyPress “KeyPress” { channel = “androidtv:googletv:tv:keypress” }

The item is also “Online”, however, even though I press keys on the remote, the String value remains NULL. Should it not be updated to the respective key code?

Sorry, that channel is write only. We don’t get any information about what the device remote sends to the AndroidTV itself. Different parts of the OS that don’t talk. All that this channel does is send the keypress to the device.

Oh I see, thanks. I thought in the documentation it said RW. Never mind then.

(post deleted by author)

Trying to add my Philips TV.
It is discovered, but after adding it, the log is swamped with:

2023-05-28 23:03:52.982 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'androidtv:googletv:A067208E81C7' to inbox.
2023-05-28 23:04:02.803 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138
2023-05-28 23:04:02.883 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138
2023-05-28 23:04:02.993 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138
2023-05-28 23:04:03.107 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138
2023-05-28 23:04:03.183 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f733207342e33382e3138
2023-05-28 23:04:03.258 [WARN ] [tocol.googletv.GoogleTVMessageParser] - A067208E81C7 - GoogleTV Error Message: 1a47080312430a41087e123d0a08534d2d4739393855120773616d7

It only stops after uninstalling the bundle.
Sending REQUEST to PinCode works, but after sending the 6 digit pincode, the log swamping continue and the OH UI becomes unresponsive.

{
  "systemInfo": {
    "configFolder": "/etc/openhab",
    "userdataFolder": "/var/lib/openhab",
    "logFolder": "/var/log/openhab",
    "javaVersion": "11.0.15",
    "javaVendor": "Azul Systems, Inc.",
    "javaVendorVersion": "Zulu11.56+19-CA",
    "osName": "Linux",
    "osVersion": "5.15.43-v8+",
    "osArchitecture": "aarch64",
    "availableProcessors": 4,
    "freeMemory": 70148144,
    "totalMemory": 191889408,
    "startLevel": 100
  }
}

image

This error is definitely getting frustrating. I think you’re the third or fourth to report it now. I can’t recreate it on my side at all. Can you please put the binding into trace logging and DM me the entire thing. I need to compare the protocol exchange between the known good.

It looks like Google pushed a code update a few days ago from 4.38 to 4.39. I’m wondering if they changed something in the protocol exchange. For anyone who is having the error, can you confirm which version of googletv is installed on the device? In wondering if this was some kind of staged rollout hence why it’s been cropping up randomly.

For anyone having the current issue, can you plesse confirm version numbers on your device for the following… (this is what my Shield currently has)

Sorry for the spam. There IS a breaking update for 4.39 which will require a change on our side. Please avoid updating your devices beyond 4.38 until I can make changes, test, and publish an update.

1 Like

I’ve uploaded a new version (8b79ccc) that may fix the issue with the upgraded GoogleTV code. I have no way to test here as I’m still on the older code. I can say that I’m having issues with my shield and the PIN process not connecting properly. It finally worked after a few power cycles. If someone who has the error message can try to upgrade their binding and test the new login that would be appreciated.

I uploaded one small update this morning (7d7ce37) to add some additional logging with the PIN process. I had several issues with my shield last night (which turned out to be entirely the shield, not the binding). This logging will help debugging PIN issues in the future. If you aren’t having PIN issues, you can skip this update, it doesn’t do anything that the update from last night did in respect to actual interaction with the device.

That all said, if you are having PIN issues, my suggestion is to try the following:

  1. uninstall the binding
  2. find your userdata folder (/var/lib/openhab or /userdata if on docker normally), find the androidtv folder in it, and delete all of the .keystore files
  3. reinstall the binding
  4. rerun the PIN process

It’s unclear to me, because of the issues I had, if PIN needs to be rerun now that we’ve adapted for GoogleTV 4.39.