LUA Script verschwindet

Liebe Leute,

ich hab ein LUA Script gebaut, was erstmal nur eine Lampe einschalten soll, wenn einer von mehreren Fenster Sensoren anspringt. Es gibt hier aber ewin seltsames Phänomen. Ich starte das Script, und wenn ich noch was ändern möchte bekommen ich zuerst Acces forbidden. Wenn ich die Seite aktualisiere sehe ich aber, dass das Skript verschwunden ist. Wenn ich das HC2 neustarte, dann ist es wieder da. Das passiert nur mit diesem einen Script, alle anderen laufen. Es sieht so aus, als wäre da irgendwas drin, was das HC2 nicht mag. Oder bin ich einfach zu dämlich?
Meine Konfiguratzion, HC2, Version 4.032, die Sensoren sind die Fibaro Fenster Sensoren.

Hier da Script:

--[[
%% properties
97 value
12 value
89 value
58 value
84 value
89 value
93 value

%% globals
--]]

local Kueche = 97
local Essen = 12
local Gaeste = 89
local Terasse = 58
local Bad = 84
local GaesteWC = 89
local Haustuer = 93

local startSource = fibaro:getSourceTrigger();
if (
 ( tonumber(fibaro:getValue(Kueche, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(Essen, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(Gaeste, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(Terasse, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(Bad, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(GaesteWC, "value")) > 0 )
or
 ( tonumber(fibaro:getValue(Haustuer, "value")) > 0 )
or  
    startSource["type"] == "other"
)
then

fibaro:call(15, "turnOn");
fibaro:debug("Schalte Licht ein");

--	fibaro:call(2, "sendDefinedEmailNotification", "2"); --Fenster offen
--	fibaro:call(2, "sendEmail", "Fenster geöffnet","Es wurde irgendein Fenster geöffnet")

end

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

Vielen Dank schonmal für Eure Hilfe

Sascha

P.S.: Ein Super Board hier!!

Hey Sascha,

P.S.: Ein Super Board hier!!
Sowas liest man immer gerne :slight_smile:

Sehr seltsam wie sich das bei dir verhält, kann ich mir keinen reim draus machen warum und weshalb das so ist.
Sollte in den Script ein Fehler sein bekommst du diesen eigentlich im Debug Fenster angezeigt.
Logst du dich per remote ein?

Habe dein Script ein bisschen überarbeitet. Damit könntest du das Licht in dementsprechenden Raum anschalten und bekommst Raumbezogen eine Email.
Hoffe ist Fehlerfrei…ohne Gewähr…hab es nicht getestet…

--[[
%% properties
97 value
12 value
89 value
58 value
84 value
89 value
93 value
 
%% globals
--]]

local Kueche = 97
local Essen = 12
local Gaeste = 89
local Terasse = 58
local Bad = 84
local GaesteWC = 89
local Haustuer = 93

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

if (tonumber(fibaro:getValue(Kueche, "value")) > 0)
    then 
    fibaro:call(15, "turnOn");
    fibaro:call(2, "sendEmail", "Fenster Küche wurde geöffnet.");
    fibaro:debug('Fenster Küche wurde geöffnet.')
    
    elseif (tonumber(fibaro:getValue(Essen, "value")) > 0)
      then
      fibaro:call(15, "turnOn");
      fibaro:call(2, "sendEmail", "Fenster Esszimmer wurde geöffnet.");
      fibaro:debug('Fenster Esszimmer wurde geöffnet.')
      
        elseif (tonumber(fibaro:getValue(Gaeste, "value")) > 0)
          then
          fibaro:call(15, "turnOn");
          fibaro:call(2, "sendEmail", "Fenster Gästezimmerzimmer wurde geöffnet.");
          fibaro:debug('Fenster Gästezimmer wurde geöffnet.')
          
          elseif (tonumber(fibaro:getValue(Terasse, "value")) > 0)
            then
            fibaro:call(15, "turnOn");
            fibaro:call(2, "sendEmail", "Terassentür wurde geöffnet.");
            fibaro:debug('Terassentür wurde geöffnet.')
            
            elseif (tonumber(fibaro:getValue(Bad, "value")) > 0)
              then
              fibaro:call(15, "turnOn");
              fibaro:call(2, "sendEmail", "Fenster Badezimmer wurde geöffnet.");
              fibaro:debug('Fenster Badezimmer wurde geöffnet.')
              
              elseif (tonumber(fibaro:getValue(GaesteWC, "value")) > 0)
                then
                fibaro:call(15, "turnOn");
                fibaro:call(2, "sendEmail", "Fenster Gäste WC wurde geöffnet.");  
                fibaro:debug('Fenster Gäste WC wurde geöffnet.')
                
                elseif (tonumber(fibaro:getValue(Haustuer, "value")) > 0)
                  then
                  fibaro:call(15, "turnOn");
                  fibaro:call(2, "sendEmail", "Haustür wurde geöffnet."); 
                  fibaro:debug('Haustür wurde geöffnet.')
                  
end

            

Gruß Alex

Hi ALex,

vielen Dank für die Überarbeitung, sieht gut aus!

Ich bin einfach übers Webinterface im Home Center 2. Ich bin im gleichen Netz, also nicht Remote.

Ich habe Deine Varinate jetzt mal genommen. Ich bin ins Webinterface, unter Szenen dann Szene hinzufügen, LUA Script, dann Szene noch benannt und einem Raum zugeordnet. Dann hab ich abgespeichert, soweit alles gut. Dann kopiere ich Deinen Code per Zwischenablage rein, speicher ab, immer noch alles gut. Jetzt möchte ich nur nochmal abspeichern, dann sagt er mir schon Access forbidden. Zuerst hab ich das nicht verstanden, aber das sagt er, weil das Script schon nicht mehr da ist. Wenn ich die Seite im Browser aktualisiere, ist sie weg. Wenn ich jetzt das HC2 neue starte, dann ist das SCript kurz da. So lange, bis ich was damit mache, dann wieder selbe Effekt. Spooky, oder? Vielleicht ein Bug in der 4.032?

Ratlose Grüße

Sascha

Sorry, ich sehe gerade, dass ich natürlich schon 4.035 drauf habe, also die aktuelle Software. Ändert aber leider nichts an meinem Problem ;-(

Hey Sascha,

müssen jetzt mal schauen warum und weshalb.
Hast du schon versucht welche von den Trigger Devices zu löschen (unter properties)?

Kann mir nicht vorstellen das es am Script selber liegt.

Gruß

Kam grade ein neues update raus…vielleicht läuft es ja jetzt.