18.0.12 1. The HTTP programmer element properties dialog wasn't drag resizable. Now is. The edit controls for entering the text, data, and headers can now become longer. 2. A problem with some protocols implemented by HCA programs when attempting to retrieve status. If the status request failed HCA didn't always notice that failing status. The _IsOn and _IsOff expression functions are documented as returning -1 if the status poll failed and, in some protocols, this didn't happen. Now corrected. 3. Improved internal JSON parser which implements the _JsonOpen function. It now handles more valid but less used json items like a null node "{}". 18.0.11 1. Added the text size controls to make the text bigger or smaller in the properties dialog of the program-note element. 2. The Program-Note element let you enter multiple lines of text but when those lines appeared in the program-notes viewer they were all "glued" together in one line. Now corrected. 3. A program can now have up to 35 local variables. Up from 25. 4. Major re-do of the expression builder. - Drag-resizable dialog. - Better function descriptions. - Ability to select and insert other kinds of text. - For function arguments that are of a known type, like a device name or program name, now pre-selects that type when using the argument text insert popup. 5. Reworked (again) the number of tiles a display can have and be able to connect to the Windows client. There should now be no practical limit on the number of tiles on a display. This required changes to the client-server communication so you must use Windows client 16.0.17 or later. 6. The TileUpdate function now lets you qualify the tile name to a display. Suppose there is a display named "abc" with a tile named "x". You can now do this: _TileUpdate("abc:x", code, ...) and it effects only the tile "x" on display "abc". 7. The program started from a tile tap now has an additional parameter which is the displayName. 8. Added to the properties of a display the ability to start a program when the display becomes the current display - that is, appears in the display pane - and when it is replaced by another display. Generally, this isn't useful but for something like a HTML display or tiled display where the tile contents are created by a program it can be of use. 9. A client/server bug was fixed. If you did a copy of a tiled display and then pasted it into the design to duplicate it, the server would terminate. 10. Version 18.0.10 (see point #19 in its build notes) added a "Follow connector" pick to the connector elements in the visual programmer. For connector elements that are targets, in addition to connector elements that are sources for that connector number, now elements that handle errors or timeouts using that connector are also selected. For example, the HTTP element can continue execution at a connector element if the HTTP request isn't answered. "Follow connector" on the target connector element would now also select the HTTP element. 11. Removed the HCA Cloud ribbon category and all its function. 18.0.10 1. Visual programmer addition: A right-click on a start-program or stop-program element now gets a popup menu pick "View started program" to perform the "view program" operation with the program selected in the element. This also happens for an On, Off, or Dim element where the target isa program, a device that is managed by a class, or implemented as a program. 2. Added to the debugger explorer for files an indication if the file handle is open for reading or writing. Also better marked the current element of the enumeration when exploring design handles. 3. With the addition made to the Programmer Tools panel of a button to view another program (this was added in a previous released version), the button in the debugger that performs that same action became redundant. That button remains but the two different mechanisms for starting this action now do the same thing. In previous versions the actions were slightly different. 4. When viewing another program from the programmer - all methods for starting this action - you can now set or clear breakpoints. 5. Added an option to the "Debugger Options" from the "Tools" ribbon category to create a filter for the current program and use it in the auto opened log viewer(s). This filter causes the log to show only execution info from the debugged program and any program it directly starts using the StartProgram element or _StartProgram expression function. 6. Added to the debugger variables panel the ability to display tags and their values from objects and show updates as they occur. 7. The option in the debugger variables panel for globals was not fully operational. Now is. 8. The _PgmNote expression function always had a second optional argument but it wasn't used until now. If the second argument is supplied and has the value 1, then program notes viewer is cleared. The first argument - the note text - is ignored in this case. 9. Added to the debugger "Variables" window a "Copy to clipboard" button to put the variables info in CSV format on the clipboard. 10. A problem in the Hue configuration tool. The "Find Bridge" operation was not working. Now corrected. 11. The Visual Programmer variables popup Window wasn't operating correctly when you clicked the "Find Use" next to a variable or parameter. Now it does. 12. Added an optional 3rd parameter to the _ObjectTagGet function. If the tag is not found in the named object, a boolean NO is returned *unless* the new 3rd argument is supplied and then the value returned is the value of the 3rd argument. 13. Added a key to the icons in the debugger variables tool. 14. In the export wizard HCA lists those objects that must also be exported because they are referenced by something explicitly selected for export. This list was not always fully correct. Now hopefully is. Suppose program, "A" references programs "B" and "C". Program "A" is selected for export, and HCA would normally export "B" and "C" as well. In the export wizard you can tell HCA not to export "B" and "C". 15. After importing, HCA composes a message telling you that some imported objects referenced objects not included in the export. See the explanatory paragraph in #14 above. This message sometimes would list objects as "not found" but are in the design. This has been corrected. 16. Exports that contained programs that are in the same folder as a class program may have incorrectly changed the export into a class export. This is fixed. 17. When copy / paste a program section that contains a Start-Program element, and that Start-Program element has an assignment to a local variable of the started program's return value, into a different program, the paste didn't correctly handle locating / creating that variable in the program being pasted into. Now corrected. 18. Added new option to HCA-Options Visual Programmer tab: When adding a new element to the programming canvas, automatically connect to the previously added element. Can be enabled/disabled on a per-program basis. For the auto connect to work, the new element must be within two "cells" of the previously added element for it to automatically connect the two. The right-click popup menu on the programming canvas enables you to turn it on and off. 19. Visual programmer addition: A right-click on a connect element now has a "Follow connector" menu pick. When used on a connector element where it has only connections to it, then the current selection changes to the matching destination connector element. When used on a connector that has only a connection from it, then it selects all connector elements that connect to it. 20. Visual programmer addition: A right-click on a program note element now has a menu pick for enable or disable. This does the same thing as opening the properties of the element and ticking or unticking the enable checkbox. This is just a convenience. 21. Added to the "Ins" text insert tool in the Compute and Compute-Test elements another option of what to insert: Now includes function names. 22. Some program drawing anomalies were seen when using the "View Referenced Program" action in the Visual Programmer. The way that elements were connected was different in the visual programmer canvas from when viewed using this tool. Now corrected. 23. Added the "Ins" button for text inserts to the program element properties dialogs for program-note, show-message, change-icon, add-to-log, run, speak, email-SMS, and update-tile. 18.0.9 1. The Windows client didn't fully implement the changes for tile refresh as implemented in 18.0.6. This also required changing HCA to support that. The updated client is 16.0.16. 2. The number of tiles on a display has been increased. There is no fixed limit as it depends upon the kind of tiles and their properties. This change has been also made to Windows client 16.0.16 3. If the start-program VP element used the delayed start option and the target program had parameters, the values in the start-program element weren't given to the program when the "delayed start" timer expired. Now corrected. 4. Suppose you use the start-program element naming program "p" and using the delayed start option. If that program is already on the delayed start list for execution at a time in the future *and* any arguments are the same as what appears on the list, then the future execution time is changed to the new time. If the argument values are different, a new entry on the delayed execution list is created. Make sure that the "if the trigger is received while the program is running" option on the program properties "triggers" tab is set to "start a copy of the program and run it concurrently" to make this all work. 5. In the Visual Programmer, the image that appears when hovering the mouse or an element was incorrect in the case of the Start-Program element with a delayed start option. The seconds were not shown. Now are. 6. When using the tiled display editor, you could always select one or more tiles in the virtual display or list and then change size and position using the up/down actions for the X, Y, Width, and Height edit controls. Doing that changes all the tiles in the selection. Now if you select one or more tiles and then use the "Edit Tiles" button to edit a tile's properties, any change to the X and Y position is applied to the other tiles in the selection. For example, if you moved the edited tile "left 2 and up 1", that same change of "left 2 and up 1" is applied to the other tiles in the selection. 7. Individual tiles can now have rounded or square corners following the default as set in HCA Options or specified just for that tile. 8. Added to the "Duplicate Tile" operation in the tile editor the ability to duplicate 'n' times. 9. Added to Tools - Find the ability to find which objects have a specific tag value. 10. When creating a program with the "New Program Wizard" it attempted to choose an icon based upon the use of the program. Unfortunately it used the wrong icon name in many cases. Now corrected. 11. Added a Inspector button to the programmer Tools panel. This performs the same operation as the Inspector started from the toolbar but only reports on the current program. 12. Added new icon for program classes. 13. HCA-Options "Library" page has been removed. 14. Number of interfaces increased from 8 to 16. 15. The Log Configuration tool was redone. It is important to remember when using this tool that it lets you assign traffic to/from devices of a protocol to one of the three logs. This is not the same as assigning traffic from an interface to a log. Some protocols and interfaces are the same - a UPB interface implements the UPB protocol. Other protocols, like Phillips Hue or LIFX lighting, are implemented by a software class and do not have an interface. 16. Some interface configuration dialogs contained log selection controls that should have been removed. Log configuration now takes place in the Log configuration tool. 18.0.6 1.In some cases when using the find option in the Visual Programmer it could locate places where what you were looking for didn't exist - a false find. 2. In C/S mode using the UpdateTile element refresh option on a text tile wouldn't update the text tile. Now does. 3. Changed tile properties refresh option to allow for times in seconds or minutes, and to refresh by redisplay or by executing an HCA program. 4. Added new op code to _ModifySchedule to change the date part of a schedule entry. See updated expressions chapter in the user guide for details. 5. There was a bug in parsing expressions that allowed variables to contain illegal characters. This is now resolved. Variables can only contain letters, numbers, and the underscore character to be valid. 6. The visual programmer option to open another program while editing didn't provide the programs in alphabetic order. Now does. 7. The "Display on screen keyboard" option in the "Request User Input" VP element was no longer working. Now restored that function. 8. Using the left pane popup menu picks "Sort folders by name" and "Sort rooms by name" were stupid slow. Now reasonably faster. 18.0.5 1. In some cases the Tools-Find operation wasn't looking into objects that were marked as disabled. Now does. 2. In some cases the Tools-Find operation wasn't looking into expressions that occurred in Tiled displays where an expression was used in the tile label and in the text tile contents. Now does. 3. The Find operation in the programmer when looking for variables could miss some uses that are not in expressions - for example, test element when testing for a variable being either YES or NO. Now finds those. 4. A termination issue could happen if the "show variable usage" button in the visual programmer tools palette was used in some ways. Now corrected. 5. The _HCAVersionGE expression function was incorrectly implemented and would fail when it should pass in some cases. 6. The Find operation when looking into text in an element that contains embedded expressions wasn't always examining all expressions in that text. Now is. 7. The properties dialog for the email element wasn't correctly repositioning controls when it was drag resized. Now does. 18.0.3 changes from 17.0.56 1. Periodic device poll is now suppressed if the device is disabled or suspended. 2. Added new inspector check for programs: elements that can timeout but are not configured to handle that. 3. Added additional arguments to _ModifySchedule for creating new schedule entries (ModifySchedule code 4) as follows: Arg9: The action of the schedule entry encoded as: 0 = Nop 1 = set-to-percent 2 = decrease by percent 3 = increase by percent Arg10: The percent value used for codes 1, 2, and 3. Arg11: # minutes for the "vary" amount in the schedule entry. This is the same as can be specified when editing a schedule entry. If zero or omitted then the schedule entry has no "vary" clause. 4. Corrected a problem with _FileOpen when creating new files that are specified by a full pathname. Previously they could have been created in the wrong folder. 5. Library imports, where the library noted a dependent package, should have received warnings if the dependent packages were not in the design and then the import would be blocked. This was not working in 17.0.56 but is now corrected. 6. Small bug resolved in Tools - Find when searching for tags. In some very rare cases the "Go" option could cause an unexpected termination of HCA. Now resolved. 7. Removed the _InsteonBeep expression function. 8. Added the _SetSchedule expression function to change the current schedule. 9. Resolved a problem with export when a schedule was referenced by a program but not selected for export. Previously it would be exported anyway. Now it is not. 10. Removed the "Nest" button from the "Interfaces" ribbon category 11. The "Voice assistants" ribbon button has been moved to the "Interfaces" ribbon category from the "HCA Cloud" ribbon category. 12. The _DarkSky expression function remains but is not operational and is listed as obsolete in the inspector. 13. In prior versions any design, file, or JSON handle passed as an argument to a sub-program wasn't valid when used in that sub-program. Now it is considered valid if it was opened by the "calling" program. 14. Added the filter option on the Library browser "Only Beta". 15. The _FileLoad Compute function didn't handle a relative path correctly when in client-server mode. This is a similar fix to the problem with _FileExists made in 17.0.36. 16. The _ObjectTagExists function was documented to process 3 arguments - the 3rd optional - but the implementation was only using two. Now the implementation matches the documentation. 17. The "Find" operation on the "Tools" ribbon category now better retains the last item searched for when re-opened. 18. The "Find" operation on the "Tools" ribbon category when searching for Tag or Tile names didn't always report when used in a program Compute function. 19. The "Find" operation on the "Tools" ribbon category when searching for Text didn't always report when that text was seen in a program notes tab. 20. The "Find" operation on the "Tools" ribbon category and the Find operation in the Visual Programmer are now much better integrated. For example, you can now use "Find" on the Tools ribbon category to look for a compute function, tile name, or whatever. Its display is non-modal so can be left open. If you use the "Open" button on a program in the results, it opens to the VP tab of that program and highlights the first element with that found item. The find-next button in the VP tools panel will move to the next. Then you can close that program, go back to the non-modal Tools-Find window and open the next program and the first location where found in that program is selected. 21. In the Compute and Compute-Test elements when inserting text using the "Ins" button or the expression builder, the edit caret is now placed just after the insert point. Makes inserting or continuing to enter the expression easier. 22. The compute function _AlertAdd for the user alert codes (1-8) with the optional second argument would generate the correct alert in the alert manager listing but internally wouldn't assign that alert to the named object. This would make _AlertCount not work. Now resolved. 23. It a class has the maintenance option enabled and if the class program is suspended, the maintenance is no longer carried out. That is, the class program isn't started since it is suspended. 24. The expression function _GetObjectProperty (name, "FriendlyName") didn't function correctly if the name is a room name. Now does. 25. A change was made with how Tags are maintained when in client-server mode. Previously any tag change done by a program resulted in a message from the server to the client. The client is no longer updated immediately. Now the tags are retrieved when, from the UI, you open the properties of an object that can have tags (device, program, group, etc). Since in C/S mode all programs execute on the server this change should be invisible.