Aller au contenu

QA pour activer/désactiver les notifications


jjacques68

Recommended Posts

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...)

image.thumb.png.f73879122e384bdfc621f2dc08ce0dbe.png

 

CREATION DU QA DE COMMANDE :

 

fichier téléchargeable à la fin du tuto...

 

on y voit 2 boutons, enable et desable.

 

image.thumb.png.95ea6e97cea360e4bc8023363dd96538.png

 

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

 

 

 

telephone.png.b913cbeca2c2d8c8ea616ac40e0b2ac3.pngtelephoneOFF.png.415f5352e9a260511dd7537e46ebabf0.png

 

 

 

 

Modifié par jjacques68
  • Like 2
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...