Aller au contenu

Messages recommandés

Posté(e)

J'ai oublier MERCI Krikroff pour ce code, mais je crois que je vais attendre que l'on puisse installer ton plugin comme tu dis que c'est pour bientôt car pas envie de tout refaire mais scéne et VD ou tout et prévu pour le plugin juste 2  - a supprimer.

Comme le push fonctionne maintenant a merveille je peux encore attendre un peu mais ca fonction bien sur HC2 :D

 

@krikroff tu as pensés a modifier le plugin pour que lorsque l'on fait un copier coller il n'y ai plus de PB avec l'espace en trop a la fin ? Je suis bête c'est vrai tu penses a tout je sais pas comment tu fais ;)

Posté(e)

@pepite le mieux c'est une scéne

tu crée une variable globale FreeSms

tu modifies la scéne comme cela

--[[
%% globals
FreeSms
--]]

puis a la place de "text" tu mets cela

local message = fibaro:getGlobalValue("FreeSms")

et pour envoyer un message tu mets ta variable a jour donc tu déclenche le trigger de ta scéne c'est simple comme solution NON pourquoi toujours des VD il y a aussi les scénes qui on un avantage le trigger

fibaro:setGlobal('FreeSmsID', "Coucou Pépite");
Posté(e)

Pourquoi le VD ? je trouve ca plus visuellement pratique ;-) mais c'est perso evidemment :60:  et plutot WAF

 

Et avec GEA tres simple d'appeler soit une scene soit un VD ;-)

 

Oui suis OK pour la variable Globale. En fait, dans un coin de ma tete, je me dis que je veux des mess différents en fonction de ce que je veux recevoir, donc si je veux modifier le contenu de la variable par exemple je vois 2 moyens :

 

1- avec GEA je fais un {"Global", "FreeSms", "coucou"} et ca lance la scene du à  la modif de la variable

 --> question : si modif de la variable simultanée ou presque, la HC2 aura le temps de modif la variable ?

 

2- faire un VD avec bouton qui correspond au texte avec des setGlobal dans les boutons et appui avec GEA en fonction du texte souhaité

 

As tu une autre idée ? d'ou ma question du VD pour les messages différents

Posté(e)

oui effectivement si tu envoies 2 messages en simultané sa risque de pausé probléme

 

je n'utilise pas GEA donc je ne peut rien dire a ce sujet

 

Mais ta réflexion et bonne il faudrait peut être un compteur d'instance et si plus d' une instance on fais un sleep de 10s avant de lancer l'instance suivante a voir ce que va dire krikroff

 

c'est pas trés propre ton idée si tu as 10 000 texte a envoyer tu fais 10 000 et ce n'est pas générique

--[[
%% properties
69 value
195 value
73 value
%% globals
--]]
 
local IdSMS = fibaro:getGlobalValue("IdI9305") -- récuperation de la variable global instance freesms 
local OrigineDeclenchement = fibaro:getSourceTrigger() -- on demande au système de récupérer (get) l'origine (Source) du déclenchement de la scène (Trigger)
fibaro:debug('ID Plugin SMS = ' ..IdSMS)
if OrigineDeclenchement['type'] == 'property' then -- si l'origine du déclenchement de la scène est la modification d'une propriété d'un module surveillée dans l'entête alors
   local id = OrigineDeclenchement['deviceID'] -- Récuperation de l'id du déclencheur
   local Name = fibaro:getName(id) -- Récuperation Nom du module déclencheur
   local MaPorte = fibaro:getValue(id, 'value' ) -- récuperation de la valeur de l'id déclencheur
   
   local MessageSms = ('La ' ..Name)
 
   fibaro:debug('id module = '..id)
   fibaro:debug('Nom du module = '..Name)
   fibaro:debug('value = ' ..MaPorte)
  
   if (MaPorte == '0') then
      fibaro:call(IdSMS, "sendPush", MessageSms .." est Fermee")
      fibaro:debug( 'Fermer' )
   else
      fibaro:call(IdSMS, "sendPush", MessageSms .." est Ouverte") 
      fibaro:debug( 'Ouverte' )
   end
  
