| Revenue - Additional Information (Details) $ in Millions | 3 Months Ended | 6 Months Ended | 
|---|---|---|
| Jun. 30, 2020  USD ($) | Jun. 30, 2020  USD ($) | |
| Revenue Recognition [Abstract] | ||
| Payment term on product sales | 30 days | |
| Payment term on installation services | 30 days | |
| Payment term on contractually determined milestones | 30 days | |
| Payment term on energy production contract invoices | 30 days | |
| Revenue recognized that was in unbilled revenue at beginning of period | $ 2.3 | |
| Revenue billed this period that had been recognized in previous periods | 2.9 | |
| Deferred revenue recognized | 3.1 | |
| Remaining performance obligations | $ 7.8 | $ 7.8 | 
| Performance obligation revenue expected to be recognized over the next 24 months (percent) | 99.00% | 99.00% | 
| Performance obligation revenue to be recognized in first 12 months (percent) | 98.00% | 98.00% | 
| Performance obligation revenue to be recognized over the subsequent 12 months (percent) | 1.00% | 1.00% | 
| X | ||||||||||
| 
- Definition Payment Term on Contractually Determined Milestones No definition available. 
 | 
| X | ||||||||||
| 
- Definition Payment Term on Energy Production Contract Invoices No definition available. 
 | 
| X | ||||||||||
| 
- Definition Payment Term on Installation Services No definition available. 
 | 
| X | ||||||||||
| 
- Definition Payment Term on Product Sales No definition available. 
 | 
| X | ||||||||||
| 
- Definition Performance Obligation Recognized in Year Two, Percent No definition available. 
 | 
| X | ||||||||||
| 
- Definition Performance Obligation Recognized over Next Twelve Months, Percent No definition available. 
 | 
| X | ||||||||||
| 
- Definition Performance Obligation Recognized over Next Two Years, Percent No definition available. 
 | 
| X | ||||||||||
| 
- Definition Unbilled Revenue, Revenue Recognized No definition available. 
 | 
| X | ||||||||||
| 
- Definition Amount of revenue recognized from performance obligation satisfied or partially satisfied in previous reporting periods. Includes, but is not limited to, change in transaction price. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 | 
| X | ||||||||||
| 
- Definition Amount of revenue recognized that was previously reported as deferred or unearned revenue. No definition available. 
 | 
| X | ||||||||||
| 
- References No definition available. 
 | 
| X | ||||||||||
| 
- Definition Amount of transaction price allocated to performance obligation that has not been recognized as revenue. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 |