Aller au contenu
Domotique-Home

Lecture De La Température Avec Serveur Paw Dans Hc2 Fibaro

Recommended Posts

Bonjour,

Création d'un périphérique virtuel qui prononce à  la demande la situation d’ambiance de la maison.

 

au préalable il faut installer la synthèse vocale sur votre serveur PAW, pour cela suivez le tuto de @i-magin ici

 

Puis créez un autre périphérique virtuel et nommez le par exemple Lecture_T_et_H

 

3.png

 

Insérer le code suivant:

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

-- SETTINGS

-- permet d'avoir une sortie vers la fenêtre 'debug' du HC2 et d’historiser les messages.
local debug = true;
-- le temps d'attente chaque lecture.
local repeatTime = (4*1000); -- 4 secondes
-- volume sonore du smartphone
fibaro:setGlobal("vol", "12")
-- la liste des nÅ“uds à  lire
local nodesT = {5,10,25,84}; --Température
local nodesH = {56,57,58}; --Humidité

--boucle de lecture valeur températures
for i = 1, #nodesT do
  	--recuperation de l'id 
  	id = nodesT[i];
  	--recuperation du nom
  	local name = fibaro:getName(id);
    	--integration des données dans la variable temperature
	local temperature = tonumber(fibaro:getValue(id, "value"));
        temperature = "Température "..name .." " ..temperature .." degré celsius"
  	--affichage des données dans la console debug
	fibaro:debug(temperature); 
  	-- message vocal à  envoyer au smartphone
	fibaro:setGlobal("speech", temperature)
	-- activation du périphérique virtuel et bouton ad hoc
	fibaro:call(87, "pressButton", "1");
  	--attente
  	fibaro:sleep(repeatTime);
end

--boucle de lecture valeur humidité
for i = 1, #nodesH do
  	--recuperation de l'id
  	id = nodesH[i];
  	--recuperation du nom
  	local name = fibaro:getName(id);
  	--integration des données dans la variable humidite
	local humidite = tonumber(fibaro:getValue(id, "value"));
        humidite = "Humidité "..name .." " ..humidite .." pourcent"
  	--affichage des données dans la console debug
	fibaro:debug(humidite); 
  	-- message vocal à  envoyer au smartphone
	fibaro:setGlobal("speech", humidite)
	-- activation du périphérique virtuel et bouton ad hoc
	fibaro:call(87, "pressButton", "1");
  	--attente
  	fibaro:sleep(repeatTime);
end

J'ai commenté le code pour chaque ligne pour une meilleur compréhension mais si vous avez des question n’hésitez pas ;)

 

Vous pouvez paramétrer le deuxième périphérique virtuel pour un déclenchement via télécommande ou a une heure précise.

Vouz pouvez egalement modifier le code pour recevoir un email. A vous de choisir ;)

 

post-32-0-50354500-1393275632_thumb.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Chez moi les modules de température sont nommés de la façon suivante: T_nom_de_la_pièce par exemple T_cuisine

pour que leurs nom soit prononcé correctement je retravails la variable suivante:

--récupération du nom
local name = fibaro:getName(id);
--élimination de 2 premier caractère du nom 'T_'
name = string.sub (name, 3);

en plus par fénéantisme ou par la rapidité je nom tout les modules de ma salle de bain par SDB par exemple T_SDB

la pour récupérer le nom correcte j'ajoute le code suivant:

--récupération de l'id 
id = nodesT[i];
--récupération du nom
local name = fibaro:getName(id);
--élimination de 2 premier caractère du nom 'T_'
name = string.sub (name, 3);
--si nom = SDB alors on remplace par salle de bain
if name == "SDB" then 
name = "Salle de Bain";
end

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le partage rems ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Avec quelques lignes de plus on peut lire aussi la météo extérieur ;)

a ajouter au code précédant.

--Condition extérieur 
-- 3 est ID du module qui nous indique les conditions climatiques au haut a droite de la page d’accueil HC2
local tmp = fibaro:getValue(3, "Temperature");
tmp = "Température extérieure " ..tmp .." degré celsius";
local hum = fibaro:getValue(3, "Humidity");
hum = "Humidité extérieure " ..hum .." %";
local vend = fibaro:getValue(3, "Wind");
vend = "Vitesse du vend " ..vend .." kilomètre àl'heure";
-- message vocal àenvoyer au smartphone
fibaro:setGlobal("speech", "Analyse d'embiance de l'extérieure")
-- activation du périphérique virtuel et bouton ad hoc
fibaro:call(87, "pressButton", "1");
fibaro:sleep(repeatTime);
-- message vocal àenvoyer au smartphone

local don = "";
for i = 1, 3 do
  if i == 1 then 
    don = tmp; 
  end
  if i == 2 then 
    don = hum; 
  end;
  if i == 3 then 
    don = vend; 
  end;
fibaro:setGlobal("speech", don)
-- activation du périphérique virtuel et bouton ad hoc
fibaro:call(87, "pressButton", "1");
  --attente
fibaro:sleep(repeatTime);
end

Partager ce message


Lien à poster
Partager sur d’autres sites

×