Advertisement
boomx

awning0.1a

Jun 28th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. --[[
  2. %% properties
  3. 386 value
  4. 408 value
  5. %% events
  6. %% globals
  7. TimeOfDay
  8. --]]
  9.  
  10. local lux_sensor = 386
  11. local wind_sensor = 408
  12. local temperature_sensor = 78
  13. local awning = 373
  14.  
  15. local trigger = fibaro:getSourceTrigger()
  16. local status = tonumber(fibaro:getValue(awning, "value"))
  17. local lux = tonumber(fibaro:getValue(lux_sensor, "value"))
  18. local wind_m_s = tonumber(fibaro:getValue(wind_sensor, "value"))
  19. local wind_k_h = wind_m_s*3.6
  20. local temperature = tonumber(fibaro:getValue(temperature_sensor, "value"))
  21.  
  22. Debug = function ( color, message )
  23. fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
  24. end
  25.  
  26. local version = '0.1a'
  27.  
  28. Debug('brown', '___Awning-Controller ' ..version.. ' gestartet.___')
  29.  
  30. local num = fibaro:countScenes();
  31. if (num == 1) then
  32. fibaro:debug('Anzahl der laufenden Instanzen: ' .. num);
  33. else
  34. fibaro:debug('Anzahl der laufenden Instanzen: ' .. num);
  35. end
  36. Debug('brown', 'Markise-Status ' ..status)
  37. if (trigger['type'] == 'global') then
  38. if (fibaro:getGlobal('TimeOfDay') == 'Evening') then
  39. Debug('blue', 'Es ist Nacht. Prüfe Status der Markise...')
  40. if (status == 0) then
  41. Debug('blue', 'Es ist Nacht. Markise ist ausgefahren, wird eingefahren...')
  42. end
  43. end
  44. elseif (trigger['type'] == 'property') then
  45. -- lux-sensor
  46. if (lux_sensor == trigger['deviceID']) then
  47. Debug('yellow', 'LUX-Wert hat sich geändert. Prüfe Status der Markise.')
  48. if (status ~= 0) then
  49. Debug('yellow', 'Markise ist eingefahren. Prüfe Wetterbedingungen.')
  50. if (lux >= 1000) then
  51. Debug('yellow', 'LUX-Wert von '..lux..' reicht aus, um die Markise auszufahren.')
  52. if (wind_k_h < 15) then
  53. Debug('orange', 'Wind: ' ..wind_k_h.. ' km/h. Ist i.O.')
  54. if (temperature >= 20) then
  55. Debug('orange', 'Temperatur von '..temperature..' ° passt. Fahre Markise aus.')
  56. else
  57. Debug('orange', 'Temperatur von '..temperature..' ° ist zu gering. Fahre Markise nicht aus.')
  58. end
  59. else
  60. Debug('orange', 'Wind: ' ..wind_k_h.. ' km/h. Es ist zu windig.')
  61. end
  62. else
  63. Debug('yellow', 'LUX-Wert von '..lux..' ist zu gering, um die Markise auszufahren')
  64. end
  65. else
  66. Debug('yellow', 'Markise ist bereits ausgefahren.')
  67. end
  68. -- wind_sensor
  69. elseif (wind_sensor == trigger['deviceID']) then
  70. Debug('yellow', 'Windgeschwindigkeit hat sich geändert. Prüfe...')
  71. if (wind_k_h < 15) then
  72. Debug('green', 'Wind: ' ..wind_k_h.. ' km/h. Markise bleibt ausgefahren.')
  73. else
  74. Debug('red', 'Wind: ' ..wind_k_h.. ' km/h. Markise muss eingefahren werden.')
  75. end
  76. end
  77. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement