fel-x Posté(e) il y a 23 heures Signaler Posté(e) il y a 23 heures (modifié) Salut dans mon code, je voudrais pouvoir vérifier si un device est multistate ou pas. En fournissant l'ID d'un module ou d'une QA, je voudrais une vérification immédiate du status multistate ou non. J'ai été lire les Json de plusieurs devices via /api/devices/#ID mais je n'ai pas trouvé une propriété caractéristique... Bien entendu on peut le déduire assez facilement selon le type, ou le basetype, ou le supportedDeviceRoles, etc... Mais je cherche un fonction Lua qui pourra me le dire tout de suite ? Suis-je passé à côté d'une évidence? merci Modifié il y a 11 heures par fel-x
fel-x Posté(e) il y a 12 heures Auteur Signaler Posté(e) il y a 12 heures Je vais donner une précision sur la finalité car ce n'est pas très clair à la relecture J'écris une QA (dont vous pourrez peut-être profiter sous peu) qui permet de sélectionner des icônes de sa box, et de les attribuer à n'importe quel device (parent, enfant, caché, etc.), avec interface visuelle pratique. C'est purement pour enjoliver le UI ! Afin d'éviter une situation où un utilisateur attribuerait une icône monostate à un device 'multistate' (on devrait plutôt dire "multi-icône"), je voudrais les détecter et empêcher l'exécution. En effet, le UI va chercher les états différents d'une icône dans le cas des modules/QA qui peuvent changer d'état, comme les switches ON/OFF ou des volets par exemple. --> Ce que je cherche c'est une façon (simple?) d'identifier si pour un module donné, la box va chercher des icônes selon l'état ou une icône fixe. Le properties.deviceIcon n'est pas suffisant, ni le contenu du properties.icon (qui parfois est vide, ou fait référence dans properties.icon.path à un fichier SVG plutôt qu'à une icône PNG avec suffixes d'état '#ID0.png' '#ID100.png'). Quant à properties.icon.source il peut valoir 'HC' ou 'HC_USER' sans que cela n'ait d'impact réel sur le fonctionnement. j'espère que ça a du sens ce que je dis
Lazer Posté(e) il y a 10 heures Signaler Posté(e) il y a 10 heures Soit je n'ai pas bien compris ce que tu cherches, soit.... c'est tout simple Il faut rechercher les devices de type com.fibaro.multiPositionSwitch : /api/devices?type=com.fibaro.multiPositionSwitch Et donc vérifier le type du module dans son JSON :
jang Posté(e) il y a 7 heures Signaler Posté(e) il y a 7 heures (modifié) There is no ready made function - you have to do it yourself. function QuickApp:iconCount(typ) local map = { [QuickAppBase.iconProviders.single]=1, -- single icon [QuickAppBase.iconProviders.binary]=2, -- off,on [QuickAppBase.iconProviders.multilevel]=11, -- 0%,10%,20%,30%,40%,50%,60%,70%,80%,90%,100% [QuickAppBase.iconProviders.baseShutter]=5 -- opening,opened,closing,closed,unknown } local iconProvider = QuickAppBase.deviceIconTypeMapping[typ] or "" return map[iconProvider] end function QuickApp:onInit() self:debug(self.name, self.id) print(self:iconCount("com.fibaro.energyMeter")) print(self:iconCount("com.fibaro.multilevelSwitch")) print(self:iconCount("com.fibaro.baseShutter")) end iconCount returns number of icons for a specific type. Currently there only seems to be 4 options, 1,2,5,11 icons. If it is not mapped (return nil), try with the device baseType and see if that is mapped. ...or Fibaro has forgot to do the mapping. Modifié il y a 7 heures par jang 2
Messages recommandés