Aller au contenu
jompa68

Mother And Motion Cookies + Hc2

Recommended Posts

post-328-0-25167700-1424366992_thumb.png

.

Utiliser la Mother de Sense et les Motion Cookies comme détection de présence avec la HC2.

 

Parametrer l'application "présence" en vous connectant sur le site "sen.se"

 

post-328-0-36908400-1424366971_thumb.png

 

Quand vous arrivez ou partez de votre domicile, l'application mettra à  jour le "statut" du cookie

 

post-328-0-90587700-1424366982_thumb.png

 

Avec une scène en Lua et via l'Api de "sen.se", nous pouvons trouver la valeur de la "présence", envoyer une variable globale et l'utiliser dans d'autres scènes.

 

Egalement afin d'utiliser des modules virtuels type "On/Off". ( ex: Allumer,éteindre la lumière / Mise en route ou arrêt de l'alarme....etc )

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

-----------------------------------------------------------------
--[[
 Mother and moion cookies scene by Jonny Larsson (jompa68)

 An presence scene that use a cookies to track when arrive or leave home
 and set a global variable with the actual value, then you can use the
 variable as trigger to do other things with your HC2 like turnOn a lamp,
 turnOff alarm etc.
 Scene will run every 30 seconds.
 Change this to rows:
 local cookiePresence = 'D6se3zRof0bAB5Mxxxxxxxxxxxxxxxx' <--- id of cookie
 ['Authorization'] = 'Basic xxxxxxxxxxxxxxxx' <--- encoded user and password for apis.sen.se login

 2015-02-19 version 0.1
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local cookiePresence = 'D6se3zRofxxxxxxxxxxxxxxxx'
local httpClient = net.HTTPClient();

 httpClient:request('https://apis.sen.se/v2/feeds/'..cookiePresence..'/events/?limit=1&format=json', {
 success = function(response)
 if tonumber(response.status) == 200 then

 local jsonData = json.decode(response.data)
 local total=0
 for i = 1, #jsonData.objects do
 if jsonData.objects[i].profile == 'WalkStandard' then
 if string.sub(jsonData.objects[i].dateEvent,1,10) == os.date("%Y-%m-%d") then
 presence = jsonData.objects[i].data.body
 end
 end
 end
 print('Presence: '..presence)
 fibaro:call(423, "setProperty", "ui.lblPresence.value", presence)
 fibaro:setGlobal("cookie_Jonny", presence)
 else
 print('call::checkUpdate ERROR [HTTPClient:request] status: ' .. response.status)
 end
end,
 options = {
 headers = {
 ['Authorization'] = 'Basic xxxxxxxxxxxxxxxxxxxx'
 }
 }
});

setTimeout(tempFunc, 30*1000)
end
if (sourceTrigger["type"] == "autostart") then
 tempFunc()
 else
 fibaro:debug("Set scene to %%autostart to have it run by automatic")
end
  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Une autre Scène pour connaitre le nombre de "pas" / distance parcourue avec un Motion cookie :

.

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

----------------------------------------------------------------- 
--[[
	Mother and moion cookies scene by Jonny Larsson (jompa68)

	Scene that use a cookies to track your steps/walk
	Scene will run every 30 seconds.

    2015-02-19 version 0.1 
--]]

local sourceTrigger = fibaro:getSourceTrigger();
function tempFunc()
local currentDate = os.date("*t");
local cookieWalk = 'F6s7juyUKgpxxxxxxxxxxxxxxxxxxxx'

local httpClient = net.HTTPClient();


	httpClient:request('https://apis.sen.se/v2/feeds/'..cookieWalk..'/events/?format=json', {
	success = function(response)
	if tonumber(response.status) == 200 then
   
    local jsonData = json.decode(response.data)  
    local total=0
    for i = 1, #jsonData.objects do
        if jsonData.objects[i].profile == 'WalkStandard' then
            if string.sub(jsonData.objects[i].dateEvent,1,10) == os.date("%Y-%m-%d") then
              	total = total + jsonData.objects[i].data.numberSteps
            end
    	end    
	end
    print('Total steps/walk today: '..total)
    fibaro:call(423, "setProperty", "ui.lblSteps.value", total)
  	else
    print('call::checkUpdate ERROR [HTTPClient:request] status: ' .. response.status)
  	end
end,
    options = {
      headers = {
        ['Authorization'] = 'Basic xxxxxxxxxxxxxxxxxx' 
      }
    }
});

setTimeout(tempFunc, 30*1000)
end
if (sourceTrigger["type"] == "autostart") then
	tempFunc()
	else
	fibaro:debug("Set scene to %%autostart to have it run by automatic")
end


post-328-0-43839700-1424368151_thumb.png

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Traduction en Français faite.

Merci pour le partage   ;)

 

EN :

French translation performed.
Thank you for sharing with the community

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

Je viens de faire l'acquisition d'un kit MyMother mais j'eprouve des difficultés à  l'integrer avec ma HC2 en grande partie à  cause de mes limites en LUA.

je recois une erreur 401 et je pense que le pb vient de cette ligne "['Authorization'] = 'Basic xxxxxxxxxxxxxxxxxx' "

 

J'ai bien encodé mon username et password avec l'api

 

curl https://apis.sen.se/v2/user/api_key/ \ -d "username=www@www.com" \ -d "password=__your_Sen.se_account_password__"

 

mais toujours pas fonctionel.

 

Par contre, en envoyanrt une requete directement dans le browser en etant dejà  identifié, cela marche.

https://apis.sen.se/v2/feeds/xxxIDSENSORxxx/events/?limit=1&format=json

 

Une idée?

 

Merci d'avance

  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour a vous ,

 

J'ai essayé de mettre le code de la scène présence dans ma HC2 , pour les cookie de Mother , mais j'ai une erreur de ce façon , 

 

Si quelqu'un d'entre vous qui peux aider , 

 

Merci d'avance ,

[DEBUG]22:50:00: call::checkUpdate ERROR [HTTPClient:request] status:401
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×