Aller au contenu
J3R3M

[VD+Scène] Netatmo Welcome

Recommended Posts

Bonjour à tous,

 

Jusqu'à peu, j'utilisais uniquement des requêtes fing (ping) pour détecter les différents téléphones de mon téléphone et ainsi en déduire la présence de quelqu'un ou non à mon domicile.

Seulement, ce n'était pas assez fiable et j'ai décidé de combiner cette solution à la Netatmo Welcome.

Après quelques recherches, je suis tombé sur ce topic du site Siio (également et heureusement disponible en anglais ici). C'est exactement ce que je recherchais!

Seulement, je l'ai modifié pour qu'il soit plus simple à à mettre en place et à utiliser au quotidien. Ainsi, il n'y a rien à faire à part modifier les variables vous concernant.

 

Pour utiliser le script original, il faut créer deux Variables Globales par personne identifiée dans la base de données de la Welcome, ce que je ne trouve pas très ergonomique et lourd.

Je précise qu'une très grande partie du script provient du lien précédent et je ne cherche pas à tirer la gloire de l'auteur original (BOOMX) de celui-ci malgré mes modifications.

Je l'ai modifiée comme je le souhaitais et ai traduit les debugs.

J'espère que cette scène vous sera utile et suis disponible pour répondre à vos éventuelles questions! :)

 

Exemple d'utilisation

 

Pour savoir si quelqu'un est présent d'après la Netatmo Welcome, il suffit d'utiliser un code comme-ci dans vos scènes et VD :

local pseudo = "Jérémy";
local VGNetatmo = "NETATMO_Welcome";
local table = json.decode(fibaro:getGlobalValue(VGNetatmo));
local presence = tonumber(table[pseudo].status);

if presence == 1 then
  fibaro:debug(pseudo.." est présent.");
else
  fibaro:debug(pseudo.." est absent.");
end

 

Réglages de la Scène Netatmo Welcome

 

Toutes les variables permettant de régler la scène sont au début de celle-ci. Après avoir saisi les bonnes informations, enregistrez et démarrez la scène manuellement. La scène est fonctionnelle !

NB : Ces paramètres étant envoyés via une requête HTTP, merci d'encoder les caractères spéciaux. Pour rappel : @ = %40

-- Informations de compte Netatmo
local client_id = 'Client_id';
local client_secret = 'Client_secret';
local username = 'Netatmo_username';
local password = 'Netatmo_pass';

-- Informations du VD associé
local vd_ID = 304;  -- ID du VD associé
local vd_refresh = 9; -- ID du bouton refresh du VD. 9 Par défaut

-- Réglages de la scène
local refresh = 10; -- Script executé toutes les x secondes. Pas moins de 8s!
local debug = 0; -- Faut-il vraiment l'expliquer ?

-- Nom de la Variable Globale qui sera créée et utilisée par la scène et le VD
local VGNetatmo = "NETATMO_Welcome";

 

Trouver ses Client ID & Client Secret

 

Pour obtenir vos client_id et client_secret, rendez-vous sur dev.netatmo.com et connectez-vous.

 

Cliquez sur CREATE YOUR APP et remplissez rapidement le formulaire. Les informations saisies importent peu!

 

1631545948_Capturedecran2018-08-08a16_28_04.thumb.png.db10b5a5944e8634b6a9adf3e72c3aeb.png

 

Une fois que vous aurez validé en cliquant sur le bouton SAVE, d'autres fenêtres apparaîtront en-dessous.

Celle qui nous intéresse et celle juste en-dessous. En effet, les informations Client id et Client secret sont dans la section Technical Parameters.

 

1181662342_Capturedecran2018-08-08a16_32_49.thumb.png.85e953a3ee5dfec79af220918c5354a2.png

 

Faites un copier/coller de ces informations dans les variables correspondantes et le tour est joué!

J'ai tellement ramé à les trouver que je me devais de vous dire où ces informations étaient dissimulées!

 

Limitations de l'API Netatmo

 

En ce qui concerne la variable refresh, il s'agit du délai entre chaque mise à jour des informations par la scène.

L'auteur explique très bien pourquoi il ne faut pas descendre en dessous des 8 secondes et je vais me contenter de traduire son explication.

Citation

 

Malheureusement, il y a une restriction de l'API. "Seulement" 2000 requêtes par heure peuvent être exécutées. Cela signifie que la scène peut uniquement être exécutée toutes les 4 secondes (60mn * 60s = 3600 secondes / 4 secondes de pause = 900 appels *2 = 1800 appels; la scène effectue deux appels API par exécution). Cependant, les tests effectués ont montré qu'un réglage de 4 secondes menait souvent à une erreur et rien n'était retourné par l'API. Le compte pour les appels API était bloqué.

