Aller au contenu

Plus de push :-)


Messages recommandés

Posté(e)

Salut tout le monde, 

 

Alors là, je ne sais pas par où commencer, enfin surtout finir ;-)

 

Je n'ai plus de PUSH, mais les Interactive Push fonctionnent ;-).

Mystère mystère ;-) et j'avoue que je ne sais plus où chercher ;-) 

ID smartphone ok,

scene test juste avec un sendpush : KO

scene test interactive push : OK

reboot :ok

Desinstall/reinstall appli : OK

Check All IDs du master steven : ok

 

A vos idées !!

 

Merci

Posté(e)

Supprimé ton tel dans l'application
Puis connecte toi via l'application de tel
J'espère pour toi que tu gères l id de ton tel avec une VG.

Envoyé de mon SM-G901F en utilisant Tapatalk

Posté(e) (modifié)

Intéressante ton info @jojo :)

 

Il faudrait que je demande au rédacteur du tuto (il me semble avoir déjà vu son nom quelque part ? ;)), si la possibilité de choisir différents sons de notifs est disponible aussi sous iOS (car il existe un plugin pour ****auto-censuré *** )

Modifié par i-magin
Posté(e)

Justement je ne voulais pas en arriver là. Je l'ai fait pour le WAF, et depuis impossible de reconnecter l appli depuis. Rien a faire. Pourtant le tel est de nouveau reconnu. Bizarre
Javoue que je tourne en rond la..et ca cest plus important que mes pudh hihi.
Non je ne gere pas mon id de tel, vais peut etre m'y mettre mais avec un label.lol
Ma chance 90% de mes push viennent de GEA ms j'utilise plutôt les notifications sms pour ce qui est important. J utilisais pushbullet ms je n'y arrive plus et n'arrive pas a debugger alors que ca fo'ctionne ss jeedom.hihi
Jojo, puhover fo'ctionne aussi ss hc hihi
On vous a repéré les 2 sur ce forum lol

  • Upvote 1
Posté(e)
Il y a 20 heures, mprinfo a dit :

Supprimé ton tel dans l'application
Puis connecte toi via l'application de tel
J'espère pour toi que tu gères l id de ton tel avec une VG.

Envoyé de mon SM-G901F en utilisant Tapatalk
 

 

effectivement, c'est une bonne idée, ca éviter de modifier toutes ces scenes.

d'ailleurs la scene de @Steven ne récupère pas ces ID, une amélioration? 

Posté(e)

@sakkhho : si la scene de Steven recupere tout ;-) 

 

Bon, toujours pas mieux pour l'instant ;-) ..rien a faire pour le tel du WAF, je dois rater qqch mais je ne vois pas quoi

Posté(e)

Rien du tout ;-) mais je n'ai pas rejoue avec auj, dans les combles en train de poser des plaques de polyu ;-)

 

Vais retenter, c'est quand même bizarre comme comportement ;-)

 

Vais deja essayer de reconnecter le WAF avant de supprimer mon tel et ne plus pouvoir me connecter ;-)

 

Vais peut-etre renlever les VDs testés jeudi mais je ne vois vraiment pas le rapport

Posté(e)

Bon ben coupable trouvé

 

 - Désinstallation des 2 VDs installés Jeudi soir :push OK

 - Ajout VD Vacances scolaire (origine @Steven) modifié de @MAM78 : push KO

- Suppression VD Vacances Scolaire : push OK

- Ajout Détection Présence (origine @sebcbien) modifé de @mprinfo : pusk OK

 

Conclusion : coupable est le VD Vacances Scolaire ;-)

 

Mais j'ai relu le code avec mes maigres connaissances mais je ne vois pas ce qui cloche.

 

J'ai donc mis le nez dans tous les Vds et les Scenes et merci @mprinfo, j'ai mis les IDs dans ....un LABEL

 

local TelPepite = fibaro:getValue(72, "ui.TelPepite.value")

local TelWaf = fibaro:getValue(72, "ui.TelWaf.value")


 

 

 

  • Upvote 1
Posté(e)

oui, voilà il est aussi sur le post de @MAM78


 

