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 [2023/06/03 16:12] James Sentmancurrent [2023/07/30 17:34] James Sentman
Line 1: Line 1:
-=====XTension Version 9.5.2=====+=====Download XTension 9.5.3=====
  
-> There is a Beta version available: [[current:beta|]] +Released 7/30/2023\\
- +
-Released 4/9/2023\\+
 \\ \\
-Download Universal Binary for all Supported OS versions; [[https://www.machomeautomation.com/files/xtension/xtension_9_5_2.dmg|XTension. v 9.5.(build 1076)]]\\+Download Universal Binary for all Supported OS versions; [[https://www.machomeautomation.com/files/xtension/xtension_9_5_3.dmg|XTension. v 9.5.(build 1084)]]\\
  
 **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. **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.
Line 11: Line 9:
 **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 a few older plugins including the W800 and CM11 that are still Intel only. They 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 Macs. You’ll need to first run any Intel app, or 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. **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 a few older plugins including the W800 and CM11 that are still Intel only. They 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 Macs. You’ll need to first run any Intel app, or 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.
  
-====9.5.Change Log:==== +====9.5.Change Log:====
- +
-  * NEW: [[supported_hardware:sysinfo|Sysinfo Plugin]] for monitoring Disk space, Disk Usage, Network Usage and Networking Errors. +
-  * NEW: [[supported_hardware:zadarma|Zadarma plugin]] to send SMS messages via the commercial Zadarma service. +
-  * NEW: New option in the Preferences dialog to Dont Stop A Restart With "Window Has Changes" Dialog. This is not really the correct way to handle this so consider it a stop gap measure until I can properly support the saving and restoring of the window state. Previously if you had left a script window open with changes, or an Edit Unit window open with changes and the machine tried to restart automatically the “this document has changes, are you sure you wish to throw them away” message would halt the shutdown and leave XTension in a non-operating condition. With this option turned on XTension will still provide those warnings if you manually try to close a window that has changes, but if the app is being quit it will allow the changes to be lost and so not cause hangups or problems when restarting the server. If this is not how you wish it to behave then you can turn this off in the Preferences. +
-  * NEW: List windows now display the number of Units in the List as well as the number of Units in an error condition or with low battery messages. This is shown in the title of the window after the List name. +
-  * NEW: The [[supported_hardware:mqtt|MQTT plugin]] now lets you get values out of a payload that is in JSON format without having to script your way through it. You can use the new JSON Path field to give names of entries and indexes into json arrays to find the value you are looking for. This applies to all non-special device units and so once you get to the info you want any of the Units will then be able to look for numerical data, or enumerated values or just put the value into the Description at that point. This does not effect the sending of payloads. If you have to send a JSON packet you’ll still have to build that in a script for the moment and use the raw publish command. +
-  * NEW: The [[supported_hardware:hubitat|Hubitat plugin]] now properly implements sending of a user/password to the hubitat if you have that option turned on in the hub. +
-  * NEW: The [[supported_hardware:hubitat|Hubitat plugin]] now properly handles valve devices and controlling them via their open/close commands. +
-  * NEW TEMPORARY: I have made some changes to the standard off handling in the Hubitat that fixes some oddness with enumerated commands. I believe this works for all existing devices as well but just in case there is a new checkbox in the hubitat settings that will allow you to drop back to the old handling if it causes you any problems. Please let me know if you have to use this for any reason and the details of that otherwise I will be removing it in the next version unless I hear from people with the need to do this. +
-  * NEW: The [[supported_hardware:hubitat|Hubitat plugin]] has a new checkbox that will log status messages from the Hubitat. These are normally things like “the bedroom lights were turned on” but it might be useful to see these if there are issues or debugging that you’re trying to sort out. It can be a lot of extra logging that doesn’t usually contain any useful information so it is an option you have to turn on if you wish to see it. +
-  * NEW: Those same Hubitat status messages are now automatically added to a Unit property called “Status Message” and another Unit Property “Status Timestamp” will be the date/time when the current message was received. This way you can trap them in a script, or add a custom column to any List window to show them if you wish rather than just logging them. The above checkbox for logging the status messages does not have to be turned on to send this info to the Unit Properties. This is always done. +
-  * NEW: The [[supported_hardware:tplink|Kasa plugin]] now properly supports in wall dimmers as well as just bulbs. +
-  * NEW: Added support for Ramp Rates to the [[supported_hardware:tplink|Kasa plugin]]so you can control the dimming speed on a command by command basis if you wish. +
-  * NEW: Added several options to the [[supported_hardware:tplink|Kasa plugin]] for the handling of preset values for Kasa bulbs vs dimmers. +
-  * NEW: The CPU Usage figures for plugins shown in the Interface List window when “show more information” is selected now includes the CPU usage of any helper apps or sub processes that the plugin might be running. This makes them much more accurate and useful for very CPU intensive plugins such as the Video plugins or the rtlamr or other plugins that use helper apps. +
-  * NEW: The Interface List window also shows a percent of memory use for the plugin instance and any child processes after the CPU Usage number. +
-  * NEW: A new option in the Interface List window lets you chose if the CPU Usage calculation is done based on 100% a single CPU core, or 100% being every CPU available in the machine. So if you have 10 cores and you chose individual then 100% would be using a full core, but per machine that would only be 10% of the overall machine load. Whichever makes more sense to you when viewing it. The numbers are usually very low and so many not show up on the graph at all unless you increase their values by setting it to per CPU. Plugins that are using GPU resources or that are using helper apps may show as using more than 100% if per CPU is selected. This is OK. +
-  * CHANGE: The helper app for the Video system that does the encoding is now a proper background app and so will not show up in the dock as it is running. +
-  * CHANGE: The [[supported_hardware:mqtt|MQTT plugin]] now creates new units with a default timeout of 2 minutes rather than the original 15 seconds which caused a lot of unnecessary chattering in otherwise valid receptions. You can still adjust this to whatever value is correct for your system after the units are created. This does not change any setting you have set in existing Units created by the plugin. +
-  * CHANGE: The [[supported_hardware:mqtt|MQTT plugin]] now creates new units with the “do not log new value receptions” checkbox set as it is possible for this plugin to generate a truly obscene amount of logging if it’s in an area with a lot of devices. You can turn this back on for the Units you wish to watch. It will not change the setting of any already existing Units. +
-  * CHANGE: The [[supported_hardware:weedtech|Weeder plugin]] will filter non-ascii characters that might be received when making IP connections. This may help if there is noise on the data line that inserts random data or if an ethernet/serial device is stuck in a mode sending packing characters. If it is because of noise it will not actually solve the problem but it will give you more time to sort it out. If it’s a packing problem it will probably be OK as long as the packing character is not in the range of ascii that the weeder cards use to communicate normally. This same filtering is not yet applied to direct serial connections, please let me know if that is a thing that would help anyone. +
-  * The [[supported_hardware:hubitat|Hubitat plugin]] now throws more useful errors if there is a problem with the API number, or API Key or user/password so it’s easier to sort out a failing connection. Previously it would just complain that it couldn’t connect but did not elaborate. +
-  * The [[supported_hardware:hubitat|Hubitat plugin]] will now log Zigbee Radio status changes or errors as proper messages from the Hubitat rather than as unknown messages. +
-  * FIX: Found a problem with the [[supported_hardware:tplink|Kasa plugin]] that might have caused some Units to be created with the wrong device type, or even no device type at all causing XTension to create it as if it was an old school X10 unit as in the absence of the more recent data structures it seems to regress to it’s origins. I am not certain this has fixed all the problems people were having with this and the situation that it would happen in is odd and therefore rare and difficult to duplicate. Specifically it was only a problem if the kasa dimmer type was discovered directly after a powerstrip type. +
-  * FIX: If the [[supported_hardware:mqtt|MQTT plugin]] receives messages from ESPresense devices that do not have a “distance” parameter for some reason it will just ignore that message. Previously this could lead to further updates being ignored as it threw out other updates after the error. While this will allow processing to continue I believe that this can only happen due to an error or a bug or some problem with the ESPresense device or software and this will not be able to fix that. You may lose reception entirely from that receiver, or just that beacon that it’s sending, but something deeper is causing this. At least XTension will continue to process valid packets from anywhere else. +
-  * FIX: The [[supported_hardware:mqtt|MQTT plugin]] will now properly publish enumerated values on systems that use a period instead of a comma as their decimal separator. +
-  * FIX: Added a random pause up to 3 seconds when starting up multiple [[video:rtsp|RTSP video streams]] at the same time. On older or more resource limited machines this was causing problems if many streams tried to startup at exactly the same moment. +
-  * FIX: An [[video:rtsp|RTSP video stream]] can become confused at some point and stop sending full frames from some devices. Previously the plugin would happily display and record these partial or badly corrupted frames. Under most circumstances it will now realize that they are not valid frames and restart the stream in order to recover from this problem. +
-  * FIX: The [[supported_hardware:diy|DIY Plugin]] will now properly recover from the loss of a network serial connection the same way that it does for a local serial connection. +
-  * FIX: Older binary plugins such as the Vera plugin would throw errors when trying to issue some unit specific scripting commands. This was due to the changes in the previous version that allowed the scripts to throw applescript errors if you called a handler that did not exist. The older plugins were not registering their handlers in the same way and so fell afoul of this. They will now let you call any of the handlers without an error. +
-  * FIX: Fixed some problems with the managed folder system that is used by the new video plugins for managing disk space on the recording volume. This will now properly keep the minimum disk space you have set available. If you suspect something is going wrong with this there is an option in the new Debug menu (see below) that will let you log it’s progress and calculations to the log which you can then send to me for debugging. +
-  * FIX: The managed folder system now recovers from having a volume not present at startup, or if a volume is unmounted and then re-attached. It will let you know if the Volume is unavailable and then will begin scanning it again when it re-appears. +
-  * DEBUG: Added a checkbox to the preferences for “show debug menu” this will reveal a debug menu where I have gathered many of the various hidden debugging options in the app for easier access when it is necessary to gather more info for me on a problem. Please do not experiment with these unless I’ve asked you to as they may generate huge amounts of log output or break other things if used incorrectly. +
  
 +  * **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 XTension. This is not an issue I can duplicate so am just throwing stuff at the wall to see what happens.
  
 ----- -----
current.txt · Last modified: 2024/02/05 17:53 by James Sentman