OpenHAB 2.0 xPL binding?

Hi! Newbie here - have gotten OH2 to work on a RPi, but I can’t find a xPL binding despite seeing it mentioned in many places. Any pointers?

1 Like

xPL is a 1.x binding that has not yet been tested with openHAB 2.0 so it is not listed.

Download the Addons.jar from here or if you want the latest and greatest from here and follow the instructions here and/or here.

1 Like

I’ve currently started a port of the xPL binding to OH2 - it may come in the next weeks.




Sounds great! Guess I should wait for your port then!


Any updates? :grin:

Sorry, I was on other subjects but I’ll be back !

1 Like


Any update ? :wink:

1 Like

Yes, progressing but not as quick as I would like. I’ve got a working version at home since two weeks, but not ready to be pushed to Git. I can provide you with a jar if you want.

We could be alpha testers… :slight_smile:

As long as supporting alpha testers doesn’t distract from progress on the port… :slight_smile:

Well, it takes a bit of time because I do not currently have much of it and I went further than with v1 of the binding. Describing things and channels depending upon various schema. So for now, ac.basic is ok for appliances and dimmers. x10.basic also, various oregon sensors (sensor.basic) and Documentation will be tough :slight_smile:
I also added the possibility to start a xpL hub along with the X10 bridge.
Ok to send a jar to those willing to test and give feed-back. Send me an email to gael at lhopital dot org

Here is a sample things configuration