Les tests effectués avec un réglage à 8 secondes ont donné de bons résultats. Dans le cas où vous auriez d'autres appareils connectés Netatmo sur votre compte Netatmo, merci de ne pas oublier que la Station Météo génère également des appels de l'API via le Plugin Fibaro ou lorsque vous utilisez le script "anemometer-script", des appels de l'API s'ajoutent également à ceux de cette scène.

 

 

 

VD Netatmo Welcome

 

23284786_screenshotvdnetatmo.thumb.png.735c1245c50edc9d7c6070d49e644af0.png

 

Pour personnaliser celui-ci, rendez-vous au début du code du bouton refresh :

-- Les pseudos doivent être exactement les mêmes que dans l'application Netatmo, séparés par une virgule
local pseudos = {"Jérémy","Emilie","Maman"};

-- Nombre de personnes à afficher dans le VD
-- Si modification, conserver la même structure de VD !
-- Et penser à modifier la variable "vd_refresh" de la scène Netatmo
local NbPersonnes = 3;

-- Variable Globale
local VGNetatmo = "NETATMO_Welcome";

Si vous souhaitez conserver seulement les informations de 3 personnes, il vous suffit de modifier uniquement les valeurs de la variable pseudos.

Attention, les pseudos doivent être rigoureusement les mêmes que ceux enregistrés dans Netatmo!

Si vous souhaitez afficher plus de 3 personnes, conservez obligatoirement la même structure du VD, c'est-à-dire en ajoutant 3 étiquettes dont les IDs seront incrémentés de +1 pour chaque nouvelle personne.

Pour information, le VD d'origine est beaucoup moins optimisé puisque vous devez modifier tout le code du bouton pour qu'il soit fonctionnel.
 

 

Scène Netatmo Welcome

Une seule instance autorisée. Démarrage Automatique

--[[
%% autostart
--]]

-- Informations de compte Netatmo
local client_id = 'Client_id';
local client_secret = 'Client_secret';
local username = 'Netatmo_username';
local password = 'Netatmo_pass';

-- Informations du VD associé
local vd_ID = 304;  -- ID du VD associé
local vd_refresh = 9; -- ID du bouton refresh du VD. 9 Par défaut

-- Réglages de la scène
local refresh = 10; -- Script executé toutes les x secondes. Pas moins de 8s!
local debug = 0; -- Faut-il vraiment l'expliquer ?

-- Nom de la Variable Globale qui sera créée et utilisée par la scène et le VD
local VGNetatmo = "NETATMO_Welcome";

--------------------------------------------------------------
-------- Ne rien modifier à partir de cette ligne ------------
--------------------------------------------------------------
local token = '';
local request_body = '';

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('Démarrage du script Netatmo welcome Integration v.1.0');

if (debug == 0) then
  fibaro:debug("Debug = 0. Seuls les messages d'information apparaîtront dans les logs.");
else 
  fibaro:debug('Debug = 1. Messages de Debug activés.');
end

fibaro:debug('Cette scène sera executée toutes les ' ..refresh.. ' secondes.');

-- Début - Ajout pour gestion indépendante des VG
function CreerVG(VGNom, VGValeur)
  local data = {name = VGNom, value=VGValeur};
  response, status = api.post("/globalVariables", data);
  if (status == 201) then
    DebugError("white", "Variable Globale " .. VGNom .. " créée.");
  else
    DebugError("red", "Impossible de créer la Variable Globale " .. VGNom .. "!");
  end
end

function MajEntree(Nom, Statut, Lastseen)
  local table = json.decode(fibaro:getGlobalValue(VGNetatmo));

  -- Tout est à mettre à jour
  if Nom ~= nil and Statut ~= nil and Lastseen ~= nil then
    table[Nom] = {status=Statut, lastseen=Lastseen};
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    DebugError("yellow", "L'entrée " .. Nom .. " a été automatiquement créée.");
  -- Mise à jour du Statut
  elseif Nom ~= nil and Statut ~= nil and Lastseen == nil then
    table[Nom].status = Statut;
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    Debug("yellow", "Le statut de " .. Nom .. " a été mis sur la valeur ".. Statut);
  -- Mise à jour de la dernière vue de la personne
  elseif Nom ~= nil and Statut == nil and Lastseen ~= nil then
    table[Nom].lastseen = Lastseen;
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    Debug("yellow", "L'information 'lastseen' de " .. Nom .. " a été mise sur la valeur ".. Lastseen);
  else
    DebugError("red", "Erreur lors de l'utilisation de la fonction MajEntree");
    if Nom == nil then DebugError("white", "Champ 'Nom' vide !"); end
    if Statut == nil then DebugError("white", "Champ 'Statut' vide !"); end
    if Lastseen == nil then DebugError("white", "Champ 'Lastseen' vide !"); end
  end
