Aller au contenu
jpr105

APIs BULKSMS et PRESENCE NETATMO

Recommended Posts

Bonjour my Geek Team,

 

Aujourd'hui je me lance dans la partie Alarme de ma Home Center 2 :

  • OK je suis complètement d'accord qu'une alarme dédiée est la meilleure solution et c'est ce que j'avais dans une précédente vie (Alarme Sériée) ... sans domotique
  • je considère donc ma démarche comme une version 1, peut-être une alarme dédiée en version 2 dans le futur ...
  • et puis les vacances approchant je n'ai pas beaucoup de temps ... alors faisons avec la HC2 

Mes détecteurs :

  • 2 capteurs d'ouvertures Z-wave (FIBARO FGK_101) pour les 2 portes d'entrée
  • 1 sirène Z-Wave SSA2 (FORTREZZ SSA-02) sur secteur
  • 1 multisensor Z-wave (AEON Labs DSB05)
  • 4 détecteurs IR en commande (véranda, salon, salle à manger, réserve)
  • 1 bouton dédié (Fibaro FGPB-101 "The Button") lui aussi en commande

Ce que j'ai compris :

  • il me faut faire une action d'armer et de désarmer l'alarme et de dire, lors de ces actions, avec quels détecteurs je vais bosser
  • je trouve ça plutôt bien car on peut imaginer une alarme générale avec tous les détecteurs opérationnels et, pourquoi pas, une alarme avec les détecteurs périphériques lorsqu'on dort à la maison
  • ensuite, l'alarme étant enclenchée, libre à moi d'entreprendre toute(s) action(s) nécessaire(s)

 

Donc dans le cadre des actions à entreprendre lorsque l'alarme est déclenchée, je voudrais entre autres :

  1. envoyer des SMS aux personnes "de confiance"
  2. allumer les projecteurs de mes 2 caméras Présence de chez Netatmo

 

Ce que j'ai trouvé :

  1. Pour les SMS à envoyer aux personnes de confiance ... et qui ne sont pas tous chez Free ... c'est pas top au niveau de la HC2 mais j'ai trouvé ce site qui offre des crédits de SMS (bulksms) et qui, de plus possède une partie API . Quelqu'un a-t-il des retours là-dessus ?
  2. Pour allumer mes deux projecteurs extérieurs des Présence Netatmo, ce n'est pas dans les API standard de Netatmo mais j'ai trouvé une solution en reverse-engineered ici. Encore une fois, quelqu'un a-t-il des retours là-dessus ?

 

Voilà vous savez tout et merci d'avance pour vos lumières.

Bon dimanche - Jean-Paul

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Pour compléter mon post j'ai un souci de désactivation de l'alarme.

  • Pour l'armer j'exécute une scène qui sera liée à un bouton FGPB-101 ; en voici un extrait :
    Citation

    -- Armement porte d'entrée --
    fibaro:call(287, "setArmed", "1")
    -- Armenent porte remise
    fibaro:call(169, "setArmed", "1")
    -- Armenent IR étage
    fibaro:call(158, "setArmed", "1")

     

  • Cela fonctionne parfaitement et mon icône d'alarme passe au vert :60:
     
  • Dans mon panneau d'alarme j'ai déclaré une scène dans laquelle je vais entreprendre toutes actions relatives à l'alarme « Scénario Alarme (ID=39) »
     
  • Concernant la désactivation, en voici un extrait :
    Citation

    -- Désarmement porte d'entrée --
    fibaro:call(287, "setArmed", "0")
    -- Désarmenent porte remise
    fibaro:call(169, "setArmed", "0")
    -- Désarmenent IR étage
    fibaro:call(158, "setArmed", "0")
    -- On tue la scène d'alarme
    fibaro:killScenes(IDSceneAlarme)

     

Mon souci est le suivant : cette satanée scène (39) ne semble pas vouloir mourir et se relance toute seule :15:

 

Any help ? Peut-être une mauvaise compréhension de ma part des déclenchements de scènes ?

Merci d'avance

Cordialement - Jean-Paul

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 22/04/2018 à 12:52, jpr105 a dit :

Bonjour my Geek Team,

 

