Fronius symo inverter input for second dc channel not working

Hello

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:

Thank for your advices.

Best regards

Nicolas

If Iā€™m not mistaken, this is only available from a gen24 (or maybe hybrid - unconfirmed), and not available in symo non hybrid.

Hey Jim

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?

Try doing a http request to the inverter from your browser and post the output here.

I too have the same issue. I was hopeful of getting this information with the upgrade but unfortunately not. I have a Symo as well.

As you can see the response of the http-request ā€œGetInverterRealTimeDataā€ has currently no secondary IDC data:

2022-07-06 10:58:00.401 [INFO ] [utomation.script.ui.solarApi_request] - Http responde: {
   "Body" : {
      "Data" : {
         "DAY_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 14132
         },
         "DeviceStatus" : {
            "ErrorCode" : 0,
            "LEDColor" : 2,
            "LEDState" : 0,
            "MgmtTimerRemainingTime" : -1,
            "StateToReset" : false,
            "StatusCode" : 7
         },
         "FAC" : {
            "Unit" : "Hz",
            "Value" : 49.990000000000002
         },
         "IAC" : {
            "Unit" : "A",
            "Value" : 18.920000000000002
         },
         "IDC" : {
            "Unit" : "A",
            "Value" : 14.859999999999999
         },
         "PAC" : {
            "Unit" : "W",
            "Value" : 4390
         },
         "TOTAL_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 181816.01999999999
         },
         "UAC" : {
            "Unit" : "V",
            "Value" : 232.59999999999999
         },
         "UDC" : {
            "Unit" : "V",
            "Value" : 334.39999999999998
         },
         "YEAR_ENERGY" : {
            "Unit" : "Wh",
            "Value" : 181816
         }
      }
   },
   "Head" : {
      "RequestArguments" : {
         "DataCollection" : "CommonInverterData",
         "DeviceClass" : "Inverter",
         "DeviceId" : "1",
         "Scope" : "Device"
      },
      "Status" : {
         "Code" : 0,
         "Reason" : "",
         "UserMessage" : ""
      },
      "Timestamp" : "2022-07-06T10:58:00+02:00"
   }
}

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:

2022-07-08 11:39:02.078 [INFO ] [utomation.script.ui.solarApi_request] - Http responde: {
        "Body" :
        {
                "Data" :
                {
                        "inverter/1" :
                        {
                                "Data" :
                                {
                                        "Current_DC_String_2" :
                                        {
                                                "Unit" : "A",
                                                "Values" :
                                                {
                                                        "60" : 6.4900000000000002
                                                },
                                                "_comment" : "channelId=131586"
                                        },
                                        "Voltage_DC_String_2" :
                                        {
                                                "Unit" : "V",
                                                "Values" :
                                                {
                                                        "60" : 224.40000000000001
                                                },
                                                "_comment" : "channelId=131585"
                                        }
                                },
                                "DeviceType" : 123,
                                "End" : "2022-07-08T11:38:59+02:00",
                                "NodeType" : 97,
                                "Start" : "2022-07-08T11:34:00+02:00"
                        }
                }
        },
        "Head" :
        {
                "RequestArguments" :
                {
                        "Channel" :
                        [
                                "Current_DC_String_2",
                                "Voltage_DC_String_2"
                        ],
                        "EndDate" : "2022-07-09T11:38:59+02:00",
                        "HumanReadable" : "True",
                        "Scope" : "System",
                        "SeriesType" : "Detail",
                        "StartDate" : "2022-07-08T11:34:00+02:00"
                },
                "Status" :
                {
                        "Code" : 0,
                        "ErrorDetail" :
                        {
                                "Nodes" : []
                        },
                        "Reason" : "",
                        "UserMessage" : ""
                },
                "Timestamp" : "2022-07-08T11:39:02+02:00"
        }
}

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 ) ?

Thanx for your advices

1 Like

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 :slight_smile:

1 Like