end

if fibaro:getGlobalValue(VGNetatmo) == nil then CreerVG(VGNetatmo,json.encode({})); end
-- Fin - Ajout pour gestion indépendante des VG

function oAuth(nextFunction)
  local request_body = 'grant_type=password&client_id=' .. client_id .. '&client_secret=' .. client_secret .. '&username=' .. username .. '&password=' .. password .. '&scope=read_camera';
  getResponseData('https://api.netatmo.net/oauth2/token', request_body, 
    function(data) 
      if (data.access_token ~= nil) then
        token = data.access_token
      	gethomedata()
      else
        DebugError( "red", "Impossible de joindre l'API!");
      end
    end
    )
    setTimeout(oAuth, refresh*1000);
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,
      checkCertificate = false
      },
    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)
      if (getData.body ~= nil) then
        for w, v in pairs(getData.body.homes) do
          for a, b in pairs(v.persons) do
            local INFOS = json.decode(fibaro:getGlobalValue(VGNetatmo));
        	if (b.pseudo ~= nil) then
             if (b.out_of_sight == false) then
                if INFOS[b.pseudo] ~= nil then
                  MajEntree(b.pseudo,nil,b.last_seen);
                  local change_var = tonumber(INFOS[b.pseudo].status);
                  if (change_var == 0) then
                     DebugChange("green", b.pseudo.. ' est présent.')
                     MajEntree(b.pseudo,1,nil);
                   else
                     Debug("white", b.pseudo.. ' est toujours présent.');
                   end 
                else
                  Debug("red", "L'entrée pour " ..b.pseudo.. " de la table "..VGNetatmo.." n'éxiste pas.");
                  MajEntree(b.pseudo,0,0);
                end
             else
                if INFOS[b.pseudo] ~= nil then
                  MajEntree(b.pseudo,nil,b.last_seen);
                  local change_var2 = tonumber(INFOS[b.pseudo].status);
                  if (change_var2  == 1) then
                     DebugChange( "orange", b.pseudo.. ' est absent.');
                     MajEntree(b.pseudo,0,nil);
                   else
                     Debug( "white", b.pseudo.. ' est toujours absent.');
                   end
                else
                  Debug("red", "L'entrée pour " ..b.pseudo.. " de la table "..VGNetatmo.." n'éxiste pas.");
                  MajEntree(b.pseudo,0,0);
                end
             end
          end
      	end
      end
    else 
        Debug("red", "Impossible de joindre l'API! Vérifier le taux de rafraichissemment!");
    end
  if tonumber(vd_ID) ~= nil then fibaro:call(vd_ID, "pressButton", vd_refresh); end
  end
 )
end

local sourceTrigger = fibaro:getSourceTrigger();
if (sourceTrigger["type"] == "autostart") then 
  oAuth();
end

 

Icones

 

netatmo_wel_icon.png.1a214863712f733f509083965697d746.pngnetatmo_wel_icon_refresh.png.42b8823d84cee7f9da01cbc251a70284.pngnetatmo_wel_app_icon.png.42df36d005d76d930c4ad4e7934ec2e5.pngnetatmo_wel_app_icon_refresh.png.dc8a7bef316055d2bc24651dcbb061f2.png

 

Téléchargement du VD

 

Netatmo_Welcome.vfib

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de voir que le script original avait été évoqué sur ce sujet évoquant la Welcome lors de sa sortie.

Je n'avais pas lu toutes les pages du fil avant de poster celui-ci...

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir @J3R3M

 

Excellent et merci ;-) beaucoup. 

Voila une autre  possibilité Netatmo ;-) 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

 Bonsoir, j'avais y a plusieurs mois installés plusieurs camera sur ma ma HC2. Il m'en restait juste une à reinstaller. Mais il semble que Netatmo a change son API et ils(Netatmo) ne fournissent pas de support aux third party donc je fais appel à vous.

J4ai vu que plus haut la correction pour permettre de recupérer le status.

 

