Subversion Repositories rld.domoticz

Rev

Blame | Last modification | View Log | Download

-- local device id's, only used in this script
local cDevDeken =        188
local cVirtTimer =       187
local cDevTemp  =        169
local cDevMargrietHome = 162

-- local constants
local cMaxOutTemp = 8 -- Celsius


return {
  on = {
    devices = { cDevDeken, cVirtTimer, cDevMargrietHome, cDevTemp}
  },
  logging = {    
    --level = domoticz.LOG_DEBUG + domoticz.LOG_INFO,
    level = domoticz.LOG_ERROR,
        marker = "Edeken-Margriet"
    },
  execute = function(domoticz, triggeredItem)
      
    domoticz.log('Device ' .. triggeredItem.name .. ' was changed', domoticz.LOG_INFO)

    -- handle the device triggers 
    if (triggeredItem.isDevice) then
    
        local lDekenOn = (domoticz.devices(cDevDeken).active)
        local lTimerOn = domoticz.devices(cVirtTimer).active
              --var = false and 20 or 30 return 30
        local lTempLow = (tonumber(domoticz.devices(cDevTemp).state) < cMaxOutTemp) and true or false 
        local lMargrietHome = domoticz.devices(cDevMargrietHome).active
    
        domoticz.log('Outside Temperature: ' .. tostring(domoticz.devices(cDevTemp).state))
        domoticz.log('lDekenOn, lTimerOn, lTempLow, lMargrietHome: ' .. tostring(lDekenOn) .. ', ' .. tostring(lTimerOn) .. ', ' .. tostring(lTempLow) .. ', ' .. tostring(lMargrietHome))
    
    -- E-blanket should be turned on: Margriet home and timer ON and Outside temp low
    if (triggeredItem.id ~= cDevDeken) then 
      if (lTimerOn and lTempLow and lMargrietHome) then
        
        domoticz.devices(cDevDeken).switchOn().silent()
        domoticz.log('Switched cDevDeken ON')
      else
        domoticz.devices(cDevDeken).switchOff().silent() 
      end
      else
        -- manual turn blanket on, 1.5 hours max
        if (triggeredItem.active) then -- state == 'On'
        triggeredItem.switchOff().afterMin(90) -- if it is a switch, turn off after 90 minutes
      else
        domoticz.devices(cVirtTimer).switchOff()
      end
    end
    end
  end
}