Skip to content

Commit

Permalink
v.1.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
ikubicki committed Dec 5, 2022
1 parent 38cf805 commit 0ae7c1c
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Velux-Active-Shutter.fqa
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@
"name": "main",
"isMain": true,
"isOpen": true,
"content": "\n--[[\nVelux Active integration\n@author ikubicki\n]]\n\nfunction QuickApp:onInit()\n self.config = Config:new(self)\n self.velux = Velux:new(self.config)\n self.i18n = i18n:new(api.get(\"/settings/info\").defaultLanguage)\n self:trace('')\n self:trace(string.format(self.i18n:get('name'), self.name))\n self:updateProperty('manufacturer', 'Velux')\n self:updateProperty('model', 'Velux Active KIX 300')\n self:updateView(\"button1\", \"text\", self.i18n:get('stop'))\n self:updateView(\"button2\", \"text\", self.i18n:get('search-devices'))\n self:updateView(\"label\", \"text\", self.i18n:get('name'))\n self:updateProperty(\"value\", 99)\n if string.len(self.config:getModuleID()) > 10 then\n self:run()\n end\nend\n\nfunction QuickApp:open()\n self:setPosition(100)\nend\n\nfunction QuickApp:close()\n self:setPosition(0)\nend\n\nfunction QuickApp:stop()\n local callback = function(response)\n self:pullDataFromCloud()\n end\n self.velux:stop(callback)\nend\n\nfunction QuickApp:setValue(value)\n if value > 98 then\n value = 100\n end\n self:setPosition(value)\nend\n\nfunction QuickApp:setPositionEvent(event)\n local position = event.values[1]\n self:setValue(position)\nend\n\nfunction QuickApp:stopEvent(event)\n self:stop()\nend\n\nfunction QuickApp:refreshDataEvent(event)\n self:updateView(\"label\", \"text\", self.i18n:get('refreshing'))\n self:pullDataFromCloud()\nend\n\nfunction QuickApp:setPosition(position)\n -- self:debug(string.format(\"Setting new position (%d%%) ...\", position))\n if position < 1 then\n position = 0\n elseif position > 98 then\n position = 100\n end\n local callback = function(response)\n self:debug(string.format(self.i18n:get('position-set'), position))\n self:pullDataFromCloud()\n end\n self.velux:setPosition(position, callback)\nend\n\nfunction QuickApp:updateValues(position, newPosition)\n value = position\n self:updateView(\"slider\", \"value\", tostring(position))\n if position < 1 then\n value = 0\n text = self.i18n:get('shutter-closed')\n elseif position > 98 then\n value = 99\n text = self.i18n:get('shutter-opened')\n else \n text = string.format(self.i18n:get('shutter-half-open'), position)\n end\n local inMotion = false\n if newPosition ~= nil and newPosition > position then\n text = string.format(self.i18n:get('shutter-opening'), position)\n inMotion = true\n elseif newPosition ~= nil and newPosition < position then\n text = string.format(self.i18n:get('shutter-closing'), position)\n inMotion = true\n end\n if inMotion then\n fibaro.setTimeout(3000, function()\n self:pullDataFromCloud()\n end)\n end\n self:updateView(\"label\", \"text\", text)\n self:updateProperty(\"value\", value)\nend\n\nfunction QuickApp:run()\n self:pullDataFromCloud()\n local interval = self.config:getInterval()\n if (interval > 0) then\n fibaro.setTimeout(interval, function() self:run() end)\n end\nend\n\nfunction QuickApp:pullDataFromCloud()\n local callback = function(moduleData)\n QuickApp:debug(json.encode(moduleData))\n self:updateView(\"button3\", \"text\", self.i18n:get('refresh'))\n self:updateValues(moduleData.current_position, moduleData.target_position)\n end\n self:updateView(\"button3\", \"text\", self.i18n:get('refreshing'))\n self.velux:sync(callback)\nend\n\nfunction QuickApp:searchDevicesEvent()\n self:debug(self.i18n:get('searching-devices'))\n self:updateView(\"button2\", \"text\", self.i18n:get('searching-devices'))\n local callback = function(homeData)\n self:updateView(\"button2\", \"text\", self.i18n:get('search-devices'))\n -- printing results\n QuickApp:trace(string.format(self.i18n:get('search-row-home'), homeData.name, homeData.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-home-gateways'), #homeData.gateways))\n for _, gateway in ipairs(homeData.gateways) do\n QuickApp:trace(string.format(self.i18n:get('search-row-gateway'), gateway.name, gateway.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-gateway-shutters'), #gateway.shutters))\n for __, shutter in ipairs(gateway.shutters) do\n QuickApp:trace(string.format(self.i18n:get('search-row-shutter'), shutter.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-shutter-position'), shutter.position))\n end\n end\n self:updateView(\"label\", \"text\", string.format(self.i18n:get('check-logs'), 'QUICKAPP' .. self.id))\n end\n self.velux:searchDevices(callback)\nend\n"
"content": "\n--[[\nVelux Active integration\n@author ikubicki\n]]\n\nfunction QuickApp:onInit()\n self.config = Config:new(self)\n self.velux = Velux:new(self.config)\n self.i18n = i18n:new(api.get(\"/settings/info\").defaultLanguage)\n self:trace('')\n self:trace(string.format(self.i18n:get('name'), self.name))\n self:updateProperty('manufacturer', 'Velux')\n self:updateProperty('model', 'Velux Active KIX 300')\n self:updateView(\"button1\", \"text\", self.i18n:get('stop'))\n self:updateView(\"button2\", \"text\", self.i18n:get('search-devices'))\n self:updateView(\"label\", \"text\", self.i18n:get('name'))\n self:updateProperty(\"value\", 99)\n if string.len(self.config:getModuleID()) > 10 then\n self:run()\n end\nend\n\nfunction QuickApp:open()\n self:setPosition(100)\nend\n\nfunction QuickApp:close()\n self:setPosition(0)\nend\n\nfunction QuickApp:stop()\n local callback = function(response)\n self:pullDataFromCloud()\n end\n self.velux:stop(callback)\nend\n\nfunction QuickApp:setValue(value)\n if value > 98 then\n value = 100\n end\n self:setPosition(value)\nend\n\nfunction QuickApp:setPositionEvent(event)\n local position = event.values[1]\n self:setValue(position)\nend\n\nfunction QuickApp:stopEvent(event)\n self:stop()\nend\n\nfunction QuickApp:refreshDataEvent(event)\n self:updateView(\"label\", \"text\", self.i18n:get('refreshing'))\n self:pullDataFromCloud()\nend\n\nfunction QuickApp:setPosition(position)\n -- self:debug(string.format(\"Setting new position (%d%%) ...\", position))\n if position < 1 then\n position = 0\n elseif position > 98 then\n position = 100\n end\n local callback = function(response)\n self:debug(string.format(self.i18n:get('position-set'), position))\n self:pullDataFromCloud()\n end\n self.velux:setPosition(position, callback)\nend\n\nfunction QuickApp:updateValues(position, newPosition)\n value = position\n self:updateView(\"slider\", \"value\", tostring(position))\n if position < 1 then\n value = 0\n text = self.i18n:get('shutter-closed')\n elseif position > 98 then\n value = 99\n text = self.i18n:get('shutter-opened')\n else \n text = string.format(self.i18n:get('shutter-half-open'), position)\n end\n local inMotion = false\n if newPosition ~= nil and newPosition > position then\n text = string.format(self.i18n:get('shutter-opening'), position)\n inMotion = true\n elseif newPosition ~= nil and newPosition < position then\n text = string.format(self.i18n:get('shutter-closing'), position)\n inMotion = true\n end\n if inMotion then\n fibaro.setTimeout(3000, function()\n self:pullDataFromCloud()\n end)\n end\n self:updateView(\"label\", \"text\", text)\n self:updateProperty(\"value\", value)\nend\n\nfunction QuickApp:run()\n self:pullDataFromCloud()\n local interval = self.config:getInterval()\n if (interval > 0) then\n fibaro.setTimeout(interval, function() self:run() end)\n end\nend\n\nfunction QuickApp:pullDataFromCloud()\n local callback = function(moduleData)\n -- QuickApp:debug(json.encode(moduleData))\n self:updateView(\"button3\", \"text\", self.i18n:get('refresh'))\n self:updateValues(moduleData.current_position, moduleData.target_position)\n end\n self:updateView(\"button3\", \"text\", self.i18n:get('refreshing'))\n self.velux:sync(callback)\nend\n\nfunction QuickApp:searchDevicesEvent()\n self:debug(self.i18n:get('searching-devices'))\n self:updateView(\"button2\", \"text\", self.i18n:get('searching-devices'))\n local callback = function(homeData)\n self:updateView(\"button2\", \"text\", self.i18n:get('search-devices'))\n -- printing results\n QuickApp:trace(string.format(self.i18n:get('search-row-home'), homeData.name, homeData.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-home-gateways'), #homeData.gateways))\n for _, gateway in ipairs(homeData.gateways) do\n QuickApp:trace(string.format(self.i18n:get('search-row-gateway'), gateway.name, gateway.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-gateway-shutters'), #gateway.shutters))\n for __, shutter in ipairs(gateway.shutters) do\n QuickApp:trace(string.format(self.i18n:get('search-row-shutter'), shutter.id))\n QuickApp:trace(string.format(self.i18n:get('search-row-shutter-position'), shutter.position))\n end\n end\n self:updateView(\"label\", \"text\", string.format(self.i18n:get('check-logs'), 'QUICKAPP' .. self.id))\n end\n self.velux:searchDevices(callback)\nend\n"
},
{
"name": "HTTPClient",
Expand Down
2 changes: 1 addition & 1 deletion main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ end

function QuickApp:pullDataFromCloud()
local callback = function(moduleData)
QuickApp:debug(json.encode(moduleData))
-- QuickApp:debug(json.encode(moduleData))
self:updateView("button3", "text", self.i18n:get('refresh'))
self:updateValues(moduleData.current_position, moduleData.target_position)
end
Expand Down

0 comments on commit 0ae7c1c

Please sign in to comment.