Aller au contenu

Recommended Posts

Oui pas de problème si une api est mise à  disposition (ou autre a voir ;)). Quel est le FAI ?

 

Je suis sur l’intégration de la partie "passerelle personnalisée" et toutes les informations peuvent m'aider à  rendre le service ouvert au plus grand nombre ;)

Lien vers le commentaire
Partager sur d’autres sites

Je suis en Suisse, donc...

 

le FIA est www.netplus.ch

 

j'ai un lien qui me permet d'arriver sur une plate forme pour envoi de sms

 

https://clients.netplus.ch/fr/espace_clients/index.php

 

donc je pense arriver jusque la n'est pas un gros problème, c'est après que cela se complique pour moi !!!

 

et ensuite créer son sms !

 

screenshot 100

 

Lien vers le commentaire
Partager sur d’autres sites

Hum...Je ne pense pas qu'il existe une API ici :( après pour en savoir plus il faudrait voir ce qu'il se passe sur le backoffice... c'est 5 sms maxi ?

Lien vers le commentaire
Partager sur d’autres sites

Pas de problème si ce n'est pas un problème pour toi !

je vais essayer de voir les informations avec juste une demande ;)

 

Merci pour ton aide...

Lien vers le commentaire
Partager sur d’autres sites

:D La suite du retour ....

 

Les échanges semblent passer en https (non supporté encore pas le HC2) mais parfois j'arrive à  le contourner, donc à  voir....

 

Dans tous les cas, si je passe la barrière https il n'y aura pas de problème pour attaquer le service lorsque j'aurais intégré le support "Passerelle personnalisée" ;)

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

Bonjour Krikroff,

 

Merci pour cette excellente idée!.

Je viens de faire quelques tests. ça fonctionne partiellement, mais peut être ai-je merdé avec la variable globale, dont une partie du fonctionnement n'est pas clair pour moi.

 

Lors de mon premier essai, la fonction notify que j'ai untégrée dans mon code plantait sur la ligne de code ci-dessous :

 params.order = #object + 1;

Je n'ai pas noté le message d'erreur exact, mais l'erreur semblait venir du fait que la valeur de la variable object n'etait pas de type string...

J'ai modifié le bouton Erase Pending afin qu'il mette une chaine vide dans la variable x_nc_object, soit :

fibaro:setGlobal("x_nc_object","");

Cela fonctionne tant que je laisse ce code. Des que je remet un "0" ça ne fonctionne plus.

Ce qui m'échappe avec la variable globale est qu'elle semblait contenir initiallement un entier, et qu'elle contient désormais un "string" quoi que je mette dedans.

 

Bref, le device fonctionne tant que je laisse mon code modifié sur le bouton erase.

 

Pour mes tests, je n'ai pas encore activé la scene qui déclenche la notif. Je fais ce déclenchement manuellement.

Tout fonctionne à  merveille si je déclenche la création d'une notification apres chaque création de message.

Par contre, si je tente d'empiler 2 messages, cela ne fonctionne pas, j'obtiens le message suivant :

[DEBUG] 17:21:48: Object not found, create new object and add notification
[DEBUG] 17:21:48: Notification #1410362508 sent on 2014-09-10 17:21:48
[DEBUG] 17:21:49: Object found, new notification added
[ERROR] 17:21:49: line 25: bad argument #1 to 'insert' (table expected, got string)

L'erreur est sur la ligne ci-dessous :

table.insert(object, params);    

En cas de besoin, voici l'ensemble de mon code :

-- ID of the notification center device
local NotifCenterID = 50
local PushAppToken = "XXXXX"


--- Notify function (from Krikroff -> DO NOT Modify
-- @ 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 = tostring(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

-- Build message notif
local AlarmStatus = fibaro:getGlobalValue("ProtexiomAlarmOnOff")
if AlarmStatus ~= "000" then
  MyMessage = "Alarme mise en marche, zone "
  if string.sub(AlarmStatus, 1, 1) == "1" then MyMessage = MyMessage.."A" end
  if string.sub(AlarmStatus, 2, 2) == "1" then MyMessage = MyMessage.."B" end
  if string.sub(AlarmStatus, 3, 3) == "1" then MyMessage = MyMessage.."C" end
else
 MyMessage = "Arret Alarme"
end

-- Send notif
notify({
    message = MyMessage, 
    service = "pushover",
    settings = {     
      token = PushAppToken, -- Application's API token (override default settings)
      --user = "",	-- User key (override default settings)
      priority = "0", 		-- Message Priority: Normal (option)
      title = "Alarm on/off",	-- Add a title (override default settings)
      timestamp = os.time()	-- Specifying a Message Time (option)
    }
  })
Lien vers le commentaire
Partager sur d’autres sites

Je viens de tester ton code effectivement il y a un truc mais pourtant moi ça fonctionne avec

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

peux-tu utiliser le code de la fonction "notify" ci-dessus pour voir ?

Lien vers le commentaire
Partager sur d’autres sites

Un petite option intéressante pourrait être la prise en compte d'un son spécifique sur pushover.
https://pushover.net/api#sounds
C'est vraiment du nice to have, mais ça peut être interessant par exemple pour utiliser un son spécifique sur un déclenchement alarme, et un son pour des messages moins important. :D
 

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

:rolleyes: je vois pas d’où vient le

object = tostring(data);

le problème était ici...

 

 

Pour Pushover tu peux déjà  le faire, car toutes les options pushover peuvent être utiliser en natif dans mon code ;),

 

exemple:

notify({
    message = "The door is open for a long time", 
    service = "pushover",
    settings = {     
      token = "xx",   
      user = "xx",
      priority = "0",
      title = "Warning",
      sound = "spacealarm"
    }
  });

mais aussi url, url_title etc...

 

:)

