tl;dr: It is a 1.9 binding which means it works in OH 1.8 and OH 2.0. The above code is running in OH 2.0 but should work in 1.8 unchanged.
I agree, it is confusing. We are in a state of transition right now but OH 2 is rapidly maturing to the point where it will soon become the default assumed version talked about.
In this particular case, there will never be an update of the core of OH 1.8 to version 1.9. However, most of the bindings and add-ons have continued development. These bindings and add-ons are referred to as version 1.9. You can (and probably should in some cases) run 1.9 version bindings in OH 1.8.3.
In OH 2 there is a new architecture and a new way for bindings and add-ons to work. There is also a compatibility layer which allows one to run older 1.x style bindings inside OH 2. As it stands right now as of this writing, there are more 1.9 bindings that are part of the official distribution than 2.0 bindings, including some really essential bindings like MQTT and HTTP. Though that is going to change soon.
In the Migration Tutorial I actually used an approach that lets one first swap out the core to OH 2 but remain on 1.9 version bindings. And then gradually transition to the 2.0 version of the bindings.
So in short, if it says version 1.9 it will work in 1.8.3 and 2.0.
So here are a few rules of thumb I would use to determine if something posted is applicable to OH 1.8.3 if the:
- binding/add-on is documented on the wiki as opposed to http://docs.openhab.org
- version of the binding or add-on starts with a 1, e.g. 1.9
- example rule imports things from org.openhab it was written for 1.x
It only applies to OH 2.0 if it:
- talks about PaperUI
- references Things and/or Channels
- references BasicUI or ClassicUI
- references Karaf or the Karaf Console
I hope this helps.