Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


HC3 QuickApps coding - tips and tricks


jgab

Recommended Posts

 

6 minutes ago, jgab said:

but Fibaro will fix that soon - just hold your breath ? ...and when you wake up it will work :-) 

 

 

breaking news, tomorrow app update ?

 

 

  • Like 2
Link to comment
Share on other sites

1 hour ago, jgab said:

I don't fully understand this sentence

"...but test Toggle HC2 device (switch) from HC3 test blockscene delivers the next on HC3Proxy on HC2 (and no toggle of the HC@ device)"

Can you elaborate?

A test blockscene on HC3 tries to toggle a binary switch on HC2. No success in toggling. On HC2-scene HC3Proxy the next debug output is to be seen:

Please login or register to see this spoiler.

 

Link to comment
Share on other sites

15 hours ago, jgab said:

 

Just to recap:

You have a double switch today that is visible as two binary switches in the UI.

One of those switches control a light bulb that can dim depending on the number of  clicks.

Correct?

-------------

You can't "attach" a childDevice to an existing z-wave device. A child device needs a QA that runs the code and creates the child devices. We can't add Lua code to z-wave device.

Why would you like it to be a child device? You want them to group together in the Web UI? (child devices are listed directly below the "mother QA"  that creates them)

What you maybe could do is to create a regular multilevelSwitch QA (on, off, dim level) that takes the input from the binary switch (on, off) and add a slider for the "dim" value. Then hide the z-wave binary switch. Can you control the dim-value by sending rapid turnOn/turnOff commands to the bulb?

 

 

 

Thank you for your quick response. 

Your recap is Correct, and also your adoption.


But not only that, if it is a separate QA, it has no direct link to his parent (the double switch).  
And therefore it does not know the status of the double switch. 

 

The QA as standalone works the way it should.
Only I bumped into a Bug, When calling the updateProperty twice in a row. Than the property does not update. 
A timer of at least (Sleep( 200)) solved this problem. But it asks for an extra variable.

 

It also looks great in the iPhone app..(if that was one of the questions ;)

 

If the code needs an other way of doing things, please let me know...

 

For those who have the same light bulp, here is my code..

First add a variable deviceID, with the ID of the parent device..

 

Please login or register to see this code.

 

KlickDimmer is the QD, in the mobileApp.

Please login or register to see this attachment.

Edited by NLWaard
Link to comment
Share on other sites

1 hour ago, jgab said:

Have you done all the configurations?

Have you set the HC3 IP/user/password variables in the HC2 scene?

Have you set the HC2 IP/user/password variables in the HC3 QA? (and setup the table with the devices)

Yes I have configured all you mentioned.