Lien vers le commentaire
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

 

En général, je ne suis pas hors-sujet :P  ...je suis difficile à  comprendre :D ... et même pour moi  :rolleyes:

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

Argh!! :15: Désolé, c'est moi qui est ajouté ça pour faire une test lorsque j'ai eu mon problème de variable globale!

Coorection faite, je te confirme que tout fonctionne à  merveille.

 

Excellent pour la prise en compte des options Pushover!!!

 

Au top ton nouveau module! :60: . Merci encore!

Lien vers le commentaire
Partager sur d’autres sites

Super que cela fonctionne à  merveille :) , il faut pas hésiter à  torturer le module ...

 

Le support PushingBox et Prowl est prêt pour la nouvelle version, j'ai besoin de testeurs :15:

Lien vers le commentaire
Partager sur d’autres sites

Merci Krikroff pour ce développement.  :60:

 

Pourrais-tu intégrer à  ton développement, l'accès aux modules comme Karotz, Squeezebox et autres pour les notifications TTS de manière générale?

La plupart de ces modules récupère la phrase à  prononcer dans une variable globale lors que l'on appuie sur son bouton TTS.

 

Il faudrait comme info: la variable globale, l'ID du module et l'ID du bouton du dit module.

 

Ce n'est pas des notifications par push mais c'est aussi une forme de notification.

 

Qu'en penses tu ?

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir Shyrka,

 

Pour moi le TTS c'est bien de la notification et je te rassure  ;)  j'ai envisagé l’intégration du TTS dans le projet (SONOS oblige :D ) mais peut-être pas de la manière que tu exposes (pour des considérations techniques), mais nous en reparlerons lorsque le projet sera plus avancé.

 

Merci pour tes bonnes idées :60:

Lien vers le commentaire
Partager sur d’autres sites

Si je devais encore élargir le projet, toi qui connais bien PLEX (il me semble) est-il possible d'envoyer des notifications comme sur XBMC ?

Lien vers le commentaire
Partager sur d’autres sites

C'est vrai que ma méthode est assez basique mais elle s'adapte facilement à  tous les modules avec bouton TTS.

J'attends que voir ton intégration à  ton plugin SONOS Player pour l'adapter à  mes plugins Karotz et Squeezebox.

 

Pour Plex, je vais me renseigner mais je n'ai jamais encore vu de notification à  l'écran pendant le visionnage d'un film.

Lien vers le commentaire
Partager sur d’autres sites

J'ai une erreur dans la fonction "notify" dans une scène:

[DEBUG] 23:33:59: Object not found, create new object and add notification
[ERROR] 23:33:59: line 96: attempt to index global 'json' (a nil value)
 
La ligne 96 correspond à :
fibaro:setGlobal("x_nc_object", json.encode(object));

J'appelle la fonction ainsi:

    notify({
      message = msg, 
      service = "hc2",
      settings = {
        title = "Warning",
        type = "push"
      }
    });
 

msg est un string.

 

Je ne comprends pas cette erreur. Un problème avec la librairie json ?

Lien vers le commentaire
Partager sur d’autres sites

La librairie json est dispo uniquement dans les virtual devices, pas dans les scènes.

J'ai contourne le problème en mettant le code de ma notif dans un nouveau bouton du virtual device de krikroff. J'appelle ensuite ce bouton depuis la scene.

Lien vers le commentaire
Partager sur d’autres sites

@Shyrka, pour le TTS ce n'est pas un problème de méthode basique mais plus une contrainte technique: le VD cible doit être capable de gérer des demandes concurrentes et les files d'attente. Mais il y a toujours une solution ;)

Pour le problème json, c'est une question de timing: la librairie json est maintenant supportée dans les scènes dans la V4 mais j'ai peut être une solution en attendant la V4 stable, àvoir si j'ai le temps pour cela.

Envoyé de mon iPhone àl'aide de Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

@fdp2 @Krikroff

Merci. J'avais oublié cette contrainte. Vivement la v4 pour la lever. Dans le même genre, il y a aussi le fhttp qui est supporté dans les scène àpartir de la V4.

Il semblerait que le plugin Netatmo soit disponible avec la V4.017. Cela implique que le https soit aussi disponible ?

@Krikroff

Ce serait un vrai plus pour les plugins TTS. Je suis encore plus impatient de voir comment tu implante cela.

Envoyé de mon iPad àl'aide de Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

Oui Netatmo est disponible mais les valeurs restent à  0 ... peut-être parce que justement https n'est pas encore implémenté correctement ...

 

Ce n'est plus fhttp, mais oui il y a un client http dans les scènes maintenant: net.HTTPClient et beaucoup d 'autres choses  ;)  (json, timer etc..)

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...