-- --------------------------------------------------------------------------------------------------------------
-- Check that one and only one instance is in memory
-- --------------------------------------------------------------------------------------------------------------
if ((not Vacances) or (Vacances.errors >= 5)) then

    Vacances = {
        departement = "77",
        varglobal = "VacScolaire",
        varglobalJ = "VacScolaireJ",
        varglobalJ1 = "VacScolaireJ1",
          errors = 0
    }

    -- --------------------------------------------------------------------------------------------------------------
    -- URL
    -- --------------------------------------------------------------------------------------------------------------
      Vacances.url = "telechargement.index-education.com"

    -- --------------------------------------------------------------------------------------------------------------
    -- Optenir le fichier XML
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.getXml = function()
        local URL = Net.FHttp(Vacances.url)
        response, status, errorCode = URL:GET("/vacances.xml")
        return Vacances.iif(response ~= nil, Vacances.newParser().ParseXmlText(response), "")
    end

    -- --------------------------------------------------------------------------------------------------------------
    -- Rerecher la zone par rapport au numéro de département
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.getZone = function(xmlTable)
        if (xmlTable) then
            if (not xmlTable.root) then
                Vacances.errors = Vacances.errors+1
                return ""
            end
            local academies = xmlTable.root.academies
            for i in pairs(academies:children()) do
                local academie = academies.academie[i]
                local zone = academie["@zone"]
                local nom = academie["@libelle"]
                for j in pairs(academie:children()) do
                      local dep = academie.departement[j]
                    if (type(dep) ~= "nil") then
                        fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LabelZone.value", "["..zone.."] " .. nom)
                        if (academie.departement[j]["@numero"] == Vacances.departement) then
                            return zone, nom
                         end
                    else
                        if (academie.departement["@numero"] == Vacances.departement) then
                              return zone, nom
                          end
                    end
                end
            end
        end
        return ""
    end

    -- --------------------------------------------------------------------------------------------------------------
    -- Rechercher le libellé d'un congé
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.getLibelle = function(xmlTable, num)
        if (xmlTable) then
            if (not xmlTable.root) then
                Vacances.errors = Vacances.errors+1
                return ""
            end
            local libelles = xmlTable.root.libelles
            for i in pairs(libelles:children()) do
                if (libelles.libelle[i]["@id"] == num) then
                      local l = libelles.libelle[i]:value()
                      for k = 1, string.len(l)-1 do
                        local c = string.sub(l, k, k)
                        local d = string.byte(c)
                        fibaro:debug(c .. " " .. d)
                    end
                    return libelles.libelle[i]:value():gsub(string.char(235), "ë"):gsub(string.char(233), "é")
                end
            end
        end
        return ""
    end

    -- --------------------------------------------------------------------------------------------------------------
    -- Obtenir les dates futures des vacances par rapport à la zone
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.getDatesFuture = function(xmlTable, zone, date)
        if (xmlTable) then
            if (not xmlTable.root) then
                Vacances.errors = Vacances.errors+1
                return ""
            end
            local calendrier = xmlTable.root.calendrier
            local index = 1
            local envacance = false
            for i in pairs(calendrier:children()) do
                local zonecal = calendrier.zone[i]
                if (zonecal["@libelle"] == zone) then
                    --return libelles.libelle[i]:value()
                    for j in pairs(zonecal:children()) do
                        local datedeb = Vacances.getDateFormat(zonecal.vacances[j]["@debut"])
                        local datefin = Vacances.getDateFormat(zonecal.vacances[j]["@fin"])
                        fibaro:debug("Index"..index.." Deb:"..os.date("%d.%m.%Y", datedeb).." Fin:"..os.date("%d.%m.%Y", datefin).." Date:"..os.date("%d.%m.%Y", os.time()))
                          if (os.time() > datedeb and os.time() < datefin) then
                              local msg = os.date("%d.%m.%Y", datedeb) .. " - " .. os.date("%d.%m.%Y", datefin)  .. " | " ..Vacances.getLibelle(xmlTable, zonecal.vacances[j]["@libelle"])
                              fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", msg)
                              fibaro:debug("En vacances")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label0.value", "En vacances")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label10.value", "OUI")
                            envacance = true
                            --fibaro:setGlobal(Vacances.varglobal, "0")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobal..".value", "0")
                            --fibaro:setGlobal(Vacances.varglobalJ, "OUI")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobalJ..".value", "OUI")
                              index = index + 1
                        end
                        if (os.time()+24*60*60 > datedeb and os.time()+24*60*60 < datefin) then
                            fibaro:debug("En vacances J+1")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label11.value", "OUI")
                            --fibaro:setGlobal(Vacances.varglobalJ1, "OUI")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobalJ1..".value", "OUI")
                        end
                        if (datedeb > os.time()) then
                          local msg = os.date("%d.%m.%Y", datedeb) .. " - " .. os.date("%d.%m.%Y", datefin)  .. " | " ..Vacances.getLibelle(xmlTable, zonecal.vacances[j]["@libelle"])
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label"..index..".value", msg)
                          if (not envacance and index == 1) then
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label0.value", "Reste " .. Vacances.delai(datedeb) .. " jours"  )
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label10.value", "NON")
                            --fibaro:setGlobal(Vacances.varglobal, Vacances.delai(datedeb).."")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobal..".value", Vacances.delai(datedeb).."")
                            --fibaro:setGlobal(Vacances.varglobalJ, "NON")
                            fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobalJ..".value", "NON")
                            fibaro:debug("Pas en vacances aujourd'hui")
                            if (datedeb > os.time()+24*60*60) then
                              fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label11.value", "NON")
                              --fibaro:setGlobal(Vacances.varglobalJ1, "NON")
                              fibaro:call(fibaro:getSelfId(), "setProperty", "ui."..Vacances.varglobalJ1..".value", "NON")
                              fibaro:debug("Pas en vacances demain")
                            end
                          end
                          
                          index = index + 1
                        end
                    end
                end
            end
        end
    end

    -- --------------------------------------------------------------------------------------------------------------
    -- Transforme une date en string en date exploitable
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.getDateFormat = function(sdate)
        year,month,day = sdate:match("(%d+).(%d+).(%d+)")
        return os.time({day=day,month=month,year=year,hour=0,min=0,sec=0})
    end

    -- --------------------------------------------------------------------------------------------------------------
    -- Calcule le nombre de jours entre 2 dates
    -- --------------------------------------------------------------------------------------------------------------
    Vacances.delai = function(dated)
        diff = os.difftime(dated, os.time())
        return math.floor(diff / (60*60*24))
    end

    -- -------------------------------------------------------------------------------------------------------------
    -- Test the condition and return true or false param depending of the result
    -- param : condition (condition to test)
    --            iftrue (result to return of condition if true)
    --            iftfalse (result to return of condition if false)
    -- -------------------------------------------------------------------------------------------------------------
    Vacances.iif = function(condition, iftrue, iffalse)
        if (condition) then
            return iftrue
        end
        return iffalse
    end

    -- -------------------------------------------------------------------------------------------------------------
    -- This is a modified version of Corona-XML-Module by Jonathan Beebe which in turn
    -- is based on Alexander Makeev's Lua-only XML parser .
    -- see https://github.com/Cluain/Lua-Simple-XML-Parser
    -- -------------------------------------------------------------------------------------------------------------
    Vacances.newParser = function()

        parseXml = {}

        parseXml.FromXmlString = function(value)
            value = string.gsub(value, "&#x([%x]+)%;",
                function(h)
                return string.char(tonumber(h, 16))
                end);
            value = string.gsub(value, "&#([0-9]+)%;",
                function(h)
                return string.char(tonumber(h, 10))
                end);
            value = string.gsub(value, "\"", "\"");
            value = string.gsub(value, "'", "'");
            value = string.gsub(value, ">", ">");
            value = string.gsub(value, "<", "<");
            value = string.gsub(value, "&", "&");
            return value;
        end

        parseXml.ParseArgs = function(node, s)
            string.gsub(s, "(%w+)=([\"'])(.-)%2", function(w, _, a)
                node:addProperty(w,  parseXml.FromXmlString(a))
            end)
        end

        parseXml.ParseXmlText = function(xmlText)
            local stack = {}
            local top = parseXml.newNode()
            table.insert(stack, top)
            local ni, c, label, xarg, empty
            local i, j = 1, 1
            while true do
                ni, j, c, label, xarg, empty = string.find(xmlText, "<(%/?)([%w_:]+)(.-)(%/?)>", i)
                if not ni then break end
                local text = string.sub(xmlText, i, ni - 1);
                if not string.find(text, "^%s*$") then
                local lVal = (top:value() or "") .. parseXml.FromXmlString(text)
                stack[#stack]:setValue(lVal)
                end
                if empty == "/" then -- empty element tag
                local lNode = parseXml.newNode(label)
                parseXml.ParseArgs(lNode, xarg)
                top:addChild(lNode)
                elseif c == "" then -- start tag
                local lNode = parseXml.newNode(label)
                parseXml.ParseArgs(lNode, xarg)
                table.insert(stack, lNode)
                top = lNode
                else -- end tag
                local toclose = table.remove(stack) -- remove top

                top = stack[#stack]
                if #stack < 1 then
                    error("XmlParser: nothing to close with " .. label)
                end
                if toclose:name() ~= label then
                    error("XmlParser: trying to close " .. toclose.name .. " with " .. label)
                end
                top:addChild(toclose)
                end
                i = j + 1
            end
            local text = string.sub(xmlText, i);
            if #stack > 1 then
                error("XmlParser: unclosed " .. stack[#stack]:name())
            end
            return top
        end

        parseXml.newNode = function(name)
            local node = {}
            node.___value = nil
            node.___name = name
            node.___children = {}
            node.___props = {}
            function node:value() return self.___value end
            function node:setValue(val) self.___value = val end
            function node:name() return self.___name end
            function node:setName(name) self.___name = name end
            function node:children() return self.___children end
            function node:numChildren() return #self.___children end
            function node:addChild(child)
            if self[child:name()] ~= nil then
                if type(self[child:name()].name) == "function" then
                local tempTable = {}
                table.insert(tempTable, self[child:name()])
                self[child:name()] = tempTable
                end
                table.insert(self[child:name()], child)
            else
                self[child:name()] = child
            end
            table.insert(self.___children, child)
            end
            function node:properties() return self.___props end
            function node:numProperties() return #self.___props end
            function node:addProperty(name, value)
            local lName = "@" .. name
            if self[lName] ~= nil then
                if type(self[lName]) == "string" then
                local tempTable = {}
                table.insert(tempTable, self[lName])
                self[lName] = tempTable
                end
                table.insert(self[lName], value)
            else
                self[lName] = value
            end
            table.insert(self.___props, { name = name, value = self[name] })
            end
            return node
        end

        return parseXml;
    end

end

-- -------------------------------------------------------------------------------------------------------------
-- RUN
-- -------------------------------------------------------------------------------------------------------------
fibaro:debug("Lecture du fichier distant ...")
local xmlTable = Vacances.getXml()
if (Vacances.errors > 0) then
    time = "Erreur : " .. Vacances.errors
    fibaro:debug(time)
else
    fibaro:debug("Recherche de la zone pour le département : " .. Vacances.departement .. " ...")
    local zone, nom = Vacances.getZone(xmlTable)
    fibaro:debug(Vacances.departement .. " ==> [" .. zone .. "] " .. nom)

    Vacances.getDatesFuture(xmlTable, zone, os.time())

end

 

Posté(e) (modifié)

Hello @pepite Désolé que le VD congés scolaire soit à l'origine de ton problème.

 

Mais chez moi aucuns problèmes de Push notamment avec celui avec questions. Je viens de faire le test !

Modifié par MAM78
Posté(e)

Je viens de faire également le test sans utiliser l'API qui permet de poser des questions a partir de la commande suivante :

 

fibaro:call(12, "sendPush", os.date("Le %d/%m/%y a %HH%M : ", heureVariable).."Test sans PopUp (questions)") 

 

Et pas de problème non-plus !!!

 

Pourrais-tu nous donner un exemple de notification que tu utilises et qui ne fonctionne pas ? 

Posté(e)

Bonjour messieurs,

 

Très simple, n'importe quel push ne fonctionne pas.

Pour mes tests  j'ai juste fait un simple sendPush

 

fibaro:call(id, "sendPush", "test")

 

Tu n'as pas à t'excuser, tu n'y es pour rien du tout, c'est ma box qui ne veut pas de ton code modifié ;-) et je serais incapable d'écrire ce que vous partagez, je ne vais pas me plaindre quand même.

Faudrait que je tente avec la version non modifiée tiens.

 

Et le plus dingue c'est le comportement différent sur les 2 tels, WAF et le mien :

 - WAF : plus aucune connexion possible à l'appli

 - le mien : connexion OK, mais plus de push alors que les Interactive Push : OK, et les Popup OK aussi ;-)

 

Bizarre bizarre vous avez dit bizarre ;-)

 

×
×
  • Créer...