Script dzVents para que nos envie por telegram la temperatura segun unos parametros

Responder
Avatar de Usuario
Campos
Site Admin
Mensajes: 31
Registrado: 03 May 2019, 20:27
Agradecido: 4 veces
Agradecimiento recibido: 2 veces

Script dzVents para que nos envie por telegram la temperatura segun unos parametros

Mensaje por Campos »

Con el siguiente codigo vemos que en el dispositivo IDX 52, que es un sensor (Temp) nos envia la temperatura cuando sube de 75º o baja de 30º

Código: Seleccionar todo

-- ------------------------------------------------------------------------------------------------------------------
-- ℹ Inicialización de la configuración del switch (cambiar si es necesario)
-- ------------------------------------------------------------------------------------------------------------------
local myDevice = 52;                                                                        -- Idx del Dispositivo
local TelegramBotToken = 'XXXXXXXXX:AAAAAAA_YYYYYYYYYYYYYYYYYYYYYYYYYYY';                   -- Telegram Bot Token
local chatId = '11111111';                                                                  -- Telegram Chat ID
local tmpUP = 75;                                                                           -- Temperatura Alta
local tmpDOWN = 30;                                                                         -- Temperatura Baja
local mensaje = 'La Raspberry ha subido de '..tmpUP..' y la temperatura actual es: ';       -- Mensage Para Encender
local mensaje2 = 'La Raspberry ha bajado de '..tmpDOWN..' y la temperatura actual es: ';    -- Mensage Para Apagar
-- ------------------------------------------------------------------------------------------------------------------
-- ℹ Iniciando el Script (No tocar si no es imprescindible)
-- ------------------------------------------------------------------------------------------------------------------

-- Funcion para quitar los decimales excesivos y redondear
function round(num, numDecimalPlaces)
  local mult = 10^(numDecimalPlaces or 0)
  return math.floor(num * mult + 0.5) / mult
end
----------------------------------------------------------

return {
    active = true,
	on = {
		devices = {
			myDevice
		}
	},
	execute = function(domoticz, devices)
        local temperatura = round(devices.temperature,1) --ejecutamos la funcion
		if (devices.temperature >= tmpUP) then
			os.execute('curl "https://api.telegram.org/bot'..TelegramBotToken..'/sendMessage?chat_id='..chatId..'&text='..mensaje..'+'..temperatura..'"')
		elseif (devices.temperature <= tmpDOWN) then
			os.execute('curl "https://api.telegram.org/bot'..TelegramBotToken..'/sendMessage?chat_id='..chatId..'&text='..mensaje2..'+'..temperatura..'"')
		end
	end
}
Porque pongo 75º y 30º porque en este caso me enviara un mensaje si la raspberry supera los 75º o es inferior a 30º que me viene bien por si se calienta demasiado la raspberry
Luego aparte de esto se podria poner mas acciones tipo: si supera la temperatura marcada que encienda un ventilador, o que apague el dispositivo...



Responder