[New Binding] EMBY Server Binding - Alpha

There are the logfiles.
Emby and openHAB logs to compare what happened when (not yet with the new version).

About the reliability. There were many entry after install and I’ve stopped logging the binding. I just restarted it few days ago and now , I don’t see any. Except the one, when I’ve removed the server (1).

I’m going to install over this weekend the new version and go with full-time logging from start.

I’ll inform you.

Side question on this. If I have Emby running on a server, and the XBox 360 extension on another computer, and using only XBox 360 devices to access Emby will this binding pick up playing movies and the like or will it only work when watching a movie on a PC?

Thanks.

JR

You can add a thing for any type of devices that connect to the server. Computers, xbox devices, chromecasts, iphone clients.

Hi @volfan6415!

Since last sunday logging was running till today.
You find the Emby.logs here.

There are records in the logs.

[DEBUG] [y.internal.protocol.EmbyClientSocket] - Timeout during callMethod("SessionsStart", "0,10000") 

After that, it take a while to add a new entry to the logfile. Meanwhile, i don’t notice anything in action. Out of that observation, i can’t report too much. :slight_smile:

@Krisztian - i get that timeout from time to time as well and i can’t quite nail down what needs to be done to smooth it out. Only a restart seems to fix it right now. Increasing the web-socket buffer size helped but doesn’t seem to have completely fixed it. I am sure that this is an area that once i start the pull request and the code starts getting re-worked by the devs and optimized this will get smoothed out.

New version posted updates

  • image size adjustments on the image url - you can now select a max width and/or max height parameters to be added to the image url. You can add one or both. This will allow for scaling of the image if the url is to be grabbed for display on tablets

Control!

You can now send command to clients!

Currently supported is the stop command, the mute on and mute off. and play and pause commands.

As per the API

There is a ton of other controls which can be supported. And adding in the other commands at this point is trivial now that the framework is in place. (its a matter of adding in the lines of code with the web request and linking a channel) etc.

The question here is really more a matter of design given the number of possible commands which could be implemented. Open to suggestions, discussions ideas here for this one given the wide range of commands which can be supported.

1 Like

I think i’ll switch to emby soon!!

1 Like

Honestly I think all the commands would be helpful

1 Like

Hi,
I’m facing the same issue with the Emby Binding. Can you share the older versions also they worked good enough for me. I cannot go back because my SD-Card stopped working so needed to reinstall everything.

Issue:

  • Bridge go’s online

  • It discovers my emby clients

  • it thows in the error:

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

2019-04-18 15:43:20.531 [WARN ] [byClientSocket$EmbyWebSocketListener] - Unhandled Error (closing connection)

java.lang.IllegalArgumentException: ID segment ‘uuid:5124d674-74cc-2ccb-6081-f7f8a057723c’ contains invalid characters. Each segment of the ID must match the pattern [A-Za-z0-9_-]*.

  • And then the bridge will go offline and nothing is working anymore.

I tried the steps you described but without success, also it was a fresh install of the binding.

Any suggestions?

Regards,

Mic

@M1C Everything is up on github so if you browser the older commits you can find the previous versions. However i do want to get this issue fixed.

Can you provide the full log file for me?

sure

2019-04-18 17:36:06.492 [ERROR] [org.openhab.binding.emby ] - bundle org.openhab.binding.emby:2.5.0.201903270000 (207)[org.openhab.binding.emby.internal.discovery.EmbyClientDiscoveryService(220)] : The activate method has thrown an exception

java.lang.NullPointerException: null

at org.openhab.binding.emby.internal.discovery.EmbyClientDiscoveryService.activate(EmbyClientDiscoveryService.java:60) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]

at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228) ~[39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) ~[39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664) ~[39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:334) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:947) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:919) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:863) [39:org.apache.felix.scr:2.1.2]

at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]

at java.security.AccessController.doPrivileged(Native Method) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]

at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]

at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:73) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:662) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2304) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1915) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeUnbindMethod(SingleComponentManager.java:432) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:390) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:302) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1242) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1137) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:997) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1176) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [39:org.apache.felix.scr:2.1.2]

at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]

at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [?:?]

at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]

at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) [?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:222) [?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:912) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:877) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:135) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(AbstractComponentManager.java:954) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:808) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:790) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:579) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(ConfigurableComponentHolder.java:716) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:511) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:428) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.Activator.access$300(Activator.java:49) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.Activator$ScrExtension.destroy(Activator.java:291) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.AbstractExtender$1.run(AbstractExtender.java:216) [39:org.apache.felix.scr:2.1.2]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]

at org.apache.felix.scr.impl.AbstractExtender.destroyExtension(AbstractExtender.java:238) [39:org.apache.felix.scr:2.1.2]

at org.apache.felix.scr.impl.AbstractExtender.bundleChanged(AbstractExtender.java:132) [39:org.apache.felix.scr:2.1.2]

at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [?:?]

at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]

at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [?:?]

at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]

at org.eclipse.osgi.container.Module.doStop(Module.java:634) [?:?]

at org.eclipse.osgi.container.Module.stop(Module.java:498) [?:?]

at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1675) [?:?]

at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1594) [?:?]

at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:270) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:147) [?:?]

at org.eclipse.osgi.container.Module.doStop(Module.java:636) [?:?]

