Skip to content

Appendix D Known Issues

jgyates edited this page Sep 10, 2024 · 21 revisions

Known Issues

1) Nexus Functionality

Nexus Controllers are currently supported however the functionality is reduced due to the Nexus Controller supporting fewer features. On Nexus Controllers the ability to detect battery charging, transfer switch relay state and set the quiet mode is not functional. All other functionality support by the genmon.py and the Nexus controller should work as expected.

2) Setting Nexus Exercise

If the legacy method of setting the exercise time is used (it is used on all Nexus controllers) then you can only set a future time on the current day of the week. You can set the exercise time to any day and time, except earlier in the day on the current day of the week.

3) Nexus vs Evolution

While a large amount of functionality is included in this software, some items may be missing, depending on your controller model. For example, the Evolution Controller has the concept of alarm log entries and alarm codes. Alarm log entries are the collection of the time, date and a description of a give alarm along with an alarm code. Alarm codes are a 4 digit number that corresponds to a specific alarm condition. The alarm codes and the alarm log may not display every alarm log entry properly in the user interface. I have attempted to decode these values and according to the documentation I have decoded many, if not most, of them. If you run into a situation where the one of the logs entries or values returned reports and unknown value feel free to let me know (via opening a project issue). Generally this can be easily resolved by sending the decoded log values supplied in the email or web interface and a picture of the corresponding log entry (match the time and date and alarm code) from the Controller display. This really comes down to a list of numbers that correspond to displayed strings in the Evolution Controller firmware. My generator only has a finite set of alarm log entries so not every string displayed may be decoded my genmon.py. The alarm conditions and alarm codes are in the file ALARMS.txt. The list of alarm codes was taken from the Generac documentation so this list is likely close to complete however the short description of the alarm contained in the alarm log may need input from others to complete. Input from others on unknown logs and alarms can be submitted here and here

4) Liquid Cooled vs Air Cooled Functionality Differences

For Evolution Controllers, some functionality, like active relays and sensors are only available on the Liquid Cooled models.

5) Current and Power Output Values

Nexus controllers do not support this feature - The software has the ability to read the a value from the Evolution Controller that we believe can be used to determine the current being produced by the generator. Once current is determined power (kW) can also be derived. While best efforts have been made to test this we have not been able to get testing data on all supported generator models. If the default values used are not working for your generator please let us know. You can override the value used to divide the register value, on Evolution Air Cooled Models, with the 'currentdivider' parameter in genmon.conf. If overriding this value makes your Current Output value more accurate please provide feedback in the issues forum so we can make the value of the divider for your specific model the default for your model within the software. If you notice a negative value displayed for current output then it is likely that you generator's internal current transformers (this applies to Air Cooled Units, liquid cooled units typically use a Hall Effect Sensor) were not calibrated during the installation of your generator. If this is the case you can add a "currentoffset=" in the genmon.conf file to compensate for this behavior. The current offset can be any floating point number that is added to (positive) or subtracted from the value read from the modbus registers. You can search the issue forum on the tag "Power Display" for issues related to this topic.

  • For the Evolution Air Cooled controllers, the software calculates current with this formula: Current Output = (Modbus Register Values + currentoffset) / currentdivider . The default value of curretoffset is zero. The default value of currentdivider is model specific. You can override both in the genmon.conf file. The software will take the absolute value of the results to compensate for this. The modbus register is the combined value of register 003a and 003b. It has been reported that not all Evolution Air Cooled units have Current Transformers, however it is my understanding that most models do have them installed.

  • For Evolution Liquid Cooled controllers, the software will modifies the calculation slightly. Current Output = (Modbus Register Values / currentdivider) + currentoffset). The default values of current divider is 0.425 and the default value of current offset is -323.31. These values may need to be changed depending on your generator. The default values were calculated using a 48kW generator. The modbus register is 0058.

  • Generators with Evolution 1.0 22kw controllers do not have a means to measure current (not built in Current Transformers) therefore the reported power consumption on these units is invalid. Power consumption reporting can be disabled on the settings page with the "Disable Power / Current Display" setting. Evolution 2.0 based 22kW units do have built in CTs.

  • If the calculation of the current is greater than the rated output of the generator the software will only return the maximum rated current output, for example a 48kW generator that generates 240V will only return a maximum current output of 200A. If the calculation is more than 200, it will return 200. If it is a negative value it will return the absolute value of that calculation.

6) Some 2008 and Earlier Residential Models

Some models from around 2008 have a controller that looks a lot like a Nexus controller, except they do not have the word "Nexus" on the front. This picture shows the controller. Testing has shown that these controllers respond over the serial link in a non-modbus compatible way. To support these controllers you must set "Modbus slave transmit address" on the advanced setting page in the web interface to value of 41.

