IPX800 Binding info


I’m planning to buy an IPX800 to control some load according to temperature en humidity parameters (analog inputs on IPX).
I see there a V1 binding, but did not find any topic about the IPX800 and no info about reading values of analog inputs.

does someone use an IPX here?
Any plans to update the binding to V2?

Thank you

Hello @jpcolin,
long time to answer. I’m using successfully v1 of the binding since monthes on OH2, but with the ongoing moves toward OH3, I felt in a tricky situation in regard of it. So I started a v2 rewrite of the binding since it did not evolve since 4+ years, and the developer does not seems reachable neither active on github. I think I’ll have something usable in some weeks. But only tested with IPX800 v3


unfortunately, i don’t think this works on V4, too bad.
what modules do you have? Do you have a PH200 module?

I have an IPX800v3. As far as I know, for the M2M protocol, it is comptabile with v4. We’ll have the opportunity to test this :slight_smile:

I hope so, but mine won’t be installed until september or later, pool is still in construction.

Hi @glhopital
Any news of your V2 binding ? i’m using an IPX800v3 and i’m really interested :slightly_smiling_face:
Thanks !

i have just upgraded to 2.5.0 but my ipx800 binding dont work anymore…
if you have some infos ?

Yes I’m using a v2 binding in PR since many month. This is working fine but PR still not merged so you can test it using this jar download. The binding has been renamed to GCE instead of IPX. Hope this helps.

Maybe there is a misunderstanding. But it’s not merged because it’s still marked as WIP and the documentation needs to be updated. Until stated it’s not WIP anymore and documentation is fixed it won’t be reviewed and therefore blocks it from being merged.

Yes, I did not blame anybody. I know documentation has to be done, but as I was the only one using it, I was not in a hurry to do so :slight_smile: now, I may have a guinea pig.

@Johan_Thomas to complete my answer, here an my definition example :


