IPX800 Binding info

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 !

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

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 :

ipx800.things

Thing gce:ipx800v3:ipx "IPX800" @ "Chaufferie" [hostname="192.168.0.244", portNumber=9870] {
    Channels:
        Type digitalInput : I#1 [       // Aimant Détection porte de garage ouverte
            debouncePeriod=2500,
            pulsePeriod=1000,
            pulseTimeout=60000
        ]
        Type digitalInput : I#2 [       // Aimant Détection porte de garage fermée
            debouncePeriod=2500
        ]
        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
            pulse=true    
        ]
}

ipx800.items

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

Hi,

is this working with the version 4 of the IPx800 ?

Thanks
Vincent.

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

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

http://gce.ovh/wiki/index.php?title=API_V3
http://gce.ovh/wiki/index.php?title=API_V4

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

Merci
Vincent.

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 :-/

I understand what you mean, is better that I try to revert to FW 3.05.62. In this way I can test your v2_binding, and we know if it is possible to revert the firmware :wink:
Let you know !

Yesterday I did some test

  1. I revert IPX800_v3 to FW 3.05.62 --> It is possible (little boring but possible :wink: )

  2. Test IPX800_binding_v2
    FW 3.05.62 “Send data on status change”–>ON
    OUTPUT
    Command from OH to IPX800 --> OK
    Change status on IPX800 --> update item on OH -->OK
    INPUT
    Change status on IPX800 --> update item on OH -->OK
    COUNTER
    Change value when change status on IPX800 --> update item on OH -->OK
    Change value on IPX800 --> update item on OH at the first change status on IPX800
    ANALOG
    OH item is update only one time after the binding install, at the first change status on IPX800
    Then the item on OH do not update anymore
    In my opinion in the binding Analog item do not work correctly…it would be better if it were periodically updated (example every second … or parametric)

  3. IPX800 Firmware version
    FW 3.05.70 have a bug and do not accept TCP command when you set “Send data on status change–>ON" the OH binding don’t work
    https://forum.gce-electronics.com/t/tcp-et-retour-du-status-des-entrees-et-sorties/7916/5
    FW 3.05.62 the OH binding work (except for analogue) but I have some instability problem (that I solve with 3.05.70)
    FW 3.05.74b Is a beta release (that I found in the forum above) that I have in test. It does not have the instabilities of the 3.05.62 and it does not have the bug of the 3.05.70. The v2_binding works like FW_3.05.62