Aller au contenu
mprinfo

Notifications Interactive pour lancer une scéne

Recommended Posts

Fredric je pense qu'on trouvera aucun terrain d'entente ayant chacun un parti pris ^^

Le système semble te (vous) convenir ; je peux l'admettre ^^ mais je reste navré que en dehors de toute sémantique c'est total pourri comparé à un push android ou le Yes / No est clairement visible sans manipulation... '?' ou pas, sur iOS, si tu as foiré ton clic, c'est foutu

Modifié par nigao

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 4 heures, Steven a dit :

Le mieux serait de prêter ta femme à@nigao pendant quelques semaines. Non ?

 

Envoyé de mon SM-G935F en utilisant Tapatalk

 

 

 

 

J'avais pas vu  :2:

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 42 minutes, nigao a dit :

Fredric je pense qu'on trouvera aucun terrain d'entente ayant chacun un parti pris ^^

Le système semble te (vous) convenir ; je peux l'admettre ^^ mais je reste navré que en dehors de toute sémantique c'est total pourri comparé à un push android ou le Yes / No est clairement visible sans manipulation... '?' ou pas, sur iOS, si tu as foiré ton clic, c'est foutu

Je ne cherche pas de terrain d'entente car je ne suis pas en conflit.

Tant mieux si tu préféré Android, je suis content pour toi. 

Je n'avais pas compris qu'il y avait comparaison entre les deux, je donné mon avis sur l'utilisation des push interactif sur IOS (que j'utilise également sur Android par ailleurs :)).

Je pensé que tu cherchais à faire la différence entre les divers push et je ne comprenais pas qu'on ne puisse pas faire la différence entre une question et une information.

A aucun moment je militais "POUR" Apple, je pensais aidé à l'utilisation.

Je pense que c'est peut-être aussi une habite, car au risque de me répéter, ma femme qui ne veut surtout pas savoir comment tout cela fonctionne, utilise les puch interactif sans difficulté et je pense qu'elle aime la domotique autant que les vôtres :angry:, c'est à dite, il faut que ça marche mais simplement, WAF en fait.

 

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 26/02/2019 à 22:10, ebtjjn a dit :

Merci de tous vos retours. Je fouille un peu plus encore car j'aime bien trouver de moi même mais si toujours infructueux, je vous mettrai tout ça. Ça ne sera pas ce soir en revanche, je me pose un peu....  :6: Grosse journée...

Bon alors, j'ai fini ma sieste et j'ai pu regarder et bidouiller et oui, ça fonctionne... !! :60:

Donc voilà mon utilisation : si ça peut vous inspirer, tant mieux, et si vous avez des commentaires, je suis preneur aussi pour faire évoluer le truc... 

Je m'en sers donc quand je pars du travail : à 18h30, je reçois une notif (je pars quasiment jamais avant 18h30 du travail) --> au moment où je regarde mon tél avant de partir en scooter, j'ouvre la notif (une parmi d'autres) et je déclenche la scène 66. Cette scène indique sur les SONOS à mes enfants et la nounou (ou ma femme) que je pars du boulot et que j'en ai pour 20 minutes (les 20 minutes, c'est dans le TTS mais en scooter, on met toujours à peu près le même temps à quelques minutes près).

C'est tout pour le moment...

 

Pour la suite dans l'idéal, j'aimerai que la HC2 identifie via le GPS que je m'approche et ouvre le portail; si certains savent où chercher, pouvez vous m'indiquer des posts (sur ce forum) ou des tutos (sur internet) qui pourraient m'aider svp ? J'ai déjà un peu cherché mais j'ai l'impression qu'il y a eu des régressions sur la localisation GPS par HC2... je me trompe ??

 

Voici le code de ma notification

--[[
%% properties
%% weather
%% events
%% globals
%% autostart
--]]
local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();

  
  
  
if (
 	( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 0 or currentDate.wday == 1) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "18:30") ))
	then
		 fibaro:debug("ok envoi à venir")
		api.post('/mobile/push', 
            {
               ["mobileDevices"]={154},          -- ID du telephone : 154= S7 EDGE JJ
               ["message"]='Veux-tu prévenir la maison ?', -- La question que l'on veut posser
               ["title"]='Départ Travail',                           -- titre de la question
               ["category"]='YES_NO',                           -- 'YES_NO' ou 'RUN_CANCEL'
               ["data"]={["sceneId"]=66}                       -- ID de la scéne que l'on veut lancer
            }
    );

  	
  end
  
  
setTimeout(tempFunc, 60*1000)
end


if (sourceTrigger["type"] == "autostart") then
tempFunc()
else

local currentDate = os.date("*t");
local startSource = fibaro:getSourceTrigger();
if (
startSource["type"] == "other"
)
then
	if (sourceTrigger["type"] == "autostart") then

  if (
 	( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 0 or currentDate.wday == 1) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "18:30") ))
	then
		 fibaro:debug("ok envoi à venir")
		api.post('/mobile/push', 
            {
               ["mobileDevices"]={154},          -- ID du telephone : 154= S7 EDGE JJ
               ["message"]='Veux-tu prévenir la maison ?', -- La question que l'on veut posser
               ["title"]='INFO Départ travail ?',                           -- titre de la question
               ["category"]='YES_NO',                           -- 'YES_NO' ou 'RUN_CANCEL'
               ["data"]={["sceneId"]=66}                       -- ID de la scéne que l'on veut lancer
            }
    );

  	
  end
end

end
end

Je suis preneur de toute aide pour simplifier le code !! ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Ca ressemble au code généré par les scènes BLOC converti en LUA ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Même si je ne l'ai pas testé, le code ci-après devrait faire la même chose :

--[[
%% autostart
--]]
function tempFunc()
	local currentDate = os.date("*t");
	if (currentDate.hour == 18 and currentDate.min == 30) then
		fibaro:debug("ok envoi à venir");
		api.post('/mobile/push', 
            {
               ["mobileDevices"]={154},						-- ID du telephone : 154= S7 EDGE JJ
               ["message"]='Veux-tu prévenir la maison ?',	-- La question que l'on veut posser
               ["title"]='Départ Travail',					-- titre de la question
               ["category"]='YES_NO',						-- 'YES_NO' ou 'RUN_CANCEL'
               ["data"]={["sceneId"]=66}					-- ID de la scéne que l'on veut lancer
            }
		);
	end
	setTimeout(tempFunc, 60*1000);
end

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then
	tempFunc();
end

Quelques explications :

- currentDate.wday ne peut prendre que les valeurs 0, 1, 2, 3, 4, 5, 6, ce test est donc inutile ;

- pourquoi convertir les heures et minutes en chaîne de caractères avant de faire la comparaison ?

- on a :

 

local sourceTrigger = fibaro:getSourceTrigger();
...
local startSource = fibaro:getSourceTrigger();
if (startSource["type"] == "other") then
    if (sourceTrigger["type"] == "autostart") then
        -- code jamais executé

Donc, on enlève, la bonne vieille technique du rasoir d'Ockham...

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Bon alors, j'ai fini ma sieste et j'ai pu regarder et bidouiller et oui, ça fonctionne... !! :60:
Donc voilà mon utilisation : si ça peut vous inspirer, tant mieux, et si vous avez des commentaires, je suis preneur aussi pour faire évoluer le truc... 
Je m'en sers donc quand je pars du travail : à 18h30, je reçois une notif (je pars quasiment jamais avant 18h30 du travail) --> au moment où je regarde mon tél avant de partir en scooter, j'ouvre la notif (une parmi d'autres) et je déclenche la scène 66. Cette scène indique sur les SONOS à mes enfants et la nounou (ou ma femme) que je pars du boulot et que j'en ai pour 20 minutes (les 20 minutes, c'est dans le TTS mais en scooter, on met toujours à peu près le même temps à quelques minutes près).
C'est tout pour le moment...
 
Pour la suite dans l'idéal, j'aimerai que la HC2 identifie via le GPS que je m'approche et ouvre le portail; si certains savent où chercher, pouvez vous m'indiquer des posts (sur ce forum) ou des tutos (sur internet) qui pourraient m'aider svp ? J'ai déjà un peu cherché mais j'ai l'impression qu'il y a eu des régressions sur la localisation GPS par HC2... je me trompe ??
 
Voici le code de ma notification : 
--[[%% properties%% weather%% events%% globals%% autostart--]]local sourceTrigger = fibaro:getSourceTrigger();function tempFunc()local currentDate = os.date("*t");local startSource = fibaro:getSourceTrigger();if (	( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 0 or currentDate.wday == 1) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "18:30") ))then	 fibaro:debug("ok envoi à venir")	api.post('/mobile/push',            {              ["mobileDevices"]={154},          -- ID du telephone : 154= S7 EDGE JJ              ["message"]='Veux-tu prévenir la maison ?', -- La question que l'on veut posser              ["title"]='Départ Travail',                           -- titre de la question              ["category"]='YES_NO',                           -- 'YES_NO' ou 'RUN_CANCEL'              ["data"]={["sceneId"]=66}                       -- ID de la scéne que l'on veut lancer           }   ); endsetTimeout(tempFunc, 60*1000)endif (sourceTrigger["type"] == "autostart") thentempFunc()elselocal currentDate = os.date("*t");local startSource = fibaro:getSourceTrigger();if (startSource["type"] == "other")thenif (sourceTrigger["type"] == "autostart") then if (	( ((currentDate.wday == 2 or currentDate.wday == 3 or currentDate.wday == 4 or currentDate.wday == 5 or currentDate.wday == 6 or currentDate.wday == 0 or currentDate.wday == 1) and string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == "18:30") ))then	 fibaro:debug("ok envoi à venir")	api.post('/mobile/push',            {              ["mobileDevices"]={154},          -- ID du telephone : 154= S7 EDGE JJ              ["message"]='Veux-tu prévenir la maison ?', -- La question que l'on veut posser              ["title"]='INFO Départ travail ?',                           -- titre de la question              ["category"]='YES_NO',                           -- 'YES_NO' ou 'RUN_CANCEL'              ["data"]={["sceneId"]=66}                       -- ID de la scéne que l'on veut lancer           }   ); endendendend

Je suis preneur de toute aide pour simplifier le code !! 
 



Regarde mon tuto sur mon VD Home mode manager.

Partager ce message


Lien à poster
Partager sur d’autres sites

Well done, c'est bien laid le code généré par la HC2 tout de même

Partager ce message


Lien à poster
Partager sur d’autres sites

Helllo,

 

alors : 

@pepite 

Citation

Ca ressemble au code généré par les scènes BLOC converti en LUA ;-)

 

Citation

c'est bien laid le code généré par la HC2 tout de même

oui mode bloc transformé en lua : c'est vraiment moche je suis d'accord mais je n'ai pas les compétences suffisantes pour savoir exactement comment le rendre joli ou mieux, faire du lua directement : je tente parfois mais dans ce cas présent, ça n'a pas fonctionné...!! :)

 

Donc, merci @Barelle, c'est exactement dont on a besoin, nous les novices lua...!! :74:

Je vais tester ça et ferai un retour.

 

 

Le 19/03/2019 à 09:48, MAM78 a dit :

Regarde mon tuto sur mon VD Home mode manager

@MAM78, que des poires à la maison... j'ai compris que ça ne fonctionnait que sous iOS. Merci pour le reste du VD en tout cas !

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@Barelle : bon ça marche nickel !! merci.

Juste, pour les jours, c'était en test pour que ça fonctionne tous les jours, j'ai rajouté la condition "if (current.wday == 2 or..." pour n'avoir la notif que les soirs du lundi au vendredi !!

 

Et aussi, choses "amusante" : quand on fait en mode bloc, le samedi sort en jour == 7 mais sur les tutos et aides lua, c'est == 0... Ce qui est sûr c'est que le dimanche est le 1er jour de la semaine... :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Le dimanche, vaste sujet..

Selon le dictionnaire de l'Académie (9e édition) :

Citation

Traditionnellement, et aujourd'hui encore dans la langue religieuse, premier jour de la semaine qui commémore la résurrection du Christ ; il comportait aussi la prescription du repos. Dans la langue courante, septième et dernier jour de la semaine.

Donc, ce n'est pas clair, heureusement, la norme ISO 8601 est là pour nous préciser que le dimanche clôt la semaine et a pour code le chiffre 7.

 

Le problème se complexifie dans les langages informatiques selon que l'indice de départ est "zéro" (algol, C, pascal et leur dérivés) ou "un", comme notamment le Lua. Par conséquent, pour le dimanche on peut rencontrer comme code : 0, 1, 6 ou encore 7 !

 

En pratique, il est prudent de vérifier au cas par cas...

  • Haha 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello, je reviens sur ce topic. Depuis qques temps mes push interactifs ne fonctionnent plus. J'avais pas du tout eu le temps de regarder, et là je jette un œil, car cela me manque.

J'avoue ne rien trouver du tout, que ce soit en mode bloc ou lua, rien à faire, elles ne sont plus envoyées vers nos périfs.

 