Thing gce:ipx800v3:ipx "IPX800" @ "Chaufferie" [hostname="", portNumber=9870] {
        Type digitalInput : I#1 [       // Aimant Détection porte de garage ouverte
        Type digitalInput : I#2 [       // Aimant Détection porte de garage fermée
        Type digitalInput : I#3 [       // Bouton poussoir potelets jardin
        Type digitalInput : I#4 [       // Bouton poussoir lumière porche facade maison
        Type digitalInput : I#5 [       // Bouton poussoir couloir RdC
        Type digitalInput : I#8 [       // Contacteur NA Plug Chaudière
        Type digitalOutput : O#3 [       // Chaudière
        Type digitalOutput : O#4 [       // Lumière porche
        Type digitalOutput : O#5 [       // Lumière potelets
        Type digitalOutput : O#6 [       // Lumière couloir
        Type digitalOutput : O#8 [       // Actionneur porte de garage


Group gIPX800	"IPX 800 v3" (gBindings, gChaufferie)
	Group gIPXInputs			"Entrées"																		<input>			(gIPX800)
		Contact		input1		"Porte garage ouverte [%s]"											<none>			(gIPXInputs, gPorteGarage, gSensorDoor)							{channel="gce:ipx800v3:ipx:I#1", 
																																																							 channel="glh:vgaragedoor:rollo:opened" [profile="follow"]}
		DateTime	 	input1_LUD	"LUD ouverture [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"			<calendar>		(gIPXInputs, gPorteGarage, gSensorTST)							 	{channel="gce:ipx800v3:ipx:I#1" [profile="timestamp-update"]}
		Number:Time	input1_Dur	"Last State Duration [%d] s"											<clock>			(gIPXInputs, gPorteGarage, gSensorCounter)						{channel="gce:ipx800v3:ipx:I#1-duration"}

		Contact		input2		"Porte garage fermée [%s]"												<none>			(gIPXInputs, gPorteGarage, gSensorDoor)							{channel="gce:ipx800v3:ipx:I#2",
																																																							 channel="glh:vgaragedoor:rollo:closed" [profile="follow"]}
		DateTime	 	input2_LUD	"LUD fermeture [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"			<calendar>		(gIPXInputs, gPorteGarage, gSensorTST)							 	{channel="gce:ipx800v3:ipx:I#2" [profile="timestamp-update"]}
		Number:Time input2_Dur	"Last State Duration [%d] s"											<clock>			(gIPXInputs, gPorteGarage, gSensorCounter)						{channel="gce:ipx800v3:ipx:I#2-duration"}

		Contact		input3		"Poussoir Potelets [%s]"												<wallswitch>	(gIPXInputs, gPotelets)													{channel="gce:ipx800v3:ipx:I#3"}		
		DateTime	 	input3_LUD	"LUD Potelets [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"			<calendar>		(gIPXInputs, gPotelets, gSensorTST)								 	{channel="gce:ipx800v3:ipx:I#3" [profile="timestamp-update"]}

		Contact		input4		"Poussoir Porche [%s]"													<wallswitch>	(gIPXInputs, gLumierePorche)										 	{channel="gce:ipx800v3:ipx:I#4"}		
		DateTime	 	input4_LUD	"LUD Porche [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"				<calendar>		(gIPXInputs, gLumierePorche, gSensorTST)								{channel="gce:ipx800v3:ipx:I#4" [profile="timestamp-update"]}

		Contact		input5		"Poussoir Couloir RdC [%s]"											<wallswitch>	(gIPXInputs, gLumiereCouloir)										 	{channel="gce:ipx800v3:ipx:I#5"}		
		DateTime	 	input5_LUD	"LUD Lumière Couloir [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"	<calendar>		(gIPXInputs, gLumiereCouloir, gSensorTST)						 	{channel="gce:ipx800v3:ipx:I#5" [profile="timestamp-update"]}

		Contact		input8		"NA Plug Chaudière [%s]"												<none>			(gIPXInputs, gChaudiere)												{channel="gce:ipx800v3:ipx:I#8"}
		DateTime	 	input8_LUD	"LUD NA Plug [%1$ta %1$td-%1$tm-%1$ty %1$tH:%1$tM]"			<calendar>		(gIPXInputs, gChaudiere, gSensorTST)								{channel="gce:ipx800v3:ipx:I#8" [profile="timestamp-update"]}
		Number:Time input8_Dur	"Last State Duration [%d] s"											<clock>			(gIPXInputs, gChaudiere, gSensorCounter)							{channel="gce:ipx800v3:ipx:I#8-duration"}

	Group gIPXOutputs		 "Sorties"																			<output>		 	(gIPX800)			
		Switch		output3		"Chaudière"																	<chaudiere>		(gIPXOutputs, gChaudiere)												{channel="gce:ipx800v3:ipx:O#3"}
		Switch		output4		"Lumière Porche"															<light>			(gIPXOutputs, gLumierePorche)										 	{channel="gce:ipx800v3:ipx:O#4"}
		Switch		output5		"Lumière Potelets"														<light>			(gIPXOutputs, gPotelets)												{channel="gce:ipx800v3:ipx:O#5"}
		Switch		output6		"Lumière Couloir"															<light>			(gIPXOutputs, gLumiereCouloir)										{channel="gce:ipx800v3:ipx:O#6", autoupdate="false", expire="300s,command=OFF" }
		Switch		output8		"Actionner Porte de garage"		
1 Like


is this working with the version 4 of the IPx800 ?


I have only a v3, but you can test and tell me.

Thanks for your quick reply.
It doesn’t work. the API looks pretty different from V3 to V4


do you have a github repo that I can look into ?


Yes, the repo is here.
You could create a second thing ipxv4 to take care of differences with v3

Apparently both use M2M protocol but from a quick reading, v4 may imply the usage of an API key. I did a quick update to my repo so you can start taking a look and implementing v4 requirements.

Hi @glhopital
I d like to use your V2 binding and I test the your .jar both on OH 2.4 and OH 2.5
I have an IPX800v3 with firmware 3.05.70 with m2m setting “send data on status change”–>ON
In both cases input work, counter work, analog work, but output doesen’t work
Precisely: if I change the output in the IPX800 web board, I see in OpenHAB the change, but if I set the output in OH nothing is happening!
Which firmware version do you have on your IPX800v3 card?

Update: if I set “send data on status change”–>OFF I can command the output from OpenHAB, but I cannot read nothing from IPX800 (no Input, no Analog, no Counter…and no info from an Output change from the Web interface of the IPX800)

Thanks in advance

Send data on status change is also “on” on my side.
My firmware version is 3.05.62
Would you have somewhere the changelog of this firmaware so I can see where it could lay ?

I suspected it!!
First of all: with 3.05.70 firmware I have similar behavior with “1.14 binding” and your “2.0 binding”
With an old firmware version of IPX800v3 (may be 3.05.62 or 3.05.59) I had a different behavior:
I can command the output, read the inputs and counter (on status change), but no analog;
But with this old firmware I have some instability… precisely relay n9 sometimes close without command !!
Attached firmware changelog from GCE
changelog.txt (12.1 KB)

P.S. Are you able to read Analog from IPX?

I do not currently use analog inputs, reason why I may not have faced your issues. I thought to upgrade to FW 3.05.70 to try to debug but I’m a bit reluctant if I can not revert to 3.05.62 to have a proper working situation as today :-/