Fehlermeldung in LUA Script

Hallo Leute,

kann mir irgend einer erklären, was diese Meldung bedeutet und was die Ursache dafür ist?

Vielen Dank

Unbenanntes-Bild.png

Hi,

die deviceID ist ein nil-Wert (also gar nichts), wird aber irgendwo aufgerufen. Poste doch mal dein Code :slight_smile:

Gruß

Hi,

damit die Szene läuft, habe ich die fehlende id rausgenommen:

--[[
%% properties
36 value
51 value
109 value
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
-- VARIABLEN (Bewegungsmelder muss oben unter %% properties aufgeführt sein)
local scene = 17 -- ID dieser Szene
local motion = 51-- ID des Bewegungssensors_M4
local switch = 109  -- ID des Relay Switches 109
-- Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort();
end
-- SCHALTE LICHT EIN & AUS
if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and (tonumber(fibaro:getValue(switch, "value"))) < 1 then
fibaro:call(switch, "turnOn");
fibaro:debug("Schalte Licht ein");
end
-- Verzögerung in Sekunden nach der letzten erkannten Bewegung, bevor das Licht ausgeschaltet wird
if (tonumber(fibaro:getValue(switch, "value"))) > 0 then
local starttimer = 600;
local timer = (starttimer);
fibaro:debug("Starte Timer");
repeat
fibaro:sleep(1000);
-- Schalte Licht aus, wenn Schalter manuell betätigt wird und warte 10 Sekunden, um ein
-- versehentliches (erneutes) Aktivieren der Szene zu verhindern
if (tonumber(fibaro:getValue(switch, "value"))) < 1 then
timer=1;
fibaro:call(switch, "turnOff");
fibaro:sleep(10000);
break
end
timer=timer-1;
-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if (tonumber(fibaro:getValue(motion, "value"))) > 0 then
timer=starttimer;
fibaro:debug("Resete Time, Bewegung erkannt bzw. Motionsensor sendet noch nicht (vgl. Parameter 6)");
end
until (timer<1)
-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
fibaro:call(switch, "turnOff");
fibaro:debug("Timer abgelaufen/Schalte Licht aus");
fibaro:killScenes(scene);
end

For allem eine grundsätzliche Frage zu LUA:
wenn ich an einem relais switch alle beide ausgänge mit irgend einem, von drei im Raum befindlichen, Moution eye ansteuern möchte. Was muss ich dabei beachten?

Also läuft die Szene jetzt wie oben gepostet?

Wenn du mehr MS nutzen willst, dann musst du diese oben in den Header integrieren und im Quellcode an den Stellen, wo der Zustand abgefragt wird (fibaro:getValue(motion, “value”)). Oder hab ich das jetzt falsch verstanden?

Hey Daniel,

Die Szene läuft, nur weil ich je ein ME und ein Ausgang des RS verwende. sobald ich den weiteren RS-Ausgang mit in Szene aufnehme bekomme ich die oben beschriebene Fehlermeldung.
Aber grundsätzlich sollte die Szene folgendes können:
Es gibt einen großen Raum mit “toten” Ecken, daher sind drei MEs und es gibt zwei Lichtauslässe, daher ein RS mit 2x1,5 kW.
Die Szene soll folgendes können:
Zwei Variablen liefern Zustäne “Home” und “Away”; wenn “Home” aktiv ist, soll bei der erkannten Bewegung egal welchen ME beide Kanäle von RS angesteuert werden und nach einer Zeit von 10 min. ausgehen. Wenn “Away” aktiv ist, soll nur ein Kanal angesteuert werden bei gleichen Bedingungen wie in “Home”-Zustand. Dazu kommt, dass alles ist abhänging von dem LUX-Wert, was die drei MEs zusammen liefern.

Die Frage ist, ob ich mit dieser LUA-Szene auf dem annährend richtigen weg bin?

Gruß Viktor.

“Ein Programmierer wird von seiner Frau um Folgendes gebeten: “Geh bitte zum Laden und kaufe einen Laib Brot. Falls die Eier haben, bring ein Dutzend mit.” Der Programmierer kommt zurück mit 12 Laibern Brot.”