Sony Devices Binding

@Jonas88
Could you do me a favor and install openhab in a completely different directory and try it in that directory (on a completely clean installation).

iā€™ll try that - maybe this evening.
I switched back to an old version and everything is working again.

Hi Tim,

i downloaded a fresh milestone 1 build of the 2.5 OH software to my macbook and placed the .kar in the addons folder.
i am waiting for 15 minutes now and nothing happened. Maybe itā€™s an issue with the java runtime?
i am not quite sure what my macbook is running but my mac mini runs zulu.

anyway here is what the openhab console throws at me after installing the addon:

org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-binding-sony; type=karaf.feature; version="[2.5.0.SNAPSHOT,2.5.0.SNAPSHOT]"; filter:="(&(osgi.identity=openhab-binding-sony)(type=karaf.feature)(version>=2.5.0.SNAPSHOT)(version<=2.5.0.SNAPSHOT))" [caused by: Unable to resolve openhab-binding-sony/2.5.0.SNAPSHOT: missing requirement [openhab-binding-sony/2.5.0.SNAPSHOT] osgi.identity; osgi.identity=org.openhab.binding.sony; type=osgi.bundle; version="[2.5.0.201905211438,2.5.0.201905211438]"; resolution:=mandatory [caused by: Unable to resolve org.openhab.binding.sony/2.5.0.201905211438: missing requirement [org.openhab.binding.sony/2.5.0.201905211438] osgi.wiring.package; filter:="(&(osgi.wiring.package=com.google.gson)(version>=2.8.0)(!(version>=3.0.0)))"]]
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
	at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332)
	at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:388)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1025)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:964)
	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)
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve openhab-binding-sony/2.5.0.SNAPSHOT: missing requirement [openhab-binding-sony/2.5.0.SNAPSHOT] osgi.identity; osgi.identity=org.openhab.binding.sony; type=osgi.bundle; version="[2.5.0.201905211438,2.5.0.201905211438]"; resolution:=mandatory [caused by: Unable to resolve org.openhab.binding.sony/2.5.0.201905211438: missing requirement [org.openhab.binding.sony/2.5.0.201905211438] osgi.wiring.package; filter:="(&(osgi.wiring.package=com.google.gson)(version>=2.8.0)(!(version>=3.0.0)))"]
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
	... 12 more
Caused by: org.apache.felix.resolver.reason.ReasonException: Unable to resolve org.openhab.binding.sony/2.5.0.201905211438: missing requirement [org.openhab.binding.sony/2.5.0.201905211438] osgi.wiring.package; filter:="(&(osgi.wiring.package=com.google.gson)(version>=2.8.0)(!(version>=3.0.0)))"
	at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
	... 13 more

Hmm, Iā€™ve just been trying to set up my TVs and I canā€™t seem to get both working. My bedroom TV works fine, but the living room TV (KD-49XF7003) doesnā€™t seem to want to configure. I did a port scan and found ports 2870, 13000, 56789, and 56790 open. I also canā€™t find anything in the TV settings about IP control. The TV is on;y a year or so old so I would have assumed that Simple IP was available on it. Have I bought a Bravia thatā€™s too low end?

I tried to build it for 2.4 and gave up as your dependancies also had dependacies and they then in turn had even more. It was never ending. Will try again when I have some time to install 2.5 milestone 1

@tmrobert8 From my understanding 2.5 is far away from being stable. 2.5M1 is based on the old build systems, the core team is still working to get a stable build environment for 2.5, so 2.5M2 is still pending for a while and will significantly be different from 2.5M1 = new issues.

Wouldnā€™t it make sense to keep the binding on the 2.4 level until there is a more stable 2.5?

Yes - but again, the maven build for 2.4 is broken so I had really no choice in the matterā€¦

For me it runs again in between. Iā€™m able to build 3 different bindings when specifying -DskipChecks=true

Tell you what - I posted the source URL above. Download it and see if you can get it to work under 2.4 - let me know how you did it and Iā€™ll switch back (I was starting to get org.eclipse library missing messages - which was confirmed in another thread somewhere that was to be expected and to switch to 2.5). Your mileage may vary however! :wink:

Tim

do you still have the old files like build.properties (which got removed in the bnd environment)? I could give it a try

In fact Iā€™m struggling to get a 2.5 env up ans running

Itā€™s an older one - but you can take the meta files and combine them with the source code to get a complete picture

hmm, I canā€™t find a Sony bundle in

https://github.com/tmrobert8/openhab2-addons/tree/2.5-0604-01/bundles

or is that the wrong root dir?

At least I could build your bundle as of 10/2018:

ding dong - donā€™t know if it runs, but I was able to build it!

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ org.openhab.binding.sony ---
[INFO] Installing /Users/markus/Dev/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.sony/target/org.openhab.binding.sony-2.4.0-SNAPSHOT.jar to /Users/markus/.m2/repository/org/openhab/binding/org.openhab.binding.sony/2.4.0-SNAPSHOT/org.openhab.binding.sony-2.4.0-SNAPSHOT.jar
[INFO] Installing /Users/markus/Dev/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.sony/pom.xml to /Users/markus/.m2/repository/org/openhab/binding/org.openhab.binding.sony/2.4.0-SNAPSHOT/org.openhab.binding.sony-2.4.0-SNAPSHOT.pom
[INFO] Installing /Users/markus/Dev/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.sony/target/p2content.xml to /Users/markus/.m2/repository/org/openhab/binding/org.openhab.binding.sony/2.4.0-SNAPSHOT/org.openhab.binding.sony-2.4.0-SNAPSHOT-p2metadata.xml
[INFO] Installing /Users/markus/Dev/openhab2-master/git/openhab2-addons/addons/binding/org.openhab.binding.sony/target/p2artifacts.xml to /Users/markus/.m2/repository/org/openhab/binding/org.openhab.binding.sony/2.4.0-SNAPSHOT/org.openhab.binding.sony-2.4.0-SNAPSHOT-p2artifacts.xml
[INFO] 
[INFO] --- tycho-p2-plugin:1.2.0:update-local-index (default-update-local-index) @ org.openhab.binding.sony ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.733 s
[INFO] Finished at: 2019-06-10T21:20:44+02:00
[INFO] Final Memory: 38M/489M
[INFO] ------------------------------------------------------------------------

I used a 2.4 env with the old binding
deleted the src files
replaced ESH-INF
added all new package references to MANIFEST.INF
added resources/web to build.properties

and run mvn -DakipChecks=true clean install

good news, binding seems to work. Initially I get tons on exception, but it discovered a SclarWeb, a IRCC and a Dial device.

2019-06-10 23:47:03.534 [ERROR] [org.openhab.binding.sony            ] - bundle org.openhab.binding.sony:2.4.0.201906101920 (170)[org.openhab.binding.sony.discovery.scalarweb(236)] : Could not load implementation object class org.openhab.binding.sony.discovery.ScalarWebDiscoveryParticipant
java.lang.ClassNotFoundException: org.openhab.binding.sony.discovery.ScalarWebDiscoveryParticipant cannot be found by org.openhab.binding.sony_2.4.0.201906101920
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]

The Dial device stays OFFLINE - Communication Error: Error connecting to DIAL device (may need to turn it on manually): Forbidden

The IRCC device goes ONLINE.

The ScalarWeb device seems to work:
Power ON/OFF is already working, also Volume :slight_smile:

Iā€™m confused on the IRCC channel. In the old binding I could send IRCC commands directly and it worked fine. Trying to do so results in an error:

Could not transform 'AAAAAgAAAMQAAABLAw==' with the file 'scalar-7fb57bd3dec0.map' : Target value not found in map for 'AAAAAgAAAMQAAABLAw=='

ok, it seems that there are symbolic names for the IRCC commands. I checked transform/scalar-7fb57bd3dec0.map and it contains the same values I use with the old binding. However, if I send ā€œHomeā€ to the IRCC channel of the ScalarWeb device nothing happens.

I noticed that the Content xxx Status and App xxx Status channels turned into strings, which need to receive ā€œstartā€/ā€œstopā€ - any reasons why changing that from switchable items (e.g. would be more consistent, just ON and OFF, but also requires way more space in PaperUI->Control)

3 Likes

@markus7017

Good news indeed. Can I ask you to be the official 2.4 maintainer? The reason being, Iā€™m trying to get the source code into mergable shape and itā€™s going to require the 2.5 bundling. Iā€™ll let you know if I commit any changes in the code (which should be minimal outside the web portion) and you can build a 2.4 from it?

As to your issuesā€¦

Should be correct - Sony is taking DIAL away from everything but blurays and the ā€œForbiddenā€ seems to be the indicator when DIAL is no longer available.

You should be able to do it and itā€™s probably an issue on my end. Iā€™ll take a look but may need some debug logs from you. Let me look at the code first.

That is correct and is by design. A switch never really worked with the API. The API is command based and there wasnā€™t really a good way to tell what was currently running (ie set the state of the switch). I kinda found a way to handle it (which was why it was a switch to begin with) but that got broken later on. When I integrated AVRs into it - found out there is more statuses as well - so I changed it to match the underlying API.

1 Like

Just looked at the manual for it and Iā€™m not very hopeful as it doesnā€™t mention anything that seems like it can be automated. What you should do at this point is to download the sony sideview app and see if it discovers the TV. If it does and can control it - then the binding should be able to. If it does not find the TV - then itā€™s very doubtful the binding will work

I definitely need you to turn on debug and give me the lines around this message.

Oh, the Sony Sideview app couldnā€™t find the TV. That sucks. Any idea what those other ports are used for? I feel like there must be something I can automate on the TV.