Hi Leute,
Ich hoffe ich nerve euch nicht mit meinen Fragen?
Ich würde gerne ein Skript bauen, das auf die Änderung von einer globalen Variable reagiert, die mehrere unterschiedliche Werte bekommen kann!
Ich will auf den Inhalt der globale Variable “TestStatus” reagieren.
Habe mir mal ein Testskript gebaut. Leider macht das Skript nicht was es soll ;-(
Bei Zeile 17 habe ich offensichtlich eine falsche “IF” Anweisung, habt ihr eventuell einen Tipp, oder vielleicht hat das ja schon jemand im Einsatz und kann mir einen Beispielcode zeigen, der funktioniert!?
--[[
%% properties
%% events
%% globals
TestStatus
--]]
-- farbige Debugg Meldungen
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
fibaro:setGlobal('TestStatus',"Wert1")
local TState = fibaro:getGlobal("TestStatus")
Debug("grey",(os.date("%d.%B %Y"..TState.. " ")))
function CheckStatus
if TState == "Wert1" then
Debug("green","Status ist ->"..TState.." ")
else if TState == "Wert2" then
Debug("green","Status ist ->"..TState.." ")
else
Debug('yellow','Status ist anders oder NICHT gesetzt -> '..TState.." ")
end
end
end
CheckStatus()
Klappt nicht ;-(
Habe: if(tostring(TState)) == tostring('Wert1') then if tostring(TState) == tostring('Wert1') then if tostring(TState) == tostring("Wert1") then
probiert, immer der selbe Fehler
Ach so, sorry ich habe “Fragezeichen” statt “Freizeichen” gelesen. Brauch ne neue Brille
Danke, aber hat auch nix geholfen. Habe inzwischen auch ALLE ’ gegen " ersetzt und die " nochmal neu gemacht.
Immer noch die selbe Meldung .
[DEBUG] 07:08:24: line 17: ‘(’ expected near ‘if’
Hier nochmal der inzwischen geänderte Code:
--[[
%% properties
%% events
%% globals
TestStatus
--]]
-- farbige Debugg Meldungen
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
fibaro:setGlobal("TestStatus","Wert1")
local TState = fibaro:getGlobal("TestStatus")
Debug("grey",(os.date("%d.%B %Y"..TState.. " ")))
function CheckStatus
if tostring(TState) == tostring("Wert1") then
Debug("green","Status ist ->"..TState.." ")
elseif tostring (TState) == tostring("Wert2") then
Debug("green","Status ist ->"..TState.." ")
else
Debug("yellow","Status ist anders oder NICHT gesetzt -> "..TState.." ")
end
end
end
CheckStatus()
1.) Nein es kommt gar nicht zum Debug, sondern gleich die Fehlermeldung. Offensichtlich stoptt der Interpreter den Code bevor er anläuft!
2.) Auch mit “getglobalValue” das selbe Problem ;-(
Habe auch schon nach “tonumber” im Forum gesucht, aber nichts gefunden das irgenwie einen Hinweis auf den Fehler gibt…
--[[
%% properties
%% events
%% globals
TestStatus
--]]
-- farbige Debugg Meldungen
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
fibaro:setGlobal("TestStatus","Wert1")
local TState = fibaro:getGlobal("TestStatus")
Debug("grey",(os.date("%d.%B %Y"..TState.. " ")))
function CheckStatus()
if tostring(TState) == tostring("Wert1") then
Debug("green","Status ist ->"..TState.." ")
elseif tostring (TState) == tostring("Wert2") then
Debug("green","Status ist ->"..TState.." ")
else
Debug("yellow","Status ist anders oder NICHT gesetzt -> "..TState.." ")
end
end
CheckStatus()