Historique de température

Conserver l’historique d’une sonde.

Xively graphiques de sondes

Il faut créer un compte sur www.xively.com

Puis déclarer un Datastream : ex : VERA

Récupérer la clé.

API Keys

 

 

 

 

 

 

Le numéro du Datastream (ici 804935937) est à mettre dans le code de la scéne (voir plus bas).

Ajouter un Feed (exemple : Temperature_Salon)

add channel

Temperature_Salon est le nom du Feed.

feed Temperature_Salon

 

Sur la VERA

Develop APPS

Dans Edit Startup Lua

Ajouter le code de la fonction suivante

function my_send_pachube (feed, datastream, value)
local apikey = " -----  Mettre la clé ici ----- "
local base_url = "http://api.xively.com/v2/feeds/"
local method = "PUT"
require('ltn12')
local socket = require("socket")
local http = require("socket.http")
local json_data = '{ "version":"1.0.0","datastreams":[ {"id":"' .. datastream .. '", "current_value":"' .. value .. '"}]}'
local response_body = {}
local response, status, header = http.request{
method = method,
url = base_url .. feed,
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = string.len(json_data),
["X-PachubeApiKey"] = apikey
},
source = ltn12.source.string(json_data),
sink = ltn12.sink.table(response_body)
}
if status == 200 then
return true
end
end

Créer une scène qui tourne toutes les 10 mn.

Récupérer le nom de la variable de la sonde et le nom de la variable valeur : histo_temp

 

 

 

 

 

 

 

 

 

 

 

Nom de la variable : urn:upnp-org:serviceId:TemperatureSensor1

Valeur de la variable : CurrentTemperature

Mettre le nom du Datastream  et celui du Feed.

Puis mettre dans le LUUP.

Pour la température

local Tid = {id_Tcuis, id_Tsalon, id_Tsdbb, id_Tparents, id_Ttony, id_Text, id_Tsdbh, id_Twc, id_Tchiens}
local TName = {"T_Cuisine", "T_Salon", "T_SdB_Bas", "T_Ch_Parents", "T_Ch_Tony", "T_Exterieur", "T_SdB_Haut", "T_wc", "T_chiens"}

local feeds = ""
local nbfeeds= 0
local value=""
value = tonumber(value)
for i,id in ipairs(Tid) do
value = luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", id)
value = tonumber(value)
nbfeeds=nbfeeds+1
feeds=feeds.."&f"..nbfeeds.."="..TName[i].."&v"..nbfeeds.."="..value
end
local resultat = my_graph_sensor_multi("feeds="..nbfeeds..feeds)
return true

 

Pour l’humiditée

local Tid = { id_Hext}
local TName = { "H_Exterieur"}

local feeds = ""
local nbfeeds= 0
local value=""
value = tonumber(value)
for i,id in ipairs(Tid) do
value = luup.variable_get("urn:micasaverde-com:serviceId:HumiditySensor1", "CurrentLevel", id)
value = tonumber(value)
nbfeeds=nbfeeds+1
feeds=feeds.."&f"..nbfeeds.."="..TName[i].."&v"..nbfeeds.."="..value
end
local resultat = my_graph_sensor_multi("feeds="..nbfeeds..feeds)
return true

 

Visualisation des graphes dans une page Html.

http://api.xively.com/v2/feeds/FEED-ID/datastreams/DATASTREAM-ID.png?width=700&height=250&colour=%23f15a24&duration=24hours&legend=en%20direct%20d%27une%20MX-465&title=PAPP&show_axis_labels=true&detailed_grid=true&scale=manual&min=0&max=5500

Vous pouvez tester avec minutes, day, weeks, months, years …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *