Aller au contenu

Gateway Sms Autonome


gargamel01000

Messages recommandés

Bon je reviens vers vous car maintenant j'ai bien mon message "Hello World" mais toujours pas de SMS.

Donc résumons:

 

- J'ai un module virtuel avec 2 bouton un avec "Ceci est un test" et un autre "test"

- j'ai créer une variable dans lequel je reçois bien mon message "Hello World"

- quand je vais dans le débug de mon bouton "Ceci est un test" j'ai le message d'erreur si dessous

 

[DEBUG] 18:31:36: message: Hello World
[DEBUG] 18:31:39: response =
[DEBUG] 18:31:39: status =
[DEBUG] 18:31:39: Error: Failed to SEND SMS

 
 
Donc pas d'envois de SMS 
 
Avez vous une ptit idée 
Lien vers le commentaire
Partager sur d’autres sites

Merci Lazer de prendre de ton temps.

 

Pour répondre à  tes questions.

 

Oui j'ai bien connecté mon smartphone en wifi j'ai bloqué l'adresse IP sur ma freebox.

oui l'application SMS Gateway est lancé est le serveur http aussi.

Oui j'ai bien renseigné l'adresse IP dans mon module virtuel

Lien vers le commentaire
Partager sur d’autres sites

Bonjour JOJO et Lazer

 

Effectivement j'ai bien rentré l'adresse IP de mon téléphone et non celui de ma HC2

 

J'ai fais les testes avec deux téléphones et donc deux adresse IP différentes mais rien je ne comprend pas.

 

Je vais sur l'appli SMS Gateway dans les Log et rien.

 

J'ai désactivé Avast sur mon pc et désactivé le pare feu et rien.

 

J'ai tapé l'adresse dans plusieurs navigateur et toujours rien  :angry:

 

je vous redonne l'adresse que je tape pour voir si je ne fais pas d’erreur

 

http://192.168.1.6:9090/sendsms?phone=0xxxxxxxxx&text=hello&password=1234

 

ou

 

http://192.168.1.6:9090/sendsms?phone=+33xxxxxxxxx&text=hello&password=1234

 

 

Je tourne en rond je ne comprend pas

Lien vers le commentaire
Partager sur d’autres sites

ok, si ça ne fonctionne pas avec l'url dans le browser, ce n'est pas la HC2, mais la config du téléphone.

Je viens d'essayer chez moi.

J'imagine que ton SMS gateway server est RUNNING

Dans les setting du serveur sur ton tél as-tu bien coché "Listen for HTTP send SMS command" ? car lors de me tests, je ne l'avais pas coché, et erreur.

Lien vers le commentaire
Partager sur d’autres sites

Super jojo cela fonctionne et oui tu as raison je n'avais pas coché "Listen for HTTP send SMS command"

 

Test avec fibaro roulement de tambour ..........

 

 

ETTTT OOUIIIIIIIIII sa fonctionne :13:  :13:  :60:  :60:  :2:  :2: 

 

Encore Merci a vous deux  

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...
  • 4 semaines après...

Je demande à  la personne créatrice de ce code de bien vouloir m'excuser car je ne me souviens plus d'ou il vient :unsure:

--Récupération de l'adresse IP et du Port inscrit sur le module virtuel.
--fibaro:getSelfId() retourne l'ID du module virtuel en cours.
local ip_module = fibaro:get(fibaro:getSelfId(),"IPAddress")
local port = fibaro:get(fibaro:getSelfId(), "TCPPort")
local id_module = fibaro:getSelfId()
local status = ""
local numero = "xxxxxxxxxx"
local password = "xxxxxxxxxx"
 
function urlencode(str)
	if (str) then
		str = string.gsub (str, "\n", "\r\n")
		str = string.gsub (str, "([^%w ])",
		function (c) return string.format ("%%%02X", string.byte(c)) end)
		str = string.gsub (str, " ", "+")
	end
	return str
end
 
local payload = "/sendsms?phone="..numero.."&text="..urlencode(tostring("Alarme mise sous tension")).."&password="..password

HC2 = Net.FHttp(ip_module,port)
response ,status, errorCode = HC2:GET(payload)
fibaro:debug("response = " .. response)
fibaro:debug("status = " .. status)
if response ~= nill and tonumber(status)==200 then
	fibaro:debug("Succes: SMS envoyé")
else
	fibaro:debug("Error: Failed to SEND SMS")
end   

j'utilise ce code qui fonctionne bien mais de temps en temps, cela ne par pas et le débug note " Error: Failed to SEND SMS".

généralement un deuxième appui fonctionne.

je pourrais rajouter de ré-appuyer sur le vd si cela arrive, mais si c'est le téléphone qui est HS ou autre, le vd va tourner en boucle, je ne suis pas sur que ce soit très bon.

 

Avez vous une idée pour faire appuyer qu’une fois si cela ne fonctionne pas?

(sans passer par une variable ou une autre scène)

Modifié par Fredric
Lien vers le commentaire
Partager sur d’autres sites

