Beta Versions

12/4/11 build 828
  • Zwave interfaces now support properly validating that the units have received the commands and will retry commands to get them through. The system default is 3 retries but you can change this on a unit by unit basis by creating a unit property called “retries” with a number value for whatever number is necessary for that unit to be reliable. If the retries fail the database value for the unit will revert to it’s previous value and you can trap the error in 2 places to alert you or take other actions. If you create a handler called “retries exhausted” in the ON script of the unit it will be run when this happens after that if there is a global Interface Error Script it will be run with the ThisInterface and ThisUnit values set.
  • The behavior for ZWave devices as far as dimming and ON commands has changed as well. There is significant variability in how the individual dimmers out there respond so there are now 2 options in XTension. The old “simulated smart” and “Simple” dimmer behavior from X10 dimmers is now supported for zwave ones as well. If you set the unit to “simple” a regular ON will be sent to the dimmer. Depending on the dimmer this may or may NOT be what you want to happen. Some of them always go to 100% when receiving an on, some of them go to the last preset level. By setting the unit type to simulated smart no actual ON’s will be generated at all but rather a dim to the stored level of the last preset in XTension will be used. You can then change that value via the sim preset verb and change how the ON command will behave.
  • Added support for the RCS RS-485 lines of communicating thermostats.
  • Added support for the Aprilaire line of communicating thermostats.
  • removed the auto setup window for unknown ZWave devices, there were just too many being created.
  • fixed several PPC issues in the new thermostat plugins.
  • fixed an error in the display of negative numbers in the Omnistat outdoor temperature display.
  • added the ability to display messages on the RCS-485 stat
  • added the ability to flash the pricing message LED’s on the wifi stat, though they are also controlled from it’s own processor and your milage may vary.
  • Fixed an issue with setpoints and the latest version of the wifi thermostat firmware. Should all be working now.
  • Reading of negative temperatures from the 1-wire bus on the Barionet devices is fixed.
11/16/11 build 826
  • Added support for the HAI Omnistat line of thermostats.
  • Continue to tweak the queue timing for ZWave commands.
  • Updated the Wifi Thermostat code to preserve the “hold” setting allowing you to change a setpoint without the stat automatically turning it off.
  • there is a known issue with the latest Barix 50 firmware and 1-wire devices. If the temp goes below 0C the data read by XTension currently is goofy. If you haven’t updated your firmware then you may wish to wait until I’ve got a fix. If you have updated then this version gives a closer, but still wrong reading. But at least its just a few degrees off rather than thousands like in the previous…
11/10/11 build 824
  • change to the queue timing of ZWave commands. If you had problems with queuing up large numbers of ZWave commands and having some get lost of fail to go through this should solve that problem without having to space them out in your scripts.
  • First pass at support for the Radio Thermostat Thermostat. Beta plugin is included and free for the moment for testing.
10/25/11 build 823
  • Update to the CM11 driver to eliminate the incorrect “power fail” messages that it used to generate
  • the USB device drivers should now be compatible with MacOSX Lion.
  • first pass at the XBee radio driver also XBee Demo
5/20/11 build 822 (official version 7 beta 1)
  • zensys z-wave driver now supports “group” commands.
  • improved logging of command types for zensys z-wave interfaces.
  • fixes for RFID connections over ethernet/serial adaptors. Should now connect properly even if there is a lot of garbage in the buffer at the time of connection.
  • Script edit/delete buttons now work more reliably for units and groups in new unit or group windows.
  • Show script property buttons now work reliably in unit and group edit windows.
  • Contextual menus in lists now offer separate options for removing the unit from the list vs deleting the unit from the database.
  • “action bar” menu’s also support that.
  • Fixed a text encoding issue with the text saved for script reversions. So multi-byte characters like the line continuation character commonly used in scripts now will restore properly instead of becoming several characters of uncompilable garbage that needed to be fixed manually.
5/9/11 build 821
  • continued improvement of the Zensys Z-Wave driver. This is still in development but works very well for load control and some security devices like the door sensors.
  • added “add node” and “delete node” with the the “high power” option to the Zensys zwave setup dialog in the preferences so that you can create a network with the controller as the primary without walking around. Or use the ACT interfaces which have no physical button with which to initiate a transfer of the secondary from a remote.
  • Fixes a bug in the GroupMemberChanged event that could cause it not to fire for an ON event and fire twice for an OFF event.
