We have moved at community.getvera.com

Author Topic: iZone 435 controller interface  (Read 197 times)

Offline m13kern

  • Newbie
  • *
  • Posts: 9
  • Karma: +1/-0
iZone 435 controller interface
« on: February 22, 2019, 12:55:04 am »
Just thought I would share my interface as this has taken me some time to develop. Hope it helps someone else  8)

--Purpose    :  Sets SystemMODE & checks status.--
--Inputs     :  N/A--
--Outputs    :  N/A--
--Notes      :  Control bridge IP 10.1.1.159  added _G.functionname = functionname prior to luup.delay call to avoid nil call on function --
--Version    :   1---
--Revision   :   1---

count3 = 0
function systemModecheck(var1)
    local currentstate = luup.variable_get("urn:toggledbits-com:serviceId:SiteSensor1", "Value2", 107)
     
          if currentstate == var1 then
              luup.log("Aircon MODE is set")
              count3 = 0
                                     
          else
              luup.log("Aircon MODE is NOT set")
              count3 = count3+1           
            if count3 <= 5 then
              pcall(systemMode,var1)
              luup.log(count3)
            end
          luup.log(var1)
          end
    return true
end


function systemMode(var1)
local http = require("socket.http")
local ltn12 = require("ltn12")
  local path = "http://10.1.1.159/SystemMODE?"
  local command = [[ {"SystemMODE":"%s"} ]]
  local payload = command: format(var1)

  local status = http.request
  {
    url = path,
    method = "POST",
    headers =
    {
      ["Content-Type"] = "application/json",
      ["Content-Length"] = payload:len()
    },
    source = ltn12.source.string(payload)
  }
  luup.log("Aircon MODE command Sent")
  _G.systemModecheck = systemModecheck
  luup.call_delay("systemModecheck",30,var1)
  return true
end

--SystemOn calls--
systemMode("cool")
systemMode("heat")
systemMode("vent")
systemMode("dry")
systemMode("auto")