ThinkPad wrote:Nice project
How long does the water keeps flowing if activated by the script? I don't know if those washing machine valves can handle being turned on for an hour or so. I think they will get quite warm.
Normally in a washing machine they are only operated for 2 minutes or so.
Script aint ready yet so i can not test it yet.
For i only have a small script which looks at the the moist humidity and triggers when water is required.
Holiday time so i'm at the camping for 4 weeks.
Won't be writing all day, just enjoying the weather and beer
I don't know how long such a valve can be on as it was raining last week and this weekend so no irrigation required.
Only had it ON two times to see how long it took to get to a certain humidity level.
Which took 50min to get from 45% to 85%.
But i guess it gets a bit of cooling when the water flows by the membrane.
Lucky it's just a 6euro part so easily replaced when it dies
The script version i got here is different from the one i posted earlier.
It's far from ready but hope to finish it soon.
A Preview of the current script you will find below.
- The scripts scraps the weather conditions from WeatherUnderground.
- For Dutch users i also inserted buienradar rain forecast for 6/12/24hr
- Also the scripts checks if the Moist sensors are online and sending the right values.
- It also checks if the right TimeOfTheDay is correct which you have to set in the script.
- Same counts for which days of week and months you want to be able to irrigate.
- You also can set your desired DayTime like morning, evening or night
- The script has a manual override to stop irrigation when needed
- When a irrigation cycle has completed it will trigger a override which will reset when your TimeFrame is correct again.
So for example you set irrigation ON on Monday and Thursday and the irrigation has completed on Monday then it won't trigger again on Monday until your on Thursday even if the all the targeted conditions say you must irrigate.
Further more the irrigation will be stopped when your desired humidity is reached within your desired Maximum Irrigation RunTime.
The RunTime when the pump is ON can be set manually i have it set to 60min.
So if the humidity target is reached with in the hour then the irrigation will stop.
But when the hour expires and the humidity target hasn't been reached then the irrigation will also stop.
Only the script won't stop when the weather conditions are going from a OKAY to a FALSE.
When the irrigation program has been started while the weather target conditions are good and suddenly the weather condition changes the irrigation will finish it cycle.
So it only stops when the humidity target or MaxRunTime has been exceeded.
I'm not a programmer so the script aint the cleanest but for me it will work and does the job...
As mentioned earlier, it's not finished yet.
Code: Select all
--[[
script_time_irrigation.lua
@author: Siewert Lameijer
@since: 2015-06-24
@version: 1.0
Garden Irrigation script
User Variable to create:
- VarManOverride (type=integer, value=0)
- VarTimeCon (type=integer, value=0)
- VarWeatherCon (type=integer, value=0)
- VarTimeOfDayCurrent (type=integer, value=0)
- VarMayFollowProgram (type=integer, value=0)
- VarFollowsProgram (type=integer, value=0)
- VarMaxRunTime (type=integer, value=0)
- VarMoistOnline (type=integer, value=0)
- VarMoistOnlineHum (type=integer, value=0)
- VarMoistConTemp (type=integer, value=0)
- VarMoistConHum (type=integer, value=0)
- VarProgramOverride (type=integer, value=0)
- VarProgramRun (type=integer, value=0)
- VarTimeFrame (type=integer, value=0)
- VarManOverrideCon (type=integer, value=0)
Virtual Switches
- Manual Override
Hardware:
1x Moist Sensor which measures Temperature and Humdity
1x WeatherUnderground
1x Switch for wireless controled WaterPump for irrigation
--]]
time = os.date("*t")
commandArray = {}
--
-- **********************************************************
-- Settings Begin
-- **********************************************************
--
-- Lua script interval check, change the number 1 to every desired number in minutes
--if((time.min % 1)==0)then
-- Logging: 0 = Off, 1 = On
local logging = 1
--
-- **********************************************************
-- WeatherUnderGround Variables
-- **********************************************************
--
-- Name of your Weatherstation widget which contains humidity,uv,temp and pressure
local weatherstation = 'Barometer'
-- Name of your Weatherstation Wind widget
local wind = 'Wind'
-- Name of your Weatherstation Rain widget
local rain = 'Regenmeter'
-- Name of your Weatherstation UV widget
local uv = 'UV'
--
-- **********************************************************
-- Switches and Virtual Switches Variables
-- **********************************************************
--
-- Name of your manual override virtual switch
local VitManOverride = 'Irrigatie Manual Override'
-- Name of your irrigation switch for water valve 1
local VarPump = 'Irrigatie 1 Check'
--
-- **********************************************************
-- Moist Sensor Variables
-- **********************************************************
--
-- Name of your Moist Sensor device
local MoistSensor = 'Vocht Sensor (border 1)'
-- Your target soil humidity percentage
local VarTarHum = '85'
-- Your Minumum soil temperature, Lower won't trigger irrigation
local VarTarTempMin = '12'
-- Your Maximum soil temperature, Higher won't trigger irrigation
local VarTarTempMax = '30'
-- Amount of minuten/times we want to switch OFF irrigation after the program has started.
local VarMaxRunTime_off = 5
--
-- **********************************************************
-- Day, Month and Time Variables
-- **********************************************************
--
-- Set your desired TimeOfDay for irrigation (Morning=0, Afternoon=1, Evening=2 or Night=3)
local VarTimeOfDay = '0'
-- Set your desired irrigation day, leave blank for no irrigation, set Mon, Tue, Wed, Thu, Fri, Sat or Sun
local VarDay1 = 'Mon'
local VarDay2 = ''
local VarDay3 = 'Wed'
local VarDay4 = ''
local VarDay5 = 'Fri'
local VarDay6 = ''
local VarDay7 = 'Sun'
-- Set your desired irrigation month, leave blank for no irrigation, set a number like 1 for January or 5 for May
local VarMonth1 = ''
local VarMonth2 = ''
local VarMonth3 = ''
local VarMonth4 = '4'
local VarMonth5 = '5'
local VarMonth6 = '6'
local VarMonth7 = '7'
local VarMonth8 = '8'
local VarMonth9 = '9'
local VarMonth10 = ''
local VarMonth11 = ''
local VarMonth12 = ''
--
-- **********************************************************
-- Weather Variables
-- **********************************************************
--
-- Set your prefered max rain fall, higher won't trigger irrigation
local RainCurrent = '0'
-- Set your prefered minimum outside temperature for irrigation, Lower won't trigger irrigation
local WeatherTempMin = '13'
-- Set your prefered maximum outside temperature for irrigation, Higher won't trigger irrigation
local WeatherTempMax = '25'
-- Set your prefered maximum UV for irrigation, Higher won't trigger irrigation
local UVMax = '6'
-- Set your prefered max windspeed km/h, higher won't trigger irrigation
local WindSpeed = '50'
-- Set your prefered max windgust km/h, higher won't trigger irrigation
local WindGust = '150'
--
-- **********************************************************
-- Settings END
-- **********************************************************
--
--[[
--> Don't edit anything below this line or you could break the script!
--]]
week = tonumber(os.date("%V"));
month = tonumber(os.date("%m"));
dayno = tonumber(os.date("%d"));
dayofweekno = tonumber(os.date("%w"));
day = tostring(os.date("%a"));
hour = tonumber(os.date("%H"));
min = tonumber(os.date("%M"));
--
-- **********************************************************
-- Scrapping Weather Data from WeatherUnderground
-- **********************************************************
--
--
-- Weatherstation data:
--
sWeatherTemp, sWeatherHumidity, sWeatherUV, sWeatherPressure, sWeatherUV2 = otherdevices_svalues[weatherstation]:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)")
sWeatherTemp = tonumber(sWeatherTemp);
sWeatherHumidity = tonumber(sWeatherHumidity);
sWeatherUV = tonumber(sWeatherUV);
sWeatherPressure = tonumber(sWeatherPressure);
sWeatherUV2 = tonumber(sWeatherUV2);
if logging >= 1 then
print("--------------------------------------------------------------------------------------")
print("Irrigation [PROGRAM - Weather Conditions]");
print("-- Irrigation ==> [WeatherStation] - Temperature is " .. sWeatherTemp .. " ");
print("-- Irrigation ==> [WeatherStation] - Humidity is " .. sWeatherHumidity .. " ");
print("-- Irrigation ==> [WeatherStation] - UV is " .. sWeatherUV .. " ");
print("-- Irrigation ==> [WeatherStation] - Pressure is " .. sWeatherPressure .. " ");
print("-- Irrigation ==> [WeatherStation] - UV2 is " .. sWeatherUV2 .. " ");
end
--
-- Windmeter data:
--
sWindDirectionDegrees, sWindDirection, sWindSpeed, sWindGust, sWindTemperature, sWindFeel = otherdevices_svalues[wind]:match("([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);([^;]+)")
sWindDirectionDegrees = tonumber(sWindDirectionDegrees);
sWindDirection = (sWindDirection);
sWindSpeed = tonumber(sWindSpeed);
sWindGust = tonumber(sWindGust);
sWindTemperature = tonumber(sWindTemperature);
sWindFeel = tonumber(sWindFeel);
if logging >= 1 then
print("-- Irrigation ==> [Windmeter] - Winddirection (in degrees) is: " .. sWindDirectionDegrees .. " ");
print("-- Irrigation ==> [Windmeter] - Winddirection is: " .. sWindDirection .. " ");
print("-- Irrigation ==> [Windmeter] - Windspeed is: " .. sWindSpeed .. " ");
print("-- Irrigation ==> [Windmeter] - Windgust is: " .. sWindGust .. " ");
print("-- Irrigation ==> [Windmeter] - Windtemperature is: " .. sWindTemperature .. " ");
print("-- Irrigation ==> [Windmeter] - Windfeel is: " .. sWindFeel .. " ");
end
--
-- Rainmeter data:
--
sRainmeterCurrent, sRainmeterTotal = otherdevices_svalues[rain]:match("([^;]+);([^;]+)")
sRainmeterCurrent = tonumber(sRainmeterCurrent);
sRainmeterTotal = tonumber(sRainmeterTotal);
if logging >= 1 then
print("-- Irrigation ==> [Rainmeter] - Actual rain is: " .. sRainmeterCurrent .. " ");
print("-- Irrigation ==> [Rainmeter] - Total rain is: " .. sRainmeterTotal .. " ");
end
--
-- UV data:
--
sUV, sSolar = otherdevices_svalues[uv]:match("([^;]+);([^;]+)")
sUV = tonumber(sUV);
sSolar = tonumber(sSolar);
if logging >= 1 then
print("-- Irrigation ==> [UV] - UV Strength is: " .. sUV .." ");
print("-- Irrigation ==> [UV] - Solar radiation is: " .. sSolar .." ");
end
if sRainmeterCurrent >= tonumber (RainCurrent)
and sWeatherTemp >= tonumber (WeatherTempMin)
and sWeatherTemp <= tonumber (WeatherTempMax)
and sUV <= tonumber (UVMax)
and sWindSpeed <= tonumber (WindSpeed)
and sWindGust <= tonumber (WindGust)
then
if logging >= 1 then
print("-- Irrigation ==> [Weather] - Weather conditions are looking good and ready for irrigation");
end
if(uservariables['VarWeatherCon'] == 0) then
commandArray['Variable:VarWeatherCon']= '1'
end
else
if logging >= 1 then
print("-- Irrigation [Info] ==> Weather conditions aren't looking good");
end
if(uservariables['VarWeatherCon'] == 1) then
commandArray['Variable:VarWeatherCon']= '0'
end
end
if logging >= 1 then
print("--------------------------------------------------------------------------------------")
end
--
-- **********************************************************
-- Scrapping Temparature and moist humidity from moist sensor
-- **********************************************************
--
--
-- Moist Sensor data:
--
smoistsensorTemp, smoistsensorHumidity = otherdevices_svalues[MoistSensor]:match("([^;]+);([^;]+);([^;]+)")
smoistsensorTemp = tonumber(smoistsensorTemp);
smoistsensorHumidity = tonumber(smoistsensorHumidity);
if logging >= 1 then
print("Irrigation [PROGRAM - Moist Sensor and Moist Conditions]");
print("-- Irrigation ==> [MoistSensor] - Moist Temperature: " .. smoistsensorTemp .. " ");
print("-- Irrigation ==> [MoistSensor] - Moist Humidity: " .. smoistsensorHumidity .. " ");
end
--
-- **********************************************************
-- Moist Sensor online check
-- **********************************************************
--
if (smoistsensorTemp == 0 or smoistsensorTemp == nil) then
print('-- Irrigation ==> [MoistSensor] - [ERROR] Moist Sensor reports Temp is 0 or nil. Skipping Irrigation')
if(uservariables['VarMoistOnline'] == 1) then
commandArray['Variable:VarMoistOnline']= '0'
end
else
if(uservariables['VarMoistOnline'] == 0) then
commandArray['Variable:VarMoistOnline']= '1'
end
end
if (smoistsensorHumidity <= 6 or smoistsensorHumidity >= 99 or smoistsensorHumidity == nil) then
print('-- Irrigation ==> [MoistSensor] - [Error] ==> Moist Sensor reports wrong Humidity values. Skipping Irrigation')
if(uservariables['VarMoistOnlineHum'] == 1) then
commandArray['Variable:VarMoistOnlineHum']= '0'
end
else
if(uservariables['VarMoistOnlineHum'] == 0) then
commandArray['Variable:VarMoistOnlineHum']= '1'
end
end
--
-- **********************************************************
-- checking moist conditions
-- **********************************************************
--
if smoistsensorTemp >= tonumber (VarTarTempMin)
and smoistsensorTemp <= tonumber (VarTarTempMax)
then
if logging >= 1 then
print("-- Irrigation ==> [MoistSensor] - Moist Temp conditions are fine for irrigation");
end
if(uservariables['VarMoistConTemp'] == 0) then
commandArray['Variable:VarMoistConTemp']= '1'
end
else
if logging >= 1 then
print("-- Irrigation ==> [MoistSensor] - Moist Temp conditions aren't good enough for irrigation");
end
if(uservariables['VarMoistConTemp'] == 1) then
commandArray['Variable:VarMoistConTemp']= '0'
end
end
if smoistsensorHumidity <= tonumber (VarTarHum)
then
if logging >= 1 then
print("-- Irrigation ==> [MoistSensor] - Moist humidity conditions are fine for irrigation");
end
if(uservariables['VarMoistConHum'] == 0) then
commandArray['Variable:VarMoistConHum']= '1'
end
else
if logging >= 1 then
print("-- Irrigation ==> [MoistSensor] - Moist humidity conditions aren to high, no irrigation required");
end
if(uservariables['VarMoistConHum'] == 1) then
commandArray['Variable:VarMoistConHum']= '0'
end
end
if logging >= 1 then
print("--------------------------------------------------------------------------------------")
end
--
-- **********************************************************
-- Checking Time Frame
-- **********************************************************
--
if logging >= 1 then
print("Irrigation [PROGRAM - TimeFrame]");
end
if day == VarDay1 or day == VarDay2 or day == VarDay3 or day == VarDay4 or day == VarDay5 or day == VarDay6 or day == VarDay7 or
month == VarMonth1 or month == VarMonth2 or month == VarMonth3 or month == VarMonth4 or month == VarMonth5 or month == VarMonth6 or month == VarMonth7 or month == VarMonth8 or month == VarMonth9 or month == VarMonth10 or month == VarMonth11 or month == VarMonth12
then
if logging >= 1 then
print("-- Irrigation ==> [TimeFrame] - TimeFrame does match your desired TimeFrame");
end
if(uservariables['VarTimeFrame'] == 0) then
commandArray['Variable:VarTimeFrame']= '1'
end
else
if logging >= 1 then
print("-- Irrigation ==> [TimeFrame] - TimeFrame doesn't match your desired TimeFrame");
end
if(uservariables['VarTimeFrame'] == 1) then
commandArray['Variable:VarTimeFrame']= '0'
end
end
--
-- **********************************************************
-- checking time of the day so irrigation may proceed
-- **********************************************************
--
if (time.hour >= 7) and (time.hour <= 11) then
if (uservariables['VarTimeOfDayCurrent'] ~= 0) then
commandArray['Variable:VarTimeOfDayCurrent']= '0'
end
end
if (time.hour >= 12) and (time.hour <= 18) then
if (uservariables['VarTimeOfDayCurrent'] ~= 1) then
commandArray['Variable:VarTimeOfDayCurrent']= '1'
end
end
if (time.hour >= 19) and (time.hour <= 22) then
if (uservariables['VarTimeOfDayCurrent'] ~= 2) then
commandArray['Variable:VarTimeOfDayCurrent']= '2'
end
end
if (time.hour >= 23) then
if (uservariables['VarTimeOfDayCurrent'] ~= 3) then
commandArray['Variable:VarTimeOfDayCurrent']= '3'
end
end
if (uservariables['VarTimeOfDayCurrent']) == tonumber (VarTimeOfDay) then
if logging >= 1 then
print("-- Irrigation ==> [TimeOfTheDay] - Time of the Day matches your desired irrigation value")
end
if (uservariables['VarTimeCon']) == 0 then
commandArray['Variable:VarTimeCon']= '1'
end
end
if (uservariables['VarTimeOfDayCurrent']) ~= tonumber (VarTimeOfDay) then
if logging >= 1 then
print("-- Irrigation ==> [TimeOfTheDay] - Time of the Day doesnt match your criteria, Awaiting for the right Time of the Day")
end
if (uservariables['VarTimeCon']) == 1 then
commandArray['Variable:VarTimeCon']= '0'
end
end
if logging >= 1 then
print("--------------------------------------------------------------------------------------")
end
if logging >= 1 then
print("Irrigation [Program]");
end
--
-- **********************************************************
-- Giving the irrigation program a Go or NoGo
-- **********************************************************
--
if (uservariables['VarTimeCon']) == 1
and (uservariables['VarTimeFrame']) == 1
and (uservariables['VarWeatherCon']) == 1
and (uservariables['VarMoistOnline']) == 1
and (uservariables['VarMoistOnlineHum']) == 1
and (uservariables['VarMoistConTemp']) == 1
and (uservariables['VarMoistOnlineHum']) == 1
then
if logging >= 1 then
print("-- Irrigation [Conditions] ==> All conditions seems to be okay, Irrigation may continue program")
end
if (uservariables['VarMayFollowProgram']) == 0
then
commandArray['Variable:VarMayFollowProgram']= '1'
end
else
if logging >= 1 then
print("-- Irrigation [Conditions] ==> Not all conditions seems to be okay, Irrigation may NOT continue program")
end
if (uservariables['VarMayFollowProgram']) == 1
then
commandArray['Variable:VarMayFollowProgram']= '0'
end
end
--
-- **********************************************************
-- New irrigation reactivated
-- **********************************************************
--
if (uservariables['VarMayFollowProgram']) == 1
and (uservariables['VarProgramRun']) == 0
and (uservariables['VarProgramOverride']) == 0
and (uservariables['VarManOverrideCon']) == 0
then
if (uservariables['VarFollowsProgram']) == 0 then
commandArray['Variable:VarFollowsProgram']= '1'
end
if logging >= 1 then
print("-- Irrigation [Program] ==> Irrigation Program Activated...")
print("--------------------------------------------------------------------------------------")
end
end
--
-- **********************************************************
-- Irrigation stopped after a full run cycle
-- **********************************************************
--
if (uservariables['VarProgramRun']) == 1
and (uservariables['VarProgramOverride']) == 1
then
if logging >= 1 then
print("-- Irrigation [Program] ==> Irrigation Stopped, Maximum RunTime Exceeded...")
print("-- Irrigation [Program] ==> Awaiting new TimeFrame...")
print("--------------------------------------------------------------------------------------")
end
end
--
-- **********************************************************
-- New timeframe so irrigation reactivated
-- **********************************************************
--
if (uservariables['VarTimeCon']) == 0
and (uservariables['VarProgramRun']) == 1
and (uservariables['VarProgramOverride']) == 1
then
if (uservariables['VarProgramOverride']) == 1 then
commandArray['Variable:VarProgramOverride']= '0'
commandArray['Variable:VarProgramRun']= '0'
end
if logging >= 1 then
print("-- Irrigation [Program] ==> Irrigation Program Reactivated...")
print("--------------------------------------------------------------------------------------")
end
end
--
-- **********************************************************
-- Irrigation stoppen as the moist humidity exceed your desired value
-- **********************************************************
--
if smoistsensorHumidity >= tonumber (VarTarHum)
and (uservariables['VarProgramRun']) == 1
then
if (uservariables['VarProgramOverride']) == 0 then
commandArray['Variable:VarProgramOverride']= '1'
commandArray['Variable:VarMaxRunTime']= '-1000'
commandArray['Variable:VarProgramRun']= '0'
commandArray[VarPump]='Off'
end
if logging >= 1 then
print("-- Irrigation [Program] ==> Irrigation Program Stopped, Moist Humidity exceeded your desired value...")
print("--------------------------------------------------------------------------------------")
end
end
--
-- **********************************************************
-- Irrigation stoppen, Manual Override
-- **********************************************************
--
if otherdevices[VitManOverride] == 'On'
and (uservariables['VarManOverrideCon']) == 0
then
if (uservariables['VarProgramOverride']) == 0 then
commandArray['Variable:VarProgramOverride']= '1'
commandArray['Variable:VarMaxRunTime']= '-1000'
commandArray['Variable:VarProgramRun']= '0'
commandArray[VarPump]='Off'
commandArray['Variable:VarManOverrideCon']= '1'
end
end
if otherdevices[VitManOverride] == 'On'
and (uservariables['VarManOverrideCon']) == 1
then
if logging >= 1 then
print("-- Irrigation [Program] ==> Irrigation Program Stopped, Manual Override")
print("--------------------------------------------------------------------------------------")
end
end
if otherdevices[VitManOverride] == 'Off'
and (uservariables['VarManOverrideCon']) == 1
then
if (uservariables['VarProgramOverride']) == 1 then
commandArray['Variable:VarProgramOverride']= '0'
commandArray['Variable:VarMaxRunTime']= '-1000'
commandArray['Variable:VarProgramRun']= '0'
commandArray['Variable:VarFollowsProgram']= '0'
commandArray['Variable:VarManOverrideCon']= '0'
commandArray[VarPump]='Off'
print("-- Irrigation [Program] ==> Irrigation Program Reactivated, Manual Override OFF")
print("--------------------------------------------------------------------------------------")
end
end
--
-- **********************************************************
-- Irrigation Counter MaxRunTime and validate check
-- **********************************************************
--
--
-- Debug logging.
--
function debug(msg)
if logging >= 1 then
print('-- Irrigation [DEBUG] ==> ' .. msg)
end
end
--
-- Info logging.
--
function info(msg)
if logging >= 1 then
print('-- Irrigation [Program] ==> ' .. msg)
end
end
--
-- Error logging.
--
function error(msg)
print('-- Irrigation [ERROR] ==> ' .. msg)
end
--
-- Validates the configuration
--
function validate()
result = true
if not (uservariables['VarMaxRunTime']) then
error('User Variable [' .. VarMaxRunTime .. '] doesnt exist.')
result = false
end
if not otherdevices[VarPump] then
error('Device [' .. VarPump .. '] doesnt exist.')
result = false
end
if not (uservariables['VarFollowsProgram']) then
error('User Variable [' .. VarFollowsProgram .. '] doesnt exist.')
result = false
end
return result
end
--
-- Tests if irrigation may start.
--
function may_update(VarIsPump)
counter = (uservariables['VarMaxRunTime'])
current_counter = counter
-- set the counter.
if VarIsPump and counter >= 0 then
counter = math.min(1, counter + 1)
elseif not VarIsPump and counter <= 0 then
counter = math.max(VarMaxRunTime_off * -1, counter - 1)
else
counter = 0
end
if counter ~= current_counter then
commandArray['Variable:VarMaxRunTime']= tostring(counter)
end
result = false
if VarIsPump and counter >= 1 then
result = true
elseif not VarIsPump and math.abs(counter) >= VarMaxRunTime_off then
result = true
end
return result
end
--
-- Start irrigation
--
function on_off(VarIsPump)
update_allowed = may_update(VarIsPump)
info('Irrigation Pump = [' .. otherdevices[VarPump] .. ']')
if update_allowed then
if otherdevices[VarPump] == 'Off' and VarIsPump then
commandArray[VarPump]='On'
commandArray['Variable:VarFollowsProgram']= '0'
commandArray['Variable:VarProgramRun']= '1'
elseif (otherdevices[VarPump] == 'On' and not VarIsPump) then
commandArray[VarPump]='Off'
commandArray['Variable:VarProgramOverride']= '1'
end
end
end
--
-- Is Irrigation On.
--
function is_VarFollowsProgram_aan()
result = false
result = (uservariables['VarFollowsProgram'] == 1)
return result
end
--
-- **********************************************************
-- Starting Irrigation
-- **********************************************************
--
if validate() then
on_off(is_VarFollowsProgram_aan())
end
if logging >= 1 then
print("--------------------------------------------------------------------------------------")
end
return commandArray