Перечень описываемых функций:
- Функция fibaro:abort() - прекращает текущую обработку сцены;
- Функция fibaro:call( deviceID, action) - запрашивает выполнение указанного действия на устройстве (например «включение»);
- Функция fibaro:callGroupAction( device_filter, action) - запрашивает выполнение указанного действия на каждом устройстве, соответствующем параметру device_mask;
- Функция fibaro:get( deviceID, property) - возвращает два строковых параметра: значение запрошенного свойства устройства и время последнего сообщения/изменения свойства;
- Функция fibaro:getDevicesId( { device_mask } ) - возвращает таблицу идентификаторов устройств, соответствующих указанной маске;
- Функция fibaro:getGlobal( "var_name") - возвращает два строковых параметра: значение глобальной переменной fibaro и время последнего изменения переменной;
- Функция fibaro:getGlobalModificationTime( "var_name") - Возвращает метку времени, связанную с изменением значения глобальной переменной fibaro;
- Функция fibaro:getGlobalValue( "var_name") - возвращает значение глобальной переменной, определенной fibaro;
- Функция fibaro:getModificationTime( "deviceID", property) - возвращает метку времени, связанную с самым последним изменением значения указанного свойства на указанном устройстве;
- Функция fibaro:getName( deviceID) - возвращает имя, указанное на панели конфигурации устройства;
- Функция fibaro:getRoomID( deviceID) - Возвращает идентификатор комнаты, в которой находится устройство;
- Функция fibaro:getRoomName( "roomID") - Возвращает имя комнаты, связанное с roomID;
- Функция fibaro:getSceneRunConfig(sceneID) - Возвращает строку, содержащую один из параметров параметра setRunConfig();
- Функция fibaro:getSectionID( deviceID) - Возвращает идентификатор раздела, в котором находится устройство.
- Функция fibaro:getSourceTrigger() - Возвращает таблицу, идентифицирующую триггер сцены. Всегда возвращает ['type'], может возвращать дополнительные значения таблицы в зависимости от типа.
- Функция fibaro:getSourceTriggerType() - Возвращает строку, эквивалентную записи таблицы типов, возвращаемой функцией getSourceTrigger();
- Функция fibaro:getType( deviceID) - Возвращает тип устройства;
- Функция fibaro:getValue( deviceID, property) - Возвращает значение запрошенного свойства устройства для указанного устройства;
- Функция fibaro:isSceneEnabled(sceneID) - возвращает двоичную истину, если указанная сцена включена, в противном случае — ложь;
- Функция fibaro:killScenes(sceneID) - Убивает, завершает все запущенные экземпляры указанной сцены;
- Функция fibaro:setGlobal( "var_name", "value") - Устанавливает значение глобальной переменной var_name , определенной в fibaro , равным значению, предоставленному value;
- Функция fibaro:setSceneEnabled(sceneID, cond.) - Включить, усл. true или отключить условие. false , указанная сцена;
- Функция fibaro:setSceneRunConfig(sceneID, state ) - Устанавливает, может ли сцена запускаться: «TRIGGER_AND_MANUAL» , запускаться по запросу: «MANUAL_ONLY» или не запускаться вообще: «DISABLED»;
- Функция fibaro:sleep(milli-seconds) - приостанавливает сцену на указанное количество миллисекунд;
- Функция fibaro:startScene(sceneID < ,{table} > ) - запускает указанную сцену, при необходимости передавая этой сцене предоставленную таблицу параметров;
- Функция fibaro:countScenes() - возвращает количество активных копий этой сцены, включая текущую сцену;
- Функция fibaro:countScenes(sceneID) - возвращает количество запущенных копий указанной сцены.
Примечание. Символы <optional_parameter> обозначают необязательные параметры. Символы [ choice1 | choice2 ] указывает список выбора для указанного параметра.
- Описание функции fibaro:call(deviceID, action). Назначение: запрашивает выполнение указанного действия на устройстве (например «включение»);
Пример: fibaro:call( 39, "turnOn");
Обратите внимание, что существует недокументированное действие "poll", которое дает указание master ID опрашивать подчиненное устройство на наличие обновлений значений свойств устройства независимо от параметров отчетов устройства. После завершения опроса методы get() и getValue() вернут обновленные параметры. Используйте эту функцию с осторожностью, чтобы избежать перегрузки сети z-wave.
- Описание функции: fibaro:abort(). Назначение: Функция прерывает выполнение сцены; Параметры: Нет; Возвращаемые значения: Нет. Пример кода: "Прервать выполнение сцены если значение переменной “a” станет больше 10":
Пример кода:
local a = 0;
while true do
if (a > 10) then
fibaro:abort();
end
a = a + 1;
fibaro:sleep(1);
end
Пример 2:
if ( getSourceTriggerType() == "autostart") then
fibaro:abort();
end;
- Описание функция: fibaro:getSourceTrigger()
Назначение: Функция получает сведения о триггере (событии), вызвавшем запуск текущей сцены. Эта функция позволяет понять, что именно было прямой причиной выполнения кода сцены; Параметры: Нет;
Возвращаемые значения: функция возвращает массив, содержащий информацию о запуске сцены. Обязательным элементом массива является поле «type», которое определяет тип триггера и может принимать следующие значения:
«property» - тип триггера, который запускает сцену при изменении свойства устройства;
«global» - тип триггера, который запускает сцену при изменении значения глобальной переменной;
«other» - другие случаи (запуск сцены из интерфейса Fibaro Home Center 2 или из другой сцены).
В зависимости от значения поля ‘type’ массив может содержать дополнительные поля.
Значение поля «type» Дополнительные поля массива
«property» • deviceID - идентификатор устройства, по изменению свойства которого сработал триггер
"propertyName" - имя свойства устройства, по изменению которого сработал триггер
"global name" - имя глобальной переменной, по изменению значения которой сработал триггер
"other" - нет дополнительных полей
Пример кода (в шапке кода сцены указаны триггеры запуска сцены: изменение значения value устройств с идентификаторами 13, 15 и глобальная переменная isItDarkOutside):
—[[
%% properties
13 value
15 value
%% globals
isItDarkOutside
–]]
local trigger = fibaro:getSourceTrigger();
if (trigger['type'] == 'property') then
fibaro:debug('Триггер сцены устройство с ID ' .. trigger['deviceID']);
elseif (trigger['type'] == 'global') then
fibaro:debug('Триггер сцены переменная ' .. trigger['name']);
elseif (trigger['type'] == 'other') then
fibaro:debug('Прочий триггер');
end
- Описание функции: fibaro:getSourceTriggerType()
Назначение: Функция получает сведения о типе триггера, при срабатывании которого запущена текущая сцена; Параметры: Нет;
Возвращаемые значения: Функция возвращает строку с описанием типа триггера («property», «global», «other»).
Пример кода 1 (получение информации о том, что сцена была запущена вручную):
if (fibaro:getSourceTriggerType() == 'other') then
fibaro:debug('Сцена запущена вручную или программными средствами');
end
Пример кода 2 (аналогичный результата, с получением массива полного описания триггера getSourceTrigger() и поля 'type'):
local source = fibaro:getSourceTrigger();
if (source['type'] == 'other') then
fibaro:debug('Сцена запущена вручную или программными средствами');
end
Пример кода 3
В следующем фрагменте кода проверяется срабатывание из-за изменения питания в настенной розетке телевизора с идентификатором 77. В этом случае записываем фактическое энергопотребление в переменную tvPower.
--[[
%% properties
77 power
--]]
local idTV = 77;
local tvPower;
local trigger = fibaro:getSourceTrigger();
if (( trigger['type'] == "property")
and ( trigger['deviceID'] == idTV )) then
tvPower = tonumber(fibaro:getValue( idTV, "power"));
end;
- Описание функции: fibaro:startScene(sceneID)
Назначение: Функция запускает экземпляр сцены по её идентификатору.
Параметры: sceneID - идентификатор сцены; Возвращаемые значения: Нет
Пример кода Функция: fibaro:startScene(sceneID)
Назначение: Функция запускает экземпляр сцены по её идентификатору.
Параметры: sceneID - идентификатор сцены; Возвращаемые значения: Нет
Пример кода (если значение переменной a больше 20, то запустить сцену с ID 10):
if (a > 20) then
fibaro:startScene(10);
end
- Описание функции: fibaro:killScenes(sceneID)
Назначение: Функция завершает все запущенные экземпляры сцены по её идентификатору; Параметры: sceneID - идентификатор сцены; Возвращаемые значения: Нет
Пример кода (если значение переменной a в диапазоне от 1 до 5, то завершить все экземпляры сцены с ID 2):
if (a >= 1 and a <= 5) then
fibaro:killScenes(2);
end
- Описание функции: fibaro:setSceneEnabled(sceneID, enabled)
Назначение: Включение/выключение (активация/деактивация) сцены по её идентификатору; Параметры: sceneID - идентификатор сцены, enabled - логическое значение, определяющее включение/выключение сцены; Возвращаемые значения: Нет
Пример кода (если значение переменной a положительное, тогда выключить сцену, в противном случае включить сцену с ID 3):
if (a>0) then
fibaro:setSceneEnabled(3, false);
else
fibaro:setSceneEnabled(3, true);
end
- Описание функции: fibaro:isSceneEnabled(sceneID)
Назначение: Функция проверяет активность сцены по её идентификатору; Параметры: sceneID - идентификатор сцены; Возвращаемые значения: Возвращается значение булевого типа: true – сцена активна (включена), false – сцена выключена.
Пример кода (если сцена с ID 3 активна, то также включить сцену с ID 5):
if (fibaro:isSceneEnabled(3)) then
fibaro:setSceneEnabled(5, true);
end
- Описание функции fibaro:countScenes()
Назначение: Функция получает количество запущенных сцен; Параметры: Нет
Возвращаемые значения: Целое, положительное число, количество запущенных в данный момент сцен.
Пример кода (получить количество запущенных сцен):
local num = fibaro:countScenes();
if (num == 1) then
fibaro:debug('запущена одна сцена');
else
fibaro:debug('Количество запущенных сцен: ' .. num)
end
- Описание функции fibaro:countScenes(sceneID)
Назначение: Функция получает количество запущенных экземпляров конкретной сцены; Параметры: sceneID - идентификатор сцены;
Возвращаемые значения: Целое, положительное число, количество запущенных экземпляров сцены.
Пример кода: (количество запущенных экземпляров сцены с ID 12, проверка запущенной сцены с ID 12):
local num = fibaro:countScenes(12);
fibaro:debug('Количество запущенных экземпляров сцены с ID 12: ' .. num);
if (fibaro:countScenes(12) >= 1) then
fibaro:debug('Сцена выполняется');
else
fibaro:debug('Сцена не выполняется');
end