Ici mon probleme est de retrouver le VPNclient à placer pour recuperer les images de la camera cad le XXXXXXXXXXXXXXXXXXXXXXXXXXXX dans XXXXXXXXXXXXXXXXXXXXXXXXXXXX/live/snapshot_720.jpg

Quelqu'un a une idée.

 

je suppose que bcp ont le probleme depuis le changement de l'API mais on ne s'en doute pas tant que l'on ne dois pas retrvouer cette information.

 

Comment puis je retrouver ce token XXXXXXXXXXXXXXXXXXXXXXXXXXXX ?

:-(

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Lorenzo,

À quelle erreur fais-tu face actuellement? Quel script utilises-tu?

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello J3R3M,

Au debut j avais as l erreur certificat failed pour lz script qui checque la presence des users/status lastseen.
J ai donc remplace le script selon le topic "Netatmo Welcome". Cela a resolu le probleme.

Maintenant, je veux ajouter une nouvelle camera netatmo et j ai essaye de modifier la fonction gethomedata. Pour obtenir le vpn_url qui permettra de deduire ce qu il faute mettre devant le lien pour le jpg

Je syis finakement arrive a ne plus avoir d erreur mais aussi aucune adresse ip.

En fait ke script ne voit plus aucune camera sur mon reseau.

Suis a bout d idee.


Envoyé de mon SM-N950F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

voila ce que j'ai comme message :

 

il y a bien 4 cameras. donc qq part il sait qu'il y en a 4.

Par contre il ne me donne pas les liens:

 

--[[
%% autostart
--]]

-- Informations de compte Netatmo
-- DIESE DATEN ANPASSEN
local client_id = 'ehjkhfdkjfuugfjkfd';
local client_secret = 'DFFJDSG4Z34';
local username = 'username';
local password = 'password';
local language = 'english'
local counter = 1;

-- Informations du VD associé
local vd_ID = 502;  -- ID du VD associé
local vd_refresh = 9; -- ID du bouton refresh du VD. 9 Par défaut

-- Réglages de la scène
local refresh = 10; -- Script executé toutes les x secondes. Pas moins de 8s!
local debug = 1; -- Faut-il vraiment l'expliquer ?

-- Nom de la Variable Globale qui sera créée et utilisée par la scène et le VD
local VGNetatmo = "NETATMO_Welcome";
fibaro:debug('ici')
--------------------------------------------------------------
-------- Ne rien modifier à partir de cette ligne ------------
--------------------------------------------------------------
local token = '';
local request_body = '';

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('Démarrage du script Netatmo welcome Integration v.1.0');

if (debug == 0) then
  fibaro:debug("Debug = 0. Seuls les messages d'information apparaîtront dans les logs.");
else
  fibaro:debug('Debug = 1. Messages de Debug activés.');
end

fibaro:debug('Cette scène sera executée toutes les ' ..refresh.. ' secondes.');

-- Début - Ajout pour gestion indépendante des VG
function CreerVG(VGNom, VGValeur)
  local data = {name = VGNom, value=VGValeur};
  response, status = api.post("/globalVariables", data);
  if (status == 201) then
    DebugError("white", "Variable Globale " .. VGNom .. " créée.");
  else
    DebugError("red", "Impossible de créer la Variable Globale " .. VGNom .. "!");
  end
end

function MajEntree(Nom, Statut, Lastseen)
  local table = json.decode(fibaro:getGlobalValue(VGNetatmo));

  -- Tout est à mettre à jour
  if Nom ~= nil and Statut ~= nil and Lastseen ~= nil then
    table[Nom] = {status=Statut, lastseen=Lastseen};
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    DebugError("yellow", "L'entrée " .. Nom .. " a été automatiquement créée.");
  -- Mise à jour du Statut
  elseif Nom ~= nil and Statut ~= nil and Lastseen == nil then
    table[Nom].status = Statut;
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    Debug("yellow", "Le statut de " .. Nom .. " a été mis sur la valeur ".. Statut);
  -- Mise à jour de la dernière vue de la personne
  elseif Nom ~= nil and Statut == nil and Lastseen ~= nil then
    table[Nom].lastseen = Lastseen;
    fibaro:setGlobal(VGNetatmo,json.encode(table));
    Debug("yellow", "L'information 'lastseen' de " .. Nom .. " a été mise sur la valeur ".. Lastseen);
  else
    DebugError("red", "Erreur lors de l'utilisation de la fonction MajEntree");
    if Nom == nil then DebugError("white", "Champ 'Nom' vide !"); end
    if Statut == nil then DebugError("white", "Champ 'Statut' vide !"); end
    if Lastseen == nil then DebugError("white", "Champ 'Lastseen' vide !"); end
  end
end

if fibaro:getGlobalValue(VGNetatmo) == nil then CreerVG(VGNetatmo,json.encode({})); end
-- Fin - Ajout pour gestion indépendante des VG

function oAuth(nextFunction)
 local request_body = 'grant_type=password&client_id=' .. client_id .. '&client_secret=' .. client_secret .. '&username=' .. username .. '&password=' .. password .. '&scope=read_camera'
  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,
      checkCertificate = false
      },
    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:"..request_body_cam)
      if (getData.body ~= nil) then
        fibaro:debug("la 1")
        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


