Difference bindings, PaperUI, configuration,

Hi there,

I’m pretty new to OpenHAB, I tested some with 1.8 and recently used the Raspberry Pi install kit for OpenHAB2!
I love it, but now I’m a bit confused about configuration and bindings and all.

Starting with 1.8 I installed bindings with first downloading them, then activating them in the big config file. Now with OpenHAB2 I understand, I can install bindings via PaperUI - I’m using the openhab2-offline version, if that’s important.
So, my questions are:

  1. After installing, I don’t find the respective .cfg-files in /Services, is that correct? They can be configured also in PaperUI - can they then be used in items and rules?
  2. Using PaperUI for installation is the recommended way, isn’t it?
  3. I’d like to think, that after installing bindings, they should appear as “installed” in the list of bindings in PaperUI, but (at least after an reboot?) they don’t appear all as installed after a while?
  4. If I don’t find 2.x bindings, I’d like to use 1.x bindings, but after activating the respective “include Legaca 1.x Bindings” not every binding appears, do I need to download them beforehands?

Thanks for your help!

Thomas.

I’ve found some do not generate the .cfg and others do. Some 2.0 version bindings can be configured through PaperUI and/or Habmin. Review the readme for the 2.0 bindings and the wiki for the 1.9 bindings for their configuration parameters. If they have some you may need to create the cfg file yourself.

I’d say the answer is mixed. Right now there is a problem where an upgrade to OH causes one to lose all of the add-ons, requiring you to reinstall them after the upgrade. Until this gets fixed I recommend listing your bindings in services/addons.cfg instead. That way everything gets automatically installed upon an upgrade.

If the installation was successful they should show up with a blue check and show up as installed. If you don’t see that and you don’t see the .cfg file that really points to the installation having failed.

Not every 1.x binding has been tested and proven to run in OH 2 yet. You can still install and use them or any other 1.x unofficial binding by following these instructions:

http://docs.openhab.org/developers/development/compatibilitylayer.html#how-to-use-openhab-1x-add-ons-that-are-not-part-of-the-distribution

Note, pay special attention to the list here for addons known not to work. One binding that is missing from this list is the JSR233 which is also known not to work.

If you install a 1.9 binding and it works for you, post a new thread hear and let everyone know and it will be added to the list.

1 Like

Hi!
Thanks for your help!

I found it a bit difficult at present to install the bindings/add-ons/services (what is it actually? :slight_smile:) to the .cfg, if the add-on is installed via Paper UI and is only active for the actual instance and lost somehow after reboot… Most add-ons don’t come with example cfgs, but I’ll try your hint with the addons.cfg, I’ll list them there and look whats happening after a reboot.

Is there some description on how to properly test 1.9 bindings for 2.x? or should I just try them out and if they work for my use case, put them in a thread?

Thanks again,
Thomas.

You just list the bindings by name in services/addons.cfg. Here is my current one:

# The base installation package of this openHAB instance (default is "standard")
# Valid options:
#   - minimal  : Installation only with dashboard, but no UIs or other addons
#   - standard : Typical installation with all standards UIs
#   - demo     : A demo setup which includes UIs, a few bindings, config files etc.
#
#package = standard

# Access Remote Add-on Repositories
# Defines whether the remote openHAB add-on repository should be used for browsing and installing add-ons.
# This not only makes latest snapshots of add-ons available, it is also required for the installation of
# any legacy 1.x add-on and all experimental features. (default is false for offline distro, true for online distro)
#
remote = true

# Include legacy 1.x bindings. If set to true, it also allows the installation of 1.x bindings for which there is
# already a 2.x version available (requires remote repo access, see above). (default is false)
#
legacy = true

# Include experimental add-ons. If set to true, it also allows the installation of extensions that are not (yet) part
# of the official distribution and need further testing (requires remote repo access, see above). (default is false)
#
experimental = true


# A comma-separated list of bindings to install (e.g. "sonos,knx,zwave")
binding = zwave,astro1,http,mqtt,nest,networkhealth

