Aller au contenu

QuickApp du type com.fibaro.multiPositionSwitch


Krikroff

Recommended Posts

Le support du nouveau type "com.fibaro.multiPositionSwitch" est disponible depuis la version beta 5.092.19

 

Il est basé sur le type standard "binarySwitch" et supporte les rôles suivants: Chauffage; Lumière; Interrupteur et le commun "Autre appareil"

 

image.png.08b142b7cfc74ceb920f89d073a5e607.png

 

Nous avons donc dans le json

 

image.png.9917965f5c094ef78e119bf6b2e4e848.png

 

Il expose dans ses propriétés un tableau nommé "availablePositions" permettant d'initialiser le QuickApp et mettre à disposition du contrôleur les informations nécessaires à son utilisation dans les scènes.

 

image.png.1c45af833f340bd967b2e5bc40fca738.png

 

La position en cours est persisté et exposée dans

 

image.png.395e673dae55ec97449f0f364b3fc5d3.png

 

Les actions disponibles sont setPosition, toggle, turnOff, turnOn

 

image.png.311971e1f8696d0e6e838c086e111258.png

 

Voici quelques explications sur comment le mettre en œuvre.

 

Tout d'abord il est nécessaire d'initialiser le tableau avec les positions possibles, pour cela un self:updateProperty en phase d'initialisation sera nécessaire.

 

Ex.

 

--! Command table
QuickApp.command = {
    ['confort'] = {
        mode = 'Confort', 
        value = 99
    },
    ['confort1'] = {  
        mode = 'Confort -1 °C',
        value = 50
    },
    ['confort2'] = { 
        mode = 'Confort -2 °C',
        value = 40
    },
    ['eco'] = { 
        mode = 'Eco / Réduit',
        value = 30
    },
    ['hg'] = { 
        mode = 'Hors gel',
        value = 20
    },
    ['off'] = {
        mode = 'Arrêt / Délestage',
        value = 0
    }
}

-- A placer dans la méthode de config du QuickApp à l'init
local availablePositions = {
  {label = self.command['confort'].mode, name = 'confort'},
  {label = self.command['confort1'].mode, name = 'confort1'},
  {label = self.command['confort2'].mode, name = 'confort2'},
  {label = self.command['eco'].mode, name = 'eco'},
  {label = self.command['hg'].mode, name = 'hg'},
  {label = self.command['off'].mode, name = 'off'}
}

self:updateProperty("availablePositions", availablePositions) 

Cette configuration donne le résultat suivant:

 

image.png.52fc3bac44a6bc339ba0c419cefe3247.png

 

Afin de pouvoir traiter les demandes, il est nécessaire d'implémenter les actions associées au type "binarySwitch" et celle dédiée au multiPositionSwitch

 

Par exemple:

 

-----------------------------------------------
-- ACTIONS
-----------------------------------------------

--! [public] set switch position
--!@return none
--!@example: fibaro.call(0, "setPosition", "confort")
function QuickApp:setPosition(value)
    assert(type(value) == "string", "position variable is not a string")
    self:dispatch(value)
end
--! [public] turn ON - Confort
--!@return none
--!@example: fibaro.call(0, "turnOn")
function QuickApp:turnOn()
    self:dispatch('confort')
end
--! [public] turn OFF - Arrêt
--!@return none
--!@example: fibaro.call(0, "turnOff")
function QuickApp:turnOff()
    self:dispatch('off')
end
--! [public] toggle state
--!@return none
--!@example: fibaro.call(0, "toggle")
function QuickApp:toggle()
    local position = getPosition();
    if (position ~= nil) then
        if (position == 'off') then
            self:dispatch('confort')
        else
            self:dispatch('off')
        end
    end
end
--! [public] wakeUpDeadDevice - WakeUp device
--!@return none
--!@example: fibaro.call(0, "wakeUpDeadDevice")
function QuickApp:wakeUpDeadDevice()

end

 

Amusez-vous bien :)

 

  • Like 5
  • Thanks 1
Lien vers le commentaire
Partager sur d’autres sites



Kamasutra Qubino Fil Pilote [emoji3]
 
Cette fonction self:dispatch(), c'est quoi ?
 
 


C'est vrai que l'un ou l'autre procure de la chaleur [emoji23]

Envoyé de mon BLA-L29 en utilisant Tapatalk

  • Like 1
  • Haha 2
Lien vers le commentaire
Partager sur d’autres sites

Hum, c'est une bonne idée et je n'avais pas du tout pensé à ça @MAM78, mais @flacon030 va te détester, car je viens de finir il y a 30 minutes la dernière version du nouveau QA... avec, ô surprise, la remonté d'injection car j'ai finalement réussi à l'intégrer dans le QA :)

Du coup je suis obligé de reporter la publication du QA et d'ajouter les child devices multiPosition :D Ou alors plus raisonnable je partage en l'état et j'ajoute ça après....

  • Like 1
Lien vers le commentaire
Partager sur d’autres sites

@lazer il y a pas d’urgence, mais ce serait cool quand même.

 

Ce serait pour piloter un sèche serviette de salle de bain sur demande. Ce radiateur peut fonctionner soit en chauffage central (eau), soit électrique. Notamment en demi-saison où lorsque le chauffage central est arrêté.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...