Xiaomi switch et Domoticz

28 juillet 2017

J’ai pas mal de module Xiaomi en plus de la passerelle, notamment des boutons ronds.

Ils ont trois possibilités d’actions : clique, double clique et clique long.

J’ai aussi une prise commandée Xiaomi et j’ai écris un petit script lua pour gérer celle ci avec le bouton Xiaomi.

Cela me permet de contrôler mon micro-onde qui n’est pas tout jeune. Je l’utilise pour réchauffer des petits pots par exemple.

Un clique active le micro-onde pendant 10 secondes, le double clique pendant 30 secondes et le clique long pendant 2 minutes.

commandArray = {}

-- Commande Selector Switch
    if (devicechanged['Xiaomi Switch Micro-onde'] == 'Click') then
        print("MicroOnde: Click ON for 10s")
        commandArray['Xiaomi Switch Micro-onde']='Off'
        commandArray[1]={['Xiaomi Smart Plug']='On'}
        commandArray[2]={['Xiaomi Smart Plug']='Off AFTER 10'}
    end

    if (devicechanged['Xiaomi Switch Micro-onde'] == 'Double Click') then
        print("MicroOnde: Double Click ON for 30s")
        commandArray['Xiaomi Switch Micro-onde']='Off'
        commandArray[1]={['Xiaomi Smart Plug']='On'}
        commandArray[2]={['Xiaomi Smart Plug']='Off AFTER 30'}
    end
    
    if (devicechanged['Xiaomi Switch Micro-onde'] == 'Long Click' ) then
        print("MicroOnde: Long Click ON for 2m")
        commandArray['Xiaomi Switch Micro-onde']='Off'
        commandArray['Xiaomi Smart Plug']='On FOR 2'
    end

return commandArray

Clique !

J’en ai un autre pour gérer les lumières aussi, si vous êtes intéressés, faites moi signe !

5 commentaires

  • tomaprice 12 décembre 2017 à14 h 49 min

    Merci pour ce script qui m’a permis de gérer mon bouton rond xiaomi et l’état ON/OFF avec le click tout en gardant le double click pour une autre action.
    Je partage le script retouché :
    — Bouton physique d’activation de l’alarme

    commandArray = {}

    — Alarme totale

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Click’ and otherdevices[‘Alarme_out’] == ‘Off’) then
    print(« Activation alarme out par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_out’]=’On’}
    end

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Click’ and otherdevices[‘Alarme_out’] == ‘On’) then
    print(« Désactivation alarme out par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_out’]=’Off’}
    end

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Click’ and otherdevices[‘Alarme_in’] == ‘On’) then
    print(« Désactivation alarme out par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_out’]=’On’}
    commandArray[2]={[‘Alarme_in’]=’Off’}
    end

    — Alarme partielle

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Double Click’ and otherdevices[‘Alarme_in’] == ‘Off’) then
    print(« Activation alarme in par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_in’]=’On’}
    end

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Double Click’ and otherdevices[‘Alarme_in’] == ‘On’) then
    print(« Activation alarme in par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_in’]=’Off’}
    end

    if (devicechanged[‘Xiaomi_Bouton’] == ‘Double Click’ and otherdevices[‘Alarme_out’] == ‘On’) then
    print(« Activation alarme in par bouton physique »)
    commandArray[‘Xiaomi_Bouton’]=’Off’
    commandArray[1]={[‘Alarme_in’]=’On’}
    commandArray[2]={[‘Alarme_out’]=’Off’}
    end

    return commandArray

    • simon 12 décembre 2017 à16 h 09 min

      Merci pour ton script ! 🙂

  • Jerome 4 février 2018 à9 h 49 min

    Bonjour,

    j’ai essayé de rependre ton script (je n’y connais rien) pour allumer et éteindre une ampoule Yeelight avec un switch Aqara.
    Seul hic, il ne se passe rien quand je click. ai je fait une erreur ?
    Voici le code :

    — Bouton physique lumière couloir

    commandArray = {}

    — Allumer couloir

    if (devicechanged[‘Switch_couloir_haut’] == ‘Click’ and otherdevices[‘YeeLight_couloir_haut’] == ‘Off’) then
    print(“Allumage couloir haut par bouton physique”)
    commandArray[‘Switch_couloir_haut’]=’Off’
    commandArray[1]={[‘YeeLight_couloir_haut’]=’On’}
    end

    if (devicechanged[‘Switch_couloir_haut’] == ‘Click’ and otherdevices[‘YeeLight_couloir_haut’] == ‘On’) then
    print(“Extinction couloir haut par bouton physique”)
    commandArray[‘Switch_couloir_haut’]=’Off’
    commandArray[1]={[‘YeeLight_couloir_haut’]=’Off’}
    end

    return commandArray

    • simon 5 février 2018 à1 h 15 min

      As tu bien définis le script comme étant de type lua -> Device ?
      Dans la partie en haut à droite de l’éditeur de script.

  • Jerome 5 février 2018 à10 h 52 min

    Non, je vais retester.

    Merci 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.