# A comma-separated list of UIs to install (e.g. "basic,paper")
ui = paper,classic,habmin,habpanel

# A comma-separated list of persistence services to install (e.g. "rrd4j,jpa")
persistence = influxdb,rrd4j,mapdb

# A comma-separated list of actions to install (e.g. "mail,pushover")
action = nma,mail

# A comma-separated list of transformation services to install (e.g. "map,jsonpath")
transformation = xslt,map,regex,javascript

# A comma-separated list of voice services to install (e.g. "marytts,freetts")
voice =

# A comma-separated list of miscellaneous services to install (e.g. "myopenhab")
misc = myopenhab

An add-on is an extension to openHAB. A binding is one such type of add-on among others (UIs, transformations, actions, voice, persistence, etc). Services is just the name of the folder where the .cfg file for each add-on that needs it goes.

It isn’t lost on a reboot but it is lost when you upgrade openHAB 2 to a new version.

You don’t have to reboot. As soon as it is added to addsons.cfg and the file is saved OH will see the change and immediately install the add-on.

For 1.9 add-ons, look at the Configuration section of the binding’s wiki page. If an example .cfg file was not created for the binding create one using the name of the binding. Populate it with the parameters defined on the wiki page but omit the name. For example, the wiki page for Nest says there should be, among others, a nest:refresh=6000 property. So you would create a services/nest.cfg file (if one isn’t created for you) and populate it with all the parameters minus their name (i.e. nest:refresh=6000 becomes refresh=6000).

To test the 1.9 binding that isn’t listed follow the instructions I linked to above and see if the binding works as described. If it does what it is supposed to to then it works. If you get errors in the logs, particularly errors about missing classes, it may not work. Report this results either way.

2 Likes

Hi!

Thanks for the update. Now it grows more clear for me! :wink:
So I’ll try how you described and I’ll test some 1.9 on the way!

Thanks!
Thomas.

I’m just playing around and I’d like to get something straight in my mind! :wink:

e.g. the Astro-Binding (it’s already 2.0):
The Readme states, there’s no need for a configuration file, but you can define Things and Items with the binding installed. So for me this is:

// astro.things
    astro:sun:home   [ geolocation="48.42757, 10.88241", interval=600 ]
    astro:moon:home  [ geolocation="48.42757, 10.88241", interval=600 ]

and also in my astro.items:

// astro.items
    DateTime SunsetTime 	"Sonnenuntergang [%1$tH:%1$tM]" <sun>	(Astro)	{ channel="astro:sun:home:set#start" }
    DateTime SunriseTime 	"Sonnenaufgang [%1$tH:%1$tM]" 	<sun>	(Astro)	{ channel="astro:sun:home:rise#end" }
    Number   SunElevation	"Elevation [%.1f °]"  			<sun>	(Astro)	{ channel="astro:sun:home:position#elevation" }

Is there some link to the Things in Paper UI? I don’t think so, because the configuration don’t update each other. But at present, I can’t remove the Astro Things in Paper UI (ERROR: 409 - Conflict)

So all the OpenHAB2-bindings I know, don’t use configuration, but only Things and Items (as I learned is the new Approach with 2.0). So only 1.9 bindings use configuration files - and obviously no Things?.

So is this correct? (:sunglasses:)

It is possible and reasonable to do everything without using the admin UIs at all (i.e. PaperUI and Habmin). This means manually adding all the Things to a .things file like you describe above for astro. However, if you use a mix of PaperUI and .things files, be aware that PaperUI is not capable of updating or deleting those Things defined in files. It can only manage those that were created through it and which have their configuration saved in the database. This is why you see that error.

What is true is all 2.0 bindings do indeed only use Things and Items link to Channels on those Things. 1.9 bindings use the same old configuration on the Items so indeed, no Things for 1.9.

1 Like

Thanks a lot Rich!
Made Things (sic!) much more clear to me!

…and as it turned out, the Things I defined in a .things file show up in Paper UI after all.