Aller au contenu

QuickApp - FreeSms


fredokl

Messages recommandés

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
Lien vers le commentaire
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
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...