Domoticz smart thermostat: Difference between revisions

From IOT4
Jump to navigation Jump to search
No edit summary
No edit summary
Line 70: Line 70:
'''The event type set to Lua and set the event to active.'''
'''The event type set to Lua and set the event to active.'''


'''If you remove the -- (lua remark) before the ''commandArray['SendNotification']'' lines the Domoticz will be notify heating status changes.
'''If you remove the -- (lua remark) before the ''commandArray['SendNotification']'' lines the Domoticz will be notify heating status changes.'''
If you want can use higher hysteresis than 0.1 celsius, just simply modify the Lua code.
 
'''
'''If you want can use higher hysteresis than 0.1 celsius, just simply modify the Lua code.'''
 
[[File:Thermo lua.png|1000px]]
[[File:Thermo lua.png|1000px]]

Revision as of 19:23, 23 May 2017

Create a virtual device:

Name: Thermo 
Sensor type: Thermostat setpoint

Thermo setpoint.png

Choose a IOT4SH01DS device for temperature sensor, in my case named it 'Nappali'.

Thermo nappali.png

Choose a IOT4SH01Relay device for controlling the central heating unit, in my case named 'futes'.

Thermo switch.png

In the Setup-> More options -> Events

Thermo events.png

Insert this code:

--
-- Domoticz passes information to scripts through a number of global tables
--
--
-- 
--
-- https://www.iot4.eu/wiki

local heating_probe = 'Nappali' 
local thermostat_setpoint = 'Thermo'
local heating_unit = 'futes'

local hysteresis = 0.1

commandArray = {}


-- loop through all the devices
for deviceName,deviceValue in pairs(otherdevices) do
    if (deviceName== thermostat_setpoint ) then

        if tonumber(deviceValue) < tonumber(otherdevices[heating_probe]-hysteresis) then
        
            if (otherdevices[heating_unit] == "On") then
             --   commandArray['SendNotification']='Heating is off'
                commandArray[heating_unit]='Off'
                print("Heating is Off")
            end
            
        elseif tonumber(deviceValue) > tonumber(otherdevices[heating_probe]+hysteresis) then
            if (otherdevices[heating_unit] == "Off") then
                commandArray[heating_unit]='On'
            --    commandArray['SendNotification']='Heating is on'
                print("Heating is On")
            end
        end
    end
end

-- loop through all the variables
for variableName,variableValue in pairs(uservariables) do

end

return commandArray

The event type set to Lua and set the event to active.

If you remove the -- (lua remark) before the commandArray['SendNotification'] lines the Domoticz will be notify heating status changes.

If you want can use higher hysteresis than 0.1 celsius, just simply modify the Lua code.

Thermo lua.png