Hallo Boomx,
in der Globalen Variable (V_Wind) steht 0 und auch nur die 0.
Gruß
Carsten
Hallo Boomx,
in der Globalen Variable (V_Wind) steht 0 und auch nur die 0.
Gruß
Carsten
Hast Du in die WU-Szene das Befüllen Deiner Variable eingebaut:
fibaro:setGlobal(“V_Wind”, wind)
Viele Grüße Hoggle
Hallo Hoogle,
ja so schaut es im WU-Script aus:
if (stationID ~= nil) then
fibaro:call(WU.selfId , "setProperty", "ui.lblStation.value", locationID);
fibaro:call(WU.selfId , "setProperty", "ui.lblCity.value", city);
fibaro:call(WU.selfId , "setProperty", "ui.lblTemp.value", WU.translation[WU.language]["Temperature"].." "..temperature.." °C");
fibaro:call(WU.selfId , "setProperty", "ui.lblHum.value", WU.translation[WU.language]["Humidity"].." "..humidity);
fibaro:call(WU.selfId , "setProperty", "ui.lblBar.value", WU.translation[WU.language]["Pressure"].." "..pression.." mb");
fibaro:call(WU.selfId , "setProperty", "ui.lblWind.value", WU.translation[WU.language]["Wind"].." "..wind.." km/h");
fibaro:setGlobal("V_Wind", wind)
Gruss
Carsten
Hi,
gib doch mal den Inhalt von wind aus:
fibaro:debug(wind)
Gruß
Hi boomx,
das Ergebnis ist 0.
Das ist aber merkwürdig, es kann doch nicht immer 0 sein.
Da scheint das WU Script wohl keinen Wert zu erhalten.
Ich glaube wir sind nah dran.
Gruss
Carsten
EDIT: Glaube das WU Script hat ein Problem.
Auf der Webseite steht eine Windgeschwindigkeit von 12km/h aber im Virtuellen Device wird 0 angezeigt.
Glaube im Moment daher auch das Problem.
Na super, jetzt kann ich meinen Beitrag nicht mehr bearbeiten.
Jetzt um 13:04 Uhr zeigt er an beim Debug 2.1 als Windgeschwindigkeit.
Das Sturmwarnungsscript zeigt aber immer noch an:
Line 18: Bad Argument #2 to ‚tonumber‘ (base out of range)
Hi,
die Zahl kann nicht in einen Integer gewandelt werden. Liegt an dem Inhalt (2.1). Ist das ein , oder ein .?
Gruß
Hi boomx,
er schreibt 2 (punkt) 1. In dem Virtuellen Modul von WU wird es auch als 2.1 angezeigt.
OK aber vergleichen muss man es ja trotzdem können.
Tonumber vergleicht nur ganze Zahlen ?
Gruss
Carsten
Hallo,
ich habe es hinbekommen mit der Abfrage. Es muss getGlobalValue und nicht getglobal abgefragt werden:
if ((tonumber(fibaro:getGlobalValue("V_Wind")) > tonumber(sturm))
Gruss
Carsten
Hallo Zusammen,
das Script lief bei mir ja nach einigen Problemen so mehr recht als schlecht, also habe ich noch mal ein wenig gebastelt
und so gefällt es mir nun.
Es lößt nur bei Sturm aus und ansonsten ist es ruhig.
Denke einiges hätte man besser oder einfacher machen können, aber bei den paar Kenntnissen die ich in LUA habe, freue ich mich das es klappt.
--[[
%% properties
75 wind
%% globals
V_Wind
--]]
local sturm = 62 -- km/h nach dem Sturm erkannt werden soll
local phoneID = {4} -- Handy-IDs
local maxID = 1000
fibaro:setGlobal('V_Wind', tonumber(string.format("%.0f", fibaro:getGlobalValue('V_Wind'))))
fibaro:debug(fibaro:getGlobalValue('V_Wind'))
fibaro:debug(sturm)
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end
local startSource = fibaro:getSourceTrigger();
if ((tonumber(fibaro:getGlobalValue('V_Wind')) > tonumber(sturm))
and startSource['type'] == 'other') then
if (startSource['type'] == 'other') then
Debug('white', "SZENE MANUELL GESTARTET")
else
Debug('green', "SZENE DURCH WIND-VORHERSAGE GESTARTET")
end
Debug('red', "ACHTUNG! Sturm erkannt. Geschwindigkeit: " ..fibaro:getGlobalValue('V_Wind').. " km/h")
Debug('white', "Prüfe offene Fenster")
for id = 1, maxID do
local deviceType = fibaro:getType(id)
if (deviceType == 'com.fibaro.windowSensor' or deviceType == 'com.fibaro.doorSensor') then
if (tonumber(fibaro:getValue(id, 'value')) == 1) then
local name = fibaro:getName(id)
local room = fibaro:getRoomNameByDeviceID(id)
Debug('red', "ACHTUNG! Sturm erkannt. " ..name.. " im Raum " ..room.. " ist offen!")
for k=1, maxID do
if phoneID[k] ~= nil then
fibaro:call(tonumber(phoneID[k]), 'sendPush', 'ACHTUNG: Sturm erkannt! ' ..name.. ' im Raum ' ..room.. ' ist offen!')
end
end
end
end
end
end
Gruss
Carsten