All notable changes to this project will be documented in this file.
- Added MQTT last will and testament support for notifications of offline client.
- Added IP address in start up message
- Updated power log reduction code to improve situations where power log is filled with zeros
- Added advanced option for H-100 to calculate the output power based on average current, average voltage and power factor.
- Updated log entry for Nexus Air Cooled
- Added model recognition for Evolution 2.0 24kW (Thanks @chia9876)
- Made username for web login case insensitive for admin and read only users
- Update to allow I2C channel values greater than 2 for gentankdiy
- minor Python 3 update
- Change that removes / prevents non ascii from power log or outage log
- Remove output voltage display for pre-nexus controllers
- Minor update to genexercise.py to allow exercising when service is due alarm is active
- correct minor bug in in mymail.py
- Minor updates to recieving mail for python 3 compatiblity
- Minor updates to help with debugging
- A new library was added so the restart after the upgrade may take a few seconds longer than ususal
- Improvements for start/stop of programs.
- Added new check to disallow loading multiple instances of any genmon program unless multi_instance option is set to True. see https://github.com/jgyates/genmon/wiki/Appendix-J-Multiple-Instances-of-Genmon for additional details.
- Update in javascript to handle userdefined JSON data with null entries
- shutdown cleanup improved for genmqtt.py and gensnmp.py
- removed restart code / while loop in genserv.py that is likley the cause of intermittant corruption of conf file
- Added option to use alternate reading for frequency for Nexus Liquid Cooled units
- Added new tank sensor type for gentankdiy.py add on (thanks @curtis1757)
- Misc code optimizations for maintenance purposes
- Fixed bug in shutdown code
- Minor change improve error checking in genlaoder
- Additional error checking for power log entries
- Added new alarm message for Evolution 2
- Rounded value written to power log to 3 decimal places (Evolution)
- Corrected issue with email errors relating to RFC2821 (see https://tools.ietf.org/html/rfc2821#section-3.3)
- More improvements to better detect and recover modbus sync issues when using serial over TCP with weak wifi signals
- Improvemnt in gensnmp.py to clean up on restarts (thanks @liltux)
- Minor cleanup on genmqtt.py
- Cleanup saving of settings web app redirect when using secure login (thanks @curtis1757)
- Additional checks added for weather API city lookup
- gensnmp.py updates to allow an option to not display units for numeric values in SNMP responses, bug fix
- Additional parameter validation for values read from conf file
- More recovery / error handling for long latency modbus response
- Added new alarm code for Evolution
- Improvement on error recovery on time out errors (mostly occuring on bad wifi connections with serial over TCP)
- added python functions to aid in portablity (os.path.join)
- Corrected typo in web interface (thanks @danielforster)
- More minor corrections for python 3.x
- Moved location of version info in source tree for maintenance reasons. This required a small change in the sotware update check code
- Added alarm code for Fuse Problem with Evoltuion Air Cooled
- Reverted to older config file write functions as the new ones did not provide the benefit expected
- Corrected one typo
- Fix for checking for software update bug
- Additional minor fix for pyton 3.x
- Minor update to correct issue with software update check when using python 3.x
- Minor improvements that could help bad wifi when using serial over TCP over wifi
- Update to install script that will make move from python 2.7 to 3.x easier
- Minor update to correct issue with writing config file
- Added additional checks to look for corrupt config file and restore the file if corrupted
- Changed some add on fields to hide passwords
- Allow external tank data to be used in calculating time remaining until tank empty
- Correct typos
- Update to gensnmp.py to fix issue with H100 alarm list
- Update to include fuel remainging based on estimated and current load assumptions
- Added Fuel In Tank output on Maintenance page
- Minor fix to allow some pre-Nexus models to correctly perform a model lookup
- Minor update that changes the format of register and log submissions to comply with RFC 2821 #4.5.3.1.
- Implimented fix for Evolution 2 firmware 1.1x
- Added client id parameter for genmqtt add on
- Updated myplatform.py to reflects some raspbian updates
- moves some constants around in the modbus code in preperation for future modifications
- Updated gensnmp.py to include OID for H and G Panel alarm list
- Added multi-factor authentication to web interface settings
- Added ESSID to WiFi platform information
- Updated myplaform.py to detect Pi4 and display CPU temp
- Updagte to MQTT support to allow list of strings to be a parameter
- Added advanced parameter to better support weak wifi signals on serial over TCP
- Made Evolution 2.0 Ambient temp sensor display respond to Use Metric setting
- Added more info to upgrade and communications failure notice emails
- Added logout button in top right if using username/password to login to the web interface. Thanks @buschauer
- Made the service journal editable. Thanks @buschauer
- Design update in preperation for future updates
- Minor modification to gentankutil add on to compensate for changed web login at tankutility.com
- Added new alarm code for Nexus Liquid Cooled and Evoltion Air Cooled
- Corrected bug introduced in V1.14.23 that prevented logging of outages
- Minor update to add on gensnmp (added estimated hours in tank remaining)
- Added ability to have MQTT topics without spaces in add on genmqtt
- Added support for DIY fuel gauge (https://github.com/jgyates/genmon/wiki/Appendix-L-Adding-a-Propane-Fuel-Gauge-to-Genmon)
- Added advanced setting to disallow logging of short outages
- Corrected bug in model lookup code for python 3.x
- Updated backup function to include all add on program settings
- Corrected problems with fuel consumption calculation for Evolution
- Added estimated hours remaing in tank for fuel consumption
- Added fuel consumption method for industrial controllers, see https://github.com/jgyates/genmon/wiki/Appendix-H-Monitoring-Fuel-and-Power-Usage
- Added option to display fuel sensor gauge for industrial controllers
- Fixed LDAP bug, thanks @magomez96
- Added support for 11kw Nexus that was missing in generator identification
- Added new support function to get full register data from the browser. Useful for debugging if email is not working.
- Added new advanced setting to extend email retry delay on failed attempt to send emails
- Added reading of two new registers for possible display of new settings (Two Wire Start for Evo)
- Added new alarm code for Evo (instantanious alarm for High Temp)
- Added software update to Monitor->Generator Monitor Stats->Update Available
- Added Add-On module for displaying external temperature sensor data from 1 wire interfaces. See https://github.com/jgyates/genmon/wiki/1----Software-Overview#gentemppy-optional
- Corrected problem with ldap3 library reporting not present when it actually is installed
- Added more error handling for modbus exceptions
- Added firmware version to Evo log file submissions
- Updated Evo AC power calculation based on new data from @sefs85, you can revert to the old method in advanced settings "Use Legacy Power Calculation". Unless you have a 22kw Evolution (which has no CTs install form the factory so it can not read the current) it is recomended that you use this new method. You will likley need to remove any Current Divider or Current Offset settings on the advance page.
- Corrected on python3 issue with genloader when attempting to load uninstalled libraries.
- Added support for LDAP based login (@skipfire) (see /conf/genmon.conf for settings)
- Minor update to fix corrupted genloader.conf, file if it occurs
- updated genmonmaint.sh that will improve crontab update
- More updates for Python3
- corrected type in comment in mymodbus.py
- Corrected minor issue with startgenmon.sh and python3
- changed command line to be more consistant across options
- Updated the logic in the code to detect communication failures to include failed comms on a reboot.
- Corrected python3 install script (@liltux)
- Corrected minor issue with startgenmon.sh and python3
- Added advanced setting for userdefined.json path other than the default.
- Added error log code for Nexus
- Corrected on bug introduced in 1.14.05
- Updated MQTT support to allow sending commands to genmon
- Updated MQTT support to allow numeric values for Maintenance and Outage related data (Evo/Nexus)
- Added SNMP graphic on add on page
- Minor change to logic in gensnmp.py to avoid namespace collision
- Correct typo
- Added SNMP Add On. See https://github.com/jgyates/genmon/wiki/1----Software-Overview#gensnmppy-optional for details
- Changed a few labels of exported JSON data to better support SNMP and avoid namespace conflicts. There is a small chance this could effect some MQTT users depending on how deeply you have relied on namespace paths.
- Added option to send an email if a software update is available. This can be disabled on the settings page.
- Note: The update may take slightly longer since a new library has to be installed during the update process.
- Changed text to "Inspect Battery" for Nexus models
- Workaround for bug in gauge display for Safari mobile browsers
- Corrected bug in reporting of weather (rain and snow in last 1 or 3 hours)
- Added SMTP Auth Disable configuration setting
- Corrected fuel calculation issue for NG systems
- Added new alarm data for Evolution 2.0
- Added new alarm log entry for Nexus
- Added alarm code for "Battery Problem"
- Update to allow outage log to display 100 instead of 50 entries
- Fixed a few typos
- Minor update to gentankutil.py
- Added add-on for Amazon Alexa
- Updated icon on add-on page
- Added fuel metric to Maintenance page for models that support fuel monitoring
- Added email notification for Evolution 2 firmware
- Added initial support for fuel consumption for Evolution Air Cooled Natural Gas units. Note: NG 30 day fuel consumption is located on the maintenance page. Fuel gauge is supported for NG.
- Added URL to logout if using secure web settings: https://addressofpi/logout
- Changes to all unicode comments to be stored in service journal
- Added config file options to set nominal line voltage values for non US grids (Evo and Nexus only)
- Slight modification to the logic used when detecting the type of alarm for Evolution controllers due to the last alarm code register not updating after a Service Due alarm.
- Added option "Ignore Unknown Values" that will ignore unknown values of modbus register 0001 for Evolution 2.0 controllers. This setting is in the advanced section in the web interface.
- Added more logging for better diagnostics when fatal errors occur (e.g. invalid serial port specified)
- Corrected one problem with invalid file name for log file when sending logs
- Fixed problem in gentankutil.py
- Added support for external fuel tank API for tankutility.com propane fuel monitor
- Changed warning message when power log is reaching size limit
- Displayed estimated fuel on the Maintenance page on EvoLC diesel units that support fuel sensor
- Added power log file size details to Monitor page
- Corrected problem logging with gengpioin.py
- Corrected problem with gengpioin.py and gengpio.py that were introduced in V1.13.08
- Updated default values for current calculation for Evolution Liquid Cooled
- Added option in serial library for seven data bits (current unused in this project)
- Corrected minor issue in mail library when used in stand alone mode
- Added low bandwidth page: http://IPADDRESS:8000/low
- Fix that will hopefully correct issues when upgrading from 1.13.07 or earlier
- Increased delay when copying files during upgrades from 1.13.07 or earlier. This should not effect upgrades that are after V1.13.07
- Created delay after file copy to allow file to settle before restarting on first restart after upgrade.
- To be extra safe, please perform a backup on your data before installing the update as some files will be moved during the upgrade
- Added alarm codes for Nexus
- Update to support multiple genmon instances
- move all working copies of conf files from /etc/ to /etc/genmon/
- moved kwlog.txt, outage.txt and service journal data file from ./genmon to /etc/genmon/
- Added new command line options to most programs to pass in full path to config files
- Added TCP port command line option to ClientInterface.py
- updates to the wiki
- modified command line options for genmonmaint.sh to support alternate config locations. See https://github.com/jgyates/genmon/wiki/1----Software-Overview#genmonmaintsh for details
- Fixed bug in genexercise.py that prevented a "Start/Transfer" exercise cycle from stoping
- Fixed problem with Nexus controllers not properly showing "Start and Transfer" button in web interface
- Modified Enhanced Exercise add on program to support Nexus controllers
- Corrected typo in gengpio.py
- Added additional error checking in genmon.js
- Corrected display anomaly in web UI
- Removed the ability to set quiet mode for Nexus and Air Cooled Evolution as this does not appear to be supported in the firmware. s
- Improved startup error handling to better respond if there are serial issues preventing the software from identifying the controller
- Corrected one typo
- Added code for debugging purposes
- Added Add On for Email to SMS support
- Support for Evolution Liquid Cooled Three phase
- Added H-100 and G-Panel Regulator, Governor and Engine data
- Added new alarm code for Nexus
- Added more register reads in H and G Panel controller (need register submissions to complete adding more data to UI)
- Corrected bug in /OtherApps/modbusdump.py
- Update for 2008 model Pre-Nexus controllers (i.e. made in 2008 and do not have Nexus printed on them). Previously these controllers were not supported. See https://github.com/jgyates/genmon/wiki/Appendix-D-Known-Issues item 6 for more details.
- H and G Panel update to address log responsiveness
- Add user defined URL to email messages (see advanced page)
- Modified H-100 email format to include explanation of email
- Update for H and G Panel remote start / stop commands
- Corrected problem with genercise.py to reduce unneeded writing to log file.
- Initial support for HTS, MTS, STS transfer switches for H-Panel and G-Panel controllers
- Added the ability to use floating point values for run hours in the service journal
- Remove Line State for G Panel and H Panel if Smart Transfer Switch option is enabled
- Minor update to email password validation
- Change to allow test email to be sent without a password
- Added option in Evolution Enhanced Exercise Add On to allow use of generator time instead of system time.
- Fix bug in H-Panel code that was introduced with V1.12.21
- Added Service Journal for creating a user journal of service and repair activities
- Modified backup to include the Service Journal.
- Added new Add On functionality for enhanced exercise features (Transfer Exercise). This is available for Evolution Controllers only.
- Updated gengpio.py to add GPIO pins for Monitor Health and Internet Connectivity Status
- Updated alarm data for H-Panel for Emergency Stop
- Added sender name in email settings
- Fixed test email functional to support disabling TLS
- Added battery check service due date for EvoAC
- Initial update for maintenance log feature. GUI still needs work.
- Corrected the display of the Run/Event log and Alarm log for the H-Panel and G-Panel Industrial controllers. This now displays the logs with the newest entries first.
- Removed reset alarm from web interface for EvoAC as more testing is needed on this feature.
- Added option to disable TLS encryption
- Corrected issue with outage log reporting incorrect fuel usage for outages of zero duration
- Added method to generate self signed key instead of using the Flask key by default. This will make Secure WebServer more reliable
- Corrected typo in /conf/gengpioin.conf
- Fixed problem with outage notifications in mynotify.py (effects add on programs) introduced in 1.12.2
- Added more info relating to fuel estimation to help in troubleshooting issues.
- Fixed formatting issue with login page for secure web settings
- Improved message in low fuel warning email (only for controllers with fuel estimate calculations)
- Added new alarm code for NexusLC
- Added entry to outage log for fuel consumption if fuel consumption supported by your generator
- Fixed one problem with genloader.py load ordering
- More updates for Python3 support
- Updated install script to force pyowm version 2.9.0. Version 2.10 is python 3 only
- Minor update to genmon.js to better convert JSON to HTML
- Update for gengpioin.py triggers, added software debounce option to UI
- Minor mod to genserv.py for debugging purposes
- Updated code that returns numeric values for MQTT so JSON is not parsed twice
- Added additional debug print for troubleshooting
- Added new field for future features
- Corrected spacing in an existing log entry
- Update to allow GPIO Input parameters for pull up/down resistor and GPIO input trigger
- Fixed bug with openweathermap icon
- Changed link to download openweathermap icon
- Added functionality to mynotify.py for future features
- Changed format of JSON for better compatibility with external apps and exporting data
- Minor mods to issue template
- Corrected problem with simulation code
- Added feature to test the email send settings
- Fixed issue with graphic on logs page
- Added run hours in last 30 days on Maintenance page for system that support power log
- Added error code for change air filter alarm
- Python 3 updates, still recommend using Python 2.7 as it has been tested more, but this update allows for greater compatibility with Python 3.5
- Minor update to EvoLC ambient temp sensor (see Unsupported Sensors)
- WIP updates for email test
- Added more parameter validation for TankSize
- Updated favicon.ico for web interface
- Added code for future features
- Added fuel consumption polynomials for RG022,RG027,RG032,RG038,RG048
- Corrected bug in error handling in mymail.py
- Fixed bug in CurrentDivider not accepting a decimal value between 0 and 1
- Added SSL/TLS option for MQTT add on program (genmqtt.py)
- Created button on About page to download configuration files for backup purposes
- Fixed on bug for fuel level reporting
- WIP updates for Python3
- Added Liquid Cooled Fuel consumption curves for RD015, RD030 and RD050
- Update for low fuel notifications for EvoLC
- Added option for EvoLC Diesel to use fuel sensor data for Fuel Gauge
- Added Fuel Level Sensor reading for EvoLC Diesel Units on Maintenance page
- Readability updates and fixed typo in comments
- Minor update for EvoLC current / power calculation
- Minor update to improve EvoAC current reading by reducing erroneous momentary current values.
- Minor update to include program run duration time in data submitted in automated feedback error reporting
- Added missing tooltip on advanced page
- Added advanced option to subtract fuel form reported fuel estimate. See https://github.com/jgyates/genmon/wiki/Appendix-8-Monitoring-Fuel-and-Power-Usage
- Added email warning when estimated fuel in tank reaches 20% and 10%
- Corrected potential problem with a warning email about the power log being sent multiple times
- Updated current calculation algorithm for Evolution Liquid Cooled. See https://github.com/jgyates/genmon/wiki/Appendix-D-Known-Issues for additional details.
- Added email notice when communications with controller has been lost (and restored)
- Corrected one minor issue with mynotify.py
- Improvement to H-100 / G-Panel handling of string data
- Update for PowerPack, enabled fuel monitoring (if supported by controller)
- Improved bounds checking on modbus protocol
- Initial support for Generac G-Panel Industrial Generators
- Update for H-100 Industrial Generators
- Minor update to Current / Power calculation on Evolution. This will potentially fix some system that were not reporting Current and Power properly
- Removed 'sudo' from wireless stats check
- Added advanced (genmon.conf) to use the absolute value of the CT reading when making current calculations.
- Optimized fuel and power log file system reads
- Added additional debug prints for troubleshooting Current Output on some systems
- Added advanced page for web UI
- Minor update for Power Pact, removed Service Due data
- Initial support for Evolution Power Pact
- Removed Reset Alarm remote command for Nexus Controllers in the web interface. Does not appear to work on Nexus. The command is still there if using ClientInterface.py on the command line if anyone is interested in testing this on a Nexus.
- Non functional modifications to H-100 code to prep for new features.
- Minor update to reporting of engine state for H-100
- Update for unit test functions
- Improved format of register submission to facilitate testing
- Fixed one bug introduced in 1.11.9 for Nexus / Evo
- Minor mod to battery gauge, now goes to zero volts instead of 10 on the low end
- Updates for H-100
- H-100 Log Entries
- Alarm Acknowledge added
- Updated modbus modules to better support modbus file reads
- Corrected problem with reset alarm command on Evo/Nexus
- Added option to disable power log and current output display
- Improvements for genmqtt.py to allow for integer and float values to be passed as JSON strings
- Added option for Smart Transfer Switch. This will disable the weekly exercise and remote start in the UI since the transfer switch will handled this.
- Add new remote command to reset the current alarm (see Maintenance page)
- Fixed bug in power log for H-100, if you experience problems, reset the power log or delete the file kwlog.txt and restart.
- Moved Update Software in the web interface to the About page
- Moved Submit Registers in the web interface to the About page
- Added Submit Log Files button on the About page
- Added change log to the web interface About page
- Changed loading method in genloader.py to work around I/O error with Flask library. As a result the output of the flask library is redirected to /dev/null so it will not be displayed on the console. If you started the software manually from the console and then exited the console and attempted to restart from the web UI (with a settings change) the Flask library used by genserv.py would cause an exception (I/O error). This works around this issue.
- Added more error checking / logging in modbus protocol code. This makes serial over TCP more robust.
- Fixed minor issue in genlog.py
- Improved error logging in myclient.py
- Removed restart on I/O error in genserv.
- Corrected bug in type in genserv.py. Corrects problem with settings page not displaying.
- Moved data files to /data directory
- Moved conf files to /conf directory (runtime still expected files in /etc)
- Moved kwlog2csv.py to OtherApps
- Added option for smart_transfer_switch in genmon.conf
- Added 'Add-On' and 'About' to web interface. 'Add-On' section allows enabling, disabling and setting options for add on programs
- Corrected bug in H-100 set time / date function
- Minor updates for parameter checking for add on programs
- Increased delay in genloader.py after stopping and before starting modules on restart
- Added program genslack.py. This program will send notifications via the Slack messaging service. Thanks @naterenbarger for this addition.
- Updated install script to support all add-on program library requirements
- Added support for Evolution 2.0
- Added support for serial over TCP/IP (additional hardware required) See this page for details
- Added advanced Modbus error handling for H-100 controllers