Aujourd'hui je me lance dans la partie Alarme de ma Home Center 2 :

  • OK je suis complètement d'accord qu'une alarme dédiée est la meilleure solution et c'est ce que j'avais dans une précédente vie (Alarme Sériée) ... sans domotique
  • je considère donc ma démarche comme une version 1, peut-être une alarme dédiée en version 2 dans le futur ...
  • et puis les vacances approchant je n'ai pas beaucoup de temps ... alors faisons avec la HC2 

Mes détecteurs :

  • 2 capteurs d'ouvertures Z-wave (FIBARO FGK_101) pour les 2 portes d'entrée
  • 1 sirène Z-Wave SSA2 (FORTREZZ SSA-02) sur secteur
  • 1 multisensor Z-wave (AEON Labs DSB05)
  • 4 détecteurs IR en commande (véranda, salon, salle à manger, réserve)
  • 1 bouton dédié (Fibaro FGPB-101 "The Button") lui aussi en commande

Ce que j'ai compris :

  • il me faut faire une action d'armer et de désarmer l'alarme et de dire, lors de ces actions, avec quels détecteurs je vais bosser
  • je trouve ça plutôt bien car on peut imaginer une alarme générale avec tous les détecteurs opérationnels et, pourquoi pas, une alarme avec les détecteurs périphériques lorsqu'on dort à la maison
  • ensuite, l'alarme étant enclenchée, libre à moi d'entreprendre toute(s) action(s) nécessaire(s)

 

Donc dans le cadre des actions à entreprendre lorsque l'alarme est déclenchée, je voudrais entre autres :

  1. envoyer des SMS aux personnes "de confiance"
  2. allumer les projecteurs de mes 2 caméras Présence de chez Netatmo

 

Ce que j'ai trouvé :

  1. Pour les SMS à envoyer aux personnes de confiance ... et qui ne sont pas tous chez Free ... c'est pas top au niveau de la HC2 mais j'ai trouvé ce site qui offre des crédits de SMS (bulksms) et qui, de plus possède une partie API . Quelqu'un a-t-il des retours là-dessus ?
  2. Pour allumer mes deux projecteurs extérieurs des Présence Netatmo, ce n'est pas dans les API standard de Netatmo mais j'ai trouvé une solution en reverse-engineered ici. Encore une fois, quelqu'un a-t-il des retours là-dessus ?

 

Voilà vous savez tout et merci d'avance pour vos lumières.

Bon dimanche - Jean-Paul

Salut, désolé je ne vais pas pouvoir répondre à tes questions mais ton sujet m'intéresse car je vois que tu as une Caméra Netatmo Presence .    

De mon côté j'en ai installé une la semaine dernière mais malgré mes multiples essais je n'arrive pas à récupérer le flux vidéo dans la HC2, lorsque je mets l'adresse du flux dans la barre d'adresse de mon navigateur ça fonctionne mais lorsque je le mets dans les paramètres caméra de la HC2 j'ai un logo avec un point d'intérrogation... 

Est-ce que tu y es arrivé?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir @tchulio

 

Ma Présence fonctionne bien.

Mes paramètres :

  1. Adresse IP de la caméra
  2. URL JPG : /xxxxxxxxxxxxxxxxxx/live/snapshot_720.jpg
  3. URL du flux MPEG : idem

Capture d’écran 2018-04-23 à 18.57.29.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok merci pour ta réponse, au moins je sais que c'est possible.... Mais malheureusement j'ai fait comme toi et ça ne fonctionne pas. Pourtant lorsque je copie l'adresse dans mon navigateur j'ai bien l'image de ma caméra.

 

Je ne vois pas ce qui cloche...

 

Voici l'adresse, la tienne est construite comme ça également?

 

http:// adresse IP / code VPN /live/snapshot_720.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça fait un moment déjà que j’ai fait ça mais de mémoire il ne faut pas utiliser l’adresse VPN mais s’orienter via PING vers l’adresse locale

May the force be with you

http://forum.lic.pl/fibaro-urzadzenia/netatmo-welcome-presence-instrukcja-dodania-do-fibaro-hc2/

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir @tchulio

 

Je ne sais pas si tu as réussi à raccorder ta Présence mais voici un bout de code que j'avais retrouvé et qui fonctionnait pour la Welcome.