Bridge xpl:xplbridge:lapfr0114 [ instance="morpheus", startHub=true] {
      Thing xpl:oregonsensor:thn132kitchen [type="temp2", id="0xa801"]
      Thing xpl:oregonsensor:oregon2 [type="th1", id="0xfff"]
      Thing xpl:oregonsensor:cm160 [type="elec2", id="0x8632"]
      Thing xpl:X10Appliance:chaudiere [deviceId="A1"] 
      Thing xpl:ACAppliance:diningR1 [address1="0x014f896", unit1=1, address2="0x054f896", unit2=1] 
      Thing xpl:ACAppliance:diningR2 [address1="0x024f896", unit1=1, address2="0x054f896", unit2=1] 
      Thing xpl:ACAppliance:diningR3 [address1="0x034f896", unit1=1, address2="0x054f896", unit2=1] 
      Thing xpl:ACAppliance:diningR4 [address1="0x364f896", unit1=1, address2="0x054f896", unit2=1]
      Thing xpl:ACAppliance:diningFenetre [address1="0x04ed4e6", unit1=1]
      Thing xpl:ACAppliance:diningBaie    [address1="0x03ed4e5", unit1=1]

      Thing xpl:ACDimmer:livingR1 [address1="0x154f896", unit1=2, address2="0x054f896", unit2=2] 
      Thing xpl:ACDimmer:livingR2 [address1="0x254f896", unit1=2, address2="0x054f896", unit2=2] 
      Thing xpl:ACDimmer:livingR3 [address1="0x354f896", unit1=2, address2="0x054f896", unit2=2] 
      Thing xpl:ACDimmer:livingR4 [address1="0x364f896", unit1=2, address2="0x054f896", unit2=2]

      Thing xpl:ACAppliance:livingFenetre [address1="0x04ed4e7", unit1=1]
      Thing xpl:ACAppliance:livingBaie    [address1="0x04ed4e5", unit1=1]
      Thing xpl:ACAppliance:kitchenR1 [address1="0x04d7322", unit1=1] // Evier
      Thing xpl:ACAppliance:kitchenR2 [address1="0x04d7322", unit1=2] // Table
      Thing xpl:ACAppliance:kitchenR3 [address1="0x04d7386", unit1=2] // General
      Thing xpl:ACAppliance:kitchenFenetre [address1="0x04cd4e7", unit1=1]
      Thing xpl:ACAppliance:kitchenBaie    [address1="0x04cd4e5", unit1=1]
      Thing xpl:ACAppliance:PorteCouloir [address1="0x00d616c", unit1=10]
      Thing xpl:ACAppliance:PorteChaufferie [address1="0x03df386", unit1=10]
      Thing xpl:ACAppliance:EntreeChaufferie [address1="0x01941b6", unit1=10] 
      Thing xpl:X10Appliance:MoveGarage [deviceId="G1"] 

and here is a sample items configuration file

// Chaufferie 
Group gCm160 (gChaufferie)
Number cm160_energy  (gCm160)   {channel = "xpl:oregonsensor:cm160:energy" }
Number cm160_power   (gCm160)   {channel = "xpl:oregonsensor:cm160:power" }
DateTime cm160_ts  "Last Update [%1$ta %1$tR]"  (gCm160)   {channel = "xpl:oregonsensor:cm160:lastMessage" }

Switch x10Chaudiere (gChaudiere) {channel="xpl:X10Appliance:chaudiere:command"}

// Cuisine
Group gKitchen_r1 "Evier" (gKitchen)
Switch kitchen_r1 "Evier" (gKitchen_r1)  {channel="xpl:ACAppliance:kitchenR1:command"}
DateTime kitchen_r1_ts "Last Update [%1$ta %1$tR]"  (gKitchen_r1) {channel = "xpl:ACAppliance:kitchenR1:lastMessage"}

Group gKitchen_r2 "Table" (gKitchen)
Switch kitchen_r2 "Table" (gKitchen_r2)  {channel="xpl:ACAppliance:kitchenR2:command"}
DateTime kitchen_r2_ts "Last Update [%1$ta %1$tR]"  (gKitchen_r2) {channel = "xpl:ACAppliance:kitchenR2:lastMessage"}

Group gKitchen_r3 "Général" (gKitchen)
Switch kitchen_r3 "General" (gKitchen_r3)  {channel="xpl:ACAppliance:kitchenR3:command"}
DateTime kitchen_r3_ts "Last Update [%1$ta %1$tR]"  (gKitchen_r3) {channel = "xpl:ACAppliance:kitchenR3:lastMessage"}

Switch fenKitchen  "Volet Fenetre kitchen" <rollershutter> (gKitchen) {channel="xpl:ACAppliance:kitchenFenetre:command"} 
Switch baieKitchen  "Volet Baie kitchen" <rollershutter> (gKitchen) {channel="xpl:ACAppliance:kitchenBaie:command"} 

Group gThn132_kitchen (gKitchen)
Number thn132_kitchen_temp (gThn132_kitchen) {channel = "xpl:oregonsensor:thn132kitchen:temp"}
Number thn132_kitchen_batt "Battery Cusisine [%d %%]" (gThn132_kitchen) {channel = "xpl:oregonsensor:thn132kitchen:battery"}
Switch thn132_kitchen_lowb (gThn132_kitchen) {channel = "xpl:oregonsensor:thn132kitchen:lowBattery"}
DateTime thn132_kitchen_ts "Last Update [%1$ta %1$tR]"  (gThn132_kitchen) {channel = "xpl:oregonsensor:thn132kitchen:lastMessage"}

Hi Gaël,

Many thanks for your job.
I added your binding into /usr/share/openhab2/addons and restarted OH2. I found in PaperUI -> Inbox : a new binding.
The first thing to do is obviously to set up a bridge, but unfortunately I can’t validate this first step as I have a stack trace in openhablog :

2017-02-26 11:53:23.631 [WARN ] [eclipse.jetty.servlet.ServletHandler] - 
javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: org/openhab/binding/xpl/XplBindingConstants
2017-02-26 11:53:24.013 [WARN ] [org.eclipse.jetty.server.HttpChannel] - Could not send response error 500: javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: org/openhab/binding/xpl/XplBindingConstants

Any ideas ?

Any news?

Hi, where can I found the last jar ?

Send me an email to gael at lhopital dot org, I’ll send you the jar in return. Or you can fork my repository and compile it. BR

You can download the jar here :

1 Like

Hello, i’have one question to ask about the xPL Hub to install, which one is the best according to you?


I usually used the C xPL Hub. But in this version, a hub is included in the bridge :
Bridge xpl:xplbridge:lapfr0114 [ instance=“morpheus”, startHub=true]