Fibaro LUA Functies

De Fibaro Home Center 2 kent zo een paar zeer belangrijke LUA functies.

fibaro:debug(“text”)
Alles wat hier meegegeven wordt als string parameter wordt weergegeven in de debug console onder de programmatie van de scene in de advanced tab.

fibaro:call(DeviceID,Actie,Parameters)
Deze procedure dient om een functie van een device op te roepen.
RolluikSchakelaar: (id,”close”) , (id,”open”), (id,”setValue”,50) , (id,”stop”)
Virtual Device: (id,”pressButton”,”1″) (id,”setProperty”,”propertyname”,”value”) (id,”setSlider”,”slidernumber”,”value”)
Motion/door/window/smoke Device: disarmed (id,”setArmed”,”0″) of armed (id,”setArmed”,”1)
RGBW Device: blue (id,”setB”,”99″) color (id,”setColor”,”0″,”10″,”20″,”30″) red,green,blue,white:0-99 green (id,”setG”,”99″) red (id,”setR”,”99″) brightn (id,”setValue”,50) white (id,”setW”,99) off (id,”turnOff”) on (id,”turnOn”) lightprogram (id,”startProgram”,”programid”)
Thermostaat: (id,”setTargetLevel”,”20″), (id,”setTime”,tonumber(os.time())+120*60)
Dimmer: (id,”setValue”,50) off (id,”turnOff”) on (id,”turnOn”)
Schakelaar: off (id,”turnOff”) on (id,”turnOn”)

User: (userid,”sendDefinedEmailNotification”,”1″) , (mobiledeviceid,”sendDefinedPushNotification”,”2″), (userid,”sendDefinedSMSNotification”,”32xxxxxxxx”,”3″),
(userid,”sendEmail”,subject,message),
(IOSdeviceid, “sendPush”, “pushmessage”)

Camera: (cameraid,”sendPhotoToEmail”,”emailaddress”), (cameraid,”sendPhotoToUser”,”userid”)

fibaro:getValue(DeviceID,propertyName)
Hiermee vraag je de waarde of status van een bepaalde property van een device op.

fibaro:getGlobalValue(VariableName)
Geeft de waarde van een bepaalde globale variabele terug (deze vind je terug op in het Variables Panel).

fibaro:setGlobal(VariableName,value)
Verandert de opgeslagen waarde in een globale variabele.

fibaro:sleep(time)
Zorgt ervoor dat de lopende scene gedurende een aantal milliseconden gepauzeerd wordt.

fibaro:abort()
Onderbreekt en stopt de lopende scene

fibaro:countScenes() of fibaro:countScenes(SceneID)
Geeft het aantal scenes weer dat op een bepaald moment actief lopen. Indien een SceneID wordt meegegeven krijg je het aantal keer dat deze bepaalde Scene tegelijkertijd loopt.

fibaro:getName(deviceID)
Geeft de naam van het apparaat met het bepaalde ID terug. Werkt ook met RoomID’s

fibaro:getSelfId()
Geeft het ID nummer van het device terug waarin dit werd opgeroepen. (werkt alleen met virtual devices, niet in Scenes)

fibaro:getSourceTrigger()
Haalt een array op met gegevens over de reden waarom de scene getriggerd is. De array bevat altijd een veld ’type’. Meestal gebruikt volgens volgende codevoorbeeld:
local trigger = fibaro:getSourceTrigger()
if (trigger['type'] == 'property') then
fibaro:debug('Source device = ' .. trigger['deviceID'])
elseif (trigger['type'] == 'global' then
fibaro:debug('Global variable source = ' .. trigger['name'])
elseif (trigger['type'] == 'other') then
fibaro:debug('Other source')
end

fibaro:getSourceTriggerType()
Deze funties geeft het type weer van de trigger waardoor de scene gestart werd. (zie ook getSourceTrigger)

fibaro:killScenes(SceneID)
Deze functie sluit alle (!) instanties van een bepaalde scene af.

fibaro:startScene(SceneID)
Start een nieuwe instantie van een bepaalde Scene.

fibaro:calculateDistance(locatie1,locatie2)
Berekent de afstand tussen 2 geografische punten weergegeven door twee strings “NB;WL”.
fibaro:get(DeviceID,propertyName)
Toont de waarde en tijd van de laatste aanpassing van een property
local value,modtime=fibaro:get(id,'parameter')
fibaro:getGlobal(variabeleNaam)
Toont de waarde en tijd van de laatste aanpassing van een globale variabele
local value,modtime=fibaro:getGlobal('variabelenaam')
fibaro:getGlobalModificationTime(variabeleNaam)
Geeft een timestamp terug wanneer de globale variabele het laatst is aangepast.
fibaro:getModificationTime(deviceID,propertyNaam)
Geeft een timestamp terug wanneer de property van het device het laatst is aangepast.
fibaro:getRoomID(deviceID)
Geeft de ID van de kamer terug, gebaseerd op het ID van een device
fibaro:getRoomName(roomID)
Geeft de naam van de kamer terug, gebaseerd op het ID van de kamer
fibaro:getRoomNameByDeviceID(deviceID)
Geeft de naam van de kamer terug, gebaseerd op het ID van een device
fibaro:getSectionID(deviceID)
Geeft het ID nummer van de sectie terug waarin het device zich bevindt
fibaro:getType(deviceID)
Geeft het type van een apparaat terug als string
fibaro:isSceneEnabled(sceneID)
geeft een booleanvalue terug die aangeeft of de scene enabled is.
fibaro:setSceneEnabled(sceneID,boolean)
Bepaal of een scene enabled is of niet

json.decode(string)
Converteert een JSON string naar een LUA tabel. Werkt alleen in virtual devices.
json.encode(array)
Converteert een LUA tabel naar een JSON string. Werkt alleen in virtual devices.
json.null
Codeert een JSON null value