Aller au contenu
54allan54

Notifications Push sur plusieurs périphériques

Recommended Posts

Bonjour !!

 

Je suis en train de faire une scène et dans celle ci j'ai besoin d'avoir une notification push sur la totalités des appareils enregistrés dans la box (et les futurs a venir), hors en scène bloc il n'y pas possibilité de choisir "all devices" ou quelques chose de similaire. Si je la converti en LUA j'ai : fibaro:call(255, "sendDefinedPushNotification", "203" et j'aimerai pouvoir mettre tout les devices au lieu du 255.

 

Merci a vous pour vos lumières ! Très bonne journée :) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors tu peux faire un boucle genre:

local ids = {10,20,30,40,50}

for key, value in ipairs(ids) do
	print("send to ", value)
	fibaro:call(value, "sendDefinedPushNotification", "203")
end

ou essayer avec un

fibaro:callGroupAction("sendDefinedPushNotification", filters)

mais si tu vas galérer avec les filtres...

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah le grand Krikroff !! Tout d’abord merci pour ta réponse. Alors excuse mon manque de connaissances en dev mais les local ids que tu indiquent, ça correspond à quoi ? Les id des devices ? Parce que si c’est le cas il faut prendre en considération qu’il y aura des id futures (par exemple lors d’un achat d’un nouveau smartphone)

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, 54allan54 a dit :

j'aimerai pouvoir mettre tout les devices au lieu du 255.

Voilà c’est ça les ids ;) c’est toi qui renseigne ce que tu souhaites. Ici local c’est pour déclarer ta variable, et il s’agit de notre cas d’un tableau de valeur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui ça j’ai bien compris mais ce que je souhaite c’est définir les futurs id automatiquement a l’avenir. En fait j’ai installé une hc2 au père d’un copain mais j’ai pas envie de devoir lui refaire les scènes a chaque fois qu’il changera son iPhone par exemple. On peut le faire directement sur les modules, ça envoie une notification à la totalité des appareils connectés à la box mais sur les scènes je ne trouve pas de solution 

10BE491B-298C-4700-A819-2F38349C8F62.jpeg

Partager ce message


Lien à poster
Partager sur d’autres sites

Je trouve toujours pas de solution :unsure: 

Bizarre que Fibaro ne l'ai pas intégré 

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a pas possibilité d'intégrer un petit script dans la scène pour qu'elle récupère les différents ID des smartphones et les intègres automatiquement ? Désolé je suis vraiment nul ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n’y a rien en effet nativement pour faire cela, il faut faire un peu de code.

C’était l’idée... alimenter le tableau avec les devices déclarés...

 

 

Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis en train de créer un VD qui a pour but de récupérer et lister les IDs directement depuis /api/iosDevices. Par contre je ne sais pas comment récupérer directement les IDs, json decode ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Pourquoi un VD et pas simplement une scène ?

 

Bon je vais pas te laisser galérer ;)

 

Avec ceci tu vas lister tous les devices (push) déclarés dans ton HC2

local ids = api.get("/iosDevices")
for _,value in pairs(ids) do
  if (value.push==true) then
  	print(value.id, value.name)
  end
end

Je te laisse adapter en ajoutant le 

fibaro:call(xxx, "sendDefinedPushNotification", "203")

Dis-moi si cela répond bien à tes attentes... 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Super, merci beaucoup pour ton aide. J'avais pensé faire un module pour qu'en plus je puisse visualiser directement les IDs en cas de besoin. J'avais presque fini mais je bloque a la ligne 6, je n'arrive pas sortir la totalité des IDs, enfin je ne sais pas ce que je dois remplacer par le [1] :

 

local SelfId = fibaro:getSelfId()
local HC2 = Net.FHttp("127.0.0.1",11111)
local response, status, errorCode = HC2:GET("/api/iosDevices")
local result = json.decode(response)
local Total = #result 
local Id = result[1].id

fibaro:call(SelfId,"setProperty","ui.TotalDevice.value", Total)
fibaro:call(SelfId,"setProperty","ui.ListID.value", Id)

 

Sinon pour la scène ca marche j'ai bien le listing dans le debug mais que dois-je lui indiquer a la place des XXX pour envoyer le push sur la totalité listé ? Désolé comme tu peux le constater je suis vraiment nul en dev ...

 

Un très grand merci pour ta patiente, enfin ton courage !

Modifié par 54allan54

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour la scene c'est bon j'ai trouvé en remplacent simplement par value.id, merci :) 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×