User Tools

Site Tools


current

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
current [2019/08/18 19:02] – [Important Info] James Sentmancurrent [2023/07/30 17:34] James Sentman
Line 1: Line 1:
-=====XTension Version 9.4.22===== +=====Download XTension 9.5.3=====
-Released: 8/18/2019\\ +
-\\ +
-Download: [[https://www.machomeautomation.com/files/xtension/xtension_9.4.22.zip|XTension v9.4.22 (build 1008) 8/18/2019]]\\ +
-zipfile md5 = [[tech_notes:md5|e6a44fb9afcc35976ea19c062cb33684]]\\ +
-\\ +
-Download for Catalina: [[https://machomeautomation.com/files/xtension/xtension9.4.22.dmg|XTension 9.4.22 Notarized (build 1008) 8/18/2019]]\\ +
-**NOTE!** not all plugins are included in the Catalina build. Please see the Catalina note below for more info.\\ +
-\\+
  
-====Important Info==== +Released 7/30/2023\\
-**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 [[tech_notes:mojave|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 [[tech_notes:catalina|Catalina Support Page]] for more info. Not all plugins are Catalina capable at this time.+
 \\ \\
 +Download Universal Binary for all Supported OS versions; [[https://www.machomeautomation.com/files/xtension/xtension_9_5_3.dmg|XTension. v 9.5.3 (build 1084)]]\\
  
-9.4.22 is a hotfix release to fix a regression in the last version and contains only one other new feature:+**Minimum System Version** for this release is OSX 10.10 but not all plugins will function properly prior to 10.13. Please start the necessary work to upgrade to at least 10.13 or recommended 10.15 or newer. At some point in the near future it will no longer be possible for me to support anything prior to 10.13 and the video plugins will never work prior to Catalina.
  
-====9.4.22 Change Log==== +**Rosetta Note:** While the entirety of the main app and all more recent plugins are Universal and run natively on Intel or Apple Silicon there are few older plugins including the W800 and CM11 that are still Intel onlyThey run fine under Rosetta and you’ll never notice the difference. The only issue is that Rosetta is not included by default on the new Apple Silicon MacsYou’ll need to first run any Intel appor do a get info on any app at all and select “open using Rosetta” then the OS will tell you that you need Rosetta and would you like to install it now. Once you complete that those plugins will run normally.
-  FIX: Groups that are not dimmable will now behave the same way they did previously. +
-  NEWThe “House Mode” Unit for the VeraUI7 plugin is now readable and writable. Previously it was one way pipe to XTension of the house mode in the VeraYou can now set it from XTension and have the new values be sent to the VeraValid values are 1=Home, 2=away, 3=Night, and 4=vacation. Any other values that you would set will result in an error and no change being made.+
  
 +====9.5.3 Change Log:====
  
-====Change Log from 9.4.21====+  * **Amcrest Camera API:** 
 +    * Fixed an issue that caused some cameras not to work with the event system. If you find that any cameras still do not send you events but also dont log any other communication or connection errors please let me know we can gather some more info. 
 +    * Added a check to the enableEvents() command so that it will not try to enable events that the plugin does not recognize as valid. This keeps you from either getting nothing, or getting an error message each time the unknown events is sent. If there are events that I am not handling that you know about and would like to get please let me know we can gather more info about them and set them up. 
 +    * Added support for specific Units to link to Object Detection if your camera supports it. You can now create a Unit to get an ON when a human is detected, or when a vehical is detected and so forth. 
 +    * Amcrest API New Status and Display commands: 
 +      * setFontScale(0.1..2.0) control the size of the text displayed over the image. 
 +      * setChannelTitleVisible( true|false) 
 +      * setChannelTitleLocation( 34, 12) 
 +      * setChannelTitleColor( R, G, B, A) 
 +      * setChannelTitleBackColor( R, G, B, A) 
 +      * setUserDisplayVisible( index, true|false) 
 +      * setUserDisplayText( index, “the info to display”) 
 +      * setUserDisplayLocation( index, xloc, yloc) 
 +      * setUserDisplayColor( R, G, B, A) 
 +      * setUserDisplayBackColor( R, G, B, A) 
 +      * setLogoVisible( true|false) hide or show the Amcrest logo image overlay 
 +      * setLogoLocation( xLoc, yLoc) 
 +      * setLogoFilename( “osd.bmp”) your camera must support allowing you to change this or it will do nothing. 
 +      * setTimeDisplayVisible( true|false) 
 +      * setTimeDisplayLocation( xLoc, yLoc) 
 +      * setTimeDisplayColor( R, G, B, A) 
 +      * setTimeDisplayBackColor( R, G, B, A) 
 +      * setTimeDisplayFormat( “yyyy-M-dd hh:mm:ss t”) see the wiki link above for a table of valid format string entities. 
 +      * note that there is a limit to the number of overlays the camera can “blend” into the encoding video. Check the capabilities below to find out what the limit is for your camera. They may all be different. My doorbell cam can only do 2 at once. 
 +    * changed the logEvents() command to be showEvents() and it now shows the info in a window rather than just writing it to the log. 
 +    * changed logMotionRegions() showMotionRegions() which also shows the list in a separate window rather than just writing it to the log. 
 +    * showCapabilities() opens a window with most, but not all, of the capabilities of the camera listed. There are still some more to add 
 +    * There are a LOT of other things I can add to this plugin that could be controlled.  If you know of something else you’d like to be able to tweak in the cameras programmatically please let me know. 
 +  * **Last Activity:** A change to the Last Activity date handling. Previously if a Unit had never had any activity after being created it would show a last activity date of the time the program was last started. This caused confusion in list windows when sorted by date and is something I’ve been meaning to deal with forever. Now if a Unit has no last activity date it will display as “Never” in the list window, but be sorted as if the date had a total seconds property of 0. In other interfaces or via the scripting commands it will return a date with the earliest date/time that the normal unix date can hold so something like 1/7/1903 or whatever that is. So it will sort properly and no longer be confusing.  
 +  * **Home Kit:** 
 +    * Updated the Home Kit libraries some but not all the way to current. They have made some significant changes in the most recent builds that break it completely for us in the short term though I”ll keep working on that. This is unlikely to either cause or cure any problems people may be having with it as the only changes were to the handling of Thermostats. Home Kit now always sets the Mode of the HVAAC to Auto. This is not due to anything that I can do anything about easily and is a decision that Apple has made. I may be able to override some of this handling to not accept those changes from the thermostat but only send them from XTension or something like that if it is a problem. 
 +  * **Hue Plugin:** 
 +    * Hue Plugin: Fixed an issue where it could send continual updates for a sensor value even if the value had not changed. 
 +    * Hue Plugin: Fixed an issue where the temperature format was not saved, sticking all readings in F. 
 +  * **Video System:** 
 +    * Video Encoder Plugin: Added a checkbox so you can suppress logging of video encoding times if you wish. 
 +    * Video: Removed error logging for stalled streams as this would fill the log if the camera was offline for any length of time. To log this information please implement the stalled script handler in the Interface Script and write to the log whatever information is helpful. 
 +    * Video: “Orphaned” recordings that may have been left unencoded when the app quit are now properly encoded and managed when you next startup the app. 
 +  * **Sysinfo Plugin:** 
 +    * System Info Plugin: no longer claims in it’s startup log message to be the Disk Space plugin. 
 +    * Fixed an incorrect default link to the boot volume so that this will work without having to edit it each time. 
 +  * **Internal Python:** 
 +    * Python: A symlink to the built in python3 version is now added to /usr/local/bin/pythonxt so if you wish to use the built in version for your own script you can just execute it via that command. 
 +    * Python: XTension changes many environment variables in order to use it’s internal version of python. If you are running a system version of python in your own script from a shell in XTension this may cause errors or make it unable to find installed modules. You can now use a scripting command “revertENV()” in your script before invoking your shell script to reset the environment to the system default just before launching it which will solve most, but probably not all of these issues. Note that you should do this immediately before starting any shell script as XTension will change it again as needed when launching plugins.  
 +  * **Web Remote:** 
 +    * Web Remote: New documentation of the hashing of web remote links to immediately go to a specific page or view. This can be useful if you are saving specific links as iOS shortcuts, or creating a Kiosk type application. This is not a new feature, but was never properly documented. [[webremote:kioskview|Kiosk View and Hash Linking Info]] 
 +    * Web Remote: Added several new scripting commands to control sessions in the web remote. This lets you programmatically change the view on a specific device to say, a video page or a View in response to motion or other event. Additionally you can script a popup alert or timed message in any color to display on all active sessions or only on specific ones. [[webremote:scripting|Scripting Web Remote]] 
 +    * Web Remote: Added support for a resource folder that will be served as regular files through the web remote built in web server. This way if custom controls or other features you are adding need to load a specific image or other support file they can do so if you put it in the resources directory inside your XTension Database. [[webremote:resourceserver|Resource Server]] 
 +    * Note that these changes have not been rolled into the mobile web remote plugin, only the desktop version. 
 +  * **Plugin API:** 
 +    * A new key for the info.json file that will allow a plugin to receive any scripting command the user issues. This simplifies some kinds of plugin tasks at the expense that users script will not know if the command succeeded or not, all commands will just be sent and forgot. This does not affect regular using the app, only plugin developers. 
 +    * Added the capability for plugins to display information in new text windows and to append to or change the display of one without opening a new window each time. This mostly affects plugin developers but I used it in the new and changed show info commands in the Amcrest API plugin above. 
 +    * All plugins now log their version number in the startup message from the information stored in their info.json file. This will keep them from always being wrong as I forget to update it in 2 places instead of just 1. 
 +  * **Hubitat Plugin:** 
 +    * Hubitat: Added entries to the “insert” toolbar menu for the central scene Held, and Released events to make it easier to script these without having to visit the wiki to look up the specifics. 
 +    * Hubitat: Added support for Energy and Usage units. If a device reports these values a Unit will be created for them. 
 +    * More updates and changes to the new handling of “string” data types.If there is a number at the beginning of the String value then that is parsed and sent to Xtension as the value for the Unit. The description is no longer changed to the raw value but rather a new Unit Property called "Raw Value" is added and kept updated to the full text of the string. If there is no number in the string, or if it just does not begin with a number, then the value of the Unit is set to 0 and the default label for the unit is set to the raw value string as well as the same unit property. No default label is set if there is a number at the beginning of the string so that user formatting and suffix will be honored normally 
 +    * Hubitat: Some devices from the Hubitat will now have more descriptive, or less long winded names when created by default. This will mostly effect the Thermostat units but some others can be made better with this too. This does not affect Units already created, and you can always manually edit the unit’s name once it’s created to be whatever you like in either case. 
 +    * Hubitat: The list of supported commands for each Unit is now saved to a [[dictionary:unitinformation:getunitproperty|Unit Property]] so  you can see all the commands the device supports directly. You may still have to discover what parameters are required, if any, but this will make it easier to do things to the Units via the [[https://www.machomeautomation.com/doku.php/supported_hardware/hubitat#sending_device_specific_commandsm|sendDeviceCommand()]] 
 +    * Hubitat: Push messages from the Hubitat that are sent when a software update is started, or when the device is about to reboot to install a software update will now just log that information rather than generate an “unknown push message” error in the log. 
 +  * **Software Defined Radio Plugin:** Fixed the incorrect wiki link in the interface and added a link to the github pages for more documentation if desired. 
 +  * **Scripting Dictionary:** 
 +    * NEW: the [[dictionary:unitinformation:enumeratedvalue|Enumerated Value]] verb now accepts an optional parameter “for” and will return the correct enumeration for the value that you pass or an error if the enumeration is out of range. This is especially useful in the ON script of a unit as you can now check the enumeration for the future value to see what it is going to be when the script is done running. The direct parameter of unit name is now also made optional and if you dont specify it then it will use the value for thisUnit making it easier to script these in a units on or off script. For example: **write log enumerated value for (future value)** would write the enumerated value for the new value being passed to the On script. 
 +    * NEW: The [[dictionary:unitinformation:changefuturevalue|change future value]] verb now also accepts enumerations just like the regular set value verbs so you can issue a change future value to “high” instead of just knowing what the numerical value is. 
 +  * **Xtension UI:** 
 +    * New: Each unit will get a new Unit Property called Created with the date the unit was created. You can add this to any List view by control clicking in the headers and selecting create custom column. Then you can sort lists by the date the Unit was created and not just the last activity date. For new Units this is set as they are created and then never changed. For existing Units the date is taken from the creation date of their folder within the database. This seems to work pretty well for most units most of the time, but there may be a date in the past where you restored a database or otherwise performed an action on it that would have reset those dates. This is still the best I can do but keep in mind that older Units may not show the date they were actually created, but the last time you zipped and moved the database or something like that. 
 +  * **XTdb:** XTdb “meta” units now set their “thisUnit” value properly when being updated so that you can filter the log by them like any other Unit. 
 +  * **Control By Web Plugin:** 
 +    * Added support for sending user/password info to devices that have this level of security turned on. 
 +    * Added a checkbox for “Automatically Create New Units In XTension” so that you can disable this after you have gotten the Units you desire and not have to keep the ones you are not using at this time. 
 +    * Added a checkbox for “Ignore VIN Values” the control by web devices all send their input voltage. This might be useful or it might just be a value that is constantly updated as the value shifts by a tenth of a volt causing extra load and log spam. You can check this to ignore those values and neither create a Unit to hold it nor send updates for it’s changing. 
 +    * I’ve added some checks and trimming of the unit names as they are being changed into addresses to try to fix some potential issues with creating units in XTensionThis is not an issue I can duplicate so am just throwing stuff at the wall to see what happens.
  
-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: +
-  * [[supported_hardware:mysensors|mySensors]] +
-  * [[supported_hardware:ad2usb|ADB2USB]] +
-  * [[supported_hardware:weedtech|Weed Tech Data Acquisition and Control cards]] +
-  * [[supported_hardware:radiothermostat|Radio Thermostat]] +
-  * [[supported_hardware:ups|UPS and Disk Space]] +
-  * [[supported_hardware:aprilaire|Aprilaire Thermostat]] +
-  * [[supported_hardware:networkpresence|Network presence and ping]] +
-  * [[supported_hardware:omnistat|Omnistat Thermostat]] +
-  * [[supported_hardware:rcs485|RCS 485 Thermostat]] +
-  * [[supported_hardware:upb_pim|UPB Powerline Control]]+
  
-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. \\ +NOTE: This disk image no longer includes the older legacy plugins that will not be updated for newer OS versions. If you still need to run the [[supported_hardware:cm19]], [[supported_hardware:cm15a]][[supported_hardware:zwave]] or the various Smarthome X10 interfaces please download [[tech_notes:catalina|the legacy plugins package from here]] and install the ones you need via the “Install Plugin” menu item of the “Database” menu. 
-\\ +
-  * 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 [[supported_hardware:darksky|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 interfaceedit 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: Added the “handler” parameter to the [[dictionary:events:createevent|Create Event]] verb. You can now use that to create a scheduled event to run a specific handler inside a global script. This has always worked for the [[dictionary:events:executescript|execute script]] verb but was never rolled into the create event verb. +
-  * NEWA 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: Mouse Clicks are now allowed to fall through onto a View control of “Unit Description as HTML” this allows you to create more detailed controls with some interaction. So included javascript or links can be included and will run properly. Additionally if you click a link that wants to open in another window a new viewer window will open in XTension and load that page. This only works for links with targets of “_new” links that target the existing page will load inside of the plugin control in the view. +
-  * 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.+
    
 =====Previous Releases===== =====Previous Releases=====
 {{indexmenu>:current#2|js#doku}} {{indexmenu>:current#2|js#doku}}
  
-=== Older Versions === +
-[[beta|The Changelog and Download links for builds between 763 and version 9.1 can be found here]]+
current.txt · Last modified: 2024/02/05 17:53 by James Sentman