17.0.46 1. The _IsRunning expression function now takes an optional second parameter. If a second argument is supplied and has the value "yes", then the function returns true if the program is currently running *or* is waiting to start again because it uses the "run again" option. Without the second argument or if that argument is "no", only if the named program is currently running does the function return YES. 3. If the first argument to the _DarkSky function is a number, that number is assumed to be a zip code and that location is used to fetch weather data. The remainder of the arguments are then taken to be the path to the data item wanted. For example, this displays the current temperature at the installation location: void = _PgmNote("Temperature at home is " + _DarkSky("currently", "temperature")); This displays the current temperature in Palm Springs California: void = _PgmNote("Temperature in Palm Springs is " + _DarkSky(92240, "currently", "temperature")); 4. Added 6th argument to programs that get started from an Alert. The 6th argument is text - "red" or "yellow" - that shows the current level of the alert. 5. Added configuration to designate a program that gets started after *any* alert that gets to a red or yellow level. If an specific alert has a program to start configured for it, that program is started followed by a start of this new "catch all" program. 6. Added _HCAShutdown (seconds-to-shutdown) 7. Added _DesignJson function needed by Hubitat connector. 8. A problem with the mechanism to change expressions that reference a device/room/folder name when that name is changed has been fixed. Previously some expressions that didn't reference the changed name were updated by mistake. 17.0.43 1. If a program is marked as "when program running queue a trigger for execution when current execution complete", and the program has parameters that are supplied by the system: An email reception, calendar action, alert handler, inbound message from a service, tile tap action, port reception, etc, the parameter values for the queued trigger were lost. Now fixed. 2. If the StartProgram expression function was used, for a program with eight parameters, the value of the last parameter would be incorrect when the program started. 3. When renaming a program in some rare cases HCA would terminate. Now resolved. 4. When creating a device of a class of type "Sensor", HCA would do that incorrectly so the device would appear as an on-off device. A sensor should not have an ON or OFF control option. Now resolved. 5. A program, triggered by a port reception from a "Generic Server" interface now is provided a second parameter which is the IP address of the server client. 6. The Port I/O element when the interface selected is a "Generic Server" now has an additional destination choice: "Reply to reception from client" which sends the transmission to the client that sent the message. 7. HCA was not handling correctly the "Generic Server" interface when there were multiple simultaneously connected clients. Now resolved. 8. A "Generic UPB" device when requesting status would correctly update the device icon in the left pane but not the right. Now corrected. 9. Added the expression function _HexToAscii. See the doc for more info. 10. An obscure problem with devices implemented by a class when attempting to retrieve their status was fixed. In some cases if status from more than one class device was being retrieved and one device status retrieval failed, the next device in the queue could also incorrectly fail. 11. A memory leak was fixed in the "Statistics" tab of a device properties. If that tab was made the current tab, then switched to another tab and then back to the Statistics tab, a leak would happen. 12. Added a "Disable" checkbox to the Program-Note element. If ticked will disable that program note when executed so it will not add its message to the viewer. 13. During the days between Winter solstice and the Vernal equinox the HCA Status dialog didn't display the seasonal info correctly. Now fixed. 14. Added the expression function _WeatherClear("class-name") to clear all the observation data being managed by the named weather class. 15. HCA wasn't correctly logging and alerting when a control operation (an ON, OFF, Set-Percent, etc) on a device managed by a class failed due to a timeout. Now corrected. This may have an effect you should know about. Class devices support a Get-Status operation. For devices that are of an "Unsupported" class - these are Hubitat and Smart-Things devices that when imported HCA doesn't support so are assigned to an "Unsupported" class - and you attempt to get their status, you will now get an error. This could effect startup status requests if you have that enabled in HCA Options. This could cause a "device didn't reply to a status request" alert. Either delete unsupported devices or on the device "Log" tab, tick the checkbox for the device to opt out of alerts. 16. The "Explorer" in the Visual Program debugger - click on the "gear" like icons - now shows the name of the program that allocated a design, file, or json handle if the explorer shows it "in use". 17. Change #18 in 17.0.37 was incorrectly implemented. In some cases handles opened by the program and not programmatically closed when the program completed, would not be closed by HCA as part of program termination cleanup. Now corrected. 17.0.40 1. When entering the Control UI, the title bar color could show an incorrect color. Now resolved. 2. The Compute expression functions _On, _Off, _DimToPercent, _DimUpPercent, _DimDownPercent didn't always allow programs as the target. Now do. 3. Updated _GetObjectProperty (See change #11 in 17.0.39 below) to implement these property names: "FixedId" "SupportsOn" "SupportsOff" "SupportsSetPercent" "ProgramAsDevice" "FriendlyName" 4. Made changes to the Visual Programmer connection drawing algorithm. 5. When executing schedule entries for devices that are marked as confirming command by status, in some cases the device would respond that the command was received correctly but the command was retransmitted as if it was not. This is now corrected. 17.0.39 1. Added the Compute function _HostNameToIP. It takes one argument and returns a bool result if it failed - use _isBool to test - or returns a string if it worked. x = _HostNameToIP("hcatech.com") x is assigned "66.113.102.195" 2. If a host name is used with the PING element and that host name can't be translated to an IP address, the failure path of the PING element is taken with no program error. Previously this caused a program error and the program terminated. 3. The energy meter tile could redraw when not necessary because the house power didn't change. Now corrected. 4. A problem with the HUE programmer element has been corrected. It could show fewer rooms/groups than existed when choosing a scene operation. Now corrected. 5. The print option to show all tags and usages didn't report on tags on rooms. Now does. 6. When creating a tag change trigger, the UI didn't allow for tags on rooms. Now corrected. 7. The "Referenced by" tab in a folder/room properties didn't show all uses as it should have. Omitted were schedule entries, log filters, triggers that referenced a room, and program elements that referenced a room (on, off, auto-off, test, and change-icon). This is corrected. 8. Because of change #7, when a room was deleted, HCA didn't cleanup all now invalid references in schedules, programs, filters, and triggers. Now does. 9. Removed the Compute functions _ChangeHeat, _ChangeCool, _ChangeFan, and _ChangeMode These have been obsolete for a while now and you should be using the _SetThermostat function instead. 10. Added the ability for expression functions that take an object name to instead use the fixed id prefixed by a 'U' like the server interface. If you don't know what this is all about then you do not need it. 11. Added the expression function _GetObjectProperty. This function takes two arguments: The name of an object and the name of a property given as a text string. It returns the value of the supplied property for that object. Currently these properties are implemented: "FixedId" "IsDimmable" 12. Added to the expression builder these functions. They are all documented in the expressions chapter but where not available for selection in the expression builder. - UTCToLocal - LocalToUTC - AlertLevel - HueColorCreate - Hue - HostNameToIP - IconExists - ModifySchedule 17.0.37 1. When a power track graph is shown in a tile, the Y axis labels and rules are now shown. 2. If a device was marked as "power track" and a graph was created for it, and then if the power track setting was cleared for that device, and if the properties of the graph was opened and then closed, then HCA would terminate. This was because no check was made for having selected a device or room in the graph setup tab. Now that check is made and an error appears warning you that you have not selected a device. 3. Modification of change #32 in 17.0.36. Any device that has the "power track" checkbox enabled can participate in a graph. In 17.0.36 an additional test was made based upon the availability of the power track file. This test didn't work in client-server mode as the file is only available on the computer running the server so may not be available on the computer running HCA as a client. The test was changed to allow selection of devices that don't have the "power track" property enabled but do have the wattage greater than 0. The test for the existence of the power track file was removed. 4. Added on the "HCA Options" "Client Server" tab a button to have the server send a message to any connected control-only clients asking them to reload their design. Control-only clients don't receive updates to the design after connection. This means that any changes to the design made using HCA while connected to the server are not seen by connected control-only clients and so their design became out-of-date. The server also has a menu selection in the Tools menu for this. The Windows Client is the only client currently implementing the "reload" request. 5. A continuation of change #28 in 17.0.36. The change made it possible to see the program error if the "Run to breakpoint" operation was used in the debugger. If the program was executed step-by-step, the error wouldn't be shown. Now corrected. Also the debugger could say there was an error - and show no message - when there really wasn't an error. Now also corrected. 6. When pasting elements into a program from the clipboard, HCA might not have reported the need to create local or global variables or if a pasted element references a non-existent parameter. When the program was run the variables are created if necessary and if a non-existent parameter was referenced a program error would result. So nothing awful happened. But it would have been better if the variables were created when the program elements were pasted into the program and any invalid parameters noted. Now it does this. 7. Added to the daily report statistics section a listing of all open design, json, and file handles at the time of the report generation. Included is the program that did the open of the handle. 8. When HCA starts it added to the log a list of all those devices and programs whose logging was disabled. This has now been removed. You can see those devices and programs with logging disabled or different than normal in the Log Configuration dialog. Select the "Log Usage" button in the "Tools" ribbon category. 9. Program compare tool. See release notes. 10. Second program viewer tool in the Visual Programmer. See release notes. 11. Compute and Compute-Test element text insert. A quick way to add the name of something (variable, parameter, etc) while editing a COmpute or COmpute-Test element without using the full expression editor. 12. The expression builder dialog that allows selection of function argument values has been improved. Variables are now split into local, global, and parameters. Selection for schedule names, tag names, and tile names was added. 13. A potential problem with the _SetThermostat function was corrected. Sometimes if fewer than 5 operations were used in the function, extra operations would be carried out with data from uninitialized values. Now corrected. 14. Program scratchpad. See release notes. 15. The messaging element in a program has configuration to provide a location for the program to continue at should the element fail. There is also a program option that says if that configuration provided in the element then a "program error" shouldn't be generated. That is implemented for the ZWave, Serial, HTTP, Camera, and Hue elements correctly but was incorrect for the messaging element. Now corrected. 16. Clearing a Most-Recently-Used display when in client-server mode could take a really long time for a large design. Now somewhat faster especially if the display objects is limited to just devices. 17. If a program uses the "trigger queue" feature and it is about to be restarted with a trigger on the queue, the program is first checked to see if it has become suspended or disabled since the trigger arrived. If so the any queued triggers are cleared and the program doesn't restart. 18. A problem with handle cleanup (handles from _JsonOpen, _DesignOpen, and _FileOpen) in programs when they finished could close handles open in other programs by mistake. This is now resolved. 17.0.36 1. When using the _TileUpdate function to change colors, label, text (for text tiles) or path (for image tiles) it would change those attributes in a way that modified the specification of the tile. This means that if the file was saved then that change became permanent. This was not as intended. A change was made to make it consistent with changing an icon label or image using a _IconChange function. That doesn't modify the design but makes only a temporary change. The TileUpdate function now operates in the same manner. 2. The text justification for a text tile was not supplied to the Windows client. Now is. To have this now correctly operate, the Windows client must be updated as well. 3. The _DarkSky and _Wunderground functions now return -999 if the data from the internet can't be retrieved. Previously in some cases a program error happened. This change makes it consistent with how _WeatherGet handles the same errors. 4. The _Hue function now returns a BOOL value to say if the operation worked. 5. When updating a tile, in some cases a case sensitive comparison of the tile name was made so that a tile named "Library" wasn't updated if the change function used "library". Now changed to be like other places in HCA where a case insensitive compare on object names are used. 6. In the Weather-Test element support was added for handling an inability to retrieve weather data. This is now similar to other elements that communicate with external hardware or services and that communication could fail. 7. The _FileExists Compute function didn't handle a relative path correctly when in client-server mode. 8. The right-click menu choice when used on a folder/room that said: "Enable Logging for programs in this folder" was non-operational. The "Disable" menu choice was working. Now fixed. 9. When browsing the library, packages marked Beta are now shown along with all officially released versions of that package. Previously an extra feature code was needed but now isn't needed. 10. Program marked as "Implements device" (what we sometimes call a "Program as Device") have serialized execution like a class program. The advanced program properties now have a place to specify the program execution timeout. 11. In the VP Test element there was a checkbox to allow selection of other internally generated triggers. These were not useful and in some cases didn't work. They have been removed. If you used one of these in a Test element it will be removed when the design file is loaded and in so doing mark the Test element as "Not ready" and then the whole program as "Not ready to start". If there were any programs so changed, the design inspector will show them. There should be no need to use these internally generated triggers anymore when better features like parameterized programs can be used instead. 12. Handling of the empty string supplied as an argument to several functions and their effect has changed. Now when an empty string is used as an argument the function results are: _ObjectTagDelete (, "") -> No _ObjectTagExists (, "") -> No _ObjectTagGet (, "") -> No _ObjectTagSet (, "") -> No _TileUpdate ("", code, ...) -> No (and no tiles are updated) 13. Added the functions _LocalToUTC and _UTCToLocal that take a single date-time argument and do the conversion between local and UTC time. The conversion is done by Windows so the local time zone and DST setting as set in Windows is used. 14. Made a change so that programs that use _ClassLogSend and _ClassLogReceive will save the last control and last reception times. With this change the "Statistics" tab of a device managed by a class shows those times. 15. A small memory leak was fixed. If the properties of the programmer "Get-Status" element was opened, not modified, and then the properties dialog closed with OK, memory was not freed as it should have been. Now fixed. 16. When using the _ClassAddObject and _AddProgram programmer functions, the supplied room and device names were not trimmed of leading and trailing blanks as they should have been. Now resolved. 17. If HCA was instructed to open a file that had no contents (zero length), HCA would crash. This is now resolved. 18. Added a warning to the inspector. If a program has the "automatically run again" option enabled, and it is used in a Start-Program element that doesn’t have the "Don't wait" option enabled, a warning is generated. This is because when used without the "don't wait" option it will not be restarted after auto restart interval has expired. 19. For a class managed device, on the "Type" tab of a device's properties you can now manually change the class the device is managed by. Previously this was unchangeable. Take care with making changes as operation may not be as expected! This is most useful for Hubitat / SmartThings managed devices as the class determination from the device capabilities as reported by those interfaces can sometimes be difficult for the discovery to correctly determine which HCA class should manage it. 20. Tiles in a tiled display can now have rounded corners. This option is enabled in HCA Options on the "Display Pane" tab. The rounded corners reduce by a bit the available space in the tile for display. The latest Windows client was updated to also have this option. 21. There are some cases where, when HCA is acting as a client to a server, it has to evaluate an expression. For example, in a tile label or a text tile that contains an expression that generates the displayed text. Another example is the title bar when showing the control UI. In most cases this evaluation was done by sending the expression to the server for evaluation and then receiving back the final text to display. Now HCA, when acting as a client, looks at the expression and if it is sufficiently simple, the evaluation is done on the client itself and not sent to the server. 22. The handle explorer in the debugger was not displaying correct information for file handles after a handle close was attempted. 23. If a program used _FileOpen and the open didn't work, a file handle was allocated anyway and wouldn't be closed when the program terminated as was supposed to happen. Now corrected. 24. If a relative path is given to the _FileOpen expression function it now creates/opens a file location more in line with what other relative path operations in HCA does. 25. The _Status function when used with programs could generate an error when a valid program name was supplied. Also the result didn't show if a program was on the "Hold until" queue. Now both corrected. 26. The expression function _LastControlTime now works for programs and is the time the last execution of the program occurred at. 27. If the program notes viewer was closed in a "pinned" state then when reopened even though the pushpin shows unpinned, the viewer was inoperable until pinned then unpinned. Now resolved: When opened the view is in the unpinned state and operational. 28. In client server mode, if a program encountered an error and the debugger was started on a client, the reason for the error wasn't shown. Now is. 29. A device marked as disabled could still be visible on a client. Those devices shouldn't have been made available to clients. 30. The expression function _LastReceptionTime would generate a program error if the name of a program-as-device was provided as an argument. This shouldn't have happened as a program-as-device should be treated as a device. Now corrected. 31. Now possible to modify the Y-Axis labels and the graph title for historical power graphs. Open the properties of the graph and those options are now available. 32. Now possible to create power track files outside of the HCA system. If the file has the correct name, location, and format, it will be a possible choice when setting up a graph even if the device isn't marked as "Power track". 33. Some programmer Compute element functions can generate a program error. In those cases the logged error - or what is seen in the debugger - didn't always show all the arguments to the failing function and that could make it difficult to determine the problem. Now the message includes all the function parameters and some messages have been improved to be more descriptive of the problem. 17.0.35 1. When in client-server mode, getting the status of a "Class Program" managed device like Hubitat or SmartThings, the client wouldn't wait long enough. It should wait for the same amount of time as specified in the class program execution limit as configured in the program advanced options. Now does. 2. The class program execution limit, specified on the program advanced options, was 10 seconds. Now increased to 60. 3. Added the _Hue expression function that is very similar in function to the Hue programmer element. The first argument to the function is a code that determines the operation Arg1: Code 0 = On Arg2: Device or Hue group name Arg1: Code 1 = Off Arg2: Device or Hue group name Arg1: Code 2 = Set to percent Arg2: Device or Hue group name Arg3: Percent Arg1: Code 3 = Set to color Arg2: Device or Hue group name Arg3: Color name or if providing the color by HSB: H Arg4: S Arg5: B Arg1: Code 4 = Set group to scene Arg2: Hue group name Arg3: Hue scene name Arg4: Percent, if omitted defaults to 100% 4. If after entering friendly names in the External Assistant configuration dialog, one or more of the names are found to be on the potentially "invalid names" list, if HCA is instructed to use the names as entered, HCA would complain if you opened that object and selected its "Name" tab. Now doesn't. It saves a reminder to not complain about the friendly name for that object. 5. The Server "Show Connected Clients" popup, when changing its size by dragging bigger or smaller didn't correctly reposition the "Close" button. Now does. 6. For a device, the "References" tab was incorrect and didn't show if a device was referenced by a program where the device was used in a Hue, Auto-Off, r Camera element. Now corrected. 7. During a delete of a device, the daily report configuration where the status of that device was selected to be included in the report wasn't correctly cleaned up to remove that now deleted device. Now corrected. 8. A change was made to correct some mistakes in cloud connection handling when the connection has dropped and is being restored. 9. Added a printing option to show all object tags, their values, and where used if it can be deteremined. 17.0.34 1. AlertClear was done in a very inefficient manner and could have resulted, when in C/S mode, a timeout from the server. Now corrected. 2. Suspend and Resume when performed on a named schedule entry should effect all schedule entries with that given name. The suspend/resume element UI was not presenting it that way nor was the implementation of the VP element done that way. Now corrected. 4. When supplying a name to a schedule entry it should have allowed more than one entry to have the same name. This was not implemented correctly and is now corrected. 5. In some cases a device or schedule entry could be suspended and then immediately reenabled. This was timing dependent, but it did happen. Now resolved. 6. Added _ModifySchedule expression function a more capable replacement for _ChangeSchedule The first argument to ModifySchedule is a code that defines what the operation is. This is followed by up to 7 additional arguments. The return value is 1 (yes) if it worked and 0 (no) if it didn't. Arg1: Code 1 = Create schedule Arg2: Schedule name Arg3: [Optional] Name of parent schedule Arg1: Code 2 = Delete schedule Arg2: Schedule name Will not delete and return an error if a reference is to it in the design. For example, in a Change-Schedule element. Arg1: Code 3 = Clear schedule Arg2: Schedule name Arg1: Code 4 = Create schedule entry Arg2: Schedule name Arg3: Entry name (can be "" for an unnamed entry) Arg4: Target name (device, program, or group being scheduled) Arg5: On code (0=nop, 1=atTime, 2=sunrise, 3=sunset) Arg6: On data (if Arg5 is 1 then data is a time, if Arg5 is 2 or 3 then data is a signed # of minutes) Arg7: Off code (0=nop, 1=atTime, 2=sunrise, 3=sunset) Arg8: Off data (if Arg7 is 1 then data is a time, if Arg7 is 2 or 3 then data is a signed # of minutes) An ON entry is created if arg5 and arg6 are supplied and arg7 and arg8 are omitted An OFF entry is created if arg5 and arg6 are omitted or arg5 is 0, and arg7 and arg8 are supplied An ON-OFF entry is created if args5, arg6, arg7, and arg8 are supplied Arg1: Code 5 = Delete schedule entry Arg2: entry name Arg1: Code 6 = Modify schedule entry Arg2: Entry name Arg3: On code (0=nop, 1=atTime, 2=sunrise, 3=sunset) Arg4: On data (if Arg3 is 1 then data is a time, if Arg3 is 2 or 3 then data is a signed # of minutes) Arg5: Off code (0=nop, 1=atTime, 2=sunrise, 3=sunset) Arg6: Off data (if Arg5 is 1 then data is a time, if Arg5 is 2 or 3 then data is a signed # of minutes) When modifying an existing schedule entry, the ON or OFF clause is modified if data is supplied or that part of the schedule entry is unmodified if the ON/OFF codes are 0 (for no operation) 7. In the HTTP Visual Programmer element, the timeout could be set to any value but the up/down buttons in the control were limited to 1 to 10. Now changed to 1 to 60. 8. Added "HCA Status" menu choice to the HCA Server. 9. When using the Google Assistant, HCA wasn't correctly notifying the HCA Cloud of device status changes to be passed on to the Google Assistant Cloud. Now corrected. 10. The Stop-Program element in addition to stopping a program currently executing also removes the program from the delayed start or "Run-Again" queue. In some cases it didn't perform that action. Now corrected. 11. Added a "don't show this again" checkbox to the warning message when clearing the log. 12. Added a "don't show this again" checkbox to the message warning that if a program with an error is saved it will be not ready to start. 13. Added two menu picks for rooms and folders: The ability to enable or disable element-by-element logging for all programs in that folder or room. 14. Auto-off logging was improved to show when the timer expired. 15. Added ctrl-A (select all) to log viewer and program notes viewer. 16. In the Get-Status popup that shows the status reply, for Insteon keypads the button names, as entered into the device properties "Key name" tab, are now shown. 17. The Date-Between test in the programmer Test element didn't work for date ranges that crossed between two years. For example, where the start date was December 1 and the end date was January 15. Now corrected. 18. When showing the "Referenced By" tab for a class program, now the devices of that class are listed. 19. The server menu items Tools-Show Connected Clients is now a window that can be left open while other server actions are done. The window updates as clients connect and disconnect. 20. In some cases when the "Cloud connection" option was enabled, extra cloud connections were not cleaned up when necessary. Now are. 21. When in Control UI mode and a historical power track display for a room is seen, it is now no longer possible to double-click on a device in the list to focus the graph on that device. This is because it was then impossible when in control UI mode to restore the composite graph. 22. The tool opened from the "Protocols" ribbon category "Setup" button in the "UPB" panel was non-operational. Function has been restored. 23. The _VarValue expression function can now be used with parameter names in addition to local and global variable names. You must include the '$' character at the start of the string as you do in expressions. For example: v = _VarValue ("$param1"); 24. In the debugger when doing a step-by-step though a program and it encounters a start-program element that is marked with the "don't wait for execution of this element" option enabled, the step-by-step wouldn't work. Now does. 25. In the debugger when doing a step-by-step and a compute element with a _StartProgram function is encountered and the program started "returns a result", HCA could terminate. Now resolved. 26. Updated IR support for the GlobalCache company iTach Flex product line. 27. The "Overdue Devices" alerts have now been expanded to include programs. For a program "overdue" means it has not been executed at some time within the configured overdue time. 17.0.32 1. When importing a UPB network export file (file type UPE) any devices that are no longer in that file are removed from the HCA design. This didn't operate correctly in client-server mode. Now resolved. 2. In configuring a HCA keypad and a keypad button that starts a program, if that program takes arguments and those argument values are changed, in some circumstances the changes were not captured when OK is done. Now resolved. 3. When removing all devices from a power track "current power" graph, sometimes HCA would terminate. Now resolved. 4. The _AlertClear function didn't clear enough so that devices could still be listed in the alert log. Now a full clear is done. 5. The _AlertClear function when clearing those conditions that cause a device to visually show in an error state - the label in red text or a red box around the icon - was not removing that indication from the device when the alert was cleared. Now does. 6. After import from the online library, the display wasn't updated to update the "I have version" column. Now does. 7. The variable inventory display references section didn't show if a variable was used in an embedded expression in a tile label or in a text tile. Now does. 8. In some circumstances when operating in client-server mode and you copy and paste an object into a folder or room and the client would terminate while the server kept operating. Now resolved. 9. Using the HUE element when setting a color, the Brightness level was not used correctly. 10. A problem with displaying schedule entries was resolved when the schedule entry was for a room and not a device or program. 11. In the IP/Serial interface configuration for binary message, the 2 bytes of message length prefix was prepended to the message incorrectly. Now resolved. 12. If a device exists of a class that was removed, when configuring the log HCA could terminate. Now resolved. 13. A problem with false USB Disconnect events for the 2413U Insteon Powerlinc has been resolved. 14. Added limited support for sending messages via UDP. See the Port I/O VP element. 15. Improved Phillips Hue support by updating the Hue VP element to allow operations on groups as well as devices. Added _HueColorCreate function to allow preloading the HUE color table via a program. The function syntax is: _HueColorCreate ("color name", Hue, Sat, Brt, [optional yes/no, if yes means don't update color if already defined]) 15-September-2020 First public release of HCA 17.0.30. See the major release notes for complete information.