4/26/11 build 819
  • UPB: the upb interface is now compatible with the Rain8 UPB sprinkler controller from WGL designs. I was including extra “optional” bytes in the packet that was causing problems. This probably means that more similar devices will also work better. Known issues with UPB are a problem with queries that remains and I need to do some further work with things like that room controllers so that we can properly handle the links that they send. They cannot yet be assigned units in XTension. Regular devices are working.
  • UPB: a new verb “set device register” can send register programming data to UPB switches for doing setup that isn’t supported directly by the XTension interface, but this is definitely a Pro feature. The potential to brick, or at least require a factory reset (10 clicks of the ON paddle for the switches I’ve got) is there. The offset is in decimal, but the value is a string of hex. USe the hex to number and number to hex verbs to convert back and forth if necessary. This could be used to manually edit the transmit table of a switch to tell it to stop sending a link upon activation or to customize it’s other behaviors if you have the tables of registers.
  • the RFID interface now supports connection over Ethernet/Serial adaptors as well as directly from a serial port.
  • The latest build of the Zensys protocol ZWave device support is included.
  • Includes a fix for the new 1-wire addressing ability for the Barix 1-wire sensors that stops extraneous error logging if you don’t have units assigned to all the other inputs/outputs of the barix device.
4/21/11 build 818
  • keeps track of what zwave addresses have already had a helper new unit window created, so if you fail to do it right away, or if for some reason you’re receiving numbers you aren’t using it wont fill up your screen with them.
  • If you are editing a unit and you assign it an address that is already in use on that interface, instead of just telling you that addresses must be unique it will now ask you if you’d like to swap addresses between the 2 units. This could be particularly useful re-arranging units from a wireless remote.
  • BARIX 1-wire devices can now be addressed via their embedded unique address and not just by the register number in the barix which may change as you add more devices or if the topology changes in other ways. This way the proper units can be guaranteed to get the proper values even as you add more devices. See the 1-wire readme in the beta package for specifics on how to do this. The specifics may change during the beta period.
4/14/11 build 817
  • fixes obscure issues with Lynx interfaces.
  • fixes a reversal of addresses when using the “move units to new interface” button
  • adds the isStacked verb to know if a received command was part of a stack of X10 commands. Like for trapping a double tap or multi tap (chord?) from a wired X10 remote.
  • temperature readings from 1-wire sensors on the Barix barionet are limited to 1 decimal place in the conversion to F. C values are unchanged.
  • changed the on GroupMemberChanged event for a group so that it is called before the last activity and value are updated for the unit. This means that last activity and value in that handler will be handled the same way they are in the ON/OFF script for the unit and things like the Change Future Value verb will work from there as well. Opening up the ability to have a group that filters out of range data from oregon humidity sensors and such. Also necessary for the duty cycle plugin which needs access to the last activity date.
  • unit properties who’s name begins with an underscore will not display in the edit unit properties dialog. Allowing you to hide large binary data sets that might cause display issues. They are still accessible from every other place programatically and will show up in a call to get all the names.
  • added applescript enumerations for unit device types, UPB Device, UPB Link, Kaku Device, Legacy Kaku Device and ZWave Device so that units can be created and setup programatically for those. (see the Barix 50 unit plugin for more info on scripting those values)
  • This is the first official beta with Z-Wave support for the Vizia Zwave interface. This interface is working and is almost ready to be called not a beta anymore.
  • Also included, but incomplete, is the support for other ZWave interfaces that implement the Zensys binary protocol. Such as those from Aeon and the trickle stick. If you have one of these and want to experiment please drop us a note.
  • To ease the setting up of ZWave interfaces after transferring the secondary network to the controller upon startup XTension will automatically open an edit unit window for any ZWave device that responds to the automatic poll upon startup that isn’t already in the database. So if you add a new unit, transfer the changes and restart the interface you wont have to guess as to what address it was assigned by the interface. If the unit doesn’t popup upon startup then just manually change it’s status at the device via it’s button and it should start to respond and create a unit popup.
