33 lines
		
	
	
		
			869 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			869 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| #include <cstdio>
 | |
| #include <ctime>
 | |
| #include <curl/curl.h> // tested with libcurl4-openSSH
 | |
| #include <optional>
 | |
| #include <sstream>
 | |
| #include <string>
 | |
| 
 | |
| /*
 | |
| 	This class holds all the data retrieved from the Zeverlution combox /
 | |
| 	Zeverlution Sxxxx smart inverters / ZeverSolar box.
 | |
| 
 | |
| 	For output formatting it uses a timestamp to log the datetime alongside the
 | |
| 	watts and kilowatts.
 | |
| */
 | |
| 
 | |
| struct ZeverData
 | |
| {
 | |
|     int number0, number1;
 | |
|     std::string registeryID, registeryKey, hardwareVersion, appVersion, wifiVersion;
 | |
|     std::string timeValue, dateValue, zeverCloudStatus;
 | |
|     int number3;
 | |
|     std::string inverterSN;
 | |
|     int watt;
 | |
|     double kilowattPerHour;
 | |
|     std::string OKmsg, ERRORmsg;
 | |
| 
 | |
|     // Parses the data string coming from the zeverlution home.cgi webpage
 | |
|     static std::optional<ZeverData> ParseString(const std::string & str);
 | |
| 
 | |
|     ZeverData();
 | |
| };
 |