TUTOS.EU

Utiliser un interrupteur zigbee 2 boutons avec Domoticz

Interpréter les ordres d'un interrupteur zigbee 2 boutons Aqara

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 Copier le code

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 Copier le code

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 WebDescription
github SmanarExamples to use LUA script for switch
domoticz.comLUA commands
domoticz.com forumThe light stays on while there is movement

2