Posted: Wednesday Sep 23rd, 2009 03:20 pm |
|
1st Post |
Pgordon
Member
back to top
|
Having upgraded just recently from CF 2.2.3 to the latest 3.1.1, I seem to have - possibly coincidentally? - suffered a raft of failures, some of which probably aren't related, but this one I'm fairly certain is...
Some time ago I modified the keySwitchArm responses to test which keypad was being used to arm the system, so that I could ensure that KP2 - which is by my bedside could only ever arm to night mode.. (prior to this, I had inadvertantly set to away mode by mistake). This had been working perfectly until the first time I uploaded a config with the new version of comfigurator...
In CF 2, - using the response wizard - if you go through the wizard and select the appropriate options to test for (say) "IF KeypadID = 1" - when you hit OK to save that command into the response, the actual code that appears is: "IF KeypadID=65"
I.E. ID 1 is translated to the value 65, ID 2 to value 66, and so on... Upload this, and it worked perfectly, and my keypads behaved in the manner I required. I then subsequently opened that CCL file with CF 3.1.1, made a few tiny changes, and saved it as a new CCLX, and uploaded that. Only later - the next time I left the house, - did I notice that the away arm sequence at the final exit door was "different" - i.e. it wasn't announcing "please exit", and when I opened the door to leave I got a zone open error, and when I finally left the building the arm completed but there was no chirp from the external bellbox.
Only after I returned & checked the logs did I notice that it had armed to night mode instead of away mode. Obviously I initially doubted myself, and thought that I must have hit the wrong keypad button by mistake, but the next time I left I was very deliberate and double-checked my actions, and sure enough it was definately arming to night mode when it should have been going to away mode. So I checked the code in the response, and I noticed that ALL the If...Then conditionals were missing! Instead of containing this code: (which is what appears in CF2)
If SecurityMode = SecurityOff Then
If KeypadId = 65 Then
KeySwitchArm VacationMode
Do AwayModeResponse
End If
If KeypadId = 66 Then
KeySwitchArm NightMode
Do NightModeRespons
End If
End If
The response actually contained this code:
KeySwitchArm VacationMode
Do AwayModeResponse
KeySwitchArm NightMode
Do NightModeRespons
What I then did was to open my old CCL file with CF 3.1.1 to go & look at the response, and the attached graphic shows what I saw...
Clearly it didn't like the translated values for the keypad ID's that the older version of CF had substituted in the code in place of the 1-8 that were offered in the wizard and as a consequence, it looks like it just completely removed all the conditional statements from the response!
The most annoying thing about this is that as far as I can recall, there was absolutely no warning whatosever from CF 3.1.1 at any point that there were what it considered to be errors in the responses... - it perfectly happily opened the older CCL, (no warning), saved it as a new CCLX (no warning) and uploaded the config to Comfort (no warning). As a result some fairly crucial behaviour was FUBAR'ed.
I'm guessing that the values of 65, 66, etc. are the internal values for the keypads that correspond to ID's 1, 2, etc. and that Comfigurator has always translated the human-friendly ID number into the internal value? - and that older versions did that translation right when the response is being edited so that the modifed values are visible to the user straight away? - Has the new version changed this behaviour perhaps? - and potentially introduced a bug in the process such that any reference in a CCL file to a keypad ID value will be rejected as invalid?
To fix it I basically had to re-write the response using the response wizard in CF 3.1.1, reselecting the IF keypadID conditions, at which point CF3.1.1 saved the human-readable ID value in the response code shown in the UI - i.e...
If SecurityMode = SecurityOff Then
If KeypadId = 1 Then
KeyswitchArm VacationMode
Do AwayModeResponse
End If
If KeypadId = 2 Then
KeyswitchArm NightMode
Do NightModeRespons
End If
End If
Paul G.
Attachment: response_error.JPG (Downloaded 38 times)
|
Posted: Thursday Sep 24th, 2009 02:56 pm |
|
2nd Post |
Pgordon
Member
back to top
|
OK, it's getting worse... having re-written the response in the wizard in CF3.1.1 and uploaded it to Comfort, the system now won't keyarm to away mode from keypad 1 at all... When I press the "Away" button on KP1, absolutely nothing happens..
I did notice something that I thought was slightly odd...
In CF 3.1.1 this is the code that appears in the response editor:
If SecurityMode = SecurityOff Then
If KeypadId = 1 Then
KeyswitchArm VacationMode
Do AwayModeResponse
End If
If KeypadId = 2 Then
KeyswitchArm NightMode
Do NightModeRespons
End If
End If
And these are the action codes for this response:
73,0, 115,16, 73,16, 146,4,1, 72,4, 74,3, 146,4,2, 72,2, 74,23, 255
However, in CF 2.2.3, if I create *EXACTLY* the same response via the wizard, the code produced is this:
If SecurityMode = SecurityOff Then
If KeypadId = 65 Then
KeySwitchArm VacationMode
Do AwayModeResponse [Away Mode Response]
End If
If KeypadId = 66 Then
KeySwitchArm NightMode
Do NightModeRespons [Night Mode Response]
End If
End If
and the action codes for this response are:
73,0, 115,18, 73,16, 146,4,65, 72,4, 74,3, 73,16, 146,4,66, 72,2, 74,25, 255
And I note that the Keypad ID test in each is different - (73,16, 146,4,65) in CF 2.2.3 as opposed to (73,16, 146,4,1) in CF 3.1.1
It is my belief that CF 3.1.1 has completely mucked up the translation of the Keypad ID number into the internal value for this action reference. As a test, I knocked up another quick response in both 2.2.3 and 3.1.1 - the response code is simply:
"Keypad 2 Broadcast Disable"
Which in BOTH versions of Comfigurator produces the action codes:
139,66,0, 255
So clearly, for other actions CF3 *is* translating the keypad ID 2 into value "66" but in the case of my use of the "IF KeypadID" construct it is not doing so.
I believe I will have to revert to CF 2.2.3 until this is fixed...
Paul G.
|
Posted: Thursday Sep 24th, 2009 03:10 pm |
|
3rd Post |
Posted: Thursday Sep 24th, 2009 11:24 pm |
|
4th Post |
ident
Administrator
Joined: | Wednesday Aug 9th, 2006 |
Location: | Singapore |
Posts: | 3493 |
Status: |
Offline
|
back to top
|
Thanks for the detailed information
We are looking into this and if verified we will fix in the next release
|
Posted: Friday Sep 25th, 2009 10:39 am |
|
5th Post |
Posted: Saturday Jan 9th, 2010 05:19 am |
|
6th Post |
slychiu
Administrator
Joined: | Saturday Apr 29th, 2006 |
Location: | Singapore |
Posts: | 5500 |
Status: |
Offline
|
back to top
|
This has been fixed in Comfigurator 3.1.3
|
|