Page 1 sur 1

Gestion d'événements avec plusieurs télécommandes

Publié : 05 mars 2017, 18:24
par Alpha_
Bonjour,

Je suis confronté à un problème pour lequel je ne trouve aucune solution.

Je suis équipé d'un système avec raspberry, rfxcom et domoticz.
J'ai pas mal de capteurs divers (ouverture, mouvement, prises, sirène...)
J'ai déjà une centrale alarme qui n'est pas directement gérée dans domoticz, car elle n'émet aucun signal d'armement ou de désarmement.

Au jour d'aujourd'hui, ma femme et moi possédons chacun une télécommande pour armer (Arm Away ou Arm Home) la centrale alarme, la désarmer ou encore un bouton pannique.
Ces télécommandes sont intégrées dans domoticz et je reçois bien les signaux.
J'aimerais que, lorsque ces télécommandes passent en mode d'armement/désarmement, des événements soient déclanchés.
Tout fonctionne bien sauf un point, voici un scénario exemple

le matin, au réveil, ma télécommande et celle de ma femme sont toutes les deux en mode désarmé.
Le matin, je quitte le domicile avant ma femme, je n'arme donc pas la centrale. C'est ma femme qui, en partant la dernière, arme via sa télécommande. Ceci déclanche plusieurs événements comme fermer les stores, couper les prises électriques et activer la caméra.
Le soir, je rentre le premier, ma télécommande est donc toujours en mode désarmé vue que je ne l'ai pas utilisée depuis ce matin.
En appuyant sur désarmer, je coupe donc bien ma centrale alarme, mais je n'ai aucun changement dans domoticz vue que je ne reçois pas de devicechanged (script lua) et que ma centrale n'émet aucun statut. La caméra reste donc activée, les stores fermés et les prises off.
Au niveau domoticz je suis donc toujours dans le même état.

J'ai bien pensé et testé de faire un script lua pour que si une télécommande est armée, le changement soit répercuté sur les autres télécommandes.
Le problème c'est que ce changement, lorsqu'il est répliqué, envoi un nouveau signal à la centrale pour le nombre de télécommandes répliquées. Cela peut encore jouer si j'ai que deux télécommandes, mais j'en ai ajouté une troisième qui est utilisée par domoticz, et j'en ai encore deux physiques qui pourraient être utilisée par d'autres personnes, comme mes enfants.
Ce qui dans un cas complex pourrait faire envoyer jusqu'à 5 fois le signal d'armement et de désarmement lorsqu'une seule télécommande est enclanchée.

Est-ce que quelqu'un imaginerais une solution ? Idéalement il me faudrait la possibilité de passer un dispositif dans un autre état sans que ça transmette le signal, ou encore que le script lua soit exécuté même si l'état est identique.

J'espère avoir été claire, n'hésitez pas à me dire sinon.

Merci par avance pour votre aide.

Re: Gestion d'événements avec plusieurs télécommandes

Publié : 05 mars 2017, 18:35
par vil1driver
Salut,



lorsque tu dis
ma télécommande est donc toujours en mode désarmé vue que je ne l'ai pas utilisée depuis ce matin.
tu parles bien de son status dans domoticz ?

devicechanged ne prends pas en compte le status mais la mise à jour du status même si ce dernier ne change pas..

tu peux donc en principe appuyer plusieurs fois sur armer, domoticz devrait à chaque fois le voir..

je comprends que tu as dans domoticz autant de devices que de télécommandes..

tu peux ajouter toutes tes télécommandes aux autre par le biais des dispositifs esclaves,
l'appui sur n'importe quelle télécommande changera donc le status de toutes les autres sans envoyer d'ordre radio

sinon tu peux aussi créer un événement pour changer l'état d'un switch virtuel selon les actions de tes télécommandes, et ne prendre en compte que ce switch virtuel pour tes scénarios.
selon moi ce serait peut-être le plus simple de gestion.

quelque chose comme cela

Code : Tout sélectionner

-- script_device_telecommandes.lua

local switch = 'mon switch'	-- nom du switch virtuel

local telecommandes = {}

-- liste de telecommandes
telecommandes['0']='premiere'
telecommandes['1']='deuxieme'
telecommandes['2']='troisieme'
-- etc..

commandArray = {}

for i, device in pairs(telecommandes) do
	if devicechanged[device] then
		commandArray[switch] = otherdevices[device]
		break
	end
end

return commandArray
	

Re: Gestion d'événements avec plusieurs télécommandes

Publié : 06 mars 2017, 07:34
par Alpha_
Salut,

Merci pour tes propositions. Je vais essayer ça dans la journée.
Quand ma télécommande est désarmée (donc bien son statut dans domoticz) et que j'appuis dessus une nouvelle fois pour la désarmer, j'ai bien une ligne dans le log qui indique que j'ai actionné ma télécommande, mais le script lua n'est pas exécuté, du moins ma télécommande ne fait pas partie des devicechanged.
Ta solution pour les dispositifs esclaves m'intéresse, je pense que ça pourrait le faire. à condition que chacune puisse être esclave des deux autres.
sinon pour le switch virtuel, c'est ce que j'ai fait actuellement mais ça ne change malheureusement pas le problème.
si ma télécommande est désarmée (toujours dans statut domoticz) et que mon switch virtuel est armé (suite à l'armement télécommande de ma femme) et que je désarme via ma télécommande, mon script n'étant pas exécuté, je peux pas non plus changer l'état du switch virtuel. et j'ai choisis un switch de type Arm Away/Arm Home/Alert/Disarm, donc pas possibilité de faire un on/off via les réglages des télécommandes, du moins pas à ma connaissance.

je tests quelques trucs et reviens dans la journée.

Re: Gestion d'événements avec plusieurs télécommandes

Publié : 06 mars 2017, 14:04
par Alpha_
Malheureusement je n'ai aucun périphérique esclave dans la liste quand j'édite les télécommandes. J'en ai bien sur d'autres types de dispositifs, mais pas ceux là...

J'ai pu ajouter une télécommande en la supprimant dans les dispositifs et en la rajoutant directement comme esclave de mon switch alarme virtuel, mais quand l'état du switch change, le statut n'est pas répliqué, il reste sur "Normal" alors qu'il devrait passer en Arm Away ou Disarm.

Re: Gestion d'événements avec plusieurs télécommandes

Publié : 07 mars 2017, 12:51
par Alpha_
J'avance doucement.
J'ai mis en place une solution de contournement qui fonctionne mais qui n'est pas la plus propre.
A la place de mon switch virtuel de type sélecteur, j'ai mis un switch qui ne fait que on/off. A celui là j'ai pu associer des dispositifs esclaves, j'ai donc mis mes trois télécommandes.
Lorsque le switch change d'état, les télécommandes se mettent en état "Normal" que ce soit armé, désarmé ou partiel.
Je gère au niveau lua le changement de statut d'une des télécommandes, qui passe l'état du switch à on/off. De cette manière le statut des télécommandes est toujours "Normal" et je peux appuyé autant de fois sur le même boutons et tout est exécuté.

J'espère que ceci pourra changer à l'avenir, ce serait bien que les périphériques esclaves puissent être ajoutés sur tout type de dispositif. Je sais pas si c'est un bug ou si c'est souhaité.
Si d'autres solutions me sont proposées elles sont les bienvenues.

Merci pour la piste des dispositifs esclaves qui m'a menée jusqu'à là.