Aller au contenu

Recommended Posts

Bonjour,

serait-il possible que l'un d'entre vous mettre le script complet de la scène qui gère l'envoie de SMS.

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous,

 

Voilà je suis arrivé a installer le plugin FREE mobile SMS sur ma HC2 grâce au tuto du forum (Merci les gars), par contre celui ci ne fonctionne pas. J'ai été sur mon interface Free mobile et l'option "Notification par SMS" est bien activée, j'ai bien rempli mon identifiant et mon mot de passe dans le paramétrage du plugin sur la HC2, je clique donc sur "TEST" mais rien ne se passe....D’ailleurs je ne sais pas si c'est lié mais je n'ai jamais réussi à faire fonctionner les notifications PUSH avec mes iphones (6 ou 7).

Merci d'avance pour votre aide.

 

Greg

Modifié par Lazer
Message fusionné

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Pour tester si cela vient du plugin ou autre, il existe une scene qui utilise l'API de Freemobile et qui fonctionne parfaitement.

j'essaie de retrouver sur le forum

 

Trouvé :

 

 

Modifié par pepite

Partager ce message


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

Bonjour,

 

Pour tester si cela vient du plugin ou autre, il existe une scene qui utilise l'API de Freemobile et qui fonctionne parfaitement.

j'essaie de retrouver sur le forum

 

Trouvé :

Merci, j'ai donc créé un scène en LUA avec les éléments ci dessus (en modifiant mon identifiant et mot de passe) mais j'ai une erreur du type "Runtime Error : end of file"

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour l'erreur cela provient certainement d'un retour json mal formé, rien de bien grave ;) le SMS est-il bien envoyé ?


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Pas de message non plus. Je n'y comprend vraiment plus rien. Je debute gentillement sur la prog de ma HC2 et j'avoue que je rencontre quelque petites difficultés.

On est bien d'accord que je met mon id et mdp freemobile ? Et pas la clé fourni pour le service notification sms de chez free ?

Modifié par gregosder

Partager ce message


Lien à poster
Partager sur d’autres sites

@gregosder,

 

Non il y a confusion je pense, pour le username c'est bien l'identifiant de ton espace abonné mais pour le mot de passe c'est la clé d'identification ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonne nouvelle


Envoyé de mon iPhone en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

Je viens d'ajouter cette (géniale) fonction sur ma HC2.

Je suis passé par la scène, ne voulant pas contourner les barrières Fibaro pour les plugins.

L'envoi d'un SMS fonctionne (me reste a coder les triggers sur GEA) mais j'ai un retour d'erreur dans le debug :

[DEBUG] 18:17:31: [1;31m2017-10-06 18:17:31.405498 [ fatal] Runtime error: End of file

 

Voici mon code :

--[[
%% properties
%% events
%% globals
--]]

local username = "XXXXXXXXXX"
local password = "XXXXXXXXXX"
local message = "Message de test"
local http = net.HTTPClient({ timeout = 2000 })

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

http:request('https://smsapi.free-mobile.fr/sendmsg?'..string.format("user=%s&pass=%s&msg=%s", username, password, message), {
    options = {
      method = 'POST',
      headers = {
        ["Content-Type"] = "application/x-www-form-urlencoded"
      }
    },
    success = function(data) 
      --print('At ' .. os.date() .. ' - status = ' .. data.status)
		controle_status(data.status)
    end,
    error = function(err) 
      print('error = ' .. err)
    end
  })

Pour information, les codes retours ne sont pas affichés non plus.

Bon l'idéal est que ça fonctionne hein ^^ mais si je pouvais être plus propre OU connaitre le pourquoi du comment ça m’irait aussi :)

 

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello,

 

Alors le pourquoi du comment ! Et bien il faut demander à Fibaro :rolleyes: car un Fatal Runtime Error même avec un pcall pour isoler l’exécution et bien cela n'arrange rien alors... une régression  introduite depuis un bon moment maintenant !

 

Comme tu dis, l'essentiel est que ça fonctionne mais je suis parfaitement d'accord avec toi c'est dégueu, mais je n'ai pas le temps d'analyser le problème en root (mêm pas certain d'avoir des infos sur un Runtime Error au niveau de la lib lua)

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Krikroffpour ce FreeSms. Comme tout le monde ça fonctionne bien malgré le message d'erreur Fatal Runtime Error.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci à toi @fredokl

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

@KrikroffLe forum est tellement dense que j'étais passé à côté de ton plugin/vd. J'utilisais jusqu'à présent la solution "PushingBox" qui est quand même plus contraignant.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Je ne voudrais pas réinventer le fil à couper le beurre mais j'ai besoin des SMS Free Mobile (Mon Amoureuse et moi-même avons tout compris ;))

Je suis parti des recos de Free disant que l'on pouvait utiliser la méthode POST pour ne pas avoir à réencoder le texte en « Percent-encoding »

Citation

 

Vous pouvez également, si vous le préférez, envoyer les paramètres en POST.
Dans ce cas, le contenu du message n'a pas besoin d'être encodé.

Le code de retour HTTP indique le succès ou non de l'opération :

  • 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éessayer ultérieurement.

 

Après avoir fouillé à droite à gauche je suis arrivé à cela :

--[[
%% properties
%% events
%% globals
--]]

local url = 'https://smsapi.free-mobile.fr/sendmsg'
local user = "16xxxx29"
local pass = "frxxxxxxxxxGO"
local msg = "Test POST envoyé avec accents"
local contenu = {}
contenu.user = user
contenu.pass = pass
contenu.msg = msg
jcontent = json.encode(contenu)

fibaro:debug(jcontent)

