XTension Version 9.4.21
Download: XTension v9.4.21 (build 1007) 8/17/2019
zipfile md5 = f0350d2af3b8f1bc3255af18cd6c9644
Download for Catalina: XTension 9.4.21 Notarized (build 1007) 8/17/2019
NOTE! not all plugins are included in the Catalina build. Please see the Catalina note below for more info.
Minimum System Version for this release is OSX 10.10
Mac OSX Mojave has changed the requirements for scripting of other applications. You MUST force any script to run that contacts a different application when you upgrade and click “OK” when it asks for permission or your scripts will silently fail when they run later. See the Mojave Support Page for more info.
Mac OSX Catalina As of this moment I do not recommend that anyone update to OSX Catalina since it is still in beta. I am supplying a Notarized dmg version of XTension that will run on Catalina. The regular zip file release and any previous release version will likely not run at all. Please see the Catalina Support Page for more info. Not all plugins are Catalina capable at this time.
Many existing plugins were updated to 64 bit executables for the upcoming update to Catalina. This is not the same as creating a new plugin as I am doing for some and should not create any conversion difficulties and makes no changes to the XTension database at all. If you need to go back to the previous build for any reason this will not cause you any problems with changes to the unit types.
The following plugins are now 64 bit:
All the API 2.0 plugins are now 64 bit and compatible with Catalina going forward. Several of the legacy plugins remain to be re-built and will not run on Catalina at all.
- NEW: Groups can now be defined as Dimmable. Dimmable groups also have a checkbox for supporting color and color temperature settings. If any of those checkboxes are set then the detailed unit controls for the group will contain the appropriate controls for that data. The dim level as well as any color or color temperature data that you set when controlling the group will be sent to all the Units included in the group. Very useful for setting up fixtures with multiple bulbs in them, or for controlling all the dimmable or color capable devices in a room.
- NEW: Dark Sky weather data plugin. Not a replacement for the excellent Weatherman app, but I know some of us are having lots of problems with AppleScripting external apps in the latest OS versions and we need another way to get weather data that doesn’t require that to be working. Gets you access to all the Dark Sky forecast data as well as creating some really nice reports. See the Dark Sky Plugin page.
- NEW RFX plugin. At this moment the plugin supports only the original “RFXe” and Serially connected RFX devices. The original RFXe and RFX plugins will be going away in a future build and will never run on Catalina so please test the conversion and report any problems to me. Ton convert your existing RFX or RFXe interface first disable the interface, edit the interface and change the device type popup from either “RFX Ethernet Transceiver” or “RFX Serial Transceiver” to “RFXComm Transceivers” make sure to select “Legacy” as the protocol type below and then re-enable the interface. At this moment transmission is not supported. Please do not convert if you are using one of the other RFX interfaces or need the transmission features of the devices. More support for the newer devices as well as transmission is coming in a future version. Note that the plugin starts up in debug mode. To stop all the extra logging control click on the entry in the Interface list window and select “turnon debug mode” and then again and select “turnoff debug mode” This will be unset in the next build.
- NEW: A new Arduino interface is included in this build. The older one will not be converted to 64 bit so you must convert at some point before the next major release as I will be removing the old plugin at that time. The conversion is just editing your existing Arduino interface and selecting the New Arduino interface from the popup, saving and re-enabling the interface. If you experience any problems with the conversion please let me know.
- NEW: If a plugin sends an error for a Unit, such as the Vera or the Hue hub telling us that a unit is no longer responding, you can now trap that error in the Units On script by creating a “on unitError( errorNumber, errorMessage)” handler. This is also available in the “insert” toolbar menu when editing a Unit’s On script. The errorNumber will be non-zero in the case of an error condition and zero in the case of clearing an error condition. In the case of it being zero the errorMessage will be empty.
- NEW: The executable is now a “Hardened” runtime. This has little meaning in OS versions prior to Mojave but will be required in future versions of Mojave and Catalina going forward. In my testing this caused no problems for me at all but please let me know if the OS refuses to let you do something that you were doing previously.
- Change: plugins that do not define any Unit types will no longer be listed in the Interface popup when creating a new unit. This will avoid the errors that would be logged if you previously tried to do this. For example the Alexa plugin is for sharing only, it doesn’t define any unit types of it’s own. Previously if you tried to create units assigned to an Alexa interface it would have thrown confusing errors to the log when you tried to save them.
- Change: Groups now draw “Group” in the Device Type column of a List window rather than just being blank.
- Change: Discrete (non-dimmable) units will now show their unit label, if any, in the value column rather than continuing to display the up or down arrow as they did previously.
- Change: The initial loading of the database is now threaded. This was necessary as a Catalina fix. A known consequence of this is that the database backup window that happens when updating opens behind the startup progress window instead of in front of it as it used to do. I’ll sort that out in a future version, for now you can manually move the startup progress window out of the way if you wish to watch the progress of the database backup. This will clear up several things that were mildly annoying about longer startup times. For example the application will no longer be shown as “not-responding” during the startup phase in the activity monitor and such.
- Change: Some minor changes to the Background Task window layout to better show longer status displays without truncating them so much.
- FIX: The preset color display when editing an RGB Pseudo now loads properly without throwing errors to the log.
- FIX: Few more minor changes to the threaded database save to eliminate the last known possible hang that folks were seeing.
- FIX: The Alexa plugin will better recover from a situation where the network goes down and then recovers sometime later. Previously it could stay offline if that happened.
- FIX: When doing a Search some comparisons were done considering case which could have caused some matches to fail. All searches are now done without considering case.
- FIX: APC Status plugin. If you are connecting to a CyberPower UPS with the APC Status plugin and happened to do a poll while it was performing it’s self test XTension would consider that value a failed self test. It will now recognize that the device is doing a test, not turn on the self test failure unit, but it will display “Testing” as the default label for that Unit until the test is finished.
Plugin API changes and fixes
- The “Plugins” folder in XTension has been moved inside the Resources folder as required by Catalina.
- NEW: plugins can now add separators to the popup menu of Unit types to make larger lists more readable.
- Changes to the plugin interface builder helper app so that interface control tab order is honored. Previously this could come out as random leading to very confusing interface behavior as you tried to tab from one field to another. It will take a few more releases before I can roll all those fixes into every existing Plugin but for newer ones it will just work.
- FIX: Fixes to a couple more places where Unicode characters would have potentially caused errors.