Aller au contenu

Messages recommandés

Posté(e)

Bon, je dois dire que je ne comprends pas grand chose, comment ça peut fonctionner chez moi et pas chez d'autres qui ont aussi une réponse au telnet...

 

sinon, je suis en 3.591 "beta" .. je ne pense pas que ça puisse changer grand chose

Posté(e)

Bon, j'ai trouvé, c'est le lock away....comme je disais dans le premier post.

Ceux qui ne l'utilisent pas doivent enlever la condition.

 

voici la V1.3

 

IP Smartphone Presence Check V1.3.vfib

 

Et le code du bouton: ligne 89 commentée et ligne 90 ajoutée

 

Le lock_away permet à  mon alarme de ne pas s'armer automatiquement sous certaines conditions quand je suis là ...

 

-- IP Smartphone Presence Check V1.2
-- Copyright © 2014 Sébastien Jauquet.
-- http://www.domotique-fibaro.fr/index.php/topic/2613-detection-de-pr%C3%A9sence/
--Using code from:
-- Ping v 1.0.1 [05-2013]
-- Copyright © 2013 Jean-christophe Vermandé
-- http://www.domotique-fibaro.fr/index.php/topic/109-ping-dun-%C3%A9quipement-r%C3%A9seau/page-2


fibaro:log("Starting process");


local variable_globale_phone = "Phone_GG_Present";
local thismodule=fibaro:getSelfId()
local _deviceIp = fibaro:get(thismodule, 'IPAddress')
local _devicePort = fibaro:get(thismodule, 'TCPPort')
local _maxRetryProcess = 20;
local time = tonumber(os.time());
local maxtime = 56;


-- local _deviceIp = "192.168.10.112";
-- local _devicePort = 3500;
-- fibaro:debug(_deviceIp .. " " .. _devicePort)
-- fibaro:setGlobal("Lock_Away","Unlocked") 


function SecondsToClock(sSeconds)
  local nSeconds = tonumber(sSeconds)
  if nSeconds == 0 then
    return "00:00:00";
  else
    nHours = string.format("%02.f", math.floor(nSeconds/3600));
    nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)));
    nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60));
    return nHours..":"..nMins..":"..nSecs
  end
end


-- recursive function to ping device
local function _ping(retry)
  retry = retry or 0;


-- notify state
local elapsed = os.difftime(os.time(), tonumber(time));
local msg = "Loop #".. retry .." since "..SecondsToClock(elapsed);    
fibaro:log(msg);  


-- check for no more than 30 seconds
  if elapsed > maxtime then 
  return false; 
  end


  --open the socket
  local tcpSocket = Net.FTcpSocket(_deviceIp, _devicePort);
    fibaro:debug(_deviceIp .. " " .. _devicePort)
  --set the read timeout
  tcpSocket:setReadTimeout(250);
  --send packet
  local bytes, errorCode = tcpSocket:write("test");
  fibaro:debug(errorCode)


  --check for error   
  if errorCode == 0 then
    return true;
  else
    if retry < _maxRetryProcess then
      --fibaro:log("Retry process, please wait...");
      fibaro:sleep(1*750);
      return _ping(retry + 1);
    end
    return false;
  end
end


--ping device, secure with pcall to catch errors.
local f, result = pcall(_ping);
local Lock_Away = fibaro:getGlobal("Lock_Away")


if (f) then
--  if (result == true) and (Lock_Away == "Unlocked") then
  if result == true then
    fibaro:log("Device has been found.");
    fibaro:setGlobal(variable_globale_phone,"1") 
-- évolution future possible: stocker la date et l'heure de la dernière présence détectée
    -- fibaro:setGlobal("Present_Phones",os.time()) 
  else
    fibaro:log("Device was not found!");
    fibaro:setGlobal(variable_globale_phone,"0") 
  end
else
  fibaro:log("Error: " .. f);
end

Code du main loop:

 

local thismodule = fibaro:getSelfId(); 
local status = fibaro:getGlobal("Phone_GG_Present")
-- fibaro:debug(thismodule);
if
status == "0"
then 
fibaro:call(thismodule, "setProperty", "currentIcon", 1037)
end


if
status == "1"
then 
fibaro:call(thismodule, "setProperty", "currentIcon", 1036)
end


fibaro:sleep(1000);
Posté(e)

Dernier petit retour pour ce soir, malgré un VD de vraiment super qualité, sur Iphone  dès lors que le tel passe en veille, le VD ne peux plus le voir, et donc ne détecte plus de présence.

Ce soir j'ai juste envie de scotcher mon téléphone au plafond :( Si quelqu'un trouve une astuce qu'il le crie haut et fort, car je reste à  l'écoute ...

A plouche

Posté(e)

Salut Tony

 

J'aimerais savoir comment tu as créer ta variable stp si éventuellement tu avais une copie d’écran cela serais pas mal pour moi car je galère grave  :angry:

Posté(e)

Dernier petit retour pour ce soir, malgré un VD de vraiment super qualité, sur Iphone  dès lors que le tel passe en veille, le VD ne peux plus le voir, et donc ne détecte plus de présence.

Ce soir j'ai juste envie de scotcher mon téléphone au plafond :( Si quelqu'un trouve une astuce qu'il le crie haut et fort, car je reste à  l'écoute ...

A plouche

sur android dans les options wifi, advanced, on peut sélectionner "keep wifi on during sleep", il y a peut être une option similaire sur iPhone

Posté(e)

Et voilà , une jolie photo....

Mais aussi une grosse rectification, mon téléphone est en veille depuis 10 mn et maintenant il est vu!!!!!!

Je viens d'économiser un Iphone et la peinture de mon plafond ou de mon mur au choix :)

post-213-0-26761000-1415915251_thumb.png

 

Posté(e)

@SebCbien, il n'y a pas une telle fonctionnalité sur iphone à  ma connaissance, mais je délivre en temps réel le résultat de mes tests se qui n'est pas génial de ma part.

Pour l'instant ça remarche top de chez top, si cela vient à  déconner je ferai un retour avec explication si je les trouve :)

Ce que j'ai constaté c'est que fing de temps en temps ne voit plus le port ouvert par l'app sonos, mais pour l'instant tout est ok. Je reprécise que je n'ai pas de sonos à   la maison, je verrai donc si le port ne se referme pas au bout d'un certain temps...

Grazie mille

Posté(e)

Question con peut être !!  tu n'a pas de scène qui commande ta variable tu as juste ton IP avec le nom de la variable ?

Posté(e)

 au cas ou cela puisse t'aider...

Je n'ai rien modifier d'autre.

tu as bien installé sonos et identifié le port ouvert sur ton tel?

post-213-0-98627300-1415916248_thumb.png

Posté(e)

sur l'appstore, il te permettra de trouver le port ouvert par sonos, mais il fort à  parier que ce soit le même que moi soit le 3401. c'est bien celui que tu as configuré?

si oui, peux tu charger fing,puis sélectionner ton phone, et appuyer sur scan services... 

Posté(e)

tu dois voir une liste de tous tes appareils reseau apparaitre appuis sur ton Iphone (à  droitre ton device porte le nom apple, sinon identifie le par son ip) et appuyer sur scan services ...

×
×
  • Créer...