12/3/10 build 811
  • fixed an inability to edit scripts in a couple of places.
  • fixed an error upon receiving the ack from controlling a barix relay device. It still worked, but logged an error every time you controlled it.
  • moved to most recent compilers and plugins and libraries for MacOS.
8/27/10 build 807
  • Stops processing malformed RFXMeter packets before the error enters the script that might have been causing 2702 applescript errors.
  • fixed the popups for selecting the type of weeder card so that they all include the new WTAIN analog input card. It should now be possible to place one on any supported address, not just “A”.
  • fixed backwards are you sure logic in the dialog asking if you really want to move all an interfaces units to a new interface.
  • added the “multiqueue” property to the xInterface object. This is still very beta at the moment. If you have 2 or more interfaces that can potentially interfiere with each other, like 2 CM11's on separate legs that might see each other or might not you can set them to the same multiqueue name and they will take turns instead of transmitting at the same time. This is only necessary if you are loosing X10 commands (or other commands from anything) due to collisions. usage: set multiqueue of xInterface “name of interface” to “some string” set some string to the same name on both or more interfaces. This setting is saved so it is only necessary to issue it once. To clear it set it to an empty string. There is no user interface to this beyond the applescript verb. Most folks should never have to bother with this, but it may important for setups with multiple X10 interfaces instead of a standard crossover/amp system. This may change the order that X10 commands are sent when large scripts are run or large number of commands across multiple interfaces are generated.
  • added the “multiqueue wait” global applescript property. This sets the number of seconds that it will wait before waking up the waiting multiqueue. the default is 4 seconds to allow the last command to fully clear before sending more from the other queue. In my testing 3 seconds works most of the time, some experimentation may be necessary for your setup. usage, again from the command line: “set multiqueue wait to 5”
  • First pass at support for the Radio Shack communicating multimeter model 22-812. This ISF is of limited appeal and so will probably not ship as part of the app and will need to be installed by you. Download from the link above and insert into the “pitchers” folder that you will find inside the app after control-clicking it in the finder and selecting “show package contents” after doing so you will be able to select “multimeter” from the device popup.
7/13/10 build 805
  • adds support for the new weeder analog input card that replaces the old one. The WTAIN 4 input differential card is the new analog input card.
  • Fixes an issue that may have been the cause of the queue errors that people were seeing with multiple weeder cards on the same serial port and increased the polling speed and efficiency.
6/17/10 build 804
  • fixes an issue where your scheduled events might not run.
6/6/10 build 803
  • begin rework of UI removing old toolbar on top of unit lists and replaced with “action bar” interface at the bottom.
  • Dont use the “new editor” that you can turn on in the preferences or you may be annoyed at it's unfinishedness or perhaps astonished at it's shinyness.
  • added “xtID” property to both the unit extract record and the xUnit object. You can now access units and global scripts by their unique ID if you need a way to access them separate from name changes or text encodings. Any verb or accessor that will take a unit name will also take a string version of the unique ID that you can get in this way.
5/14/10 build 799
  • Bad or empty packets from the DIY interface should now trigger the usual interface error checking meaning that if lots of them stack up in a hurry the interface will be closed and re-opened to hopefully get around null packet repeating from USB issues or other similar things.
  • non fatal interface errors, like the one from the CM11 that says it's not responding, can now be trapped in the interface error script. Create an interface error script if you dont have one (use the popup of reserved names in the new global script window to make sure the name is correct) then add an on nonfatalmessage( TheMessage, TheInterface) handler to get the message being sent (things usually logged in red but not official errors from the interface) to check to see if it's something you want to act on. The global ThisInterface is also set to the proper name.
  • Using the future value after changing the value of another unit the decimal point is no longer lost.
3/25/10 build 798
  • (known issue) unit icons in views are not displayed properly in this version, I'm in the middle of reworking that for some new features so dont upgrade to this if you need that functionality.
  • UPB unit setup dialogs no longer popup for every UPB packet that is received unless it's actually expecting one to respond to a query for setup mode.
  • Large numbers of errors no longer fill up the log window after starting up a connection to a UPB PIM that is already in pulse mode.
  • Non-database UPB commands received now log their address in the same format that you would enter it into a new database unit setup. Hex, vs decimal, so it will be a lot easier to create a UPB device for the unit you're trying to reach.
  • Updates the UPB ISF helper app to build 10.
  • Documentation menu item now points to the wiki.
