Aller au contenu

Notifications Push sur plusieurs périphériques


54allan54

Messages recommandés

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

Lien vers le commentaire
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...

Lien vers le commentaire
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)

Lien vers le commentaire
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.

Lien vers le commentaire
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

Lien vers le commentaire
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

Lien vers le commentaire
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
Lien vers le commentaire
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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...