With the new channels of the fronius binding github it should be possible to read out each dc channel of the inverter individually. I just tested this channels on the fronius symo 8.2-3-M, which has two individual MPPT-tracker and therfore also two individual inputs. In the inverter control panel you can see for eache channel the current, voltage and power. But when I add an item to one of the additional dc channels (2/3) the responde is always 0.
Does this feature already support the symo inverter with the datamanager 2.0 or does it at this stage only support the Gen24 inverter as mentioned in this topic:
According the solar API reference documentation see Fronius Solar API (JSON) those endpoints should be supported by the datamanager 2.0. But in the documentation its not explict decleared if this is a gen24 feature⦠solarApiv1.json (62.4 KB)
Does anybody else have any experience with the mppt2 values of the Symo inverters?
I just tested several other requests but couldnāt figure out, where the desired data fields are. On the Fronius solar Web portal under the menu Analysis/Historie the channel is available as MPPT1 / MPPT2.
Could a request of Archive Data ( URL/GetArchiveData.cgi ) return the desired fields? Do you have any experience?
With URL/GetArchiveData.cgi we can access the desired data field.
You just have to specify the desired channel and time range and then the response is as follow:
Now Iām struggling to acces the returned data by parsing as json object, see my code:
this.HTTPX = (this.HTTPX === undefined) ? Java.type('org.openhab.core.model.script.actions.HTTP'):this.HTTPX;
var solarPower = items.getItem("solarApi");
var IP = "192.168.1.7";
var now = time.ZonedDateTime.now();
var before =time.ZonedDateTime.now().minusMinutes(5);
console.log("before: "+before);
// get data from fronius datamanager
if (this.baseURL){
//let content = '?Scope=Device&DeviceId=1&DataCollection=CommonInverterData';
//let responde = this.HTTPX.sendHttpGetRequest("http://"+IP+this.baseURL+"GetInverterRealtimeData.cgi"+content,3000)
let content = '?Scope=System&StartDate='+before+'&EndDate='+now+'&Channel=Current_DC_String_2&Channel=Voltage_DC_String_2';
let responde = this.HTTPX.sendHttpGetRequest("http://"+IP+this.baseURL+"GetArchiveData.cgi"+content,3000)
let json = JSON.parse(responde);
console.log("Http responde as json: "+json.Body.Data["inverter/1"].Data.Voltage_DC_String_2.Values[0]);
if(json.Data === undefined){
console.log("Http responde: "+responde);
}
} else{ // Get baseURL
let version = this.HTTPX.sendHttpGetRequest("http://"+IP+"/solar_api/GetAPIVersion.cgi",5000);
let response = JSON.parse(version);
this.baseURL = response.BaseURL;
console.log("Http responde: "+this.baseURL);
}
how can i access the field Values[0] when the key always changes (see example above 60 ) ?
Good find! I believe that value is the offset in seconds since your given StartDate, at which the inverter recorded its data sample that falls within the given time range (between StartDate and EndDate)
So youād just loop through the values and get what you can.
I think this would be a useful addition to the binding. Iām not sure whether the binding should just fill in the data from GetArchiveData when the inverterdata doesnāt provide dc(current|voltage)2 and return the values on inverterdatachannelidc2 and inverterdatachanneludc2 channels? That would make the binding interface more seamless, or provide a separate thing for archivedata ? Currently Iām leaning more towards the first option for simplicityās sake.
Hi JimT
Itās been a while since my last post. Thx for your hint with the the loop function for extracting the response.
I discovered that the data of all historic values is also available on the fronius solarweb platform without any boundaries. So if you navigate to analyse than Historisch you can select all desired historic values to get an insight of your plant.
In my case the simple http request as described above does the job and Iām wondering if there are many use cases wich can profit from this additional functionality in the bindning.
If you still are up to include the historic data request in the binding I would recommend to include it in the existing thing, as you mentioned it makes it more seamlessā¦
I m also available for any support in documentation if you need and add an example of the historical http request.
I figured out that the current dc(current|voltage)1 values of a fronius symo is the sum of all mpptās ( dc1 & dc2 in my case) . Maybe this soulf be mentioned somewhere.
Best regards and thx for this good working binding!
Nicolas
Hi,
I see that it has been a while since this topic was active. I just wanted to add that the second channel (the second string of panels if I am understanding this correct) still is missing (no values). I am not an expert in any way on this but that is what I understand at least.
I am on openHAB version 3.4.3 on Windows10. Fronius Symo 12.5-3-M.
No errors in the log from what I can see.
However, the values for DC Power (String 1) is giving the whole power, not only for String 1.
DC Current for String 1 seems to give the whole current for both strings
DC Voltage for String 1 seems to be correct however.
The above āconclusionā comes after I found the historic values for String 1 and String 2 in Fronius web interface. The images are not from the same time since there is a slight delay I guess. But they make sense in my eyes.
Maybe I am totally misunderstanding the whole thing, forgive me for that in that case.
Just wanted to report this regarding this otherwise excellent binding. If there is any form of information that I can collect to somehow help to solve this, please tell me. Or if I have totally misunderstood it, donāt hesitate to tell me that either