ESPeasy + ESP8266 simple interrupteur

Bonjour,
voila, je me heurte à un petit problème.
admettons 1 module avec espeasy d’installé.
j’ai un bouton poussoir sur une entrée configurée en simple switch
Une sortie avec un relais

j’ai mis cette rule

On btn#btnstate Do // si pression bouton poussoir
If [relay#relaystate]=0 //Etat relais de sortie
GPIO,16,1 // relais ON
Else
GPIO,16,0 // relais off
Endif
Endon

quand j’appuie sur le bouton, le relais change d’état, mais dès que je relâche le bouton, le relais repasse aussitôt au repos.
en fait j’aimerais un système de télérupteur.
en plus, j’ai une multitude de ces montages perso chez moi et chacun a deux boutons. Dans certain cas, je veux pouvoir commander la lumière d’un autre ESP depuis le premier. Ca fonctionne avec
sendTohttp 192.168.1.203,80,/control?cmd=gpio,12,1

A vous lire

Bonjour
Est ce que ajouter un « =1 » règlerait le soucis ?

On btn#btnstate=1 Do // si pression bouton poussoir
If [relay#relaystate]=0 //Etat relais de sortie
GPIO,16,1 // relais ON
Else
GPIO,16,0 // relais off
Endif
Endon

Plus optimum

On btn#btnstate=1 Do // si pression bouton poussoir
 GPIOtoggle,16
Endon

et ajouter un debounce time de 200ms par exemple

Bravo, vous êtes des champions.
Merci kaktusatomik
Et merci Djelau pour ta solution encore plus courte
Il ne me reste plus qu’à tester entre deux de mes interrupteurs et le lien avec Jeedom

Je viens de tout tester et ma règle ressemble maintenant à ça

On btn#btnstate=1 Do // si pression bouton poussoir

If [relay#relaystate]=0 //Etat relais de sortie

    GPIO,12,1 // relais ON

Else

    GPIO,12,0 // relais off

Endif
Endon

On relay#relaystate Do
if[relay#relaystate]=1
NeoPixel,3,255,0,0
sendTohttp 192.168.1.203,80,/control?cmd=NeoPixel,4,255,0,0
rtttl,14:d=10,o=6,b=180,c,e,g
Else
NeoPixel,3,0,255,0
sendTohttp 192.168.1.203,80,/control?cmd=NeoPixel,4,0,255,0
rtttl,14:d=10,o=6,b=180,g,e,c
Endif

Endon

on btn2#btn2state do
if [btn2#btn2state]=1

sendTohttp 192.168.1.203,80,/control?cmd=gpio,12,1

else

sendTohttp 192.168.1.203,80,/control?cmd=gpio,12,0

endif
endon

Merci merci merci

si c’est pour communiquer avec un autre ESP, tu devrais plutôt utiliser le protocole UDP (il faut au préalable définir un numéro unique d’ESP <-unit nbr-> dans l’onglet Config et activer Inter-ESPEasy Network dans l’onglet Advanced avec UDP port=8266

SendTo,<-unit nr->, 'NeoPixel,4,255,0,0'

Remplacable par

on btn2#btn2state do
 sendTohttp 192.168.1.203,80,/control?cmd=gpio,12,[btn2#btn2state]
endon

ou

on btn2#btn2state do
 sendTo ,<-unit nr->,'gpio,12,[btn2#btn2state]'
endon