Bonjour,
J’ai réussi à faire la manip dont vous parlez.
Effectivement, il est assez facile de piloter l’allumage des relais, mais difficile d’être à jour sur l’état.
Voici la manip :
Déclaration de tous les items type Switch, exemple (Cle api : apikey, relais 9), de 1 à 32 sans interruption, même s’ils ne sont pas attribués :
Switch SpotsEscalierCombles "Spots Escalier Combles" <spots> (RelaisIPX, Output, Eclairage, Comble_Chambre) ["Lighting"] {http=">[ON:POST:http://[IP_IPX]/api/xdevices.json?key=apikey&SetR=09] >[OFF:POST:http://[IP_IPX]/api/xdevices.json?key=apikey&ClearR=09]"}
et d’une string sans config
String OutputsIPX800 "Etats sorties IPX800"
L’idée est de « pousser » (push) le changement d’état d’un relais de l’IPX à Openhab.
Vous l’avez compris, le string item « OutputsIPX800 » se met à jour qu’à chaque évenement (et non chaque seconde interroger sur le status.xml comme j’ai pu le voir dans d’autre binding d’autre logiciel domotique, qui surcharge le réseau pour peu d’action par jour).
Nous envoyons la balise $R, qui l’état des relais.
Dernière étape, nous traitons dans une rule l’état reçu.
exemple en log :
Item 'OutputsIPX800' received command 1000010000010000000000000000000000000
PushIPX.rules :
rule "update outputs IPX"
when
Item OutputsIPX800 received command
then
val String[] trame = OutputsIPX800.state.toString().split("")
RelaisIPX?.members.forEach(output,i| //Attention à l'ordre des items dans le groupe RelaisIPX, de 1 à 32 sans interruption
if ((trame.get(i).toString()=='1') && (output.state!=ON)) {
postUpdate(output, ON)
}
else if (trame.get(i).toString()=='0' && (output.state!=OFF)) {
postUpdate(output, OFF)
}
)
end
Ça fait très bien le job, c’est très réactif, voire instantané. De la même manière je manage les inputs, qui contrôle du KNX ou autre binding, on y voit que du feu à l’usage, et sans surcharge de réseau ou de ressource.
J’avoue avoir mis quelques temps pour arrivé à ce résultat
Bon courage donc, en attendant le binding V4 ! @seebag
Bonne soirée,
–
Vincent Ferreux
Intégrateur d’IPX depuis 2011
alterecoop.fr