Plex binding setup

hi all,

im having some issues trying to get plex and openhab working together.
im 99% sure the config files are current and ive whitelisted openhab’s ip in plex but when I look in the logs to see whats happening something strange is happening. the client id thats in the items file shows correctly that its binding to the items but further down where its got a warning I don’t have that client id anywhere in my config files.

ive tried uninstall the binding, delete the config files, stop openhab clear the cache and start openhab and reset it up but im getting the same errors.

any help appreciated.

2018-04-28 22:12:42.538 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'plexdemo.items'
2018-04-28 22:13:07.444 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'plexdemo.sitemap'
2018-04-28 22:13:11.810 [INFO ] [b.core.service.AbstractActiveService] - Plex Refresh Service has been started
2018-04-28 22:13:11.963 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVPower bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property power
2018-04-28 22:13:12.016 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVStatus bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property state
2018-04-28 22:13:12.045 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVTitle bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property title
2018-04-28 22:13:12.050 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVType bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property type
2018-04-28 22:13:12.058 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVCover bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/cover
2018-04-28 22:13:12.070 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVProgress bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/progress
2018-04-28 22:13:12.082 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVEndTime bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/endTime
2018-04-28 22:13:12.089 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVVolume bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/volume
2018-04-28 22:13:12.096 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVPause bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/pause
2018-04-28 22:13:12.106 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVPlay bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/play
2018-04-28 22:13:12.110 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVPlayPause bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/playpause
2018-04-28 22:13:12.120 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVStop bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/stop
2018-04-28 22:13:12.127 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVSelect bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/select
2018-04-28 22:13:12.131 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVBack bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/back
2018-04-28 22:13:12.135 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVUp bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/moveUp
2018-04-28 22:13:12.139 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVDown bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/moveDown
2018-04-28 22:13:12.143 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVLeft bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/moveLeft
2018-04-28 22:13:12.147 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVRight bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property navigation/moveRight
2018-04-28 22:13:12.151 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVForward bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/stepForward
2018-04-28 22:13:12.155 [INFO ] [.internal.PlexGenericBindingProvider] - Plex item PlexTVReverse bound to client 00E21940-D840-4B0F-AB72-A6924D0512ED property playback/stepBack
2018-04-28 22:13:31.920 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, service.pid=org.openhab.plex, refresh=5000, component.id=186, password=****, plex="<client-id>#<8ae956d44a90e25f-com-plexapp-android>", event.topics=openhab/command/*, host=192.168.178.60, service.id=319, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
2018-04-28 22:13:36.199 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, service.pid=org.openhab.plex, refresh=5000, component.id=186, password=****, plex="<client-id>#<8ae956d44a90e25f-com-plexapp-android>", event.topics=openhab/command/*, host=192.168.178.60, service.id=319, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
2018-04-28 22:13:47.124 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVStop] {bridgemarker=true, item=PlexTVStop, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, service.pid=org.openhab.plex, refresh=5000, component.id=186, password=****, plex="<client-id>#<8ae956d44a90e25f-com-plexapp-android>", event.topics=openhab/command/*, host=192.168.178.60, service.id=319, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]

Hi Rick,

I struggled a lot with the plex config myself. I finally got I working though, so maybe I could help sharing my steps in this matter.

  • First, you get your clientidentifier from https://plex.tv/devices.xml. ( This will be the device you control and get status from, in Openhab)
    It will look something like this:
<Device name="YOUR_DEVICE" publicAddress="xxxxxxxx" product="Plex Media Server" productVersion="1.12.3.4973-215c28d86" platform="Windows" platformVersion="10.0 (Build 16299)" device="PC" model="x64" vendor="Microsoft" provides="server" clientIdentifier="xxxxxxxxxxxxxxxx" version="1.12.3.4973-215c28d86" id="xxxxxxxxxxx" token=xxxxxxxxxxxxxx" createdAt="1459595785" lastSeenAt="1524901080" screenResolution="" screenDensity="">
<Connection uri="http://x.x.x.x:32400"/>
<Connection uri="http://xxxxxxxx"/>

Then you set up your items file with the correct clientidentifier ID:

//Samsung S7 edge
Switch PlexTVPower      "Power"         <video>     {plex="clientIdentifier#power"}
String PlexTVStatus     "Status [%s]"   <video>     {plex="clientIdentifier#state"}
String PlexTVTitle      "Title [%s]"    <video>     {plex="clientIdentifier#title"}
String PlexTVType       "Type [%s]"     <video>     {plex="clientIdentifier#type"}
String PlexTVCover      "Cover"         <video>     {plex="clientIdentifier#playback/cover"}

Dimmer PlexTVProgress   "Progress [%.1f%%]"    <video>    {plex="clientIdentifier#playback/progress"}
DateTime PlexTVEndTime  "End time [%1$tR]"     <video>    {plex="clientIdentifier#playback/endTime"}

Dimmer PlexTVVolume     "Volume"        <video>     {plex="clientIdentifier#playback/volume"}
Switch PlexTVPause      "Pause"         <video>  [ "Switchable" ]   {plex="clientIdentifier#playback/pause"}
Switch PlexTVPlay       "Play"          <video>  [ "Switchable" ]   {plex="clientIdentifier#playback/play"}
Switch PlexTVPlayPause  "PlayPause"     <video>  [ "Switchable" ]   {plex="clientIdentifier#playback/playpause"}
Switch PlexTVStop       "Stop"          <video>  [ "Switchable" ]   {plex="clientIdentifier#playback/stop"}

Switch PlexTVSelect     "Select"        <video>     {plex="clientIdentifier#navigation/select"}
Switch PlexTVBack       "Back"          <video>     {plex="clientIdentifier#navigation/back"}
Switch PlexTVUp         "Up"            <video>     {plex="clientIdentifier#navigation/moveUp"}
Switch PlexTVDown       "Down"          <video>     {plex="clientIdentifier#navigation/moveDown"}
Switch PlexTVLeft       "Left"          <video>     {plex="clientIdentifier#navigation/moveLeft"}
Switch PlexTVRight      "Right"         <video>     {plex="clientIdentifier#navigation/moveRight"}

Switch PlexTVForward    "Forward"       <video>     {plex="clientIdentifier#playback/stepForward"}
Switch PlexTVReverse    "Reverse"       <video>     {plex="clientIdentifier#playback/stepBack"}

Then you have to set up the binding configuration. I’ve done that in paperUi. For me, It work better when using server hostname instead of IP-address.

Thanks for your help, that’s exactly what I’ve done too, my client ID is 00E21940-D840-4B0F-AB72-A6924D0512ED which is correct and in my items file but in the logs it’s spitting out errors about a client ID 8ae956d44a90e25f-com-plexapp-android which I have no where in my setup files at all.

Have you tried to delete the binding config in the \OPENHABIANPI\openHAB-share\openhab2-userdata\config\org\openhab?

just deleted that and rebooted openhabian with no change.

here is my items and sitemap files. maybe ive missed something simple?

Switch PlexTVPower		"Power"         	<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#power"}
String PlexTVStatus		"Status [%s]"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#state"}
String PlexTVTitle		"Title [%s]"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#title"}
String PlexTVType		"Type [%s]"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#type"}
String PlexTVCover		"Cover"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/cover"}

Dimmer PlexTVProgress  	 	"Progress [%.1f%%]"    	<video>    	{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/progress"}
DateTime PlexTVEndTime  	"End time [%1$tR]"     	<video>    	{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/endTime"}

Dimmer PlexTVVolume		"Volume"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/volume"}
Switch PlexTVPause		"Pause"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/pause"}
Switch PlexTVPlay		"Play"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/play"}
Switch PlexTVPlayPause		"PlayPause"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/playpause"}
Switch PlexTVStop		"Stop"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/stop"}

Switch PlexTVSelect		"Select"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/select"}
Switch PlexTVBack		"Back"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/back"}
Switch PlexTVUp			"Up"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/moveUp"}
Switch PlexTVDown		"Down"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/moveDown"}
Switch PlexTVLeft		"Left"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/moveLeft"}
Switch PlexTVRight		"Right"			<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#navigation/moveRight"}

Switch PlexTVForward		"Forward"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/stepForward"}
Switch PlexTVReverse		"Reverse"		<video>		{plex="00E21940-D840-4B0F-AB72-A6924D0512ED#playback/stepBack"}
sitemap plexdemo label="Main Menu"
{
	Frame {
		Switch item=PlexTVPower
		Text item=PlexTVStatus
        Slider item=PlexTVProgress visibility=[PlexTVStatus!="Stopped"] 
		Setpoint item=PlexTVProgress visibility=[PlexTVStatus!="Stopped"] minValue=0 maxValue=100 step=1
		Text item=PlexTVEndTime visibility=[PlexTVStatus!="Stopped"]
		Text item=PlexTVTitle visibility=[PlexTVStatus!="Stopped"]
		Text item=PlexTVType visibility=[PlexTVStatus!="Stopped"]
		Switch item=PlexTVPause
		Switch item=PlexTVPlay
		Switch item=PlexTVPlayPause mappings=[ON="▐ ▌"]
		Switch item=PlexTVStop mappings=[ON="Stop"]
		Slider item=PlexTVVolume
		Switch item=PlexTVSelect mappings=[ON="Select"]
		Switch item=PlexTVBack mappings=[ON="Back"]
		Switch item=PlexTVUp mappings=[ON="⬆"]
		Switch item=PlexTVDown mappings=[ON="⬇"]
		Switch item=PlexTVLeft mappings=[ON="⬅"]
		Switch item=PlexTVRight mappings=[ON="➡"]
		
		Switch item=PlexTVForward mappings=[ON="⤏"]
		Switch item=PlexTVReverse mappings=[ON="⤎"]
	}
}
# IP address or hostname of the Plex server
#host=

# Optional, port that the Plex server is running on. Default = 32400
#port=

# Refresh interval in ms. Default = 5000.
#refresh=5000

# If you're using Plex Home you need to supply the username and password of your
# Plex account here. If you don't want to enter your credentials you can also
# directly set your account token below instead.
#username=

# Plex password
#password=

# Plex account token, use instead of username/password when using Plex Home.
#token=abcdefghijklmnopqrst
host=192.168.178.60
port=32400
username=****@gmail.com
password=****

heres the log

item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=***, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.286 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=***, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.398 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password= ****, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.401 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=****, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.438 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVStop] {bridgemarker=true, item=PlexTVStop, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=***, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.442 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=****, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.480 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=****, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:23:09.484 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/PlexTVPlayPause] {bridgemarker=true, item=PlexTVPlayPause, command=ON} | {org.osgi.service.event.EventHandler}={component.name=org.openhab.binding.plex.binding, port=32400, username=****@gmail.com, refresh=5000, service.pid=org.openhab.plex, component.id=197, password=****, event.topics=openhab/command/*, host=192.168.178.60, service.id=338, service.bundleid=212, service.scope=bundle} | Bundle(org.openhab.binding.plex_1.11.0 [212])]
java.lang.NullPointerException: null
	at org.openhab.binding.plex.internal.PlexConnector.getHost(PlexConnector.java:417) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexConnector.sendCommand(PlexConnector.java:238) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.binding.plex.internal.PlexBinding.internalReceiveCommand(PlexBinding.java:147) [212:org.openhab.binding.plex:1.11.0]
	at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) [215:org.openhab.core.compat1x:2.2.0]
	at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) [215:org.openhab.core.compat1x:2.2.0]
	at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.1.3]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2018-04-29 16:24:39.400 [INFO ] [work.internal.dhcp.DHCPListenService] - DHCP request for unknown address: 192.168.178.67
2018-04-29 16:25:01.838 [INFO ] [mmandclass.ZWaveDoorLockCommandClass] - NODE 31: Door-Lock config report - timeoutEnabled=false timeoutMinutes=254, timeoutSeconds=30

bump. Anyone have any ideas?

still really want to get this working, anyone with any ideas?

Hello Rick,

unfortunately I’ve got the same issue. Did you make any progress in this question? Or did you get the binding to work?

In many articles the authors own a Plex Pass. So do you think a Plex Pass is necessary?
Sorry for all the questions.

Got this working last week but it’s not an ideal solution. I have a lifetime Plex pass but I’ve had that for a couple of years now, so I’m not sure if it’s required.

I was trying to get openHAB working with Plex running on a Synology NAS which I’m still unsuccessful in doing. I ended up installing plex on a windows machine pointing to the nas shares and it works no issues, the only thing is that I now have to have the windows pc running 24/7.

The only thing that I changed in my config was the IP address to the windows machine.

Thank you for the quick reply. Yesterday, I tested your solution but it only worked for some items. In my case openHAB is running on a Raspberry Pi 3 and the Plex Server on my old Laptop together with the OS of OpenMediaVault. I can’t imagine that the NullPointerException is raised because we use a linux system. In the next few days I finally setup OpenMediaVault and Plex on an Odroid-XU4. So maybe this solves the problem even if it’s not the most logical solution.

For your special case: A Raspberry Pi is able to run a Windows Image called “Windows 10 IOT Core”. So you wouldn’t have to run your windows pc running 24/7.

Hey, had a quick look, this might be related to the following setting:

  • Go the Plex web GUI and click the Settings icon in the top right
  • Go to Server (second tab), Network, Show advanced
  • Enter the IP of your openHAB machine in the field ‘List of IP addresses and networks that are allowed without auth’

Let me know if this helps!

1 Like

tried that as part of my troubleshooting as well as disabling secure connections in the network settings of plex which made no difference for me. I don’t get why its working on my windows machine and not on my Synology NAS, but hey im glad its working! its pretty cool being able to integrate plex into my smart home.

That’s odd… You can test it like this: if you can access http://<plex server ip:port>/clients on your openHAB machine the binding should work.

The Plex server runs on the Odroid-XU4 now as I mentioned in my last posts. After adding the IP address of the openHAB server to the list, I’m now able to access http://<plex server ip:port>/clients. Before the container always was empty. So thanks for that.
Nevertheless the NullPointerException rises. But I could get the Python-Plex-API to work so I think the problem isn’t caused by the OS or the server. Are there any solutions left?

Try putting the IP address and hostname of your plex media server into the /etc/hosts file on your openHAB machine. Also make sure what you have configured for plex:host is correct.

I ended up entering my network/mask in order to get the list of clients using http:///clients

1 Like