I've got a C5 hub running 2.3.6.146 and a C8 Pro, still in the box, which I'm very hesitant to use given all the issues migrating.
Before beginning any migration, I want to resolve existing issues with multiple errors.
1. Under the "Motion and Mode Lighting Apps", attempting to open 15 of my 17 rules consistently shows the error:
Unexpected Error
An unexpected error has occurred trying to load the app. Check Logs for more information.
Error: Cannot get property 'value' on null object
However, the rules themselves do function correctly.
The logs appear to all reference the same java exception, with various devices:
As a more general request, distinct from getting help resolving these specific errors, it would be great to have a robust tool to run before doing a migration. The tool would pull the latest catalog from hubitat.com of known incompatible devices, such as Iris V1 equipment, any known incompatible drivers or apps, etc, and throw an exception if any are present on the existing hub, warning to user to manually resolve the issue before doing the migration or proceed at their own risk (ie., not attempt to fix the issues).
Why not upgrade to the latest 2.3.9.x version, and see if some of the issues with your current hub are resolved in a newer platform version?
In order to migrate, you're going to need both hubs on the same version of the Hubitat platform firmware anyway. Might as well get that part out of the way. Just be sure to make and download a new local backup before making any changes to your existing hub. Then upgrade it to the latest and greatest. Worst case, you can revert the Hub Platform Version using the Diagnostics Tool and restore the backup you freshly made for safekeeping.
If the upgrade goes well, then follow the Hub Migration instructions in the official Hubitat documentation.
One question though - are you using the internal Z-Wave radio on the C5 hub? Or an external USB Z-Wave radio? The reason I ask is because not all external Z-Wave radios can be migrated automatically to a new hub.
Also, be sure to power the C8 hub with the inlcuded power supply, not a PoE splitter. Inexpensive PoE splitters have been found to wreak havoc on the C8 and C8 Pro Z-Wave radio.
Um, because 30+ years in IT make me very wary of upgrading to the latest version of anything while there are errors, unless it's known that the latest version resolves those issues.
I'd rather have the hub running cleanly (ie., no errors being logged) before introducing the new element of an OS upgrade, if possible.
Yes, of course.
Now we're back to the issue that the current version is showing errors...why would I trust the backup or want to restore to a backup captured from a system with errors?
Have you tried following the Soft Reset procedure in the official Hubitat Documentation? This procedure is very safe to use and results in a much cleaner database afterwards. For some, this is all that is needed to resolve a corrupted database due to unplanned power outage events.
Again, make a local backup and copy it to your laptop/desktop computer for safekeeping before you begin this process.
Performed a soft reset & restored the latest database backup.
The reset & restore proceeded without any reported errors, but the original issue with Mode & Motion Lighting errors remains -- 15 of 17 rules consistently fail to load, showing Error: Cannot get property 'value' on null object and logging the message: java.lang.NullPointerException: Cannot get property 'value' on null object on line 778 (method mainPage).
The logs also continue to show the other errors that were present before the reset:
java.lang.NullPointerException: Cannot invoke method toInteger() on null object on line 265 (method refresh)
dev:11892024-09-10 03:04:00.234 PMerrorLost connection to Web Socket: status: closing, will reconnect.
dev:13422024-09-10 03:00:00.105 PMerrorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Long#minus.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] on line 396 (method healthCheck)
I'd check to see if the Mode and Motion apps can be imported into Room Lighting. Not sure what is causing the issues, perhaps a deleted device or mode was part of the apps?
The last errors are device errors, what device is it? If it is a community driver check for updates.
I've already got too many ways to manage lighting (Rule Machine (legacy 4.0 & 4.1), RM 5, Room Lighting, Motion and Mode Lighting apps).
Let me try:
Saving the json representation of each Motion & Mode rule
Importing the rule into Rooms
Deleting the Motion & Mode rule
Activating the rule in Rooms
and I'll see how it goes.
Unlikely.
The only devices I've removed in the last ~4 years have been 3 Iris V1 motion detectors.
As I recall, after I purchased the C8 Pro and then saw the incompatibility with Iris V1 devices, I attempted to remove those devices from their 3 rules...but the Motion and Mode Lighting app was already throwing errors (ie., I couldn't open those specific rules before removing the Iris V1 motion detector devices).
You are going to have to update to the latest release to move to the C8 Pro. You probably should just take note of what you have now and do the upgrade to the latest release. Once that is done. It would probably be a good idea to go through any apps, rules, ect and recreate them if they are generating the same errors.
To me those errors look like one of a few things.
They are erroring because of corruption
They are erroring because the app involved got updated and data is missing for some reason.
Incorrect items are no longer present so they don't have the right info to link off of.
I would expect that recreating the rules/apps/ect will fix the issue. If you just import the json for the rule/ect I would expect the problem to follow you.
Actually, importing the rules from Motion & Mode Lighting into Rooms Lights was successful for 16 of the 17 rules -- even though 14 of those generated a java.lang.NullPointerException error.
Within Motion & Mode Lighting, 15 rules could not be opened -- attempting to do so produced a java.lang.NullPointerException error, even though the rules continued to run correctly.