Code: Select all
return {
on = {
devices = {
'Nigel At Home' , 'Emma At Home', 'Emma Preferred Temperature', 'Nigel Preferred Temperature'
},
-- timer = {
-- 'every 10 minute'
-- },
},
execute = function(domoticz, device)
averagePreferredSP = ((domoticz.devices('Nigel Preferred Temperature').setPoint) + (domoticz.devices('Emma Preferred Temperature').setPoint))/2
emmaSP = (domoticz.devices('Emma Preferred Temperature').setPoint)
nigelSP = (domoticz.devices('Nigel Preferred Temperature').setPoint)
nobodySP = (domoticz.devices('Nobody Home').setPoint)
-- emmaSP = 23.00
-- nigelSP = 21.00
-- nobodySP = 17.50
if ( (domoticz.devices('Emma At Home').state == 'On') and (domoticz.devices('Nigel At Home').state == 'On' ) ) then
domoticz.log('both Emma and Nigel home ' )
domoticz.log('Living Rm Thermostat ' .. averagePreferredSP .. ' SHOULD be Set', domoticz.LOG_INFO)
domoticz.devices('virtualthermostat').updateSetPoint(averagePreferredSP) --virtualthermostat
domoticz.devices('Living Rm Thermostat').updateSetPoint(averagePreferredSP)
domoticz.variables('WhoisHomeVar').set(3)
-- domoticz.devices('WhoisHome').updateSetPoint(3)
elseif ( domoticz.devices('Emma At Home').state == 'On' and domoticz.devices('Nigel At Home').state == 'Off' ) then
domoticz.log('Just Emma home ' )
domoticz.log('Living Rm Thermostat ' .. domoticz.devices('Emma Preferred Temperature').state .. ' SHOULD be Set', domoticz.LOG_INFO)
domoticz.devices('virtualthermostat').updateSetPoint(emmaSP) --virtualthermostat
domoticz.devices('Living Rm Thermostat').updateSetPoint(emmaSP)
domoticz.variables('WhoisHomeVar').set(2)
-- domoticz.devices('WhoisHome').updateSetPoint(2)
elseif ( domoticz.devices('Nigel At Home').state == 'On' and domoticz.devices('Emma At Home').state == 'Off' ) then
domoticz.log('Just Nigel home ' )
domoticz.log('Living Rm Thermostat ' .. domoticz.devices('Nigel Preferred Temperature').state .. ' SHOULD be Set', domoticz.LOG_INFO)
domoticz.devices('virtualthermostat').updateSetPoint(nigelSP) --virtualthermostat
domoticz.devices('Living Rm Thermostat').updateSetPoint(nigelSP)
domoticz.variables('WhoisHomeVar').set(1)
-- domoticz.devices('WhoisHome').updateSetPoint(1)
else --( domoticz.devices('Nigel At Home').state == 'Off' and domoticz.devices('Emma At Home').state == 'Off' ) then
domoticz.log('NoOne Home ' )
domoticz.log('Living Rm Thermostat ' .. domoticz.devices('Nobody Home').state .. ' SHOULD be Set', domoticz.LOG_INFO)
domoticz.devices('virtualthermostat').updateSetPoint(nobodySP) --virtualthermostat
domoticz.devices('Living Rm Thermostat').updateSetPoint(nobodySP)
domoticz.variables('WhoisHomeVar').set(5)
-- domoticz.devices('WhoisHome').updateSetPoint(5)
end
domoticz.log('Living Rm Thermostat ' .. domoticz.devices('Living Rm Thermostat').state .. ' was Set', domoticz.LOG_INFO)
domoticz.devices('WhoisHome').updateSetPoint(domoticz.variables('WhoisHomeVar').value)
-- domoticz.devices('Living Rm Thermostat').updateSetPoint(22)
domoticz.log(" averagePreferredSP: " .. tostring(averagePreferredSP),domoticz.LOG_FORCE)
domoticz.log(" emmaSP: " .. tostring(emmaSP),domoticz.LOG_FORCE)
domoticz.log(" nigelSP: " .. tostring(nigelSP),domoticz.LOG_FORCE)
domoticz.log(" nobodySP: " .. tostring(nobodySP),domoticz.LOG_FORCE)
end
}
Begin log *******************************************************************************************
2019-01-03 17:21:59.685 (Dummy) Thermostat (Nigel Preferred Temperature)
2019-01-03 17:21:59.729 Status: dzVents: Info: Handling events for: "Nigel Preferred Temperature", value: "21.50"
2019-01-03 17:21:59.729 Status: dzVents: Info: ------ Start internal script: SetTemp on Who is Home: Device: "Nigel Preferred Temperature (Dummy)", Index: 412
2019-01-03 17:21:59.731 Status: dzVents: Info: Just Nigel home
2019-01-03 17:21:59.731 Status: dzVents: Info: Living Rm Thermostat 21.50 SHOULD be Set
2019-01-03 17:21:59.731 Status: dzVents: Info: Living Rm Thermostat 23.00 was Set (this is the existing setpoint on the hardware thermostat, readback)
2019-01-03 17:21:59.732 Status: dzVents: !Info: averagePreferredSP: 22.5
2019-01-03 17:21:59.732 Status: dzVents: !Info: emmaSP: 23.5
2019-01-03 17:21:59.732 Status: dzVents: !Info: nigelSP: 21.5
2019-01-03 17:21:59.732 Status: dzVents: !Info: nobodySP: 17.5
2019-01-03 17:21:59.732 Status: dzVents: Info: ------ Finished SetTemp on Who is Home
End Log ****************************************************************
Many thanks