Ich hab’ schon alles Mögliche versucht, aber ich bekomme es nicht hin.
Ich habe ein Gardena Hauswasserwerk als Grundwasser-Gartenpumpe an einem Wall-Plug. Der Wall-Plug wird hauptsächlich direkt am Wall-Plug eingeschaltet. Daraufhin läuft die Pumpe für einige Sekunden an, baut den Wasser-Druck auf und geht dann nach einigen Sekunden in den Standy-Modus.
Wenn die Pumpe Wasser fördert verbraucht sie ca. 940 Watt.
Wenn für einige Sekunden kein Wasser mehr gefördert wird geht sie automatisch in den Standby-Modus, hier liegt der Verbrauch dann bei 2.2W - 2.3W (laut Wall-Plug)
Ich versuche die einzelnen Zustände: „Pumpe läuft“, „Standby“ und „Aus“ in einer Variablen darzustellen. Sollte die Pumpe länger als z.B. 10 Minuten im Standby sein, soll der Wall-Plug ausgeschaltet werden.
Eine Variable mit den Werten: „Pumpe läuft“, „Standby“ und „Aus“ habe ich angelegt und frage diese auch in den Szenen ab.
Aber egal wie ich es drehe und wende, entweder laufen alle Szenen gleichzeitig, alle direkt nacheinander oder oder oder.
Letztendlich wird am Ende weder die Var. richtig eingetragen noch geht der Wall-Plug auf Aus.
Sieht so aus, als ließe sich das nicht mit Block-Szenen realisieren.
Hab’s auch mit einfachen angepassten LUA-Szenen (aus Block-Szenen gewandelt) versucht, aber auch hier kein Erfolg.
die Aufgabenstellung hört sich eigentlich genau so an wie beim Waschmaschinenscript. Bisschen Werte anpassen und das sollte laufen. Evtl. musst Du noch das Ausschalten dazu programmieren was aber die leichteste Übung wäre. Wenn Du noch unbedingt Variablen setzen willst, für andere Zwecke, könntest Du diese ebenfalls als Extrazeile einfügen.
Ich finde es auf die Schnelle nicht. Hier mal meines mit den entsprechenden Zeilen bereinigt. Pushnachrichten gelöscht. Abschalten eingefügt. Werte hab ich auch gleich mal nach deinen Angaben und Gefühl eingestellt. Du musst noch deine ID (Bei „206 power“ und bei „local power_socket = 206 – wallplug“) abändern:
--[[
%% properties
206 power
%% globals
--]]
--Überwacht die Leistungsaufnahme der Waschmaschine und verschickt bei Ende
--eine Pushnachricht. Die Überwachung wird erst ab einer bestimmten Leistung
--vorgenommen, damit nicht ohne Lauf Nachrichten verschickt werden. Zusätzlich
--wird das Symbol des VD geändert.
local power_socket = 206 -- wallplug
local ZaehlerAus = 600 -- Nach [s] Sekunden Aus erkennen
local ZaehlerEin = 1 -- Nach [s] Sekunden Ein erkennen
local PowerAus = 5 -- bei geringerer [W] Leistung Aus erkennen
local PowerEin = 100 -- bei größerer [W] Leistung Betrieb erkennen
local PowerStart = 800 -- bei größerer [W] Leistung Start erkennen
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
if (fibaro:countScenes()>1) then
fibaro:debug("Kill second Scene...")
fibaro:debug("-")
fibaro:abort()
end
local run = 0
local currentDate = os.date("*t")
local power = fibaro:getValue(power_socket, "power")
local counterAus = 0
local counterEin = 0
if (tonumber(fibaro:getValue(power_socket, "power")) > PowerStart and tonumber(fibaro:getValue(power_socket, "power")) < 10000) and run == 0 then
local start = (os.time())
fibaro:debug("Waschmaschine läuft...")
fibaro:debug("Verbrauch = "..power.." Watt")
run = 1
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, "power")) < PowerAus) then
counterAus = counterAus + 1
local power2 = fibaro:getValue(power_socket, "power")
fibaro:debug('counterEin = ' ..counterEin.. 'counterAus = ' ..counterAus.. " : "..power2.."Watt")
end
if (tonumber(fibaro:getValue(power_socket, "power")) > PowerEin) then
counterAus = 0
counterEin = counterEin + 1
end
if (tonumber(fibaro:getValue(power_socket, "power")) < PowerAus) and counterAus > ZaehlerAus then
if counterEin > ZaehlerEin then --prüfen ob lange genug gelaufen
fibaro:debug("Ausschalten")
fibaro:call(power_socket,"turnOff")
else
fibaro:debug("Fehlstart beendet!")
end
local power3 = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch (3) = "..power3.." Watt")
run = 0
end
fibaro:sleep(1*1000)
end
fibaro:debug("---")
Hab es nicht ausprobiert. Einfach mal schauen was passiert.
local power_socket = 113 – wallplug
local powerlive = fibaro:getValue(power_socket, „power“)
fibaro:debug(„Verbrauch = „…powerlive…“ Watt“)
if (fibaro:countScenes(14)>1)
then
fibaro:abort(14);
end
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, „power“)
local counter = 0
if ( tonumber(fibaro:getValue(power_socket, „power“)) > 60 ) and run == 0 then
local start = (os.time())
fibaro:debug(„TEXT“)
fibaro:debug(„Verbrauch = „…power…“ Watt“)
run = 1
fibaro:debug(„Send Push“)
fibaro:call(4, „sendPush“, „TEXT“);
end
while run == 1 do
if (tonumber(fibaro:getValue(power_socket, „power“)) < 5) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, „power“)
fibaro:debug('counter = ’ …counter… " : "…power2…„Watt“)
end
if (tonumber(fibaro:getValue(power_socket, „power“)) > 5 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, „power“)) < 5) and counter > 260 then
fibaro:debug(„Masina e gata!“)
local power3 = fibaro:getValue(power_socket, „power“)
fibaro:debug(„Verbrauch (3) = „…power3…“ Watt“)
fibaro:debug(„Send Push“)
fibaro:call(4, „sendPush“, „TEXT“);
run = 0
end
fibaro:sleep(1*1000)
end