Aller au contenu

Recommended Posts

Notification Center

 

Le centre de notifications à  pour objectif de centraliser au mieux les besoins en communication en mettant à  disposition une interface (lua) permettant d’accéder à  divers services (HC2 Push & Mail, Pushover, passerelle personnalisée etc.) afin de pousser des messages dynamiques et informations diverses  vers l’ extérieur.

 

Version: 1.0.1
Phase du projet : Bêta

 

Actuellement « Notification Center » est capable de gérer de manière automatique des demandes de notifications (concurrentes ou non)  en utilisant les services suivants :

En cours d' intégration:

Roadmap:

  • SMS Gateway & PAW
  • Notification XBMC (Popup)
  • TTS (support tiers)
  • Messages prédéfinis (avec "template" ou non)
  • Périphérique virtuel  avec retour visuel : Nombre d’envois (Jours/mois), état du moteur de notification etc.
  • Table de correspondance Mobile ID / User ID <-> Périphérique / Utilisateur par réflexion de l’API
  • Panic Mode: routage automatique de tous les messages (prioritaires) vers une passerelle GSM (PAW, SMS Gateway) en cas de défaillance de fourniture Internet (ADSL/Fibre/Etc)

 

 

En cours d'enrichissement...

  • Upvote 8

Partager ce message


Lien à poster
Partager sur d’autres sites

Installation et exemples d'utilisation

 

A. Installation:

  • Prérequis: HC2 version 3.590 ou 3.591bêta
  • Créer une variable globale x_nc_object (valeur 0 par défaut)
     
  • Importer le périphérique virtuel "Notification Center" (.vfib) et noter l' ID du vd fraichement installé.
    Notification_Center_1.0.1beta.vfib
     
  • Créer une nouvelle scène nommée x_nc_trigger (scène active + Do not allow alarm...) puis copier/coller le code du fichier en prenant soin de renseigner l' ID de votre vd dans la variable adéquate.
    Scene-x_nc_trigger.txt

    Attention: Il faut créer la variable avant la scène, de même si la variable doit être recréé la scène doit être de nouveau sauvegardée afin que le trigger soit pris en compte.
     
  • Parametrage du vd: dans le code du bouton "Notify"

    Mettre à  jour les valeurs par défaut pour le service "HC2"
    settings.services.hc2 = {
      -- User ID
      userId = 2,
      -- Smartphone type device ID
      smartphoneId = 385,
      -- Title (optional)
      title = nil,
      -- Notification type [push|email]
      type = "push"  
    }
    
    Mettre à  jour la valeurs par défaut pour le service "PUSHOVER" 
    settings.services.pushover = {
      -- Application's API token
      token = "xxxxxxxxxxxxxxxx",
      -- User key
      user = "xxxxxxxxxxxxxxx",
      -- Device (optional)
      device = nil,
      -- Title (optional)
      title = nil,
      -- Priority
      priority = "0",
      -- Pushover sound (default)
      sound = "pushover"
    }
    

 

 

B. Exemples d'utilisation:
 
La fonction suivante est utile au bon fonctionnement et doit être présente dans la page de code a l'origine de la demande

--- Notify function
-- @ param params The object with parameters
-- @ rev 1.0.1
local notify = function(params)  
  if (params and type(params)=="table") then    
    local data, object = fibaro:getGlobalValue("x_nc_object"), {};
    if (not params.time) then params.time = os.time() end
    if (not params.order) then params.order = 1 end
    if (not params.status) then params.status = 0 end    
    if (string.len(data) > 0) then
      local data = json.decode(data);  
      if (data and type(object)=="table") then
        object = data;
        params.order = #object + 1;
        fibaro:debug("Object found, new notification added");
      end
    else
      fibaro:debug("Object not found, create new object and add notification");
    end    
    table.insert(object, params);    
    fibaro:setGlobal("x_nc_object", json.encode(object));
    fibaro:debug(string.format("Notification #%s sent on %s", params.time, os.date('%Y-%m-%d %H:%M:%S', params.time)));
  end  
end

 
Exemples Pushover:
 
Les valeurs passées dans l'objet settings sont prioritaires sur les valeurs par défaut (ici token, user etc.)

notify({
    message = "The door is open for a long time", 
    service = "pushover",
    settings = {     
      token = "arFcVXmeNytdfvZHDxJi5rydfZrN29", -- Application's API token (override default settings)
      user = "uPy54LkKMpfA8xah4PyDsiljjrZHobo",	-- User key (override default settings)
      priority = "0", 		-- Message Priority: Normal (option)
      title = "Warning",	-- Add a title (override default settings)
      timestamp = os.time()	-- Specifying a Message Time (option)
    }
  });

 
Exemples Push par HC2:

notify({
    message = "The door is open for a long time", 
    service = "hc2",
    settings = {
      title = "Warning",-- Add a title (override default settings)
      type = "push"	-- Set to push notification
    }
  });

 
Exemples Mail par HC2:

notify({
    message = "1 - The door is open for a long time", 
    service = "hc2",
    settings = {
      title = "Warning",-- Add a title (override default settings)
      type = "email",	-- Set to email notification
      userId = 2	-- Override the default user ID
    }
  });

Exemples Prowl:

notify({
    message = "The door is open for a long time",  -- The name of the event or subject of the notification.
    service = "prowl",
    settings = {     
      apikey = "xxxxxxxxx", 	-- API keys (40-byte hexadecimal string)
      priority = 0,				-- Message Priority: Normal
      application = "HC2",		-- The name of your application or the application generating the event.		
      description = "Warning"	-- A description of the event, generally terse.
    }
  });

Exemples PushingBox:

