Page 1 sur 2

[RESOLU] Inverser les comandes envoyées par un interrupteur Domoticz

Publié : 08 mai 2019, 09:05
par finopat
Bonjour à tous.
Je commence ma domotisation et je suis donc en pleine découverte de Domoticz.
J'ai un besoin simple : commander les radiateurs électriques à l'aide de Domoticz et mon choix s'est donc porté sur l'utilisation des sonoff basic.
Mes premiers essais sont concluant (flash espeasy pas si easy que cela ayant reçu des Sonoff Basic RF R2 V1.0 mais grâce au forum j'ai trouvé).
Maintenant mon souci est l'intégration à Domoticz : j'ai créé un interrupteur et j'ai bien le retour d'état .
Par contre du coup j'ai un interrupteur qui indique l'état ON quand le radiateur est éteint (j'utilise le fil pilote).
J'ai donc essayé d'inverser les actions de l'interrupteur :
http://192.168.0.102/control?cmd=gpio,12,0 sur Action On et http://192.168.0.102/control?cmd=gpio,12,1 sur Action Off.

Mais cela ne fonctionne pas, quand je clique sur l'interrupteur le relais "clignote" : il passe en continue de 1 à 0 puis 1 ...
Dès que je remets http://192.168.0.102/control?cmd=gpio,12,1 dans Action On j'ai le retour à la normale.
C'est un peu comme si Domoticz envoyait deux ordres : le 0 configuré et un 1 "implicite".
Peut être est ce du au retour d'état envoyé par le sonoff ?
Quels sont les solutions de contournement que vous me conseillez ?

Dans les logs du device je reçoit bien des ordres http :

Code : Tout sélectionner

226974310: HTTP: gpio,12,1
226974314: SW   : GPIO 12 Set to 1
226988575: HTTP: gpio,12,0
226988579: SW   : GPIO 12 Set to 0
226988627: SW  : GPIO=12 State=0 Output value=0
226988635: EVENT: Relais#Etat=0.00
226988967: HTTP: gpio,12,1
226988971: SW   : GPIO 12 Set to 1
226989027: SW  : GPIO=12 State=1 Output value=1
226989031: EVENT: Relais#Etat=1.00
226989369: HTTP: gpio,12,0
226989373: SW   : GPIO 12 Set to 0
226989427: SW  : GPIO=12 State=0 Output value=0
226989430: EVENT: Relais#Etat=0.00
226989763: HTTP: gpio,12,1
226989768: SW   : GPIO 12 Set to 1
226989827: SW  : GPIO=12 State=1 Output value=1
226989830: EVENT: Relais#Etat=1.00
226990168: HTTP: gpio,12,0
226990172: SW   : GPIO 12 Set to 0
226990227: SW  : GPIO=12 State=0 Output value=0
226990230: EVENT: Relais#Etat=0.00

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 09 mai 2019, 09:54
par finopat
J'ai ajouté un interrupteur avec un script qui inverse les commandes sur celui qui commande le relais
Image

Je pense sinon qu'on peut aussi passer par un script qui serait lancé quand on clique sur on/off de l'interrupteur non ?

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 09 mai 2019, 16:47
par finopat
J'ai fait le script en bash, je validerais le bon fonctionnement ce soir :

Code : Tout sélectionner

#!/bin/bash
#allume ou eteint le relais
#parametres : adresse IP suivie de on ou off
#/onOff.sh 192.168.0.102 on



if [ "$2" = on ];
	then curl "http://$1/control?cmd=gpio,12,1";
elif [ "$2" = off ];
	then curl "http://$1/control?cmd=gpio,12,0";
fi

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 09 mai 2019, 20:32
par finopat
C'est donc bien un bug de domoticz : même avec le script, si je mets Action On avec le script script:///home/pat/scriptsDomoticz/onOff.sh 192.168.0.102 off
ça me transforme le relais en clignotant ..

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 09 mai 2019, 20:52
par vil1driver
Salut,

Ce n'est pas un bug.

Si ton sonoff retourne son état et que tu as fait en sorte que domoticz y réagisse par envoi d'un ordre opposé, c'est normal non ?

Oui je pense qu'il faut voir côté sonoff pour qu'il retourne l'état que tu souhaites (Off si relai à 1) tout en conservant ton script, cela ne devrait plus faire sapin de Noël
Mais malgré tout probablement lancer des ordres en boucle.

Il existe une façon de changer l'état d'un switch sans que ce dernier ne déclanche d'action, en json, voir updatedevice.
Je pense que c'est la meilleure façon que ton sonoff aurait de remonter son état

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 10 mai 2019, 13:19
par finopat
Merci pour la réponse,
en fait l'état sapin de Noel a lieu avec seulement un switch et pas de script.
J'ai fait un essai en desactivant le retour d'info sur le sonoff et cela fonctionne, donc deux choix
  • vouloir l'info de l'état du relais qq part dans domoticz, donc passer par le script qui inverse un switch par rapport à un autre => l'état est connu avec le switch "commande"
  • je m'abstient d'avoir l'info qq part
Qu'est ce que vous me conseillez vous les anciens avec le recul ?

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 10 mai 2019, 13:20
par finopat
Il existe une façon de changer l'état d'un switch sans que ce dernier ne déclanche d'action, en json, voir updatedevice.
Je pense que c'est la meilleure façon que ton sonoff aurait de remonter son état
Je vais fouiller dans cette direction
merci pour la piste

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 10 mai 2019, 16:04
par finopat
Mon problème ressemble à cela :
https://github.com/domoticz/domoticz/issues/1227
mais je n'ai pas compris comment psolyca avait résolu son souci.

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 10 mai 2019, 17:24
par vil1driver
Pas vraiment non, il parlait de la commande que je te conseillerais et qui au fil d'erreurs de développement avait vu son fonctionnement transformé.

Mais cela à été rectifié depuis..

Re: Inverser les comandes envoyées par un iinterrupteur Domoticz

Publié : 14 mai 2019, 15:32
par adv
finopat a écrit : 10 mai 2019, 13:20
Il existe une façon de changer l'état d'un switch sans que ce dernier ne déclanche d'action, en json, voir updatedevice.
Je pense que c'est la meilleure façon que ton sonoff aurait de remonter son état
Je vais fouiller dans cette direction
merci pour la piste
Est ce que cela peut t'aider ?!
viewtopic.php?f=17&t=8390