--local sourceTrigger = fibaro:getSourceTrigger();
--if (sourceTrigger["type"] == "autostart") then
  oAuth();
--end

Error message.PNG

Partager ce message


Lien à poster
Partager sur d’autres sites

hello issue is solved. I found another way to retrieve the information about the camera. Just from the https://dev.netatmo.com/resources/technical/reference/security/gethomedata. and the "Try method" provided by Netatmo. So

the original script doesn't work anymore but we can retrieve the information from the dev.netatmo.com website.

 

Have a nice weekend.

 

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, Lorenzo a dit :

hello issue is solved. I found another way to retrieve the information about the camera. Just from the https://dev.netatmo.com/resources/technical/reference/security/gethomedata. and the "Try method" provided by Netatmo. So

the original script doesn't work anymore but we can retrieve the information from the dev.netatmo.com website.

 

Have a nice weekend.

 

So it's perfect!

It seems like you mixed two scripts to try to solve your problem before : Welcome Integration and this one.

I think it was because of this mix you had an bigger issue :)

Thanks, have a nice weekend too.

Modifié par J3R3M

Partager ce message


Lien à poster
Partager sur d’autres sites

Yes I reused the first script working and modify it to my purpose as the initial script didn't work. I retrieve the information via another way. that is the most important thing. Thanks a lot

Partager ce message


Lien à poster
Partager sur d’autres sites

 Pourquoi vous parlez en anglais? ;)

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 03/03/2019 à 22:48, Did a dit :

 Pourquoi vous parlez en anglais? ;)

 

Pour éviter à notre ami d'utiliser Google Translator avant d'avoir à publier quelque chose :)

Partager ce message


Lien à poster
Partager sur d’autres sites

 Comme j'avais vu France dans sa localisation, je pensais qu'il était de chez nous. ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 17/03/2019 à 01:46, Did a dit :

Comme j'avais vu France dans sa localisation, je pensais qu'il était de chez nous. ;)

Il est vrai que c'est marqué qu'il habite en France. Je ne sais pas fianlement. :/

Il y a 8 heures, BenjyNet a dit :

Et ça marche bien la welcome ?

Je n'ai pas de problème avec celle-ci pour ma part, elle est intégrée chez moi pour reconnaître les personnes et gérer les possibilité de scénarios en fonction des personnes présentes.

Aussi, en complément d'un "système d'alarme", elle permet d'identifier rapidement la personne qui vient de pénétrer ou, déclencher l'alarme rapidement si la personne n'a pas été reconnue.

Le gros bémol, ça reste la solution cloud. Tu n'as plus internet, tu n'as plus de Welcome, tout simplement.

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais elle fonctionne quand même hors cloud, tu perds la gestion depuis la HC2 that's all non ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 19/03/2019 à 09:47, pepite a dit :

Mais elle fonctionne quand même hors cloud, tu perds la gestion depuis la HC2 that's all non ?

À vrai dire, je n'ai jamais essayé, c'est à confirmer.

Ce qui est certain, c'est que lorsqu'elle n'est plus connectée au réseau local, elle n'est plus bonne à rien, ce qui m'a confirmé qu'aucune information n'y était stockée...

Partager ce message


Lien à poster
Partager sur d’autres sites

Hello. Petite question cela fonctionne encore aujourd'hui après les updates divers ?

Partager ce message


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

Hello. Petite question cela fonctionne encore aujourd'hui après les updates divers ?

Hello @Nico,

De mon côté, fonctionnement toujours ok pour info :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Nickel, je vais sans doute ajouter ça du coup dans l'entrée pour avoir les enfants en plus.

Dommage qu'ils n'aient pas ajouté ça sur la version exterieure.

Partager ce message


Lien à poster
Partager sur d’autres sites

×