notify({
    message = "The door is open for a long time",  -- The name of the event or subject of the notification.
    service = "pushingBox",
    settings = {     
      devid = "xxxxxxxxx", 	-- The DeviceID
      variables = {
        ['temperature'] = "10.5",
        ['action'] = "push",
      }
    }
  });

En cours d'enrichissement...

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais c'est top ça Jc ! hâte de voir ceci finalisé...  :)

 

// et cerise sur le gâteau, toi tu mets ta Roadmap ! //

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça marche pas trop mal chez moi après des tests sur des environnements différents me diront si le projet est viable ou pas...

Logiquement le code sera en ligne ce soir, il attend sagement sur ma box depuis un petit moment

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Cool ?

Question, une idée pour utiliser par exemple SMS Gateway comme passerelle SMS de sortie ?

Prêt àtester en tout cas.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis prêt...

Envoyé de mon C6603 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah mais ne vous attendez pas àun truc de dingue non plus .

Je n'utilise pas SMS gateway j'ai ma propre passerelle SMS mais si il y a une API c'est dans la roadmap !

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as quoi comme passerelle sms? Paw ?

Ça serait bien de pouvoir ajouter ceci non? Je m'en sers bien aussi comme notif...

Envoyé de mon C6603 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah si tu intègres ta propre passerelle cela me va ? Elle fonctionne aussi avec un smartphone android directement et simplement ?

Partager ce message


Lien à poster
Partager sur d’autres sites

@Nico, non àbase d'un vieux module gsm siemens en rs232 :)

@moicphil, hop PAW dans les tuyaux ;)

J'espère pas rentrer trop tard pour vous poster quelque chose ce soir ;)

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Super !! mais pour toi Krikroff tu peux faire ça de la main gauche pendant que la droite termine le débugage de la V4  :)

 

 

Passer par une passerelle SMS (SMS Gateway) ou par LiveNotifier ...c'est bof bof 

 

La fonction qui manque en fait à  ta roadmap, c'est l'identification d'une coupure ADSL et basculer automatiquement d'un PUSH/SMS par le HC2(ADSL), à  un message par la passerelle (3G)  :mellow:  C'est prévu ? :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Au contraire une passerelle SMS c'est top quand tu n'es pas chez toi et que t'as pas Internet, tu reçois quand même ta notif !

 

Pour la coupure adsl, tu peux être notifié en faisant un Ping sur une adresse web, si ping KO >> sms via la passerelle en LAN

Partager ce message


Lien à poster
Partager sur d’autres sites

Je me suis mal exprimé... :rolleyes:

 

En fait, l'idée est :

  • Si je perds l'ADSL ...alors je passe par la passerelle
  • Si quelqu'un fait un brouillage chez moi alors je passe par l'ADSL
  • Si j'ai les 2 possibilités,j'en prends une que ce soit par la passerelle ou par l'ADSL

Il faut les 2 possibilités et la sélection de l'un ou l'autre doit se faire "automatiquement" et comme il existe un plugin FREEBOX (par exemple ^_^ ) ce ne doit pas être trop difficile !

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok, j'ai mieux compris.

 

Tu souhaites un relais GSM en cas de coupure internet... Je ne pense pas que ça soit le sujet ( ou alors je suis à  l'ouest complet )

Le plus simple étant ( je pense ) d'investir dans ce cas dans un routeur 3g

 

// ou attendons que Fibaro nous donne la possibilité d’insérer une clef 3G dans un port usb //

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, làon parle de notif, d'où ma question de sms Gateway.

Partager ce message


Lien à poster
Partager sur d’autres sites

Plus simple que ça moiCphil et Oui Nico

 

 

Un téléphone (un peu obsolète d'une de mes filles) avec SMS Gatesway et une carte SIM à  2€ de FREE !!! Ca suffit pour bye-passer l'ADSL qui pourrait être HS ! non ?

 

en plus SMS Gateway (ou autre bien sur) se pilote par commande HTTP donc "simple" (à  mon niveau ^_^ )

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai bien compris, ;)  j'utilise moi même Paw en tant que passerelle SMS et ceci avec une SIM 2€ .

 

Mais tu es toujours hors-sujet ! :P car d'aprés le titre du sujet :

 

- notif SMS>> Oui (via Paw ou sms gateway, etc...)

 

- relais GSM >> Non 

Partager ce message


Lien à poster
Partager sur d’autres sites

De retour ..

 

@JM13, si j'ai bien tout compris  :rolleyes:  ton souhait serait en gros un routage automatique de toutes les notifications vers une passerelle GSM (ex: SMS Gateway) en cas de défaillance de la ligne ADSL/Fibre ? Une sorte de mode Panic en fait ...

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Exact ! Krikroff

 

Toutes les solutions de manières indépendantes marchent (SMS par Free ou PUSH/SMS par HC2, ou SMS gateway) mais le judicieux serait de pouvoir basculer en cas d'incident ! non ?

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avais donc mal compris ta demande JM13...désolé ;-)

C'est vrai que de basculer l'ensemble des notifs en cas de pb Adsl serait un plus...

Envoyé de mon C6603 en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est ajouté àla roadmap .

J'attends vos retours sur le projet et en fonction de ceux ci je prioriserais les tâches.

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Krikroff, j'essai peut être ce soir, mais ça va être compliqué, je pars en déplacement demain pour 2 jours.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est rigolo ... moi aussi et je vais àToulouse !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a pas la feu au lac :D

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello

Question à2 balles !! Mon fournisseur d'accès internet fournis une prestation d'envoi de SMS depuis leur console admin,

Cela serai aussi utilisable !?

Partager ce message


Lien à poster
Partager sur d’autres sites

×