Domoticz smart thermostat: Difference between revisions

From IOT4
Jump to navigation Jump to search
No edit summary
No edit summary
Line 83: Line 83:
'''On this device can set timers to change the temperature on time:'''
'''On this device can set timers to change the temperature on time:'''


[[File:Thermo_timers.png]]
[[File:Thermo_timers.png|1000px]]


'''And if you have installed the Homebridge can set the temperature with Siri .'''
'''And if you have installed the Homebridge can set the temperature with Siri .'''

Revision as of 19:38, 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


When this all is ready you can simply set desired temperature with the Utility device thermo temperature.

Thermo set.png

On this device can set timers to change the temperature on time:

Thermo timers.png

And if you have installed the Homebridge can set the temperature with Siri .