Chez moi, ça ne fonctionne pas de temps en temps à  cause du Wi-Fi qui est instable.... c'est pour ça qu'un 2nd appui suffit généralement, quelques secondes ou minutes plus tard.

 

Je te propose le code optimisé ci-dessous :

-- User configurable variables
local password = "password"
local numero = "0123456789"
local userID = 4         -- Email
local smartphoneID = 411 -- Push
local retry_max = 6
local retry_sleep = 10

-- System variables
local selfID = fibaro:getSelfId()
local ip = fibaro:get(selfID, 'IPAddress')
local port = fibaro:get(selfID, 'TCPPort')
local message = fibaro:getGlobalValue("SMS")
local erreur = 0

-- URL Encode function
function urlencode(str)
	if (str) then
		str = string.gsub (str, "\n", "\r\n")
		str = string.gsub (str, "([^%w %-%_%.%~])", function (c) return string.format ("%%%02X", string.byte(c)) end)
		str = string.gsub (str, " ", "+")
	end
	return str	
end

-- Main
fibaro:call(selfID, "setProperty", "ui.LabelStatus.value", "...")
fibaro:debug(os.date("%d/%m/%Y"))
fibaro:call(selfID, "setProperty", "ui.LabelSMS.value", message)
local server = Net.FHttp(ip, tonumber(port))
local payload = "/sendsms?phone="..numero.."&text="..urlencode(tostring(message or "empty")).."&password="..password
fibaro:debug(message)
for i=1, retry_max do
	response, status, errorCode = server:GET(payload)
	if tonumber(errorCode) == 0 and tonumber(status) == 200 then
		if (response ~= nil) then
			if response:match("Mesage SENT!") then
				fibaro:debug(response)
				fibaro:call(selfID, "setProperty", "ui.LabelStatus.value", "SMS envoyé")
				fibaro:log("SMS envoyé")
				erreur = 0
				break
			else
				fibaro:debug("Error : incorrect response")
				fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', response='..response..'</span>')
				erreur = erreur + 1
			end
		else
			fibaro:debug("Error : empty response")
			fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..'</span>')
			erreur = erreur + 1
		end
	else
		fibaro:debug("Error !")
		fibaro:debug('<span style="color:red;">status='..status..', errorCode='..errorCode..', response='..response..'</span>')
		erreur = erreur + 1
	end
	fibaro:sleep(retry_sleep*1000)
end

-- Error management
if erreur > 0 then
	fibaro:call(selfID, "setProperty", "ui.LabelStatus.value", "SMS non envoyé")
	fibaro:log("Error")
	fibaro:call(smartphoneID, "sendPush", "Erreur lors de l'envoi du SMS")
	fibaro:call(userID, "sendEmail", "SMS Gateway", "Erreur lors de l'envoi du SMS : "..message)
end

-- Reset global variable value
fibaro:setGlobal("SMS", "")

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

A noter qu'il reste un souci avec le code précédent.... en fait ce n'est pas la faute du code LUA, mais la faut de l'appli SMS Gateway sur le téléphone Android.

 

Si le smartphone a rebooté et que la SIM n'est pas déverrouillée avec le PIN code, alors le téléphone n'accroche pas le réseau GSM. Jusque là  c'est normal.

Par contre, l'appli SMS Gateway renvoie quand même la réponse "Mesage SENT!", donc le code LUA pense que le SMS est parti, alors qu'en fait il ne partira jamais.

 

Je n'ai pas encore trouvé de solution de contournement.... je pense que ça va se terminer que je vais supprimer le PIN code de la carte SIM, comme ça en cas de reboot du téléphone, il devrait accrocher le réseau GSM tout seul.

 

Finalement la question qu'on peut se poser, c'est pourquoi le téléphone reboote tout seul ? J'en sais trop rien, mais c'est un vieil HTC Desire HD, qui était sous Android 2.x officiellement, j'ai dà» passer sur une version non officielle de CyanogemMod pour avoir Android 4.2 qui supporte SMS Gateway et Tasker.

Je dirais qu'il reboote tout seul en moyenne une fois tous les 3 mois.... la dernière fois qu'il m'a fait le coup c'était le lendemain de notre départ en vacances ! Les boules :huh:

Lien vers le commentaire
Partager sur d’autres sites

je vais essayer d'utiliser ton code, merci @Lazer  ;)

 

Pour ma part, j'ai supprimé le code pin dés le début et mais je n'ai jamais eu de reboot du téléphone, c'est un Wiko de base que j'ai acheté neuf en solde à  45€

Modifié par Fredric
Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Est-ce que quelqu'un a trouvé le moyen d'envoyer un SMS vers 2 numéros en même temps ?

 

En mettant un ";" ou une "," entre les 2 numéros cela ne fonctionne pas. Aucun SMS n'est envoyé.

 

Le seul moyen que j'ai trouvé est d'utiliser 2 URL avec une tempo (pour laisser le temps au téléphone d'envoyer le 1er sms avant d'envoyer le second).  :huh:

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...