Ich möchte eine Szene programmieren, welche mich informiert, wenn ein bestimmter Verbraucher (gemessen über Wallplug) eine Zeitlang mehr als X Watt verbraucht hat und dann wieder unter einen Schwellenwert fällt. Die Szene soll immer laufen und nicht manuell aktiviert werden. Beispiel wäre Info, dass ein Gerät welches im Betrieb 400 Watt verbraucht eine Nachricht auslöst, wenn der Verbrauch weg und die Maschine fertig ist.
Ich habe mir dafür folgendes in LUA progammiert, bekommt aber in der fett gedruckten Zeile folgenden Fehler
[ERROR] 11:21:38: line 22: attempt to compare number with nil
–[[
%% properties
125 value – ID des WallPlug
%% globals
–]]
– Definition VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 41 – ID dieser Szene
local power = 125 – ID des WallPlug
– Lösche doppelte Szene(n)
if (fibaro:countScenes()>1)
then
fibaro:abort();
end
– Liegt noch ein Verbrauch oberhalb des Schwellenwertes an?
if (tonumber(fibaro:getValue(power, “valueSensor”)) > 10)
then
local starttimer = 900;
local timer = (starttimer);
fibaro:debug(“Starte Timer”);
repeat
fibaro:sleep(1000);
timer=timer-1;
– Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if (tonumber(fibaro:getValue(power, “valueSensor”))) > 10
then
timer=starttimer;
fibaro:debug(“Resete Timer, Verbrauch über 10W”);
end
until (timer<1)
– Sende Nachrichten, wenn Timer abgelaufen
fibaro:call(104, “sendDefinedPushNotification”, “23”);
end
Kann mir einer helfen, was ich falsch mache? Danke schön!