Tagged: lua

Fibaro LUA Script – Wallplug auto off – automatisch aus

Heute mal ein kleines LUA-script, welches ich zu Hause einsetze um den StandbyVerbrauch (37 W) der angeschlossenen Multimediageräte (TV, Sat-Receiver, BlueRay-Player etc.) nach einer Leerlaufzeit von 4 Minuten auf 0 zu reduzieren !

Genutzt wird das Ganze mit dem HomeCenter 2 und den Wallplugs von Fibaro.

-- @file      	wallplug_auto_off.lua
-- @author    	oliver schmidt
-- @date      	2016-08-18
-- @licence   
-- 		© Oliver Schmidt (tutorials at net-fx2 dot de)
-- 		Unless stated otherwise, all lua-code of this Project is:
--		Licensed under the Create-Commons Attribution-Noncommercial-Share Alike 3.0 Unported 
--		http://creativecommons.org/licenses/by-nc-sa/3.0/


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

local version = '1.0';
local sleep_value = 60000;          -- SleepValue for while-loop
local sleep_counter = 0;            -- initialize sleep_counter
local low_power = 40;               -- low-power-value  --> turn off device when powerconsumption is lower than specified value (watts)
local wall_plug = 57;               -- fibaro-ID of the desired wallplug 
local set_off_time = 240000;        -- 240 seconds -- 4 minutes

fibaro:debug('Automatische WallplugAbschaltung bei EnergyLevel unter 40 Watt nach 3 Minuten (Ver.' .. version .. ')');

if (fibaro:countScenes() > 1)
  then
 	fibaro:abort();
  fibaro:debug('abort');
end

while true do
     fibaro:debug('SleepCounter: ' ..sleep_counter);
     local wp_power = tonumber(fibaro:getValue(wall_plug,"power"));
	 --fibaro:debug(wp_power);
-- only for debugging
--     if(wp_power > 0) 
--       then fibaro:debug('WallPlug ist eingeschaltet..');
--    		fibaro:debug('Aktueller Verbrauch: '.. wp_power ..' Watt.');
--       else fibaro:debug('Wallplug ist ausgeschaltet');
--     end
     if (wp_power < low_power and wp_power > 0) then
     	sleep_counter = sleep_counter + sleep_value;
     else 
    	-- Zurücksetzen des SleepCounter wenn die angeschlossenen Geräte wieder
    	-- innnerhalb der eingestellten set_off_time eingeschaltet und genutzt werden 
        sleep_counter = 0;
     end
     if(sleep_counter == set_off_time and sleep_counter > 0)
    	then fibaro:debug('WallPlug wird nach ' .. set_off_time/1000/60 .. ' Minuten unter ' .. low_power .. ' \n Watt Verbrauch abgeschaltet.' );
     		 fibaro:call(wall_plug,"turnOff");
    		 sleep_counter = 0;
     end
     fibaro:sleep(sleep_value);
     
end

Über Anregungen oder auch Kommentare freue ich mich wie immer gerne.