Economiser l’energie avec la domotique – Gestion de veille de la télé – LUA

economie-energie

La consommation «passive» des appareils domestiques représente 11% de la facture d’électricité annuelle, soit environ 2 milliards d’euros par an au niveau national. Pourquoi pas ne pas mettre ne oeuvre un système qui nous permettra d’économiser quelques euros à la fin de l’année et baissera en parallèle le gaspillage mondial d’électricité 😉

Etude pratique

Je me suis intéressé de plus prêt a mon  téléviseur de salon. Naturellement il est branché sur une prise domotique avec mesure de consommation d’énergie. En veille ma télé consomme 1.3 W et en fonctionnement 70 W. Si nous parton de principe que notre télé fonctionne cinq heures par jour et est en veille le reste du temps alors elle consomme:

Etat de fonctionnement 5h x 1.3W = 350Wh par jour
Etat de veille 19h x 1.3W = 24.7Wh  par jour

Cela représente plus de 7% d’énergie gaspillé soit 600 millions d’euros économisés annuellement au niveau mondial.

C’est décidé ! Je vais contribuer a l’économie mondiale.

Cahier des charges:

  • Vérifier toutes les cinq minutes la consommation énergétique de la télé (boucle)
    • si la consommation est inférieur a 2 W alors
    • extinction de la télé
    • si la consommation est supérieur à 2 W alors
    • rien
  • recommencer la boucle

Traduction en LUA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
--[[
%% autostart
%% properties
%% globals
--]]
if fibaro:countScenes() > 1 then -- si la scène est lancée plus d une fois alors
fibaro:debug('Scene déjà executée');
fibaro:abort() -- arrêt de cette lecture du script
end -- fin de la condition
 
local repeatTime = (5*60*1000); -- repetition de la boucle 5 minutes
local DeviceTele = 258; -- ID prise télé
 
local Etat = function()
    fibaro:debug('----- START -----');
    fibaro:debug(tonumber(fibaro:getValue(DeviceTele, "power")).. " W");
    if ( tonumber(fibaro:getValue(DeviceTele, "power")) < 2 )
        then
        fibaro:call(DeviceTele, "turnOff");
        fibaro:debug(" Télé eteint ");
    end
    fibaro:debug('---- STOP ----');
end
 
while true do
Etat();
fibaro:sleep(repeatTime);
end
--[[
%% autostart
%% properties
%% globals
--]]
if fibaro:countScenes() > 1 then -- si la scène est lancée plus d une fois alors
fibaro:debug('Scene déjà executée');
fibaro:abort() -- arrêt de cette lecture du script
end -- fin de la condition

local repeatTime = (5*60*1000); -- repetition de la boucle 5 minutes
local DeviceTele = 258; -- ID prise télé

local Etat = function()
	fibaro:debug('----- START -----');
	fibaro:debug(tonumber(fibaro:getValue(DeviceTele, "power")).. " W");
	if ( tonumber(fibaro:getValue(DeviceTele, "power")) < 2 )
		then
    	fibaro:call(DeviceTele, "turnOff");
    	fibaro:debug(" Télé eteint ");
	end
  	fibaro:debug('---- STOP ----');
end

while true do
Etat();
fibaro:sleep(repeatTime);
end

Explication

J’ai décidé d’utiliser une boucle sans fin qui se répète toutes les cinq minutes pour vérifier le statut de ma télé.

while true do <– Debut de la boucle
Etat(); <– Je lance ma fonction de vérification
fibaro:sleep(repeatTime); <– J’attend 5 minutes avant prochaine exécution de la fonction
end <– fin de ma boucle

La vérification de statut de la télé se trouve dans une fonction Etat() qui est lancée toutes les 5 minutes par ma boucle sans fin.

local Etat = function() <– Déclaration de  la fonction
fibaro:debug(‘—– START —–‘); <– Affiche le démarrage dans la console debug
fibaro:debug(tonumber(fibaro:getValue(DeviceTele, « power »))..  » W »); <– Récupère la valeurs POWER de la télé
if ( tonumber(fibaro:getValue(DeviceTele, « power »)) < 2 ) <– test Si < ou > à 2 W
then <– Alors
fibaro:call(DeviceTele, « turnOff »); <– extinction de la Télé
fibaro:debug( » Télé éteint « ); <– affiche action dans la console debug
end <– Fin de la condition Si
fibaro:debug(‘—- STOP —-‘); <– Affiche fin de vérification dans la console debug
end <– Fin de la fonction

Aperçu du programme dans la dans la console debug

lua_tele_off_debug

J’ai également ajouter la versification de nombre d’instance de la scène, si par hasard le programme soit exécuté plusieurs fois il s’arrête automatiquement. Normalement cela ne devrais pas arriver, mais soyons prudents.

if fibaro:countScenes() > 1 then <– si la scène est lancée plus d’une fois alors
fibaro:debug(‘Scene déjà executée’); <– affiche action dans la console debug
fibaro:abort() <– arrêt de cette lecture du script
end < — fin de la condition

Pour facilité l’utilisation j’ai également déclaré deux variable pour plus de clarté. Une pour définir intervalle de répétition et une pour déclarer le numéro ID de notre prise.

local repeatTime = (5*60*1000); <– répétition de la boucle = 5 minutes
local DeviceTele = 258; <– ID de la prise télé

Naturellement il faut paramétrer la scène pour qu’elle démarre automatiquement au lancement de notre Box.

%% autostart

Il vous reste a copier / coller la scène dans votre Box et paramétrer selon vos besoins.

Conclusion

Voilà comment avec quelques ligne de LUA nous pouvons mettre en place un système efficace de l’économie d’énergie. Serte, l’économie pour vous personnellement n’est pas énorme mais il faut vous dire que si tous le monde faisaient comme vous, nous pourrons arriver a quelques chose de correcte. Je suis sûr que si vous vérifié tous les appareils a votre domicile, vous pourrais applique notre solution à d’autre et réaliser encore plus d’économie ! Je vais bientôt m’attaquer a la versification des lumière avec un détecteur de présence. Alors à bientôt sur le blog.

Si vous avez des questions ou suggestions n’hésitez pas de les poster je vous répondrais avec plaisir.

Une réflexion au sujet de « Economiser l’energie avec la domotique – Gestion de veille de la télé – LUA »

  1. Ping : #Actualités : Les DomoNews de la semaine du 18/09 au 24/09

Laisser un commentaire

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