elseif OrigineDeclenchement['type'] == 'other' then 
    fibaro:call(IdSMS, "sendPush", "Message test Home Center 2");
    fibaro:debug('La scène a été lancée manuellement')
end

regarde ce code m'envoi un push a chaque fois qu'une porte s'ouvre j'ai juste a ajouté id+value dans l'entête

et si je lance ma scéne en manuel je recois un message test

IdSMS = c'est ID de mon tel comme cela si je change de téléphone j'ai juste modifier la variable globale et rien d'autre

Posté(e)

Pour éviter les problèmes de demandes concurrentes j'utilise dans "Notification Center" une variable globale comme une sorte de "Buffer" pour accumuler les demandes puis je réalise ensuite un traitement des informations...

Je conseil d'attendre le support des plugins si le besoin est important, mais pour quelques notifications il n' y a pas de problèmes, une variable globale et un trigger dans une scène c'est suffisant ;).

PS: Le code ne marche que dans une scène, les VD sont encore sur l'ancien moteur qui ne supporte pas net.HTTPClient

Posté(e)

@mprinfo : je ne peux pas utiliser cela, je n'arrive pas a faire la 1ere conexion sur la HC2..

 

Si pour quelques notifs, y a pas de soucis de concurrence,  comme dit Krikroff je vais tenter je vous tiens au jus, qu'en pensez-vous ?

vivement les plugins ;-)

Posté(e)

Puisque @Krikroff a fourni un script, voici un petit complément pour contrôler les codes retour (absents du plugin... du moins dans la version que l'on connaît :) ) :

-- 
-- Liste des codes retour HTTP de Free Mobile
--
local code_retour = {
  [200]=" - Le SMS a été envoyé sur votre mobile", 
  [400]=" - Un des paramètres obligatoires est manquant", 
  [402]=" - Trop de SMS ont été envoyés en trop peu de temps",
  [403]=" - Le service n’est pas activé sur l’espace abonné, ou login / clé incorrect", 
  [500]=" - Erreur côté serveur. Veuillez réessayez ultérieurement"
}


-- Fonction contrôle du code retour HTTP Free Mobile
local function controle_status(status)
  print(os.date() .. ' - status = ' .. status .. (code_retour[tonumber(status)]))
end

Pour info, le "header" n'est pas indispensable... sachant que dans tous les cas certains caractères comme ° (degré) seront automatiquement supprimés 

  • Upvote 1
Posté(e)

ca tombre bien j'ai une erreur 403 ;-)

 

Bizarre ca fonctionne avec pushingbox que j'utilise :

 

pour verif, vous etes d'accord :

le user : identifiant de connexion de l'interface freemobile

le passwd : la cle api ?

 

boulette reparee : petit espace qui trainait

 

pour etre sur ou mettre le code de retour ?

Posté(e)

pour etre sur ou mettre le code de retour ?

Tu ajoutes les codes retour et la fonction que j'ai donnés avant la ligne "http:request"

et tu remplaces 

print('At ' .. os.date() .. ' - status = ' .. data.status) 

par

controle_status(data.status)
... mais, on est bien d'accord que c'est du dépannage dans l'attente du plugin de @Krikroff ;)
  • Upvote 2
Posté(e)

bon, dommage ca ne se lance pas sur changement de la valeur de la VG, qui n'a pas ete changee manuellement.

Une idée ?

Posté(e)

en fait, la scene ne s'etait pas lancee sur le trigger du changement de valeur de la variable, mais le boulet etait en MODE ON j'avais oublie de cocher la case : scene active ;-)

 

Sinon, etant que le trigger est la variable : petit sleep ou non ?

Posté(e)

re les gars,

 

j'ai créer un bouton avec le code de KriKroff, dans le user et password, vous mettez bien le user de connexion sur le site de free et le password c'est bien le code fourni par free pour les sms ????

 

Moi quand je clique sur le bouton après il m'envoi pas de sms :(

 

J'ai du raté un truc

Posté(e)

Par contre je veux pas faire le reloud !

 

La différence avec pushingbox est que si l'on peut envoyer des sms personnalisés par des scènes ou autres différemment, avec celui de KriKroff peut-on le faire également ?

×
×
  • Créer...