User Tools

Site Tools


current:beta

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:beta [2023/03/21 18:45] James Sentmancurrent:beta [2023/07/01 14:26] – 9.5.3 beta 4 James Sentman
Line 1: Line 1:
-=====Beta Versions===== +=====Beta Version (9.5.3 b4)=====
-**XTension 9.5.2 PR 1 (3/21/2023)**+
  
-Preview Release 1 of 9.5.2 is now available: [[https://machomeautomation.com/files/xtension/xtension_9_5_2pr1.dmg|XTension 9.5.2 pr1]]+The currently available beta version of XTension is 9.5.3 beta 4 (build 1082) released on 7/1/2023
  
-  * NEW: List Windows will show the number of units in the list, the number with errors and the number with low battery flags after the name of the list. 
-  * MQTT Client plugin now sends enumerated values properly on machines that use a decimal separator other than a period. 
-  * Kasa/TP-Link: This now works for my devices to turn on and control “smart dimmer” devices. There is still some weirdness with setting a ramp rate if you’re turning on from off. All other cases seem to be working fine. 
-  * Weeder: If extra packing characters, or other bogus data characters are received from an IP connected chain they will be thrown out and ignored prior to processing whats left of the data. This will not get around true problems with noise on the data ground or devices resetting due to power supply issues, but if it’s a matter of the wiznet card sending packing characters above the range of printable characters then this should get rid of that, Of course if the noise generates characters within the range of the bytes that are used for normal communications this will not solve the problem either. 
-  * Hubitat now properly works with Valve devices. At least it does with my fake testing devices.  
-  * I have improved the logic in handling off messages to the hubitat as well. since this changes existing behavior i have added a checkbox in the interface setup that defaults to the new method but if that causes you any difficulty you can switch to the original method as easily as unchecking a checkbox. DO NO do this and just assume that I somehow know you’re having a problem. If you need to do this please tell me why and as much about it as you can otherwise I’ll be removing the checkbox in a future build and if you don’t tell me you needed it then it will just go away. 
-  * NEW: In the Hubitat settings is a new checkbox to write all the description of event information the hubitat sends to the log. This is normally stuff like “bedroom lights turned on” and so forth. It can be a lot of traffic if you’ve got a lot of units that report wattage usage values and so forth so previously I’ve always just ignored it. Since I was in there and adding stuff for the new off handling I decided to add a checkbox to log this as well. It may be useful when debugging something and is not as chatty as turning on full debug mode. 
  
------ 
-**XTension 9.5.2 Beta 3 (3/17/2023)** 
  
-A third and hopefully last beta of 9.5.2 is now available: [[https://machomeautomation.com/files/xtension/xtension_9_5_2b3.dmg|XTension 9.5.2 b3]]+[[https://machomeautomation.com/files/xtension/xtension_9_5_3b4.dmg|Download Xtension 9.5.3 beta 4]]
  
-  * Added a slight random pause in the startup of the Video plugins as it seems that starting many of them all at once was causing some errors or hangups at the sheer number of processes being started at once. +Keep in mind this is beta build and may contain bugs or annoyances and not all expected features or changes may yet be implementedNo database changes are made so if you to have to revert to the last release version simply replace the application with the previous version and all will be well.
-  * There was an error case in the Video plugin where frames would be corrupt, but rather than an error I could trap and therefore realize the camera was no longer sending valid data the system would return a corrupt frame with no way to tell that an error was occurring. This version adds some, but not all, traps to places where the frames are processed in order to trap this. If camera starts doing this while it’s being recorded or streamed they will be caught and treated like a stall if they don’t get better on their own. The stream will then restart and go back to working properly. It may not catch this condition when nobody is looking at the stream or when the stream is not being recorded as the frames are either not received or not processed when not necessary. IN which case the stream would be fixed shortly after you started using it again. +
-  * Fixed a bug in the DIY interface that could keep it from reconnecting to a networked device after the device rebooted or was otherwise disconnected from the network. The interface will now reconnect properly. +
-  * Added support for ramp rate to the Kasa/TP-Link plugin. For any device that supports it you can include the “rate” parameter to any on/off/dim/bright command. +
-  * Added specific support for Kasa Dimmers to the Kasa/TP-Link plugin. Previously they were treated as bulbs which caused some problems. This version also sends an ON before sending a Set Brightness command as they were not honoring the set_brightness unless they were already on. This on is sent with a very slow transition rate so that it should not cause any artifact before the set brightness command arrives a few ms later. +
-  * When dealing with Kasa bulbs you can now control how a bulb is treated at power off. See the Kasa documentation for more info on the “nova” effect some bulbs have and how to fix that or set the next power on preset while turning them off. +
-  * The Hubitat plugin now implements sending user name and password if you have set that up on your device. +
-  * The Hubitat plugin now sends more helpful error messages if the API ID or Authentication token is wrong or corrupt in the interface setup. +
-  * The Hubitat will now log more useful messages when the ZigBee Radio changes status rather than logging an unknown push message error. +
-  * MQTT Units are now created with a timeout of 2 minutes instead of 15 seconds to avoid having quite so many on and off for normal devices that dont transmit that rapidly. +
-  * MQTT Units are now created with the “dont log new value receptions” advanced unit option set to avoid having the log filled immediately with messages from them as potentially hundreds of units turn on and off constantly until the timeouts and other things are configured properly. You can turn this logging back on if you wish once you figure out which Units are actually important to you. +
-  * Added the ability to navigate through a JSON packet in the MQTT Units to find the value that is important to you removing the need for most such things to be handled in code. Any JSON packet can be parsed through this but more complex structures, or sending JSON packets to the server, might still need to be handled in code. See the MQTT Plugin documentation for more info. There is also a link to the specifics and some examples on the plugin documentation page.+
  
------ 
-**XTension 9.5.2 Beta 2 (2/27/2023)** 
  
-A second beta of 9.5.2 is now available. [[https://machomeautomation.com/files/xtension/xtension_9_5_2b2.dmg|XTension 9.5.2 b2]]+**Changes in Beta 4:**
  
-This beta fixes problem with the most recent release that rendered the non-scripting dictionary commands to older interfaces like the Vera unavailableThese commands now work normally again.+  * **Hubitat Plugin:** 
 +    * More updates and changes to the new handling of “string” data types. If there is number at the beginning of the string then that will be parsed and sent to XTension as the new value of the Unit. The Unit Description is no longer set to the raw string value. A new Unit Property called “Raw Value” is now set to the full value of the string and programmatically you can do with that what you wish. If there is no numerical value or if the raw value is more complex then the value of the Unit will be set to 0 and the default label for the Unit will be set to the Raw Value. No default label is set if a number is found at the beginning of the string so that your own formatting and suffix options in XTension will be used instead. You can still do whatever you wish with the Raw Value property, but the values are just too non-standard to do much more with them directly in XTension without custom scripting to handle values that really just should have been a number and a suffix... 
 +  * **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. 
 +  * **Last Activity:** A change to the Last Activity date handlingPreviously 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. 
 +  * **Beta Fix:** Cleaned up some potential error logging in the sharing setup dialog. This was introduced in one of the earlier betas and might have caused problems setting up new unit sharing to the shared database system or the Home Kit plugin.
  
-If a volume is missing or not mounted when a video plugin attempts to register it as a space managed volume, XTension will log a single error but keep trying during the disk space scans to find it and when it appears it will begin scanning it normally. If a drive is unmounted and remounted it will continue to be properly scanned by the disk space manager for video recording. 
  
------+**Changelog betas 1 through 3:**
  
 +  * **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.
 +  * **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.
 +    * Hubitat: Added support for values that come in as “STRING” rather than numerical or enumerated. This is a bit of a hack as it’s impossible to know what format these things will seem to be. First the value is scanned to see if there is a number in the first part of the string. If there is then the Unit will be dimmable and the value will be placed in the value of the Unit. for example: “3.2 Hours” would create a dimmable unit and set the value to 3.2. The Default Label and the description for the unit will be set to the string as it is sent. So even though the Unit value is 3.2, the display of the value in any XTension interfaces would be “3.2 Hours” If there is no number at the beginning of the string then the UNit will not be dimmable and it will just have it’s default label and description set to the text. You can capture the set description event in the unit’s on script to get the text and parse manually if you need to.
 +    * 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.
 +  * **Amcrest Camera API:** All the additions mentioned below have been added to the [[video:api:amcrest_hd|Amcrest Camera API Documentation]]
 +    * Amcrest Camera API: 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.
 +  * **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.
  
-**XTension 9.5.2 Beta 1 (2/25/2023)** 
- 
- 
-There is a beta version available of XTension 9.5.2 
-Download for all supported architectures: [[https://machomeautomation.com/files/xtension/xtension_9_5_2b1.dmg|XTension 9.5.2 b1]] 
- 
-This version contains important fixes to the new video system. This build fixes issues with the disk space management that could lead to the drives you’re storing video to filling up. The program now properly honors your settings in the video plugins setup pages where you set a minimum disk space to keep available on the disk. It will scan every 5 minutes and remove enough of the oldest files across all of the managed folders to bring the available space back up to your minimum setting. 
- 
-A minimum disk space of 100m is maintained with a default of 5gb. Depending on the number of video streams you are saving to the disk you may wish to keep the disk space free higher than 5gb so that there is enough space to process the current file and record from new ones. Generally there needs to be at least 2x the disk space available as the size of the video snippet but pushing it too close could lead to a snippet failing to be saved at all.  
- 
-Only files inside the folders you select for the video plugins are scanned and deleted if needed. No other folders on the disk are touched. This means that other things not part of the Video recording system might cause the disk to fill up, or to cause more video files to be deleted to keep the space available. 
- 
-There are no other changes to this build from the last release of 9.5.1, so it should not cause any new problems. It also makes no changes to the database layout or structure. If you do need to revert you should not have to revert the database to the backup that is made automatically when this build is first run, but it will be there if you need it. 
- 
-If you suspect an issue with the new disk space management or wish to see debug log output of it’s functioning and what files it chooses please go to the preferences and check the “show debug menu” checkbox. Then in the newly visible debug menu select the "Log Disk Space Management Info." When in debug mode the scan will be run every minute instead of every 5 to collect more debug data which will be written to the log in a lovely orange. You may also use the “Run DiskCheck Now” menu item to force it to run while you’re watching. Uncheck the “Log Disk Space Management Info” menu item to go back to normal functioning. Be aware that other options in the debug menu are undocumented and may cause more problems than it’s worth to play with them. Please do not use other debug menu items unless I ask you to in order to collect more info on other issues. 
- 
- 
--James 2/25/2023 
  
current/beta.txt · Last modified: 2024/02/05 17:51 by James Sentman