Advertisement
boomx

koubachi v0.2

Sep 12th, 2016
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. --[[
  2. %% properties
  3. %% autostart
  4. %% globals
  5. --]]
  6.  
  7. -- DIESE DATEN ANPASSEN
  8. local user_credentials = 'Og0h8HgneEiTxxx'
  9. local app_key = 'KLAB9F9X20XYKCVHE6Oxxx'
  10. local refresh = 1800
  11.  
  12. local count = 1
  13.  
  14. local sourceTrigger = fibaro:getSourceTrigger()
  15.  
  16. Debug = function ( color, message )
  17. fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
  18. end
  19.  
  20. function globalVar(var,val)
  21. local http = net.HTTPClient()
  22. http:request("http://127.0.0.1:11111/api/globalVariables", {
  23. options = {
  24. method = 'POST',
  25. headers = {},
  26. data = '{"name":"'..var..'","value":"'..val..'"}',
  27. timeout = 10000
  28. },
  29. success = function(response)
  30. local result = response.data;
  31. if response.status == 200 or response.status == 201 then
  32. fibaro:debug('Status: ' ..response.status.. ' - Variable wurde angelegt')
  33. else
  34. fibaro:debug('Error: ' ..response.status.. ' - Zugriff verweigert')
  35. end
  36. end,
  37. error = function(err)
  38. fibaro:debug('[ERROR] ' .. err)
  39. end
  40. })
  41. end
  42.  
  43. function koubachi_call()
  44. Debug( 'green', '__________KOUBACHI-Call 0.2 gestartet__________')
  45. local selfhttp = net.HTTPClient({timeout=2000})
  46. url = 'https://api.koubachi.com/v2/user/smart_devices.json?user_credentials='..user_credentials..'&app_key='..app_key..''
  47. selfhttp:request(url, {
  48. options={
  49. headers = selfhttp.controlHeaders,
  50. method = 'GET',
  51. timeout = 5000
  52. },
  53. success = function(status)
  54. if status.status == 200 then
  55. Debug( 'green', '________API-Call erfolgreich durchgeführt_________')
  56. local response = json.decode(status.data)
  57. for k=1, count do
  58. if (response[k].device.id ~= nil) then
  59. Debug( 'green', '______Koubachi-Sensor ' ..response[k].device.id.. ' erkannt_____')
  60. if (fibaro:getGlobal('koubachi_'..response[k].device.id..'_hum') == nil) then
  61. Debug( 'red', 'Variablen nicht gefunden. Erstelle die benötigten Variablen für den Sensor!')
  62. if (response[k].device.recent_soilmoisture_reading_value ~= '100 %') then
  63. local hum = string.sub(response[k].device.recent_soilmoisture_reading_value, 1, 2)
  64. globalVar('koubachi_'..response[k].device.id..'_hum', hum)
  65. Debug( 'white', 'Gemessene Feuchtigkeit: ' ..response[k].device.recent_soilmoisture_reading_value)
  66. else
  67. Debug( 'red', 'Gemessene Feuchtigkeit: ' ..response[k].device.recent_soilmoisture_reading_value.. 'Setze den Wert auf 100.')
  68. local hum = '100'
  69. end
  70. globalVar('koubachi_'..response[k].device.id..'_lux', response[k].device.recent_light_reading_value)
  71. globalVar('koubachi_'..response[k].device.id..'_temp', response[k].device.recent_temperature_reading_value)
  72. else
  73. if (response[k].device.recent_soilmoisture_reading_value ~= '100 %') then
  74. local hum = string.sub(response[k].device.recent_soilmoisture_reading_value, 1, 2)
  75. fibaro:setGlobal('koubachi_'..response[k].device.id..'_hum', hum)
  76. Debug( 'white', 'Gemessene Feuchtigkeit: ' ..response[k].device.recent_soilmoisture_reading_value)
  77. else
  78. Debug( 'red', 'Gemessene Feuchtigkeit: ' ..response[k].device.recent_soilmoisture_reading_value.. ' Setze den Wert auf 100.')
  79. local hum = '100'
  80. fibaro:setGlobal('koubachi_'..response[k].device.id..'_hum', hum)
  81. end
  82. fibaro:setGlobal('koubachi_'..response[k].device.id..'_lux', response[k].device.recent_light_reading_value)
  83. fibaro:setGlobal('koubachi_'..response[k].device.id..'_temp', response[k].device.recent_temperature_reading_value)
  84. end
  85. Debug( 'white', 'Gemessene Helligkeit: ' ..response[k].device.recent_light_reading_value)
  86. Debug( 'white', 'Gemessene Temperatur: ' ..response[k].device.recent_temperature_reading_value)
  87. end
  88. end
  89. Debug( 'green', '________KOUBACHI-Call 0.2 abgeschlossen________')
  90. else
  91. print ("failed")
  92. print(status.data)
  93. end
  94. end,
  95. error = function(error)
  96. print "ERROR"
  97. print(error)
  98. end
  99. })
  100. setTimeout(koubachi_call, refresh*1000);
  101. end
  102.  
  103. if (sourceTrigger['type'] == 'autostart') then
  104. koubachi_call()
  105. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement