Releases: stevenmcastano/ISY-iCloud-Proximity
Releases · stevenmcastano/ISY-iCloud-Proximity
Feature Adds/Bug Fixes: openHAB, Battery Reporting, Config Files, Cell Validation
Pre-release
Added:
- Auth config file integration: No more copying settings back and forth between .ini files when a new release comes out. The script now reads your current iphonelocation.ini file, backups it up for you, adds the new features needed, and restarts the script with all the correct previous settings.
- openHAB Integration: The script can now connect to an openHAB instance and report it's distance at full precision (8 decimal places). This new feature is turned off by default.
- Battery Level Reporting: Requested by a user, the script can now report the current iOS device battery level to the ISY in a variable. Settings are in the advanced area under the [general] section. This new feature is turned off by default.
Bug Fixes:
- There was a condition missing from the "from_cell" data validation function that took a few tries to fix. The script reported a false warning if Cell location data was set to be allowed and the data did, in fact, come from a cellular triangulation. The script would continue, but with a warning. The erroneous warning message is now corrected.
Bug Fix: Windows Compatibility, Updates Check
Fixed: (***NOTE: Make sure you run "pip install -r requirement.txt" again to catch new packages)
- Code to create pid files properly on Windows machines to avoid script crash.
- Code to check for script updates will continue after error to prevent script crash.
- Added the python mysql driver to requirements.txt (Needed for windows users)
Minor Bug Fix: On-screen Display Table
Fixed:
- Added appropriate spacing to reflect the increase in precision of distance from home calculations.
Feature Adds/Bug Fixes: GPS Recheck, Battery Level Retries, Version Checking, Fixed Cell GPS Reads
Feature Adds/Bug Fixes: GPS Recheck, Battery Level Retries, Version Checking, Fixed Cell GPS Reads
Pre-release
Pre-release
Added:
- Forced GPS rechecks: This means that if you're using Wifi or Bluetooth checking, by default the app will now check your GPS location from the iCloud API once every hour even if your location radio systems can see the device. This is to catch crash local detection apps that have left your device in a "home" state. This can be disabled in the .ini file, and the frequency with which the forced checks occur is also configurable.
- Battery level retries: Previously the script would try to read your batter level once and move on. Now, by default the script will try to read your battery level from the API 3 times with 30 seconds between each try before moving on. Again, this check can be disabled and the number of retries and sleep time is configurable in the .ini file.
*Version checking: Instead of just relying on forum posts and/or emails from github, the script will check once every 6 hours to see what the latest publicly availible version of the script is and let you know in your screen data table and debug logs.
Fixed:
- Mismatched cell phone location rejection rules: The conditions to validate if location data came from Cell vs. GPS of Wifi had a small logic error that cause some cell locations when the API reported them as not being "old" to be used even before the max number of retries had expired.
Fixes: Battery Level Debug Code, Boolean Reads From Config
Added:
- Code now outputs the raw data returned from the API when reading battery level if check is enabled to allow for better understand of percentage calculation if there is an error.
Fixed:
- Added the proper code to read boolean values from the .ini conf file. Now any config item that can be turned on or off will accept (case insensitive) "true, false, yes, no, on, off, 1, 0" as acceptable values.
Feature Add: Battery Monitoring
Added:
- Battery monitoring has been added. By default the script will check your battery level when it updates it's GPS data and if the battery is below 15% it will sleep for 1 hour, or however long the variable distance sleep time is, whichever is longer.
- This feature is turned ON by default.
- All configuration items for this feature have been added to the end of the .ini.sample file, if you'd like to turn it off, simply change the "battery_check" setting to "False"
Fixed:
- Changed logging level for a few GPS validation checks, isOld warning now only appear if you exceed retried and old data must be used.
Feature Add: Optional reject of 'Cell' based GPS data
Added:
- You can now set in the .ini configuration file to ignore any GPS data that comes from cellular triangulation and only accept the more precise data that comes from Wifi, GPS or GPS-Course.
- This feature is turned OFF by default.
- All configuration items for this feature have been added to the end of the .ini.sample file.
Fixed:
- Changed logging level for GPS data validation checks that are configured to be ignored from a warning to a simple debug message.
Feature Add: Two Factor Authentication
Added:
- Added code to api_login function to handle iCloud accounts with two factor authentication enabled
Fixed:
- Added import for the python "click" module to use proper prompts for 2 factor authentication
- Added "click" version 6.6 or higher to the requirements.txt for install
** Notes:
- Be sure you either run a
pip install click
or apip install -r requirements.txt
to confirm you have all packages needed as at least 1 has been added by this release
Release Fix: Missing file
Fixed:
*Accidentally left the new .ini.sample file out of the conf directory that includes the new variables for the "isOld" function.
Feature Add: Data age validation
Added:
- Added code to check data returned from the iCloud API for the "isOld" flag indicating that the data iCloud has from the device may not be current. By default the application will now retry 6 times, sleeping 30 seconds between checks and if current data isn't returned, it will proceed anyway with any valid date it all. All the options, the sleep time, the max number of retries and rejection of the "isOld" data itself is all configurable in the .ini file.