2/20/10 build 797
  • Fixed a problem with “set picture” verb on 10.5 and 10.6
  • Fixed a potential crash when dragging a unit from one list to another.
  • lots of work behind the scenes in the “views” section, these are in progress and unfinished and you should test your views to make sure they all still work.
  • added a new view feature of “control” which at the moment offers only 1 setting for an iPhone style toggle that you can add to a view by just dragging the unit out of any list and into a new view.
  • created a default setting for the unit being dragged into a view rather than just being an invisible rectangle like previously.
1/3/10 build 793
  • Begin support for the RFX Transmitter.
  • Fixed a few dangling apple event descriptor leaks.
  • New weeder plugin version now sends updates at startup rather than events so that you wont get an ON for any weeder digital IO deivces that are already on, but any that are not will be conformed to the current state.
  • New weeder plugin support for analog output card, beta support now.
  • Added “kaku house address” field to the RFX Transmitter screen if you have Kaku devices to control.
  • Added 2 kaku device types to the device type popup for the RFX Transmitter interface, Kaku and Legacy Kaku.
10/21/09 build 788
  • fixed a potential problem with the DIY interface not returning the data but rather an error when reading.
  • added verbs “unit property names” and “remove unit property” for managing unit properties.
10/20/09 build 787
  • renamed “lastditch” to “xtension background helper” to avoid confusion and fear
  • added preference to not run the background helper and restart during daylight savings time
  • included fix for truncated packets from the USB RFX device. This fixes a specific problem, but not likely every problem. You will still see packets occasionally that will not parse and this is OK, but you wont see nearly as many of them anymore.
  • Improved the usability of the manage script window so that you can type ahead to select one by name and hit return to edit it.
  • Added “bytesAsList” option to data sent to a DIY interface script. It's now the same as the data passed to the interface error script. 2 parameters are passed, (DataAsString, BytesAsList) it's the same data but the second one is an apple script list of the individual byte values to make numerical processing easier.
  • Added a list of bitwise and byte manipulation verbs to make such low level handling of bytes and bits easier in AppleScript
    • number to hex: pass any number and returns a string with the value in hex
    • hex to number: takes any string containing hex values and returns an integer
    • bitwiseAND: pass a list of 2 numbers or number strings and returns the integer of them added together. For example:

write log (bitwiseAND {32, ”&b00101100”} –with ”&b” denoting binary and ”&h” denoting hex and ”&o” denoting octal and ”&d” denoting decimal (but decimal is assumed if there is no prefix)

  • bitwiseOR (same as AND)
  • bitwiseXOR (same as AND)
  • shift left 32 by 2
  • shift right 8 by 1
  • text to number (takes any string as described in the bitwiseAND entry and returns a number.
  • number to binary (takes any byte and returns the binary number in a string of 0's and 1's can be used to check individual bits of a byte by looking at (if the second item of TheBinaryString is “1” then it's on)
9/24/09 build 784
  • Implemented checksum for RFXMeter data
  • Improved timeouts for the “lastditch” background app so fewer (or no) errors should be displayed for that.
9/3/09 XTension beta build 782
  • re-enables the checking for large time changes in the heartbeat script. This was originally to catch the daylight savings time change and restart the program but it caused more pain than pleasure because it could also have been triggered by long script timeouts and on some machines it failed to restart silently. This version re-enables this check but at a better calculated interval to make it better immune to both of those problems. It has the added benefit of making the program more robust to crashes of any type. I dont get many reports of issues that cause actual crashes, but if one were to happen to you after updating to this version the program will restart within a few seconds. Try just force quitting it for a bit of fun.
  • In an earlier version unknown exotic packets from the RFX were passed through to the Interface Error script so that you could handle them or choose to not log the debugging information. It did not process packets that failed the length or checksum checks through this though and you wanted to be able to suppress all errors in this way. This version sends both packet length errors and just unknown device errors through to the interface error handler as documented for the beta in beta 777.
8/20/09 XTension beta build 780
  • Fixed version control issue with 779 and this build now actually contains the fixes that were supposed to be in 779.
8/14/09 XTension 6.1 build 779
  • removed the auto restart if the program is held out for a long period of time as this was causing problems for some folks and didn't really solve the problem it was supposed to for the others.
  • Now attempts to load global scripts even if the creator/file type is set wrong on them for some reason inside the database.
8/9/09 XTension 6.1 build 778
  • Improved handling of unknown packets, more things that aren't obviously oregon packets are now passed properly through to the handler created in build 777. NOTE one important change though is that the “length” byte of the oregon packet is now also passed through so if you built other handling based on the data as passed in 777 you will receive one extra byte at the beginning. Packets like those from HomeEasy devices and other devices currently not directly supported by XTension but supported by the RFX interface should now be passed properly though. Several of the startup packets also fall into this group though so you may receive more packets in the handler than before.
8/6/09 XTension 6.1 build 777
  • Added support for the Oregon Scientific THWR800 Water thermo sensor
  • First pass at custom script handling for otherwise unparsable oregon packets.

In order to manually process packets that XTension currently only logs an error for you first need a global script named “Interface Error Script” which is run in response to any interface error with the verb “ThisInterface” set to the name of the interface that called it. Next you need to create a handler in the script to receive the packets like:

on UnknownPacket( ThePacketAsString, ThePacketAsArrayOfBytes)

this passes 2 parameters, the first is an unprocessed string of the data. But since some packets are not really characters and applescript makes it hard to deal with bytes sometimes given text encoding and all that I am also passing the same data as a list of numbers corresponding to the bytes. like {12, 45, 15, 0, 0, 99, 250… etc}

If you wish you can just return from the handler at any time and a regular error with the debug information will be printed to the log. However, if you wish to suppress the error message because you've handled it then you can return true from the end of the handler telling XTension that you took care of it and it doesn't need to log the error. An error may still be logged from the ISF handler if the packet is not recognized at least as a known protocol. This error cannot be suppressed, but the debug output with the byte lists can be. Keep in mind though that if you create a blank handler that does nothing but return true it will reduce your log clutter but at the cost of collecting data that might lead to figuring out what it is you're receiving.

  • Lastly on a DIY interface you can now call handlers inside the interface script from anywhere, making it easier to create interfaces to custom devices. For example if you have a handler to:

on MakeBottleSpin()

then in any other script in the program you can do a

tell xInterface “Bottle Interface” to MakeBottleSpin()

Note that inside the handlers of an interface script the ThisInterface verb is always set to the interface you're telling even if you're doing so from an event triggered by another interface. This makes it easier to share scripts between multiple interfaces.

7/7/09 XTension 6.1 build 775
  • beta support for the weeder technologies Solid State Relay module (WTSSR-M)
  • Continued updates to the UPB subsystem with the ability to program most light switches to change their address, set their dimmable flag and default ramp rate as well as turn on and off the reporting of local state changes via the switch.
  • Update to the CM15 interface to support sending X10 wireless commands.
5/21/09 XTension 6.1 build 770
  • numerous UPB related fixes and additions
  • fixed packet length calculation so that it now works with only a single repeat specified
  • implemented the blink applescript verb. See dictionary blink (unit name) rate (10)
  • add link and delete link verbs now work but linked units do not update in the database by themselves yet
  • no longer requires manually placing a unit in setup mode before issuing the add or delete link command
  • fixes a UI problem with the transmit count increasing by one every time you edited the unit.
5/20/09 XTension 6.1 build 769
  • added support for the WMR200 oregon professional weather station.
5/14/09 UPB: Universal Powerline Bus, support in private beta.
  • read the UPB Beta Page
  • Please contact me via email in those articles for more info if you wish to join in.
5/1/09 XTension 6.1 build 765

Changes include:

  • Sorted out the error displayed when a truncated or corrupted Oregon Scientific packet is received. Instead of a full page of stack trace you just get a single line of standard error message.
  • In the Unit Properties window you can now manually edit a double precision number in the UI where before it told you this data type was not editable.
4/23/09 XTension is 6.1 build 763

Changes include:

  • Fixed the receiving of wind speed and wind direction from Oregon scientific weather stations.
  • Fixed the annoying tendency of the manage global scripts window to redraw itself loosing your selection just as you were looking for something.
  • Added a percent resize parameter to the applescript verb to get the current frame from a video stream.
beta.txt · Last modified: 2011/12/04 13:20 by James Sentman
CC Attribution-No Derivative Works 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0