Link to comment
Share on other sites

  • Topic Author
  • 2 hours ago, Rover said:

    Yes I have configured all you mentioned.

    Ok, the code is from February 23rd... I used it for a few months and it worked well for me but I moved all to the HC3 now.

    I will make an effort to go through the code and update it with the latest know-how (using child devices) - give me a day or two...

     

    Link to comment
    Share on other sites

  • Topic Author
  • 12 hours ago, Rover said:

    Yes I have configured all you mentioned.

     

    Ok, can you try this QA and HC2 scene?

    Please login or register to see this attachment.

    Please login or register to see this code.

    Don't forget to add the devices that should trigger in the HC2 scene header.

    I'm not really using the HC2 anymore so if you try this and find error let me know so we can work together to fix it. Thanks /J

    • Thanks 1
    Link to comment
    Share on other sites

    Hi @jgab,

    You are a genius ?

    It works!

    Just toggle of a HC2 binary switch behaves only as turnon, while turnoff reacts correct.

    Link to comment
    Share on other sites

  • Topic Author
  • 26 minutes ago, Rover said:

    Hi @jgab,

    You are a genius ?

    It works!

    Just toggle of a HC2 binary switch behaves only as turnon, while turnoff reacts correct.

    You call toggle in a block scene on the HC3?

    Link to comment
    Share on other sites

    Just now, jgab said:

    You call toggle in a block scene on the HC3?

    Yes.

    Link to comment
    Share on other sites

  • Topic Author
  • 9 minutes ago, Rover said:

    Yes.

    Try this - I spotted a bug..

    Please login or register to see this attachment.

    Link to comment
    Share on other sites

  • Topic Author
  • 12 minutes ago, jgab said:

    Try this - I spotted a bug..

    Please login or register to see this attachment.

    I guess there are room for improvements..

    Is there a need to sync global variables between HC2 and HC3?

    Device interfaces like battery and power status?

    Other types of devices then the basics...?

    Link to comment
    Share on other sites

  • Topic Author
  • 16 hours ago, NLWaard said:

    But not only that, if it is a separate QA, it has no direct link to his parent (the double switch).  
    And therefore it does not know the status of the double switch. 

    You could run a loop in the QA that polls the double switch (or the switch id that you are concerned of)

    Like.

    Please login or register to see this code.

     

    Edited by jgab
    • Like 1
    Link to comment
    Share on other sites

    1 hour ago, jgab said:

    You could run a loop in the QA that polls the double switch (or the switch id that you are concerned of)

    Like.

     

    There you have a point.

     

    But I try to avoid as many loops as possible in my code.

    I think, thise loops made my HC2 to slow.

    I hope the HC3 will be able to deal with that better...


    Anyway, thank you very much for highlighting it, and helping me.

    It helped me a lot..

     

    gr. Mike

    Link to comment
    Share on other sites

  • Topic Author
  • 39 minutes ago, NLWaard said:

    There you have a point.

     

    But I try to avoid as many loops as possible in my code.

    I think, thise loops made my HC2 to slow.

    I hope the HC3 will be able to deal with that better...


    Anyway, thank you very much for highlighting it, and helping me.

    It helped me a lot..

     

    gr. Mike

     

    Yes, always be careful what you spend CPU time on.

    However, a getValue takes ~1.3ms, if you check that once every second it's 0.13%

    Link to comment
    Share on other sites

    Jan,

    I need your advice in relation with arming my complex.

    Try to solve the errors? there for I need your expertise

    or

    Try to do as you posted last for HC3

    I am now able to test the arming because I have in all four parts of the complex some devices connected to HC3.

    The real arm is still in HC2 to have enough time to get it working in HC3.

    Please your valuable advice what to do.

    //Sjakie

    Link to comment
    Share on other sites

  • Topic Author
  • 6 minutes ago, Sjakie said:

    Jan,

    I need your advice in relation with arming my complex.

    Try to solve the errors? there for I need your expertise

    or

    Try to do as you posted last for HC3

    I am now able to test the arming because I have in all four parts of the complex some devices connected to HC3.

    The real arm is still in HC2 to have enough time to get it working in HC3.

    Please your valuable advice what to do.

    //Sjakie

     

    So, what are your errors?

    Edited by jgab
    Link to comment
    Share on other sites

  • Topic Author
  • QuickApp Lua Environment, firmware 5.040.37

     

    This is an attempt to be a list of all functions and variables available in the Lua QuickApp environment. It's what's visible in the _G. environment.

    It's a mix of standard Lua functions and Fibaro add-ons.

    It's also an attempt to write something about what they can be used for and what they do beyond what's in the standard documentation.

    I will return to complement the text as It's too much to write in one swoop (why don't we have a wiki so we could collaborate on texts?). In any case, if you are missing something let me know.

     

    --------------------------------------------------------------------------------------------------------
    Globals:
    --------------------------------------------------------------------------------------------------------

    Please login or register to see this code.

    Std.Lua. Lua table with all global values.
    Ex. To define a global function
    _G['foo'] = function(x) return x+x end

    foo(9)

    Please login or register to see this code.

    Std.Lua. A global variable that holds a string containing the current interpreter version. 

    Please login or register to see this code.

    Fibaro. Used to tag log printouts in QAs. self:debug, self:trace etc.
    Defaults to "QuickApp"..self.id

    Please login or register to see this code.

    Fibaro. DeviceId of the QA. Equivalent to self.id

    Please login or register to see this code.

    Json. Author of the json library. See 

    Please login or register to see this code.

    Json. Version of json library.

    Please login or register to see this code.

    Json. Flags that affect decoding

    Please login or register to see this code.

    Json. Flags that affect decoding

    Please login or register to see this code.

    Json. Flags that affect encoding

    Please login or register to see this code.

    Json. Flags that affect encoding

    Please login or register to see this code.

    Fibaro. Constants for functions Logger.*. Unclear if it is used.

    Please login or register to see this code.

    Std.Lua. A number larger than (or equal) to all other numbers.

    Please login or register to see this code.

    Std.Lua. Largest whole number that a be represented in Lua

    Please login or register to see this code.

    Std.Lua. Smallest whole number that a be represented in Lua

    Please login or register to see this code.

    Std.Lua. PI constant

    Please login or register to see this code.

    Std.Lua. The string "[\0-\x7F\xC2-\xF4][\x80-\xBF]*" for the pattern to match one UTF-8 byte sequence.

    Please login or register to see this code.

    Fibaro. Set to the current QuickApp instance (e.g 'self'). Only valid after we exit self:onInit()


    --------------------------------------------------------------------------------------------------------
    Functions:
    --------------------------------------------------------------------------------------------------------

    Please login or register to see this code.

    Fibaro. Checks if obj is of type <type> and throws an error if not. Many fibaro.* check their arguments with this function.

    Please login or register to see this code.

    Fibaro. Used by fibaro.sleep(ms). Halts the processing in the QA/Scene for the specified time (milliseconds). Note that no other tasks can run in a Scene/QA during that time. Like processing button clicks, http requests, or setTimeout timers.

    Please login or register to see this code.

    Fibaro. Used by fibaro.useAsyncHandler(bool). Default is true and makes fibaro.call asynchronous. Before fw 5.031 fibaro.call was synchronous causing fibaro.call(self.id,action,...) to hang for a certian time (~5s) before it timed out. fibaro.call(self.id,action,..) should in any case be replaced by self:action(...).

    Please login or register to see this code.

    Fibaro. Used by fibaro.debug etc to log messages

    Please login or register to see this code.

    Fibaro. Returns device structure.
    API version: api.get("/devices/<deviceId>")

    Please login or register to see this code.

    Fibaro. Used by fibaro.getValue(deviceId,property). 
    API version: api.get("/devices/<deviceId>/property/<property>")

    Please login or register to see this code.

    Fibaro.  Returns an array of all devices
    API version: api.get("/devices")

    Please login or register to see this code.

    Fibaro. Returns a global variable struct. It returns the whole struct and not just the value.
    API version: api.get("/globalVariables/<name>"). 

    Please login or register to see this code.

    Fibaro. Returns room struct.
    API version: api.get("/rooms/<roomId>")

    Please login or register to see this code.

    Fibaro. Returns scene struct.
    API version: api.get("/scenes/<sceneId>")

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Fibaro. Returns e1 or e2 depending on if test is true or false.

    Please login or register to see this code.

    Fibaro. Probably used by fibaro.alarm(...)

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.
    API version: api.post("/customEvents/<name>")

    Please login or register to see this code.

    Fibaro. Returns 2 values: property value and modification time
    API version: 
    local p = api.get("/devices/<deviceId>/properties/<property>") or {}
    return p.value,p.modified

    Please login or register to see this code.

    Fibaro. Return the property value
    API version:
    return (api.get("/devices/<deviceId>/properties/<property>") or {}).value

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro. Get value of Fibaro global variable. Returns string.
    API version: (api.get("/globalVariables/<name>") or {}).value
    To emulate the HC2 version that returned both the value and the modified time use
    local v = (api.get("/globalVariables/<name>") or {})
    return v.value,v.modified

    Please login or register to see this code.

    Fibaro. Set value of Fibaro global variable. 
    API version: api.put("/globalVariables/<name>",{value=<value>})

    Please login or register to see this code.

    Fibaro. Returns array of the device structs in <devices>. It excludes deviceIds < 4.
    local res = {}
    for _,d in ipairs(devices) do if d.id and d.id > 3 then res[#res+1]=d end end

    Please login or register to see this code.

    Fibaro. Returns name of device
    API version: (api.get("/devices/<deviceId>") or {}).name

    Please login or register to see this code.

    Fibaro. Returns room device is assigned to.
    API version: (api.get("/devices/<deviceId>") or {}).roomID

    Please login or register to see this code.

    Fibaro. Return name of room
    API version: (api.get("/rooms/<roomId>") or {}).name

    Please login or register to see this code.

    Fibaro. Return name of room that deviceId is assigned to
    local roomId = fibaro.getRoomID(deviceId)
    return roomId and fibaro.getRoomName(roomId)

    Please login or register to see this code.

    Fibaro. Returns section id that devices belongs to
    API version: api.get("/rooms/"..fibaro.getRoomID(deviceId)).sectionID -- assuming deviceId exists.

    Please login or register to see this code.

    Fibaro. Returns type of device. Ex. "com.fibaro.binarySwitch"
    API version: (api.get("/devices/"..deviceId) or {}).type

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro. Schedule a function to run after <ms> milli seconds. Equivalent of setTimeout(fun,ms). 
    To schedule a function after 0 ms (fibaro.setTimeout(0,fun)) can be useful instead of calling the function directly as it will give time to other scheduled function in line for running to start. It also gives time to UI and http requests. Note though that setTimeout doesn't return the value from the function, it returns a reference to the scheduled timer.  See also

    Please login or register to see this link.

    >

    Please login or register to see this code.

    Fibaro. Cancels a function scheduled with setTimeout. Equivalent of clearTimeout(ref). 

    Please login or register to see this code.

    Fibaro. Halts the processing in the QA/Scene for the specified time (milliseconds). Note that no other tasks can run in a Scene/QA during that time. Like processing button clicks, http requests, or setTimeout timers.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro. Returns a Hierarchy object-

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Json. Decodes a json encoded string into a Lua table

    Please login or register to see this code.

    Json. Encodes a Lua object into a json string representation.

    Please login or register to see this code.

    Json. Utility functions (of limited use)

    Please login or register to see this code.

    Fibaro?.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro. 

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Std.Lua. 

    Please login or register to see this code.

    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    Std.Lua. Issues an error when the value of its argument v is false (i.e., nil or false); otherwise, returns all its arguments. message is an error message; when absent, it defaults to "assertion failed!"

    Please login or register to see this code.

    Std.Lua

    Please login or register to see this code.

    Std.Lua

    Please login or register to see this code.

    Std.Lua. Returns three values: an iterator function, the table t, and 0, so that the construction
         for i,v in ipairs(t) do body end
    will iterate over the pairs (1,t[1]), (2,t[2]), ···, up to the first integer key absent from the table.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua.

    Please login or register to see this code.

    Std.Lua. If index is a number, returns all arguments after argument number index. Otherwise, index must be the string "#", and select returns the total number of extra arguments it received.

    Please login or register to see this code.

    Std.Lua. Tries to convert its argument to a number. If the argument is already a number or a string convertible to a number, then tonumber returns this number; otherwise, it returns nil.
    An optional argument specifies the base to interpret the numeral.

    Please login or register to see this code.

    Std.Lua. Receives an argument of any type and converts it to a string in a reasonable format. For complete control of how numbers are converted, use string.format.

    Please login or register to see this code.

    Std.Lua. Returns the type of its only argument, coded as a string. The possible results of this function are "nil" (a string, not the value nil), "number", "string", "boolean", "table", "function", and "userdata".

    Please login or register to see this code.

    Std.Lua. Returns the elements from the given table. This function is equivalent to
         return list, list[i+1], ···, list[j]
    except that the above code can be written only for a fixed number of elements. By default, i is 1 and j is the length of the list, as defined by the length operator

    Please login or register to see this code.

    Std.Lua.

     

    String.
    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    For string/regexp patterns see

    Please login or register to see this link.

    Note that string.split and string.starts is added in QAs and is not part of standard Lua

     

    table
    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    Given a list where all elements are strings or numbers, returns the string list..sep..list[i+1] ··· sep..list[j]. The default value for sep is the empty string, the default for i is 1, and the default for j is #list. If i is greater than j, returns the empty string.

    Please login or register to see this code.

    Inserts element value at position pos in list, shifting up the elements list[pos], list[pos+1], ···, list[#list]. The default value for pos is #list+1, so that a call table.insert(t,x) inserts x at the end of list t.

    Please login or register to see this code.

    Moves elements from table a1 to table a2, performing the equivalent to the following multiple assignment: a2[t],··· = a1[f],···,a1[e]. The default for a2 is a1. The destination range can overlap with the source range. The number of elements to be moved must fit in a Lua integer.
    Returns the destination table a2.

    Please login or register to see this code.

    Returns a new table with all arguments stored into keys 1, 2, etc. and with a field "n" with the total number of arguments. Note that the resulting table may not be a sequence.

    Please login or register to see this code.

    Removes from list the element at position pos, returning the value of the removed element.

    Please login or register to see this code.

    Sorts list elements in a given order, in-place

    Please login or register to see this code.

    Returns the elements from the given list. This function is equivalent to
         return list, list[i+1], ···, list[j]


    Math. 
    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    Please login or register to see this code.

    When called without arguments, returns a pseudo-random float with uniform distribution in the range [0,1). When called with two integers m and n, math.random returns a pseudo-random integer with uniform distribution in the range [m, n]. 

    Please login or register to see this code.

    For a started QA the random sequence will always be the same. To make it start on differen values a seed can be given. Note, don't use os.clock() as that gives the time the QA have run, which tends to be the same every time the QA starts.

    Please login or register to see this code.

    bit32. 
    Std. Lua. See

    Please login or register to see this link.

    Lua 5.3 has built-in 64bit operators

    Please login or register to see this code.

     

    UTF8 
    Std.Lua. See

    Please login or register to see this link.

    Please login or register to see this code.

    Std.Lua. Receives zero or more integers, converts each one to its corresponding UTF-8 byte sequence and returns a string with the concatenation of all these sequences

    Please login or register to see this code.

    Std.Lua. Returns the codepoints (as integers) from all characters in s that start between byte position i and j (both included). The default for i is 1 and for j is i. It raises an error if it meets any invalid byte sequence.

    Please login or register to see this code.

    Std.Lua. Returns values so that the construction
         for p, c in utf8.codes(s) do body end
    will iterate over all characters in string s, with p being the position (in bytes) and c the code point of each character. It raises an error if it meets any invalid byte sequence.

    Please login or register to see this code.

    Std.Lua. Returns the number of UTF-8 characters in string s that start between positions i and j (both inclusive). The default for i is 1 and for j is -1. If it finds any invalid byte sequence, returns a false value plus the position of the first invalid byte.

    Please login or register to see this code.

    Std.Lua. Returns the position (in bytes) where the encoding of the n-th character of s (counting from position i) starts. A negative n gets characters before position i. The default for i is 1 when n is non-negative and #s + 1 otherwise, so that utf8.offset(s, -n) gets the offset of the n-th character from the end of the string. If the specified character is neither in the subject nor right after its end, the function returns nil.

    Please login or register to see this code.

    Luabind.

    Please login or register to see this code.

    Luabind.

    Please login or register to see this code.

    Luabind.

    --------------------------------------------------------------------------------------------------------
    Userdata: (typically object that are create by C/C++)
    --------------------------------------------------------------------------------------------------------

    Please login or register to see this code.

    Fibaro. Base class for all devices?

    Please login or register to see this code.

    Fibaro. Base class for QuickApp and QuickAppChild. Methods in common is defined here. Like debug/trace etc.

    Please login or register to see this code.

    Fibaro. Class that creates hierarchy object. See above.

    Please login or register to see this code.

    Fibaro.  Class that creates your QuickApp object. E.g. self

    Please login or register to see this code.

    Fibaro. Helper class to manage child devices.

    Please login or register to see this code.

    Fibaro. I don't know how this is used....

    Please login or register to see this code.

    Json. Various lpeg pattern objects

    Please login or register to see this code.

    Fibaro. Wrapper for MQTT library.

    Please login or register to see this code.

    Fibaro. Wrapper for MQTT library.

    Please login or register to see this code.

    Fibaro. Wrapper for MQTT library.

    Please login or register to see this code.

    Fibaro. HTTPClient class. Most likely a wrapper for Luasocket.

    Please login or register to see this code.

    Fibaro. TCP socket class. Most likely a wrapper for Luasocket.

    Please login or register to see this code.

    Fibaro. TCP socket class. Most likely a wrapper for  Luasocket.


    --------------------------------------------------------------------------------------------------------
    QuickApp methods:
    --------------------------------------------------------------------------------------------------------

    Please login or register to see this code.

    Fibaro. See this tutorial on the QuickApp class and how it's implemented <

    Please login or register to see this link.

    >

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.


    --------------------------------------------------------------------------------------------------------
    QuickApp properties:
    --------------------------------------------------------------------------------------------------------

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Please login or register to see this code.

    Fibaro.

    Edited by jgab
    Link to comment
    Share on other sites

    8 hours ago, jgab said:

    I guess there are room for improvements..

    Is there a need to sync global variables between HC2 and HC3?

    Device interfaces like battery and power status?

    Other types of devices then the basics...?

    Syncing global variables: no need because the aim of sharing devices is to facilitate a smooth migration from HC2 to HC3. Then the global variables are created in HC3 in order to use in HC3 scenes and QA's.

    Device interfaces like battery and power status?: yes, because all attributes of HC2 devices are useful in HC3.

    Other types of devices then the basics...?: Yes I have a Danalock lock device and a Nest thermostat.

    Link to comment
    Share on other sites

    22 hours ago, jgab said:
    23 hours ago, jgab said:

    Try this - I spotted a bug..

    Please login or register to see this attachment.

     

    I deleted the old HC2Proxy QA and installed this one. Problem is that all HC2 device ID's have been changed. Is there a way to avoid this?

    Parameter HC2ID was nil in the previous QA but has an number in this version. Do I have to fill this value, if yes by what?

    The test blockscene with toggle binary switch still can only turnOnn.

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...