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
}