at org.eclipse.osgi.container.Module.stop(Module.java:498) [?:?]

at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202) [?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) [?:?]

at java.lang.Thread.run(Thread.java:748) [?:?]
2019-04-18 17:36:06.521 [WARN ] [org.openhab.binding.emby ] - FrameworkEvent WARNING - org.openhab.binding.emby

org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object

at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:232) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[?:?]

at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) ~[?:?]

at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:73) ~[?:?]

at org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47) ~[?:?]

at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:662) ~[?:?]

at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2304) ~[?:?]

at org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1915) ~[?:?]

at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeUnbindMethod(SingleComponentManager.java:432) ~[?:?]

at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:390) ~[?:?]

at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(DependencyManager.java:302) ~[?:?]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1242) ~[?:?]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:1137) ~[?:?]

at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(ServiceTracker.java:997) ~[?:?]

at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1176) ~[?:?]

at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) ~[?:?]

at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) ~[?:?]

at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]

at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:801) ~[?:?]

at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:222) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:912) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(AbstractComponentManager.java:877) ~[?:?]

at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:135) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(AbstractComponentManager.java:954) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(AbstractComponentManager.java:808) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:790) ~[?:?]

at org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:579) ~[?:?]

at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(ConfigurableComponentHolder.java:716) ~[?:?]

at org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:511) ~[?:?]

at org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:428) ~[?:?]

at org.apache.felix.scr.impl.Activator.access$300(Activator.java:49) ~[?:?]

at org.apache.felix.scr.impl.Activator$ScrExtension.destroy(Activator.java:291) ~[?:?]

at org.apache.felix.scr.impl.AbstractExtender$1.run(AbstractExtender.java:216) ~[?:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]

at org.apache.felix.scr.impl.AbstractExtender.destroyExtension(AbstractExtender.java:238) ~[?:?]

at org.apache.felix.scr.impl.AbstractExtender.bundleChanged(AbstractExtender.java:132) ~[?:?]

at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) ~[?:?]

at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]

at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:120) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) ~[?:?]

at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) ~[?:?]

at org.eclipse.osgi.container.Module.doStop(Module.java:634) ~[?:?]

at org.eclipse.osgi.container.Module.stop(Module.java:498) ~[?:?]

at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1675) ~[?:?]

at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1594) ~[?:?]

at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:270) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:147) ~[?:?]

at org.eclipse.osgi.container.Module.doStop(Module.java:636) ~[?:?]

at org.eclipse.osgi.container.Module.stop(Module.java:498) ~[?:?]

at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:202) ~[?:?]

at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:165) ~[?:?]

at java.lang.Thread.run(Thread.java:748) ~[?:?]

These errors are all over my log

@M1C Sorry i wasn’t clear what i meant was can you upload the log file itself to dropbox or google drive and provide a link here so that i can download the full log file. I need to see the entries before the error as well as the error message itself to debug the issue.

Thanks

Hi Zach, did you found somethings in the logging?

When i posted the first time. I didn’t realized the api was that big LOL.

I think a good starting points would be to have the same (if all availlable ) item has the plex binding here : https://www.openhab.org/addons/bindings/plex1/

But with the websocket connection.

Ok so new version posted with a fix for @M1C issue. As a note to everyone else if you use this version you will need to delete any client things (server things are fine) and add them back in as the deviceid name is now encoded so it will change.

You will also need to run the following command in the karaf console

bundle:install http://central.maven.org/maven2/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar

Hi Zachary,

Thanks for all the effort. It runs without any errors now. I only noticed 2 things the duration is in seconds with 7 zero’s behind it (example 2 seconds = 20000000). Is there a way to reflect the duration in hh:mm:ss? Also the images are not reflected in my sitemaps. Maybe because the there is a process % behind the url, don’t know if that is the issue.

Regards

Hey, at first: good job!
Is there a list of item/thing types at the moment for this binding? didnt want to implement it now, because i’m working on the live tv function from emby and want to focus on that. but at a later point this binding could be interesting for me. is there a list of planned features or is it at the moment too early to ask for that? :slight_smile:

Regards
Neuro

@Neuro. I need to do the documentation for the binding. I will put that on my to do list. I have paused on development due to transition in the core development as I didn’t want to put too much work that may have to be redone.

However, I should go ahead and document what is currently available so that new users can more easily get the current version up and running.

I don’t have a set feature list but I do plan on developing this to include full control. Open to any suggestions for wanted features.

Yes I should change the timing to a more standard format. The current binding is is ms as that is what the server gives and I don’t do any processing on the time. But clearly for display purposes it should be in a more friendly format.

How are you trying to display the image in your site map? Can you post you sitemap code and I’ll investigate.

Thanks

Hi,
Thanks for the add-on!
As a long time EMBY user I’m very happy to see the integration via OH :slightly_smiling_face:
When I install the plugin I got some errors in the log and the binding doesn’t show up in Paper UI:

2019-06-05 15:42:54.707 [WARN ] [org.apache.felix.fileinstall        ] - Error while starting bundle: file:/openhab/addons/org.openhab.binding.emby-2.5.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.emby [227]
  Unresolved requirement: Import-Package: com.google.gson; version="[2.8.0,3.0.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
	at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]

Forgive me I’m new to OH and I’m running version 2.4 stable. Any suggestion?

Updated log with stacktrace