User Tools

Site Tools



XTension Version 9.1

Released: 2/24/2017

Download: XTension v9.1 (build 954) 2/24/2017

Change Log

  • NEW Log Window and management system. Saving 100k log lines in memory for searching and filtering, show only log lines from the units, scripts or interfaces that you’re interested in. Create multiple log windows to show different filter and search settings. Full instructions and UI examples at Using the New Log Window
  • There are SO many new log features it’s almost impossible to list them all here, read the Wiki article linked above. Normal selection has returned so you can select individual words and not just whole lines. Any log data you do select and copy will be copied to the clipboard as styled text to preserve the font size and color of the lines.
  • Do go into the preferences first thing and increase the number of log lines saved in memory to the largest your memory will support. I’m running 100k and it’s not that much more of a load on the system at all.
  • NEW logging preference to log the milliseconds after the second of the date. No real point to this ;) But the data was available given the new logging backend so I made it available
  • NEW sending an OFF command to a Vera power monitor KWH unit will send the command to reset the KWH counter in the device if it supports it. Vera Power Meter Reset
  • NEW Vera Communication errors are passed through to XTension and will display an alert icon in List menus, Views and on the Web Remote if a unit has gone unavailable. Vera Error Display
  • NEW Vera Security units will create units in XTension and update units in XTension with the actual date and time of the event and not necessarily when XTension first saw the unit or when we received the command so in case of network or connection outages the Last Timestamp Will be displayed properly.
  • NEW when a Unit receives a new value any List displaying that Unit will highlight momentarily to indicate the reception of the update. This can be turned off for the list completely in the contextual menu for the list and the fade out can be disabled by turning on the “reduce transparency” setting in the preference.
    • Dont Log Changes for this unit. supresses logging of “my unit received new value of 75.3” type logging for units that may receive a lot of updates but for which you’re not interested in having them in the log at the exact moment they changed. This should be used sparingly people or you won’t have the info in your log you need to debug or figure things out after the fact.
    • OFF’s dont update Last Timestamp date. For some units like motion sensors we’re really not interested in the OFF time. The OFF script is still run normally after selecting this just that the last timestamp doesn’t update for receptions of OFF values. So when you look at the last timestamp of a motion sensor it will be the last time it sent an ON for motion and not the last time it turned itself back off sometime randomly later.
    • Show an Alert if the unit is inactive for longer than… Some units report in regularly like Temp sensors and X10 security sensors and a good way to know if they are losing their battery or if something has changed in the reception of them is to make sure the last battery check message is recent. This does not compare the timestamp which is when the last NEW value was received, but rather the lower level last message received value. The display is the same as the Vera communication alert mentioned above.
    • Average the last N values. Some number of previous values will be saved and if checked averaged when each new value is received. This can be helpful to even out chatty sensors without having to do a lot of scripting.
  • NEW options for the All Of Class Verb. “Errors” will return a list of all units for which the new Alert icon is displaying and “lowbatt” will return all the units for which a low battery flag is displaying.
  • NEW xUnit class properties xtLastError, xtLastErrorDate and xtLastErrorMessage. These will tell you if, when and why the unit is displaying it’s Alert icon. They are read/write properties so you can set the display of the error for a pseudo or any other unit for which it makes sense via scripting.
  • NEW Global Scripts now also show the length of time their last execution took in the Manage Global Scripts window after their last timestamp.
  • NEW added new “with always showing” option to the write log verb. If you specify that then the line you’re logging will show in every new log window regardless of filter or log mode settings. This is how the “MARK” command works and I exposed it for the verb as well just in case it could be useful.
  • NEW If a scheduled event is running a handler in a global script and not just the script itself the name of the handler will display in the scheduled event window.
  • NEW If you’re creating a new scheduled event to run a handler in a global script you can now select the handler from a popup rather than having to remember it’s name and type it in properly.
  • NEW xUnit Class property: xtPreviousValues will return, by default, the last 5 values the unit received but you can change that number in the Advanced tab of the Edit Unit window already discussed above. These values are saved and will be available even if you’re not averaging the value, the count of values to save is always used for this. For really large numbers of values or for historical information you should use the verbs to query XTdb
  • NEW the Start Idler verb will now accept Unit names to make callbacks into a units ON script or Interface names to make callbacks into an Interfaces script like the DIY script.
  • NEW tons of new units available for the Wifi Thermostat support. Including Humidity, temperature swing, energy saving mode and lots of others. This is largely untested since my model doesn’t support most of those things, but if you have the fancier model that lets you control humidifiers and air baffles all you need to control them should be in there now. Most of the new units do not automatically poll for their values as this seems to cause hangups in older models so if you want to get the current value of most of them you’ll have to query them. The query verb is supported for all of them. The humidity does poll automatically if the thermostat model supports it. I also updated all the libraries that was linked against and improved some of the networking back end so it should be more reliable in general. As I said I haven’t tested most of those units, so if you have any difficulty please let me know so I can collect some debugging data from you to fix them up.
  • NEW the Edit Group window now has the same toolbar options as the Edit Unit window.
  • NEW you can now access the internal script properties of Interface scripts like the DIY one by using the standard syntax that works elsewhere like “set myLocalThing to somePropertyName of xInterface “my DIY interface” “ and it will try to get somePropertyName from the Script in the DIY interface.
  • NEW Vera interface will now properly handle individual Humidity sensors which somehow never got implemented before.
  • FIX New Vera devices created for powermeter sensors are now sent without the “receive only” flag set so that you can issue them OFF command to reset their counters. Existing units you’ll have to edit before you can clear them.
  • FIX secondary “child” Vera units will be created with a valid value in them now rather than at some odd uninitialized number. If a valid value is available from the Vera that is, it’s not always the case.
  • FIX if you only changed the case of a Unit name it wouldn’t have realized that it needed to save itself. Changing the name or any other property even if the case hasn’t changed now properly results in an update to the database.
  • FIX Improved handling of remnant scripts that would have caused lots of strange logging at load but not any problems thereafter since they were all supposed to have been deleted anyway.
  • FIX Improved units that load with duplicate file names. Instead of creating multiple units with no name at all a unique index number is now appended to the unit name at load.
  • FIX If you click the “find this unit” toolbar button on the Edit Unit Windows toolbar and the Search window is already open somewhere behind your other windows it will be properly brought to the front before starting the search. Previously it would have searched for you behind your other windows and you’d not have known it did anything.
  • FIX the app will no longer potentially crash if you close the Search window while it’s running a search.
  • An example of the date formatting given the system date location settings will be displayed in the Log date format popup menu in the Preferences.
  • Removed the log mode settings from the Preferences window (all/database only/exceptions) since they are now options for individual log windows and no longer global.
  • Changed the name of the “exceptions” log mode to “exceptions and user log items” to better reflect that it’s really only suppressing black log lines.
  • Removed a large number of almost certainly unnecessary logging throughout the system. For example acks from the interfaces are only logged if they are in debug mode. Logging of raw UPB packets will only happen when in debug mode and many many more.
  • Vera log lines of messages to specific units are now logged in Black so they can be filtered out by selecting the exceptions log mode.
  • Put back in the automatic object resolution for the write log command. It should be possible again to log more applescript structures without having to always remember to add “as text” to the end of the line.
  • Received Alien Addresses from some of my more recent interfaces are now properly logged rather than ignored as before.
  • Using the Change Future Value verb now results in a log line stating that the script changed the future value rather than just logging the received value and then giving no indication that it was changed by a script.
  • FIX sending an OFF to a Vera Thermostat Fan Mode unit will now properly result in it setting the fan mode to 0 or auto. It’s no longer necessary to use a script to set the value to 0 to turn this off.
  • FIX no longer possible to get a stack trace when opening the Alien Address window if some of the commands that were received had no address specified.
  • FIX when restarting after a crash the startup options window that opened to give you a chance to cancel the startup was opened before App Nap was shut down. This could result in it taking a lot longer than the 30 seconds of the countdown to finally startup the app. App Nap is now cancelled before the startup options window is opened.
  • Command Queue will clear in… messages are no longer logged.
  • FIX if you edited a script for a DIY or Web Remote Interface when you had just clicked the “new interface” button the script would not have been saved properly. Editing the script for an existing interface always worked properly. The script is now saved properly even if the interface is brand new.
  • FIX if you had multiple events selected in the scheduled event window and clicked delete it would actually have executed them now instead of deleted them. The events are now deleted properly instead of executed. Deleting individual events always worked fine.
  • FIX the log file is now properly flushed to disk every few seconds after writing. If you’re accessing the log via some other command line tool like tail -f you should see log updates no longer than 2 seconds after the log line was added in the program. If you really need them faster than that you can use the set log caching to false command to turn it off, but that flushes in line with whatever script or event created the log line and flushes with every single one so will slow down the app significantly. Dont do this except for debugging where you’re missing the log line from what caused a crash or something.
current/previous/b954v9.1.txt · Last modified: 2017/02/28 13:33 (external edit)