EvertJob

Watermeter

Nov 18th, 2018
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.75 KB | None | 0 0
  1. commandArray = {}
  2.  
  3. -- Set IDX of Watermeter
  4. iIDX = 83
  5.  
  6. -- Set Watermeter based on user variable "WaterMeter"
  7. if ( uservariables["WaterMeter"] > 0 ) then
  8.     print("Water usage is set to " .. uservariables["WaterMeter"] / 1000 .. "m3 by user")
  9.     commandArray['UpdateDevice'] = ''..iIDX..'|0|'..uservariables["WaterMeter"]..''
  10.     commandArray['Variable:WaterMeter'] = tostring(0)
  11. end
  12.  
  13. -- Water usage
  14. -- Retrieve value from water meter device:
  15. sWaterUsage = otherdevices_svalues['Waterverbruik']
  16.  
  17. -- To have a better readable format, divide number by 1000:
  18. sWaterUsagePrint = tonumber(sWaterUsage / 1000);
  19.  
  20. -- calculation is done with the unmodified water value
  21. sWaterUsage = tonumber(sWaterUsage);
  22.  
  23. -- For Debuging
  24. print("Water usage until now is " .. sWaterUsagePrint .. "m3 ")
  25. print('GPIO Watermeter = '..otherdevices['GPIO Watermeter'])
  26.  
  27. function timedifference(s)
  28.    year = string.sub(s, 1, 4)
  29.    month = string.sub(s, 6, 7)
  30.    day = string.sub(s, 9, 10)
  31.    hour = string.sub(s, 12, 13)
  32.    minutes = string.sub(s, 15, 16)
  33.    seconds = string.sub(s, 18, 19)
  34.    t1 = os.time()
  35.    t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
  36.    difference = os.difftime (t1, t2)
  37.    return difference
  38. end
  39.  
  40. if (devicechanged['GPIO Watermeter'] == 'Off')
  41. then
  42.     sWaterUsageTot = (sWaterUsage + 1)
  43.    
  44.     print("Water usage is set to " .. sWaterUsageTot / 1000 .. "m3 ")
  45.     commandArray['UpdateDevice'] = ''..iIDX..'|0|'..sWaterUsageTot..''
  46. else
  47.     -- Keep a live device
  48.     if (timedifference(otherdevices_lastupdate["Waterverbruik"]) > 300)
  49.     then
  50.         print("Water usage is still " .. sWaterUsage / 1000 .. "m3 ")
  51.         commandArray['UpdateDevice'] = ''..iIDX..'|0|'..sWaterUsage..''  
  52.     end
  53. end
  54.  
  55. return commandArray
Advertisement
Add Comment
Please, Sign In to add comment