Subversion Repositories rld.domoticz

Rev

Blame | Last modification | View Log | Download

-- local device id's, only used in this script
local cDevAquaHeaterPlug = 124
local cDevAquaHeaterWatt = 130
local cDevVirtHeater =     142

local iONdelay = 30



return {
    on = {
        devices = {cDevAquaHeaterPlug, cDevVirtHeater, cDevAquaHeaterWatt},
        --system = {'start'},
        --timer = { 'every 1 minutes' },
    },
    logging = {
        level = domoticz.LOG_ERROR,
        --level = domoticz.LOG_DEBUG + domoticz.LOG_INFO,
        marker = 'Aquarium-Heater',
    },
    execute = function(domoticz, triggeredItem)
        
        if (triggeredItem.isDevice) then
            domoticz.log('Device ' .. triggeredItem.name .. ' was changed', domoticz.LOG_INFO) --domoticz.LOG_FORCE
        end
        
        if (triggeredItem.isDevice) and (triggeredItem.id == cDevAquaHeaterPlug) then

            -- if heater is turned off, switch on after specified time
            if (not triggeredItem.active) then -- state == 'Off'
                
                domoticz.log('Device ' .. triggeredItem.name .. 
                             ' will be turned ON after delay of ' .. tostring(iONdelay) .. 
                             ' minutes', domoticz.LOG_DEBUG)
                triggeredItem.switchOn().afterMin(iONdelay).silent() 
            end
        end
        
        -- Make sure heater plug is turned on at startup
        if (triggeredItem.isSystemEvent) then
            --and (not domoticz.devices(cDevAquaHeaterPlug).active)
            
            domoticz.log('System event handling', domoticz.LOG_DEBUG)
            
            if (triggeredItem.type == 'start')  then
            
                domoticz.devices(cDevAquaHeaterPlug).switchOn().silent()
            end
        end
        
        -- Turn heater indication if power > 0, check this for every trigger
        domoticz.log('Device ' .. domoticz.devices(cDevAquaHeaterWatt).name .. 
                             ' has actual power of: ' .. tostring(domoticz.devices(cDevAquaHeaterWatt).actualWatt) .. 
                             ' Watt', domoticz.LOG_DEBUG)
        
        if (domoticz.devices(cDevAquaHeaterWatt).actualWatt > 0.0) then
            
            domoticz.devices(cDevVirtHeater).switchOn().silent()
            domoticz.log('Switch ON cDevVirtHeater', domoticz.LOG_DEBUG)
        else   
            
            domoticz.devices(cDevVirtHeater).switchOff().silent()
            domoticz.log('Switch OFF cDevVirtHeater', domoticz.LOG_DEBUG)
        end
    end
}