Subversion Repositories rld.domoticz

Rev

Blame | Last modification | View Log | Download

-- local device id's, only used in this script
local cVirtConstant       = 144 -- virtual Thermostat device for constant temp.
local cVirtProgramma1     = 145 -- virtual Thermostat device for program 1
local cVirtProgramma2     = 146 -- virtual Thermostat device for program 2
local cDevTerrasMode      =  51
local cDevWoonkamerMode   =  64 
local cDevSRT321          =  20 -- Thermostat device
local cVirtNefitTemp      = 147 -- last set temperature for thermostat SRT321
local cDevTerras          =  52 -- Thermostat device
local cDevTerrasEco       =  53 -- Thermostat device
local cDevWoonkamer       =  65 -- Thermostat device
local cDevWoonkamerEco    =  66 -- Thermostat device
local cDevHalMode         =  77
local cDevLogeerkamerMode =  90 
local cDevHal             =  78 -- Thermostat device
local cDevHalEco          =  79 -- Thermostat device
local cDevLogeerkamer     =  91 -- Thermostat device
local cDevLogeerkamerEco  =  92 -- Thermostat device

local uVarSensorTimeout   = 'dzSensorTimeout'


return {
  on = {
    timer = {
      'every 10 minutes',       -- causes the script to be called every minute
    }
  },
  logging = {
      --level = domoticz.LOG_ERROR,
    level = domoticz.LOG_DEBUG + domoticz.LOG_INFO,
    marker = 'Alive-Devices',
  },
  execute = function(domoticz, timer)
    domoticz.log('Timer event was triggered by ' .. timer.trigger, domoticz.LOG_INFO)
    
    -- Calculate maximum allowed time differnece before sensor turns 'red'
    -- Sensor timeout is a setting in dommoticz, and with lua stored in a UserVariable
    iSensorTimeout = domoticz.variables(uVarSensorTimeout).value - 11
    domoticz.log('Sensor Timeout value in user variable is: ' .. tostring(iSensorTimeout), domoticz.LOG_INFO)

        if (domoticz.devices(cVirtNefitTemp).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cVirtNefitTemp).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cVirtNefitTemp).name, domoticz.LOG_DEBUG)
            domoticz.devices(cVirtNefitTemp).updateTemperature(domoticz.devices(cVirtNefitTemp).temperature).silent()
        end

        if (domoticz.devices(cVirtConstant).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.devices(cVirtConstant).updateSetPoint(domoticz.devices(cVirtConstant).setPoint).silent()
            --domoticz.devices(cVirtConstant).updateQuiet(domoticz.devices(cVirtConstant).setPoint).silent()
        end   
        -- update SRT321 device with temperature set to cVirtNefitTemp
        if (domoticz.devices(cDevSRT321).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevSRT321).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevSRT321).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevSRT321).updateSetPoint(domoticz.devices(cVirtNefitTemp).temperature).silent()
        end

        if (domoticz.devices(cVirtProgramma1).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.devices(cVirtProgramma1).updateSetPoint(domoticz.devices(cVirtProgramma1).setPoint).silent()
            --domoticz.devices(cVirtProgramma1).updateQuiet(domoticz.devices(cVirtProgramma1).setPoint).silent()
        end   
    
        if (domoticz.devices(cVirtProgramma2).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.devices(cVirtProgramma2).updateSetPoint(domoticz.devices(cVirtProgramma2).setPoint).silent()
            --domoticz.devices(cVirtProgramma2).updateQuiet(domoticz.devices(cVirtProgramma2).setPoint).silent()
        end   
    
    -- TRV Terras mode device
    if (domoticz.devices(cDevTerrasMode).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevTerrasMode).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevTerrasMode).name, domoticz.LOG_DEBUG)
        domoticz.devices(cDevTerrasMode).updateMode(domoticz.devices(cDevTerrasMode).modeString).silent()
    end
    
        if (domoticz.devices(cDevTerras).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevTerras).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevTerras).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevTerras).updateSetPoint(domoticz.devices(cDevTerras).setPoint).silent()
        end

        if (domoticz.devices(cDevTerrasEco).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevTerrasEco).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevTerrasEco).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevTerrasEco).updateSetPoint(domoticz.devices(cDevTerrasEco).setPoint).silent()
        end

    -- TRV Woonkamer mode device
    if (domoticz.devices(cDevWoonkamerMode).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevWoonkamerMode).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevWoonkamerMode).name, domoticz.LOG_DEBUG)
        domoticz.devices(cDevWoonkamerMode).updateMode(domoticz.devices(cDevWoonkamerMode).modeString).silent()
    end

        if (domoticz.devices(cDevWoonkamer).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevWoonkamer).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevWoonkamer).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevWoonkamer).updateSetPoint(domoticz.devices(cDevWoonkamer).setPoint).silent()
        end

        if (domoticz.devices(cDevWoonkamerEco).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevWoonkamerEco).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevWoonkamerEco).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevWoonkamerEco).updateSetPoint(domoticz.devices(cDevWoonkamerEco).setPoint).silent()
        end

    -- TRV Hal mode device
    if (domoticz.devices(cDevHalMode).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevHalMode).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevHalMode).name, domoticz.LOG_DEBUG)
        domoticz.devices(cDevHalMode).updateMode(domoticz.devices(cDevHalMode).modeString).silent()
    end

        if (domoticz.devices(cDevHal).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevHal).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevHal).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevHal).updateSetPoint(domoticz.devices(cDevHal).setPoint).silent()
        end

        if (domoticz.devices(cDevHalEco).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevHalEco).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevHalEco).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevHalEco).updateSetPoint(domoticz.devices(cDevHalEco).setPoint).silent()
        end

    -- TRV Logeerkamer mode device
    if (domoticz.devices(cDevLogeerkamerMode).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevLogeerkamerMode).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevLogeerkamerMode).name, domoticz.LOG_DEBUG)
        domoticz.devices(cDevLogeerkamerMode).updateMode(domoticz.devices(cDevLogeerkamerMode).modeString).silent()
    end

        if (domoticz.devices(cDevLogeerkamer).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevLogeerkamer).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevLogeerkamer).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevLogeerkamer).updateSetPoint(domoticz.devices(cDevLogeerkamer).setPoint).silent()
        end

        if (domoticz.devices(cDevLogeerkamerEco).lastUpdate.minutesAgo > iSensorTimeout) then
            domoticz.log('Time difference last update: ' .. domoticz.devices(cDevLogeerkamerEco).lastUpdate.minutesAgo ..
                         ', for device \'' .. domoticz.devices(cDevLogeerkamerEco).name, domoticz.LOG_DEBUG)
            domoticz.devices(cDevLogeerkamerEco).updateSetPoint(domoticz.devices(cDevLogeerkamerEco).setPoint).silent()
        end
  end
}