Aller au contenu

Recommended Posts

Bonjour à tous,

Voici un QuickApp pour pouvoir envoyer des sms avec un compte Free Mobile.

Le code est adapté de celui de @Krikroff pour la HC2.

Je me suis fait aider par mon neveu qui maitrise le code beaucoup mieux que moi.

Il fonctionne parfaitement. Il est libre de modification et d'amélioration.

Code:

-- FREESMS pour Fibaro HC3
-- Le code suivant a été adapté sur celui-ci de Krikroff du forum www.domotique-fibaro.fr
-- Adaptation par fredokl pour www.domotique-fibaro.fr
--------------------------------------------------------
-- Paramètres utilisateur
--------------------------------------------------------
local username = "IDENTIFIANT FREE"
local password = "CLÉ IDENTIFICATION"
--------------------------------------------------------
-- Paramètrages des boutons avec les messages à envoyer
--------------------------------------------------------
function QuickApp:uimsg1OnR(event) self:debug("Message 1") self:sendmsg("Hello World!") end

function QuickApp:uimsg2OnR(event) self:debug("Message 2") self:sendmsg("Salut le Monde!") end

function QuickApp:uimsg3OnR(event) self:debug("Message 3") self:sendmsg("Tout va bien?") end

function QuickApp:uimsg4OnR(event) self:debug("Message 4") self:sendmsg("Moi ça va.") end

function QuickApp:uimsg5OnR(event) self:debug("Message 5") self:sendmsg("Bye bye!") end
--------------------------------------------------------
-- Ne rien modifier sous cette ligne
--------------------------------------------------------
function QuickApp:sendmsg(message)
    self:debug("Envoi du message")
    self:setVariable("FreeSMS", message)
    self:updateProperty("value", true)
    local query = string.format("user=%s&pass=%s&msg=%s", username, password, message)
    self:sendCommand(query)
end

function QuickApp:sendCommand(query)
    local message = self:getVariable("FreeSMS")
    local url = "https://smsapi.free-mobile.fr/sendmsg"
    url = url .. "?" .. query
    
    self:debug("Envoi de la commande:", url)
    self.http:request(url, 
    {
        options= {
            headers= {
            ["Connection"] = "keep-alive",
            },
            method = "POST"
        },
        success = function(response)
            self:controle_status(response.status)
        end,
        error = function(message)
            self:debug("error:", message)
        end
    })
    self:debug("Fin de commande")
end
--------------------------------------------------------
-- 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
--------------------------------------------------------
function QuickApp:controle_status(status)
            if Contains(code_retour, tonumber(status)) then 
            self:debug(os.date() .. ' - status = ' .. status .. (code_retour[tonumber(status)]))
            end
end

function Contains(table, valeur) for key,value in pairs(table) do if (key == valeur) then return true end end return false end

function QuickApp:onInit()
        self.http = net.HTTPClient({ timeout = 2000 })
        self:setVariable("FreeSMS","")
        self:debug("onInit")
end

Utilisation:

Remplir les champs par identifiant Free Mobile et votre clé d'identification

-----------------------------------------------------
-- Paramètres utilisateur
-----------------------------------------------------
local username = "IDENTIFIANT FREE"
local password = "CLÉ IDENTIFICATION"

Créer autant de boutons que souhaité

-----------------------------------------------------
-- Paramètrages des boutons avec les messages à envoyer
-----------------------------------------------------
function QuickApp:uimsg1OnR(event) self:debug("Message 1") self:sendmsg("Hello World!") end

Voilà, c'est mon premier code officiel sur le forum je crois. Soyez indulgent.:D

Je vous joints le fichier complet à adapter en fonction de vos besoins.

FreeSMS.fqa

Free SMS.png

  • Like 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour ta contribution dommage que je sois chez RED

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui dommage. Sfr ne propose pas ce genre de service?

Partager ce message


Lien à poster
Partager sur d’autres sites

Non faut que j'arrive à utiliser l api de mon routeur 4g pour le moment je récupère les infos
Par contre impossible à envoyer un sms

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Si ce n'est pas possible il y a toujours l'option d'un abonnement free à deux euros.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

c'est intéressant ça !

 

je suppose je bouygues ne propose pas ce genre de service ? si ? 

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour moi le mieux c'est un routeur 4g avec api comme cela on n'est plus dépendant d'un fournisseur

Envoyé de mon BLA-L29 en utilisant Tapatalk

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

ben j'ai un routeur 4g Mikrotik avec une SIM Bouygues... maintenant je sais pas pour son API...

Partager ce message


Lien à poster
Partager sur d’autres sites

ah ben si j'ai trouvé ! 

 

Mais problème bête, ce routeur est en cas de secours si l'adsl plante.

il est connecté sur le routeur principale de la maison, et celui-ci est configuré en fail over.

Et du coup si. l'adsl fonctionne, je n'accède pas au routeur 4g...

c'est pourri ça... j'avais oublié ce cas de figure...

  • Sad 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je sais pas comment tu as configurer cela
Moi j'ai accès au routeur 4g même si j'ai de l adsl. Mon routeur principal est un edge routeur 6p

Envoyé de mon BLA-L29 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai un UTM multiwan de chez netgear, un vieux truc...

vieux sujet...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

×