This is an important release for High Sierra users.
High Sierra Fix: This version is very important if you are running High Sierra, OS X 10.13 or higher. There is a bug in the OS that will cause any user app that is running once the screen goes to sleep to completely stall until the screen is woken up. Once solution is to set the screen to never go to sleep in the energy saver preferences. XTension version 9.3.8 will automatically wake the screen if the main app thread gets hung up by the error. It is not necessary to set the screen never to go to sleep with this version. If you have a physical screen attached to your XTension server you may wish to physically power it off as it will wake up periodically as XTension is affected by this problem. Apple has acknowledged this bug and so a fix may be coming in a future OS update, but I have no idea when or if that will actually happen.
New: You can now create a new Global Script named “Script Error Alert” that will be run whenever there is any scripting error. It’s sometimes hard to catch errors in the log and you may not notice something going wrong. This way you can arrange to get an email or a Prowl notification right when it happens so that you can go back and look. thisUnit, thisScript, thisInterface are all set to the proper information so that you can include them in your notification to help you find what has gone wrong. Obviously errors that might occur in the error handling script will not cause the error handling script to run again. If the error occurs in an attachment script handler the name of thisScript will be the name of the global script that is calling the attachment handler and not “attachments”.
New: Implemented the initialize controller verb for the Vera interface. You can now tell your Vera to restart using this verb.
New: You can now have as many doLater timers outstanding in a single script as you wish. It was previously limited to just one outstanding doLater call.
New: Initialize Controller Verb now supported for the AD2USB Interface. You can now ask that device to do a software restart via this verb.
New: The AD2USB interface will now attempt to send events for non-fault zones. This is somewhat implementation specific so if you have problems monitoring a non-fault zone please let me know.
New: You can now embed a web remote version of an XTension view into a different website frame. Use the link to your web remote interface but add an anchor hash that says view:name%20Of%20View something like: http://my.ip:theport/#view:myView and just the view will appear centered in the available web space. No menu bars or other controls will appear. This makes it easier to embed live data from XTension into your own custom interfaces. Just create an iFrame with that set as the URL for it. You can also use “list:listname” to directly embed a unit list. Other types are possible, let me know if you need this. If the user is not logged in then the login window will be send first to the frame. You should log in from the browser to the interface normally once first and save the session cookie so that it will not present you with the login screen after that.
The loadURL command has been updated to use a more modern backend. It will now support all currently valid encryption/SSL types as well as support for digest authentication and chunked transfer if necessary.
Fix: If there is no callback handler specified for a loadURL command and the return results in an error that information will be written to the log. Previously you would have had to handle the error and write it to the log in your own handler.
New: The send email command will now retry every 2 minutes up to 10 times to send an email that is rejected by the outgoing SMTP server for a non-fatal reason. Many SMTP servers can temporarily reject an outgoing email for any number of reasons. If you need more control over the number or timing of the retries to make this work with your specific server please let me know.
New: Added another “secret” unit type. If you create a dimmable pseudo with the name equal to “_thermal state” XTension will update this as the thermal state of the system changes. valid values are 0 for normal, 1 for you might begin to hear the fans, 2 for serious and 3 for critical. XTension will also suspend screen animations if the value is 2 or higher. There isn’t really anything else to do about this, but you may wish to log the change or send some other notification to yourself. Note that the hardware has to support this and not all hardware does. If you’re running on an older laptop then this should be supported. It doesn’t appear that current mac mini’s support this so the value will always be either 0 or -1 depending on how it’s implemented in the hardware.
Fix: Advanced Label syntax that includes multi-byte characters such as the degree symbol will now display properly in the unit list windows rather than as black boxes with question marks in them.
Fix: Units that have a non-filesystem safe character in their name such as a “:” will have that sanitized to a “-“ when their folder inside the database is renamed for them. This isn’t really important to most folks, but if you ever have to delve into your database in the finder manually it makes it easier to find the folder for the unit you’re concerned about. The same fix is applied to global scripts folders.
Fix: All unit selection popups in the Web Remote will now always present the units in alphabetical order.
Fix: If you restarted your web interface it was possible for an open web remote window to refresh so quickly that it got it’s request in before the database and configuration had been loaded into the web remote system resulting in a blank page. The web remote will now wait until the configuration is fully loaded before continuing to try to present an interface so it will no longer be empty in such circumstances.
Fix: Global Scripts are now also listed in alphabetical order in the Web Remote setup for a script button.
Removed some no longer needed debug logging in the web remote when loading up a unit icon control.
Fix: The AD2USB interface no longer starts up in debug mode by default spamming your log with unnecessary entries.
Fix: thisScript and thisUnit are now set properly during the call to any on init() handler you might create in a global script or a unit script.
The Web Remote no longer will load a Flash app to play video on browsers that didn’t used to support H264 HTML5 video. All supported browser types now support H264 HTML5 video so this is no longer necessary and has been removed. Flash is no longer required for any part of the interface on any browser.