jjacques68 Posté(e) le 25 mars 2020 Signaler Posté(e) le 25 mars 2020 (modifié) Hello tout le monde : Voici un exemple de ce que j'ai fais pour pouvoir désactiver ou activer les notifications de nos précieux device. Dans mon cas, je ne vois pas l'intérêt de recevoir les notifications si on est présent à la maison (surtout en ce moment)... A la fin de la journée, ça monte à plusieurs centaines quand même ! Donc l'idée était de créer un QA pour tout désactiver ou tout activer. PRÉREQUIS : configurer vos notifications quand même au moins une fois pour chaque device (c'est du boulo...) exemple pour une lampe : (perso je n'utilise que les notification push, jamais les mail...) CREATION DU QA DE COMMANDE : fichier téléchargeable à la fin du tuto... on y voit 2 boutons, enable et desable. et voici le code... pas très compliqué : ------------------------------------------------------------------------------------------------- -- V1 - 25/03/2020 - Active/désactive les notifications push ------------------------------------------------------------------------------------------------- function QuickApp:onInit() self.ListeEvent = { "IsOpening", --Volet ouvert "IsClosing", --Volet fermé "TurningOn", --lumière ON "TurningOff", --lummière OFF "Motion", --détection PIR "Flood", --détection inondation "Opening", --ouverture d'une porte/fenêtre } end function QuickApp:turnOn() self:updateProperty("value", true) self:UpdateNotif(true) end function QuickApp:turnOff() self:updateProperty("value", false) self:UpdateNotif(false) end -------------------------------------------------------- -- Modifie l'API suivant l'argument true ou false -------------------------------------------------------- function QuickApp:UpdateNotif(value) --liste tous les device VISIBLE ListeDevice = api.get("/devices/?visible=true") --pour chaque device trouvés for i = 1, #ListeDevice do --récupère les notifications de ce device MyNotif = api.get("/deviceNotifications/v1/"..ListeDevice[i].id) --pour chaque notif de ce device for j = 1, #MyNotif do --teste pour chaque Evenement for k,v in pairs(self.ListeEvent) do --si l'évenement est trouvé, on modifie if v == MyNotif[j].type then MyNotif[j].active = value end end end --applique les modifications pour ce device api.put("/deviceNotifications/v1/"..ListeDevice[i].id, MyNotif) end self:debug("Notification = "..tostring(value)) end UTILISATION : pour utiliser ce QA dans nos applications : il suffit de l'appeler avec la commande suivante : (attention l'ID est celui du QA commande, = 438 chez moi) fibaro.call(438, "turnOn") fibaro.call(438, "turnOff") Voilà tout ! C'est tout simple. on pourrait imaginer des futurs améliorations, comme par exemple mettre une liste d'exclusion, si l'on veut quand même garder certaine notification... Merci à @Krikroff qui m'a aidé à trouver les infos à modifier dans l'API. FICHIERS : Enable_Push.fqa Modifié le 30 mars 2020 par jjacques68 2
pepite Posté(e) le 25 mars 2020 Signaler Posté(e) le 25 mars 2020 Well done !!Envoyé de mon BND-L21 en utilisant Tapatalk
Messages recommandés