Je l'ai modifié pour qu'il fonctionne avec la Présence (active la variable scope qui te concerne).

 

Tu lances la procédure et tu as tout ce que tu veux savoir dans la fenêtre Debug :60:

 

Tu m'tiens au jus ;)

 

Cordialement - Jean-Paul

--[[
%% properties
%% globals
--]]

-- DIESE DATEN ANPASSEN
local client_id = 'xxxxxxxxxxxxxxxxxxxxx'
local client_secret = 'xxxxxxxxxxxxxxxxx'
local username = 'xxxxxxxxxxxxxxx'
local password = 'xxxxxxxxxxxxxxx'

local language = 'english' -- german/english

-- AB HIER NICHTS MEHR ANPASSEN
local token = ''
local request_body = ''
-- To retrieve "presence" URL
local scope = '&scope=read_presence access_presence'
-- To retrieve "welcome" URL
-- local scope = '&scope=read_camera access_camera'

Debug = function ( color, message )
  if (debug == 1) then
  fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
  elseif (debug == 0) then
  end
end

DebugChange = function ( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end

DebugError = function ( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end

fibaro:debug('netatmo welcome cam finder v1.0b')

if (language == 'german' or language == 'english') then
  DebugError( "green", "Debug: " ..language)
else
  DebugError( "red", "Please choose a language for debug")
  fibaro:abort();
end

local sourceTrigger = fibaro:getSourceTrigger();

function oAuth(nextFunction)
 local request_body = 'grant_type=password&client_id=' .. client_id .. '&client_secret=' .. client_secret .. '&username=' .. username .. '&password=' .. password .. scope
 getResponseData('https://api.netatmo.net/oauth2/token', request_body, 
     function(data)
      if (data.access_token ~= nil) then
        token = data.access_token
      	gethomedata()
      else
        if (language == 'german') then
          DebugError( "red", "oAuth-API-Call konnte nicht durchgeführt werden! oAuth 2.0 lieferte keinen Wert zurück")
        elseif (language == 'english') then
          DebugError( "red", "oAuth-API-Call Error. oAuth 2.0 returns nothing.")
        end
      end
    end
    )
end

function getResponseData(url, body, func)
 local http = net.HTTPClient()
 http:request(url, { 
 options = { 
 method = 'POST', 
         headers = {
 ['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
 },
 data = body
 },
 success = function(response) 
 func(json.decode(response.data))
 end
 })   
end

function gethomedata()
   request_body_cam = 'access_token=' ..token.. ''
   getResponseData('https://api.netatmo.net/api/gethomedata', request_body_cam, 
      function(getData)
      fibaro:debug(request_body_cam)
      if (getData.body ~= nil) then
        if (language == 'german') then
          DebugError( "green", "API-Call durchgeführt.")
        elseif (language == 'english') then
          DebugError( "green", "API-Call was done.")
        end
        for w, v in pairs(getData.body.homes) do
          for a, b in pairs(v.cameras) do
            if (b.is_local) then
             if (language == 'german') then
                DebugError( "green", "Lokale IP der Kamera gefunden.")
             elseif (language == 'english') then
                DebugError( "green", "Local IP of cam was found.")
             end
             findLocalWelcome(b.vpn_url)
            else
             if (language == 'german') then
                DebugError( "green", "Lokale IP der Kamera NICHT gefunden.")
             elseif (language == 'english') then
                DebugError( "green", "Local cam NOT found.")
             end
            end
          end
        end
      else 
        if (language == 'german') then
          DebugError( "red", "API-Call fehlgeschlagen")
        elseif (language == 'english') then
          DebugError( "red", "API-Call Error")
        end
      end
 end
 )
end

function findLocalWelcome(url)
local selfhttp = net.HTTPClient({timeout=2000})
url = url..'/command/ping'
selfhttp:request(url, {
    options={
      headers = selfhttp.controlHeaders,
      method = 'GET',
      timeout = 5000
    },
    success = function(status)
      if status.status == 200 then
        if status.data ~= nil then
         --print(json.decode(status.data))
         for k,v in pairs(json.decode(status.data)) do 
          if (k == 'local_url') then
            local cam_url = v
            local url_new = string.sub(cam_url, 8, #cam_url)
            one, two = url_new:match("([^,]+)/([^,]+)")
            fibaro:debug('Cam-IP: '..one)
            fibaro:debug('JPG-Stream: /'..two.. '/live/snapshot_720.jpg')
            DebugError( "green", "coded 4 siio.de/siio.com")
          end
         end
        end
      else
        print ("failed")
        print(status.data)
      end
    end,
    error = function(error)
      print "ERROR"
      print(error)
    end
})

end

oAuth()

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour et merci pour ton code.

 

1) j'ai suivi à la lettre la méthode selon le site que tu m'as partagés :  http://forum.lic.pl/fibaro-urzadzenia/netatmo-welcome-presence-instrukcja-dodania-do-fibaro-hc2/ , l'adresse URL que j'obtient au final est la même que celle que j'ai déjà, lorsque je la copie dans ma barre d'adresse de mon navigateur ça fonctionne, par contre lorsque je la mets dans Fibaro impossible d'avoir quelque chose.

J'ai tout essayé il me semble mais j'ai toujours un ? dans le carré de ma caméra.... comme tu peux le voir sur les images ci-jointes....

 

2)  merci pour le code que tu m'as communiqué mais à quoi est-ce qu'il sert ?  Je dois le copier dans le GEA ? Dans une scène LUA ?

 

Merci pour ton aide

Capture d’écran 2018-04-29 à 07.17.34.png

Capture d’écran 2018-04-29 à 07.18.11.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Jpr105, plusieurs points :

-Attention avec le DSB05, j'en ai 2, et ils ont régulièrement des faux positifs, donc dans ton cas cela voudra dire déclenchement de l'alarme. Ils ne sont pas top fiables à ce niveau là.

-Pour ta scène, qu'entends tu par elle ne veut pas mourir ? Le désarmement ne fonctionne pas ou autre chose ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Nico,

 

J'ai un peu avancé depuis le début de ce post et voici ce que j'ai fait et constaté :

  • mes 2 scènes d'armement et de désarmement sont maintenant liées à un bouton FGPB-101 (simple et double click)
  • je pense que je n'étais pas bien clair avec la case à cocher « Ne laissez pas l'alarme arrêter une scène tandis que l'alarme est en marche » qui est maintenant systématiquement cochée pour toutes les scènes relatives à l'alarme
  • une fois tout cela calé, on a fait des tests « grandeur nature » et là c'est pas top ...
  • je ne sais pas si c'est lié au fait d'aller « titiller » ce module d'alarme que je n'avais jamais utilisé jusqu'ici mais ma HC2 se « bloque » toute seule sans prévenir, alarme ou pas alarme
    • dans ce cas, et que tu rentres de courses, tu appuies vaillamment 2 fois sur le bouton pour désactiver l'alarme ... et comme elle ne prend plus aucun ordre en compte, bonjour les décibels que tu te prends dans la tête :angry:
    • ou alors cette nuit elle s'est planté à 2h30 et au réveil mon appui long sur ma télécommande pour ouvrir tout mes VR n'a pas fonctionné ; heureusement j'avais associé le bouton d'un VR avec tous ses copains pour que cela puisse fonctionner sans HC2 :74:

Donc j'ai mis cette partie alarme un peu en stand-by car il est hors de question de s'appuyer sur un système non fiable. En attendant :

  • je peaufine ma scène d'alarme, qui je l'espère fonctionnera un jour, en travaillant sur la partie « envoi de SMS aux personnes de confiance »
  • j'en étais à me demander si je n'allais pas solliciter The Grand @Krikroff pour qu'il m'aide à trouver pourquoi le bestiau se plante ... GROS BESOINS DE MONITORING
  • dans le doute j'avais viré toutes les bidouilles que j'avais fait à droite à gauche mais cela n'a rien changé
  • je viens aussi de mettre à jour toute la partie « Fibaro ID » que je n'avais toujours pas paramétrée

Pour répondre à ta question, je pense que mes soucis viennent de l'instabilité de la bête mais :

  1. Pourquoi
  2. Et comment y remédier ?

En tout cas merci pour ton attention

Cordialement - Jean-Paul

Partager ce message


Lien à poster
Partager sur d’autres sites

Cela plante, c'est à dire ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 9 heures, jpr105 a dit :

Capture d’écran 2018-04-29 à 10.24.33.png

Capture d’écran 2018-04-29 à 10.04.03.png

Décidément, j'ai copié le code dans une scène et lorsque je la lance je n'ai pas le même message que toi.... Il y a certainement un bu et c'est également pour ça que je n'arrive pas à l'intégrer dans ma HC2 alors que ça marche dans ma barre d'adresse.... :(:(:(

 

Capture d’écran 2018-04-29 à 20.34.55.png

Partager ce message


Lien à poster
Partager sur d’autres sites

@Nico, elle reste allumée mais ne réagit à aucun ordre et pas moyen de s’y connecter. Elle est comme « gelée ». Le seul moyen de s’en sortir est le marche/arrêt :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum pas normal ça, surtout en jouant juste avec l'alarme.

Partager ce message


Lien à poster
Partager sur d’autres sites

Non, ça le fait alarme en service ou pas. Mais ça a commencé depuis que je "joue" avec le panneau d'alarme :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

@tchulio, as-tu bien rempli les 4 variables du début de la procédure ?

Si tu as tout bien fait, là j'peux rien pour toi :(

Partager ce message


Lien à poster
Partager sur d’autres sites

Quand elle plante, la 4ème led activité Zwave reste allumée ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça j'ai pas fait gaffe, rendez-vous au prochain plantage ;)

Merci encore.

 

Parallèlement j'ai ouvert un ticket chez Fibaro pour voir s'ils peuvent m'aider à monitorer la bête

Partager ce message


Lien à poster
Partager sur d’autres sites

@tchulio je pense que tu ne dois pas être loin au regard des copies d'écran que tu as envoyé.

 

Dans le champ "Adresse IP" ... juste l'adresse IP ... ex : 192.168.10.25

Dans les champs URL JPG & URL du flux MPEG ... ce qui se trouve après le slash le l'adresse locale, slash compris ... ex : http://192.168.10.25/eefçac'estmoncodeàmoi561/live/snapshot_720.jpg ==> juste la partie en gras

 

Help your self

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 9 heures, jpr105 a dit :

@tchulio je pense que tu ne dois pas être loin au regard des copies d'écran que tu as envoyé.

 

Dans le champ "Adresse IP" ... juste l'adresse IP ... ex : 192.168.10.25

Dans les champs URL JPG & URL du flux MPEG ... ce qui se trouve après le slash le l'adresse locale, slash compris ... ex : http://192.168.10.25/eefçac'estmoncodeàmoi561/live/snapshot_720.jpg ==> juste la partie en gras

 

Help your self

 

J'ai réussi avec la scène, erreur de copier/coller je pense . Par contre j'ai obtenu le même identifiant que celui que j'avais déjà et du coup le résultat est le même comme tu peux le constater. C'est dingue ça, ça marche dans le navigateur et pas dans ma HC2.... Je n'y comprends plus rien....

 

Capture d’écran 2018-04-30 à 07.41.15.png

Capture d’écran 2018-04-30 à 07.41.34.png

Partager ce message


Lien à poster
Partager sur d’autres sites

@tchulio

 

Il faudrait que tu lises les réponses jusqu'au bout ... relis mon précédent post que tu as d'ailleurs cité :15:

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, jpr105 a dit :

@tchulio

 

Il faudrait que tu lises les réponses jusqu'au bout ... relis mon précédent post que tu as d'ailleurs cité :15:

Hello j'ai bien fait ce que tu m'as dit, je ne vois pas pourquoi tu me dit ça ?

 

Concernant mon adresse IP j'ai volontairement mis "xx" à la fin pour être quitte de la flouter. je vais tout rebooter au cas où , on sait jamais....

Partager ce message


Lien à poster
Partager sur d’autres sites

TU VIRES "http://192.168.1.xx" DES CHAMPS "URL JPG" & "URL du flux MPEG", TU LAISSES LE "/" ET TOUT CE QUI SUIT ... THAT'S ALL :15:

Partager ce message


Lien à poster
Partager sur d’autres sites

×