A new IDE and runtime for everyone!

Hi Mirko,

You can find more information about the different repos here: https://github.com/openhab/openhab-distro#openhab-2-distribution

For any IDE, you need to select “openHAB Development”, which is the base setup.
If you want two separate workspaces, you can actually run the IDE setup twice:

  1. “openHAB Development” + “openHAB 1 Add-ons”
  2. “openHAB Development” + “openHAB 2 Add-ons”

Don’t worry, the IDE is still only installed once on your harddrive, both installations will share the same files.


Hi Kai,
Can you advise how to handle the targets / debug configurations? From my fresh install, there is just a single ‘openHAB_Runtime’ configuration. It would be useful if there was an OH1 and OH2 runtime configuration?

I suspect this is possible, but I’ve not seen how it’s handled?


As the title says: “a runtime for everyone” - with this IDE, you only have the one runtime that can be launched from within the IDE. If some code behaves differently than on the “original” 1.x runtime, you should fall back to remote debugging of such an installation.

I installed the new IDE.
I would like to create my “working in progress” powermax binding (1.x binding).
How can I create the skeleton of a new 1.x binding ? I don’t see any batch.
In the previous IDE, I think I have to use a mvn command but I don’t find the documentation anymore. Is it the same procedure as before ?

Just this morning Davy just changed the sidebar to point to new documents. Here are some of the old ones that are no longer in the sidebar:

@watou: thank you.
I think the chapter concerning the creation of bundle skeleton (binding 1.x) should remain easily accessible in the documentation.

More generally, I think another advice/requirement for developers would be to test their new/updated 1.x bindings in a real 1.x environment in addition to the new IDE environment.

1 Like

With this new IDE setup procedure, if I correctly understand, we get a copy of the current repos at the time the setup procedure is run. To have an up-to-date version, we have to run again this procedure in a different location ?

Then we have to fork the openHAB1 repo (in case we want to create/update a 1.x binding), clone our fork in another local directory and finally import our binding sources from this second git ?

From now, new 1.x bindings have to be tagged 1.8.1 or 1.9 ?

No, these are git repos. All you have to do is to pull the latest changes (right-click: “Team->Pull”), that’s it.

When I run openHAB from inside Eclipse (changing nothing in the run configuration), here are my final logs, openHAB URL is not reachable in my WEB server:

!ENTRY org.eclipse.equinox.ds 1 0 2016-02-03 21:43:22.350
!MESSAGE Could not bind a reference of component org.eclipse.smarthome.io.transport.mdns. The reference is: Reference[name = MDNSClient, interface = org.eclipse.smarthome.io.transport.mdns.MDNSClient, policy = dynamic, cardinality = 0..1, target = null, bind = setMDNSClient, unbind = unsetMDNSClient]
osgi> 2016-02-03 21:43:22.629 [DEBUG] [.i.t.m.internal.MDNSClientImpl:37   ] - mDNS service has been started
2016-02-03 21:43:22.631 [DEBUG] [i.t.m.internal.MDNSServiceImpl:49   ] - Registering new service _openhab-server._tcp.local. at port 8080
2016-02-03 21:43:22.650 [DEBUG] [o.e.s.c.s.i.SchedulerActivator:34   ] - Scheduler has been started.
2016-02-03 21:43:22.652 [INFO ] [rg.quartz.core.QuartzScheduler:575  ] - Scheduler openHAB-job-scheduler_$_NON_CLUSTERED started.
2016-02-03 21:43:22.926 [DEBUG] [.s.s.mapdb.MapDbStorageService:50   ] - Opened MapDB file at 'C:\Data\Dev\openHAB2\openhab2-master\git\openhab-distro\launch\home\userdata\mapdb\storage.mapdb'.
2016-02-03 21:43:23.420 [DEBUG] [.c.d.internal.ConfigDispatcher:222  ] - Processing config file 'services.cfg'
2016-02-03 21:43:30.349 [DEBUG] [i.t.m.internal.MDNSServiceImpl:49   ] - Registering new service _openhab-server-ssl._tcp.local. at port 8443

!ENTRY org.eclipse.equinox.ds 2 0 2016-02-03 21:43:53.528
!MESSAGE [SCR - WorkThread] Timeout occurred! Thread was blocked on processing org.osgi.service.cm.ConfigurationEvent@5aff062d

!ENTRY org.eclipse.equinox.ds 2 0 2016-02-03 21:44:23.532
!MESSAGE [SCR - WorkThread] Timeout occurred! Thread was blocked on processing org.osgi.service.cm.ConfigurationEvent@5438f302

I hope that it is not a basic problem I should have resolved without asking…

I first thought it could my Windows 7 firewall but I disabled it and the result was identical.

This is also discussed here: https://www.eclipse.org/forums/index.php?t=msg&th=1073959
It only happens sometimes for some people - there is no known solution yet.
I have never seen it myself, so I cannot really help in the analysis…

I just had the same problem after all - and I think I have a fix for it: https://github.com/openhab/openhab-distro/pull/119

Is it still possible to start the Designer from the IDE?

Yes, but only in the ESH IDE - note that non of the Designer code is anyhow available in the OH2 IDE workspace.

I just did a from scratch dev environment set up. It keeps getting easier every time I do this, nice work folks!

I am having a problem exporting a plugin however.

My steps are the steps from the github doc. I selected to add all 5 of the options at set up time. After install, I can do a clean and the workspace builds without issue. I then go to export the Astro binding by selecting it, going to export in the menu, and selecting Deployable Plugins and Fragments. The following error then happens.

A cycle was detected when generating the classpath org.openhab.binding.astro_2.0.0.201602050936, org.eclipse.smarthome.config.core_0.8.0.201602050936, org.eclipse.smarthome.core_0.8.0.201602050936, org.eclipse.smarthome.test_0.8.0.201601301304, org.eclipse.smarthome.config.xml_0.8.0.201602050936, org.eclipse.smarthome.config.core_0.8.0.201602050936.

I tried identifying the cyclic issue, but the analysis for cyclic dependencies says there are no problems.

Why are you trying to export it?

Are you trying to create the binding jar to use? If so, have you tried maven?

Correct, trying to create the jar. I have another binding that I am working on that also had this issue, so I wanted to try it with a bundled addon. The bundled one had the same problem, so was a better example to use. I have not tried maven to build it yet as I believe this method should work as well, and wanted to report the issue, or learn what I was doing wrong.

@xsnrg The culprit is usually the smarthome.test bundle - if you close this project, the export should work.

I wasn’t aware that you could do it that way, I’ve always used maven. I’ve learned something new today :slightly_smiling:

Ok, I’ve build the designer from the ESH repo, but how can I build it with the features that are available in the openhab repo?

Not sure what you mean?