Hi Leute,
Ich habe mir ein Skript gebaut welches einen Fibaro Plug anschalten soll, sobald der angeschlossene Verbraucher weniger als 10 W Strom zieht.
Es geht dabei um ein PC Netzteil das im ausgeschalteten Zustand ca. 5 Watt verbraucht.
Leider “erwische” ich meine Szene immer wieder dass sie den Plug nicht abschaltet.
Da ich die Szene hier irgendwo abgekupfert habe, ist da auch ein 30 Sekunden Delay drinnen, das ich zwar nützlich finde, aber die Befehle dazu nicht wirklich verstanden hab
Hier mein Skript, vielleicht hat ja jemand einen Tipp!?.
Oder einen Hinweis auf ein Skript das besser funktioniert
--[[
%% properties
326 power
--]]
if (fibaro:countScenes()>2) then fibaro:abort() end -- Lösche doppelte Szenen
Debug = function (color,message) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end
local startSource = fibaro:getSourceTrigger()
if(startSource["type"] == "other") then
Debug("green",(os.date("%d.%m.%Y - Schalte aus - bei Start")))
fibaro:call(326, "turnOff")
else
if (( tonumber(fibaro:getValue(326, "power")) < 10 )) then
setTimeout(function()
local delayedCheck0 = false
local tempDeviceState0, deviceLastModification0 = fibaro:get(326, "power")
if (( tonumber(fibaro:getValue(326, "power")) < 10 ) and (os.time() - deviceLastModification0) >= 30) then
delayedCheck0 = true
end
local startSource = fibaro:getSourceTrigger()
if (
( delayedCheck0 == true )
or
startSource["type"] == "other"
)
then
Debug("green",(os.date("%d.%m.%Y - Schalte aus")))
fibaro:call(326, "turnOff")
fibaro:setGlobal("PushOver","PC4 Plug,PC4 abgeschaltet,-1,none")
end
end, 30000)
end
end
Stimmt Daniel, da war ich eh schon mal dran, hatte ich wieder vergessen,
Danke für den Tipp, läuft schon
Hab hier als Beispiel eine universelle Szene daraus gebastelt, wo man den Mindestverbrauch, Timer und das Device über Variablem einstellen kann.
Ist zwar noch nicht 100% sauber programmiert, aber läuft super…
--[[
%% properties
85 power
%% globals
--]]
if (fibaro:countScenes()>1) then fibaro:abort() end -- Lösche doppelte Szenen
Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end
---- Hier die Variablen anpassen, je nach Bedarf
local power_socket = 85 -- Geräte ID (Wallplug, Fibaro Switsch oder ähnliches Gerät)
local power_min = 10 -- minimaler Verbrauch, darunter wird abgeschaltet
local power_timer = 15 -- Zeit die der Verbrauch minimal bleiben darf
---- ab hier nix mehr ändern ;-)
local run = 0
local power = fibaro:getValue(power_socket, "power")
local counter = 0
if (tonumber(fibaro:getValue(power_socket, "power")) > power_min ) and run == 0 then
Debug("green",("Gerät verbraucht "..power.." Watt - Abschaltelimit bei " ..power_min.." Watt"))
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, "power")) < power_min) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, "power")
Debug("yellow",("Verbrauch "..power2.." Watt, unter Limit: "..power_min.." Couter: "..counter.." "))
end
if (tonumber(fibaro:getValue(power_socket, "power")) > power_min ) then
counter = 0
local power2 = fibaro:getValue(power_socket, "power")
Debug("green",("Verbrauch "..power2.." Watt, über Limit: "..power_min.." Couter gestoppt"))
end
if (tonumber(fibaro:getValue(power_socket, "power")) < power_min) and counter > power_timer then
local power3 = fibaro:getValue(power_socket, "power")
Debug("green",(os.date("%d.%m.%Y - Verbrauch "..power3.." Watt seit "..counter.." Sekunden - Schalte aus! "..power_min.." Watt")))
fibaro:call(power_socket, "turnOff")
run = 0
end
fibaro:sleep(1*1000)
end