Vous avez un interrupteur 2 boutons aqara acheté sur banggood ou autre. Il fonctionne avec une pile et il utilise le protocole zigbee.
Vous voulez l'utiliser sous Domoticz pour commander une lampe ou autre.
Vous avez déjà installé une passerelle zigbee ConBee II et déclaré l'interrupteur. Si non voir https://www.tutos.eu/4031
En fait, vu que l'interrupteur a plusieurs boutons, il ne retournera pas une valeur 'ON' quand vous allez appuyer dessus mais B1 ou B2.
J'ai mis un peu de temps à comprendre;
D'ailleurs on le visualise sous Domoticz.
Du coup, il faut 'attendre' après ces valeurs et non pas après 'ON'
Ensuite ce que j'ai trouvé de plus simple pour cela, c'est d'utiliser un script LUA et non pas Blockly.
Pour le créer, aller dans les évènements
Ajouter un script
Choisir le type LUA et, chose qui a son importance, sélectionner Device
Coller le code ci-dessous
commandArray = {}
if (devicechanged['Interrupteur 2 boutons Xiaomi zigbee'] == 'B1') then
commandArray['UneLampe']='On'
print('Passage à B1')
end
if (devicechanged['Interrupteur 2 boutons Xiaomi zigbee'] == 'B2') then
commandArray['UneLampe']='Off'
print('Passage à B2')
end
return commandArray
Lien vers le fichier : cliquez ici
Une alternative à ce code qui utilise les 2 boutons est d'en utiliser un seul avec
commandArray = {}
if (devicechanged['Interrupteur 2 boutons Xiaomi zigbee'] == 'B1') then
if (otherdevices['UneLampe'] == "On") then
commandArray['UneLampe']='Off'
else
commandArray['UneLampe']='On'
end
end
return commandArray
Lien vers le fichier : cliquez ici
Nommer et sauvegarder
Ensuite il faut bien sur adapter le code, en mettant le bon nom de l'interrupteur que vous avez déclaré par exemple
Pareil avec le matériel qui sera piloté par l'interrupteur.
Ici dans le code j'ai mise UneLampe mais vous adapterez suivant ce que vous avez.
Le principe c'est qu'on utilise devicechanged pour trouver quand on a appuyé sur l'interrupteur.
Ensuite on regarde si c'est le bouton B1, B2 ou autre qui a été utilisé.
commandArray permet ensuite de passer un ordre à un périphérique.
print est facultatif et sert juste à avoir un retour dans les logs.
Logs que l'on trouve ici
Pages Web
Site Web | Description |
---|---|
github Smanar | Examples to use LUA script for switch |
domoticz.com | LUA commands |
domoticz.com forum | The light stays on while there is movement |