Script para notificar todos los dispositivos con el mismo nombre

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

Script para notificar todos los dispositivos con el mismo nombre

Mensaje por Campos »

Aquí pongo un script que ha hecho Juan José Castillo para notificar todos los dispositivos que tenga un mismo nombre, por ejemplo: Luz, Sensor etc...

Código: Seleccionar todo

-- ------------------------------------------------------------------------------------------------------------------
-- ℹ Inicialización de la configuración del switch (cambiar si es necesario)
-- ------------------------------------------------------------------------------------------------------------------
local TelegramBotToken = 'XXXXXXXXX:YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY';                   -- Telegram Bot Token   
local chatId = 'ZZZZZZZZ';                                                                  -- Telegram Chat ID

-- ------------------------------------------------------------------------------------------------------------------
-- ℹ Iniciando el Script (No tocar si no es imprescindible)
-- ------------------------------------------------------------------------------------------------------------------

return {
    active = true,
 on = {
  devices = {'Luz*'},   --todos los sensores de puerta o ventana deben empezar por sensor.  (ejemplo:  'sensor puerta entrada', 'sensor ventana comedor' etc, etc.) y no llamar nada mas con el inicio de nombre 'sensor'
 },                           -- o declaras aqui todos los sensores de puertas y ventanas para que te inicien el script.
 
 execute = function(domoticz, item)   --yo pongo 'dz' para acortar pero si te gusta puedes poner domoticz y cambiar todos los 'dz' por 'domoticz'
     

        ---------------------------------------------------------------------------------------
        --Funcion notificar por telegram
        ---------------------------------------------------------------------------------------
        function notificar(texto)  --'texto' es una variable del programa que se declara aqui
            --domoticz.openURL('https://api.telegram.org/bot'..TelegramBotToken..'/sendMessage?chat_id='..chatId..'&text=-AVISO puerta o ventana abierta- %0A' ..texto.. '') --Esto a mi no me funcionaba
            os.execute('curl "https://api.telegram.org/bot'..TelegramBotToken..'/sendMessage?chat_id='..chatId..'&text=-AVISO Luz encendida- %0A' ..texto.. '"')
        end
------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------empieza el programa--------------------------------------------------------------------
        print('Detectado Cambio de estado LUZ----------------------------------------------------' ..item.name.. ' ')
        if item.isDevice then  
            local principio_nombre = item.name:sub(1,3)   --deja solo la primera palabra con seis letras -- Sensor--   del sensor que dispara  (esto es por si pones mas devices declarados arriba)
            if principio_nombre == 'Luz' and item.state == 'On' then --poner el estado del dispositivo, el On es el estado del dispositivo
                print('se envia notificacion --------------------------------')
                notificar('' ..item.name.. ' esta encendida')    --al llamar a la funcion 'notificar' esto (' ..item.name.. ' esta encendida') lo coloca en la variable interna 'texto'.
                print('notificacion enviada --------------------------------')
            end
        end
    end
}



Responder