Skip to main content

Sensor

A classe Sensor permite acessar e controlar sensores cadastrados no sistema. Você pode obter sensores por ID, verificar estados, e controlar seu ciclo de vida (iniciar, parar, pausar, retomar).

Métodos Estáticos

Sensor.get(id)

Obtém um sensor pelo seu ID.

ParâmetroTipoDescrição
idintegerO ID do sensor

Retorno: Sensor|nil — O objeto sensor ou nil se não encontrado.

local tempSensor = Sensor.get(0)
if tempSensor then
Log.info("Sensor encontrado: " .. tempSensor:getName())
else
Log.error("Sensor não encontrado")
end

Sensor.count()

Retorna o número total de sensores cadastrados.

Retorno: integer — O número de sensores.

local total = Sensor.count()
Log.info(string.format("Total de sensores: %d", total))

Métodos de Instância

sensor:getName()

Obtém o nome do sensor.

Retorno: string — O nome do sensor.

local sensor = Sensor.get(0)
Log.info("Nome: " .. sensor:getName())

sensor:getId()

Obtém o ID do sensor.

Retorno: integer — O ID do sensor.

local sensor = Sensor.get(0)
Log.info(string.format("ID: %d", sensor:getId()))

sensor:isEnabled()

Verifica se o sensor está habilitado.

Retorno: booleantrue se habilitado.

local sensor = Sensor.get(0)
if sensor:isEnabled() then
Log.info("Sensor está habilitado")
end

sensor:setEnabled(enabled)

Define o estado de habilitação do sensor.

ParâmetroTipoDescrição
enabledbooleantrue para habilitar, false para desabilitar
local sensor = Sensor.get(0)
sensor:setEnabled(true)
Log.success("Sensor habilitado!")

sensor:isRunning()

Verifica se o sensor está em execução.

Retorno: booleantrue se está executando.

local sensor = Sensor.get(0)
if sensor:isRunning() then
Log.info("Sensor está em execução")
end

sensor:isPaused()

Verifica se o sensor está pausado.

Retorno: booleantrue se está pausado.

local sensor = Sensor.get(0)
if sensor:isPaused() then
Log.info("Sensor está pausado")
end

sensor:start()

Inicia o sensor.

local sensor = Sensor.get(0)
sensor:start()
Log.success("Sensor iniciado")

sensor:stop()

Para o sensor.

local sensor = Sensor.get(0)
sensor:stop()
Log.info("Sensor parado")

sensor:pause()

Pausa o sensor temporariamente.

local sensor = Sensor.get(0)
sensor:pause()
Log.info("Sensor pausado")

sensor:resume()

Retoma um sensor pausado.

local sensor = Sensor.get(0)
sensor:resume()
Log.success("Sensor retomado")

sensor:resetTimer()

Reinicia o timer interno do sensor.

local sensor = Sensor.get(0)
sensor:resetTimer()
Log.info("Timer do sensor resetado")

Exemplo Completo

-- Lista todos os sensores e seus estados
for i = 0, Sensor.count() - 1 do
local sensor = Sensor.get(i)
if sensor then
local status = "Parado"
if sensor:isRunning() then
status = sensor:isPaused() and "Pausado" or "Executando"
end

Log.info(string.format(
"Sensor %d: %s | Status: %s | Habilitado: %s",
sensor:getId(),
sensor:getName(),
status,
sensor:isEnabled() and "Sim" or "Não"
))
end
end

-- Controle de fluxo: pausa sensor quando dispositivo desliga
EventBus.subscribeState(0, function(event)
local flowSensor = Sensor.get(0)
if flowSensor then
if event.value == 1 then
flowSensor:resume()
flowSensor:resetTimer()
else
flowSensor:pause()
end
end
end)