local http = net.HTTPClient()
http:request(url, {
	options = {
	method = 'POST',
    headers = {['Content-Type'] = 'application/json'},
    data = jcontent
    }
})

Ce que ça donne :

  • je reçois le SMS ... sans les caractères accentués
  • la fenêtre débug m'affiche « [DEBUG] 16:04:27: [1;31m2018-04-30 16:04:27.952009 [ fatal] I/O error: End of file »

Je précise que si j'envoie le SMS via un navigateur sous cette forme «    https://smsapi.free-mobile.fr/sendmsg?user=16xxxxx29&pass=frxxxxxxxxxGO&msg=Test Push iBidules - SMS envoyé via Free Mobile sur portable JPR le 27-04-2018 à 08:36:14    » cela fonctionne parfaitement accents compris !!

Citation

Test Push iBidules - SMS envoyé via Free Mobile sur portable JPR le 27-04-2018 à 08:36:14

Ce sur quoi vous pourriez m'aider :

  • pensez-vous que l'on puisse gérer les accents avec cette méthode ?
  • comment récupérer le code retour Free Mobile ?
  • pourquoi j'ai « [ fatal] I/O error: End of file » et est-ce grave Docteur ?

Merci d'avance pour vos retours

 

Cordialement - Jean-Paul

Partager ce message


Lien à poster
Partager sur d’autres sites

Décidément il est coriace ... je vire le https du début

Citation

//smsapi.free-mobile.fr/sendmsg?user=16xxxx29&pass=frxxxxxxxxxGO&msg=Test%20Push%20iBidules%20-%20SMS%20envoy%C3%A9%20via%20Free%20Mobile%20sur%20portable%20JPR%20le%2027-04-2018%20%C3%A0%2008:36:14

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

C'était une bonne idée, la chaine JSON est toute belle

Citation

[DEBUG] 18:51:17: {"user":"16xxxxx29","pass":"frxxxxxxxxxxxxGO","msg":"Test POST envoyé avec accents"}

Mais le résultat un peu moins ...

Citation

Test POST envoyé avec accents

En tout cas merci ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Regarde du côté ascii Unicode ou html

il faut trouver le bon codage ^^

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon et bien je jette l'éponge pour ce soir.

Pour les accents ... pas trouvé

Pour le code retour ... j'ai bien mon code 200 avec l'extension RESTClient de Firefox ... donc Free y zont tout compris et ça doit donc coincer au niveau de mon code Fibaro ... mais là j'vois pas :huh:

Capture d’écran 2018-04-30 à 23.14.54.png

Partager ce message


Lien à poster
Partager sur d’autres sites

@schwinny on progresse, on progresse ... si j'envoie ce texte :

Citation

Test Push iBidules - SMS avec accents é è à â û ù ç ë ê ï î ô

je récupère ce magnifique texte sur mon smartphone

Citation

Test Push iBidules - SMS avec accents é è   â û ù ç ë ê ï î ô

Par contre le à (a accent grave) est passé à la trappe

Merci pour tes conseils :74:

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça devient chaud pour le a accent grave. C'est un à suivi d'un espace insécable ( ) . Avec les transformations json est compagnie ça doit se perdre dans les tuyaux ...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon finalement je lâche l'approche en « method = 'POST', headers = {['Content-Type'] = 'application/json'} » qui avait l'avantage ... selon Free ... de pouvoir envoyer son texte directement sans l'encoder en « Percent-encoding » ... ky disaient :)

Dixit « Vous pouvez également, si vous le préférez, envoyer les paramètres en POST. Dans ce cas, le contenu du message n'a pas besoin d'être encodé. » ... OK pour les espaces mais pour les chers accents de notre belle langue ... tu repasseras :angry:

Je suis donc revenu à @Krikroff et j'ai utilisé son code comme @gorn ici

Quant à mes précieux accents je vais faire une routine pour les gérer. En tout cas, en envoyant ça :

Citation

Test%20SMS%20avec%20accents%20%C3%A0%20%C3%A2%20-%20%C3%A9%20%C3%A8%20%C3%AA%20%C3%AB%20-%20%C3%AF%20%C3%AE%20-%20%C3%B4%20-%20%C3%BB%20%C3%B9%20-%20%C3%A7

J'obtiens ça :

Citation

Test SMS avec accents à â - é è ê ë - ï î - ô - û ù - ç

C'est plutôt bien, les SMS passent,  mais je suis comme tout le monde concernant la gestion du code retour et le [ fatal] I/O error: End of file

  1. Est-ce que notre grand gourou @Krikroff a une idée lumineuse ?
  2. Est-ce que je peux partir sur cette base « pseudo-instable » sachant que je voudrais intégrer cet envoi de SMS dans mon futur scénario d'alarme ?

Merci d'avance et bonne fin de pont ... voire viaduc

Cordialement - Jean-Paul

Partager ce message


Lien à poster
Partager sur d’autres sites

@jpr105

 Bonjour, je n'ai aps tout suivi, mais je n'ai pas de souci d'accents avec ceci pour le "headers" : 

["Content-Type"] = "application/x-www-form-urlencoded"

Et pour le code retour :

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

    http:request('https://smsapi.free-mobile.fr/sendmsg?'..string.format("user=%s&pass=%s&msg=%s", username, password, message), {
    options = {
    method = 'POST',
    headers = {
    ["Content-Type"] = "application/x-www-form-urlencoded"
    }
    },
  success = function(data)
    controle_status(data.status)
  end,
  error = function(err)
    print('error = ' .. err)
  end
  })

Concernant l'erreur I/O ca vient de chez freemobile, nous l'avons tous, mais aucun souci, tous les SMS arrivent ;-)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×