7) The outage log is supported for Evolution and Nexus controllers.

This is implemented by monitoring the utility voltage in the software. The software will look for the outage start and stop times and once the outage is complete the outage log will be updated. If the software or hardware is restarted during an outage the start time of the outage will be lost since the outage is only updated after the outage is over.

8) Web Interface Testing

The web interface has been tested on most popular browsers, however not all features are known to work on Internet Explorer 11. Chrome, Firefox, Edge and Safari are know to work well with the web interface.

9) Evolution models have a "Reset Alarm" button on the Maintenance Page of the web interface.

This has been tested on Evolution Liquid Cooled units and very limited testing on Evolution Air Cooled units. The limited results for the Air Cooled units have been mixed so I don't have enough information to know if this feature is (fully?) supported on Evolution Air Cooled units. It may be limited to resetting warnings or resetting errors that are not persistent. Any feedback on the usage is appreciated.

10) Firefox Browser

The Windows version of the Firefox and Palemoon Browser do not work as expected with the software update feature. If you want to update your software, until this issue is corrected, please use a different browser to perform the software update. This browser will repeatedly perform the update several times in a row. You can hit the refresh button in the browser to make it stop, but this is not the expected behavior.

11) Evolution 2.0 Artifact

The Evolution 2.0 controller has show that at times it will report what appears to be random data from modbus registers 0001. Genmon will send an email notice if this register changes. Due to what is believed to be a bug in the Evolution firmware there is an option to disable unknown values from being reported in register 0001 for Evolution 2.0 controllers ("Ignore Unknown Values") on the advanced page. This is an option instead of the default behavior as I am not 100% certain that this data is not intended for some purpose with the new Evolution 2.0 controller. To know for sure I would need additional data about the issue and does it correspond to some other event on the 2.0 controller (i.e. firmware update, wifi status, etc)

12) Moving Genmon Installation

Once genmon is installed the python files can not be moved without manually updating the crontab file for the root user. If you move the python files then the crontab entry will not point to the correct path and genmon will not start on boot automatically. If you rename the user pi this will also rename the /home/pi directory so if you rename the pi user then you will need to manually edit the crontab for root to correct the /home/pi/genmon path.

13) Nexus Frequency Reporting

Some Nexus Liquid cooled models report the frequency differently. If your frequency is report incorrectly (half or doubled the expected value), try changing the "Use Nexus Legacy Frequency" setting on the advanced page.

14) Nexus Quite Mode

Some Nexus firmware versions may reset the Quiet Mode Exercise settings if you change the exercise time and date via genmon. Setting quiet mode on Nexus controllers is not supported by genmon.

15) Evolution 2.0 Encryption

Beginning with firmware version 1.10 The evolution 2.0 controllers use additional methods to obfuscate the modbus traffic. While the software works around this issue we have seen modbus exceptions around every 8 minutes. This anomaly does not appear to effect the operation of genmon and can be ignored.

16) Communication Errors

If a communication timeout (not receiving a response from the controller) occurs ( the default timeout value is about 3 seconds) and genmon moves on to send the next packet, the controller can send the response to the initial packet which will cause invalid data to be received. This can cause the software to think that conditions are occurring that are not valid, like an outage. If you are experiencing invalid conditions (e.g. outage notices, etc), check your cabling and see if this issue still occurs. Unfortunately this is a limit of the modbus protocol (no defined timeout, no way to cancel a response and no way to identify mismatched responses). To mitigate this you can try it to increase the modbus timeout value on the advanced settings page (double click the gear icon in the upper right of the web interface to access the settings page). You can add a value of 2 or 3 to the "Additional Modbus Timeout (sec)" setting on this page, then save your settings at the bottom of the page. Using serial over IP over WiFi can cause this situation to occur if your WiFi signal is not ideal.

17) Early Version of Evolution Firmware

Early version of the Evolution Air Cooled (V1.07) and Liquid Cooled Firmware (V??) only supported the older / legacy method of setting the exercise time and date. If setting the exercise time and date is not working for you you may want to try editing /etc/genmon/genmon.conf and changing the existing setting uselegacysetexercise from False to True, save the file and restart genmon for this setting to take effect.

18) Liquid Cooled 4.5L Model Serial Data Rate

Newer models Evolution Liquid Cooled Gas units with a 4.5L engine (e.g. RG04845ANAX) may need to set the serial data rate to 115200 instead of the default 9600. This can be done on the Advanced Settings page. Double click the gear icon in the top right of the web interface to access the Advanced Settings, the modify the "Serial Data Rate" parameter to 115200 instead of 9600. Presently this is the only know controller that does not operate at 9600 baud.

To summarize, if you see any unknown or things are not working as expected, please open an issue on the project.

Clone this wiki locally