Exemple de scène simple qui devrait envoyer dès qu'on clique dessus :

 

--[[
%% properties
490 armed
%% weather
%% events
%% globals
--]]

function sendPush(idPortable, titre, message, IdScene)
    
	if (type(IdScene) == "table") then
		-- Si nous avons plusieurs scenes a lancer dans un tableau {}
		for i = 1, #IdScene do
           local scenes = api.get("/scenes/"..IdScene[i])
           if scenes == nil then
              fibaro:debug("La scene iD : "..IdScene[i].." N'existe pas")
           else
              local NomScene = scenes.name
		      fibaro:debug("Nom de la scene a lancer "..NomScene)
	          api.post('/mobile/push', 
                  {
                     ["mobileDevices"]={idPortable},              -- ID du telephone
                     ["message"]=tostring(message),               -- La question que l'on veut posser
                     ["title"]=tostring(titre.." - "..NomScene),  -- titre de la question
                     ["category"]='RUN_CANCEL',                   -- 'YES_NO' ou 'RUN_CANCEL'
                     ["data"]={["sceneId"]=IdScene[i]}            -- ID de la scéne que l'on veut lancer
                  }
              );
           end
		end
    	   
	elseif (type(IdScene) == "number") then
		-- Si nous avons une seule scéne à executer 
        local scenes = api.get("/scenes/"..IdScene)
        if scenes == nil then
           fibaro:debug("La scene iD : "..IdScene.." N'existe pas")
        else
           local NomScene = scenes.name
           fibaro:debug("Nom de la scene a lancer "..NomScene)
	       api.post('/mobile/push', 
               {
                  ["mobileDevices"]={idPortable},   -- ID du telephone
                  ["message"]=tostring(message),    -- La question que l'on veut posser
                  ["title"]=tostring(titre),        -- titre de la question
                  ["category"]='RUN_CANCEL',        -- 'YES_NO' ou 'RUN_CANCEL'
                  ["data"]={["sceneId"]=IdScene}    -- ID de la scéne que l'on veut lancer
               }
           );
        end
	end
end

sendPush(753, "Scene :", "Lancer nettoyage ?", 99)
sendPush(754, "Scene :", "Lancer nettoyage ?", 99)


Même ça, la scène se lance, on a le log, et rien sur les téléphones...

 

Qqun a une idée d'où chercher ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Chez moi c'est la pomme. Et je viens de vérifier avec l'ancienne app, ça fonctionne très bien. Mais avec la nouvelle app j'ai bien le message mais pas la possibilité de répondre à la question. Du coup je conserve l'ancienne app. ;)

 

De toute façon la nouvelle app je ne l'aime pas ! L'ergonomie ne me convient pas :15:

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, sous Android.

Donc ce n'est pas tout le monde. Donc à suivre, je ne vois pas ce qui se passe. Et vu les remontés sur le fofo officiel, difficile de voir d'où cela vient. Si qqun a une idée.

Par contre je vois que vous êtes en 4.530 et 4.540, c'est le cas ou vous êtes passé en 4.550 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui même la 4.551. Oui je sais je suis un ouf

Partager ce message


Lien à poster
Partager sur d’autres sites

M'arrange pas, cela aurait pu expliquer...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Je n'arrive pas à envoyer les notifications interactives sur un iphone autre que celui du Super user ... les simples notifications arrivent bien mais pas les autres (tous les droits "Scenes", "Module", et notifications Fibaro).

Merci pour votre aide.  

(idem dans GEA) ...

Modifié par quatt@hotmail.fr

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, 
Egalement avec la dernier version de la box, et la derniere appli android.

les notification push ne fontionnent plus également :( 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

couplé à un PIR (extérieur maison) pour lancer une notification push sur phone et ainsi désactiver l'alarme lorsque celle ci est activée, ça pourrait être sympa,

malheureusement, ça ne fonctionne pas,

et après la lecture lecture des 14 pages et notamment des dernières lignes du forum, je comprends mieux!!! (version HC2...) 

lol, j'aurai du commencer par la fin !!! :)   je me suis enflammé:yes:  :(

y a t il du nouveau?

merci

Modifié par flamalex

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi ils fonctionnent sur le superuser. Je pense mais j'ai pas testé que pour les faire fonctionner, il faut créer les autres users sur Fibaro ID également (Ce qu'on peut faire désormais).

Partager ce message


Lien à poster
Partager sur d’autres sites

×