New binding available: SolarEdge binding

When I open my SolarEdge Dashboard it looks like this:
ScreenShot_1984_Übersicht - Mozilla Firefox
This is what Firefox retrieves from the server every few seconds:

ScreenShot_1985_Übersicht - Mozilla Firefox
This is what Firefox retrieves from the server when you change the period

Ohh wuaaauu!!! the dashboard is different. I like it. :slight_smile:
In my case, I don’t have a battery installed and there is not electricity reader which controls the power exported.
This is what I see in dashboard:

This is what I get in firefox:

As before, I was trying with production parameter and I not getting the info, I will try later to add all the items to the Openhab settings. And see if any of them can catch any data.

Thanks again for your help.

Hi Alex, I have been playing with firefox trying to send the same commands sent by your binding.
As it is happening in the binding, when I run: https://monitoring.solaredge.com/solaredge-apigw/api/site/sitenumber/currentPowerFlow.json, I get:
{“siteCurrentPowerFlow”:{}}

Just for your reference, In Firefox, I see how it is running the following get command to get production data:
https://monitoring.solaredge.com/solaredge-web/p/overviewPanel?fieldId=siteID&v=1509018601032

Maybe, as it is running different dashboard for different country, the data collection procedure is different.

Thank you again.

Your dashboard shows current power in the top left corner. It should be possible to make this available to openhab.
I need the query that Firefox sends to get this and I need the json response. as my dashboard looks different I cannot find it out on my own.

I have run it on Firefox and but I am not able to see any json command requesting for current power.

They only json transaction is energyDashboardChart which is used to fill the monthly graph.
Do you have any idea why there is not json command?
As mentioned in my commend above, the only link where I see that info is:
https://monitoring.solaredge.com/solaredge-web/p/overviewPanel?fieldId=siteID&v=1509018601032

This is what I get:

Hi again,

I have been checking the API documentation of SolarEdge and I have seen the issue when currentPowerFlow is used.
Note: Applies when export, import and consumption can be measured.
So, in my case, as I am missing most of those requirements, It does not show anything.

So, the only, that is giving me information is overview json output using API code (https://monitoringapi.solaredge.com/site/siteID/overview&api_key=XXX). However, when https://monitoring.solaredge.com/solaredge-apigw/api/site/siteID/overview running it web browser I get 404 error message.

Thank you.

I have now upgraded to the 2.2.0 snapshot of openHab and was able to install the addon (from https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.solaredge/). I do have the same SolarEdge dashboard as AlexF, but I don’t seem to be able to get any data into my items. Any fix for that? Let me know if I can be of any help. I do have the following entries in my log file:

2017-11-07 16:19:35.797 [WARN ] [edge.internal.command.LiveDataUpdate] - Request failed: org.eclipse.jetty.io.EofException
2017-11-07 16:19:35.806 [WARN ] [internal.command.AggregateDataUpdate] - Request failed: org.eclipse.jetty.io.EofException
2017-11-07 16:20:14.244 [WARN ] [edge.internal.connector.WebInterface] - Session-Cookie not found: SPRING_SECURITY_REMEMBER_ME_COOKIE

Hi Mario

From the FB group (the newer one) I know that we almost certainly have the same Solar Edge (and Nibe) setup in our new houses :wink:

Good news! After struggling a little (or a lot), I finally have the Solar Edge Binding working!

I did this on Ubuntu 16.04 with a fresh extract from openhab-2.1.0.zip into /home/neil/openhab
After I got it working I started again from scratch just to make sure, and to check I wrote it down right…

  • Before doing anything I started ./startup.sh then went to http://localhost:8080 and selected Standard Setup to set up the UIs

  • Killed openHAB (with kill -9)

  • Downloaded the following from https://mvnrepository.com/artifact/com.fasterxml.jackson.core and copied to openHAB addons folder

    1. jackson-annotations-2.9.2.jar
    2. jackson-core-2.9.2.jar
    3. jackson-databind-2.9.2.jar
  • Downloaded org.openhab.binding.solaredge-2.2.0-SNAPSHOT.jar from this thread and copied to openHAB addons folder

  • Added ‘log4j.logger.org.openhab.binding.solaredge = DEBUG’ to ‘./openhab/userdata/etc/org.ops4j.pax.logging.cfg’ (added as first line)

  • Created solaredge.things with the following:

solaredge:generic:se3000     [ username="my.email@gmail.com", password="mypassword", solarId="440000", pollingInterval=30 ]
  • Created solaredge.items with the following:
Number	SE3000_Live_Level	"Batterieladung [%d %%]"	{channel="solaredge:generic:se3000:live#battery_level"}
  • Created default.sitemap with the following:
sitemap default label="My home automation" {
	    Frame label="Solar" {
	        Text item=SE3000_Live_Level
		}
	}
  • Start openHAB
  • Data is read and the Sitemap shows the Battery % - sadly it really is on 4% right now :frowning:

30

Here is my events.log:

2017-11-07 22:42:25.799 [ExtensionEvent            ] - Extension 'package-standard' has been installed.
2017-11-07 22:42:29.041 [ExtensionEvent            ] - Extension 'ui-basic' has been installed.
2017-11-07 22:42:29.041 [ExtensionEvent            ] - Extension 'ui-habpanel' has been installed.
2017-11-07 22:42:29.042 [ExtensionEvent            ] - Extension 'ui-paper' has been installed.
2017-11-07 22:46:43.458 [ItemChannelLinkAddedEvent ] - Link 'SE3000_Live_Level-solaredge:generic:se3000:live#battery_level' has been added.
2017-11-07 22:46:43.531 [ThingAddedEvent           ] - Thing 'solaredge:generic:se3000' has been added.
2017-11-07 22:46:43.535 [hingStatusInfoChangedEvent] - 'solaredge:generic:se3000' changed from UNINITIALIZED to INITIALIZING
2017-11-07 22:46:43.983 [hingStatusInfoChangedEvent] - 'solaredge:generic:se3000' changed from INITIALIZING to ONLINE: logged in
2017-11-07 22:46:44.633 [ItemStateChangedEvent     ] - SE3000_Live_Level changed from NULL to 4

…and my openhab.log

2017-11-07 22:42:18.350 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://192.168.188.22:8080
2017-11-07 22:42:18.352 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://192.168.188.22:8443
2017-11-07 22:42:29.008 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2017-11-07 22:42:29.021 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2017-11-07 22:42:29.032 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2017-11-07 22:46:42.741 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'solaredge.items'
2017-11-07 22:46:43.315 [DEBUG] [org.openhab.binding.solaredge       ] - BundleEvent INSTALLED - org.openhab.binding.solaredge
2017-11-07 22:46:43.368 [DEBUG] [org.openhab.binding.solaredge       ] - BundleEvent RESOLVED - org.openhab.binding.solaredge
2017-11-07 22:46:43.368 [DEBUG] [org.openhab.binding.solaredge       ] - BundleEvent [unknown:512] - org.openhab.binding.solaredge
2017-11-07 22:46:43.370 [DEBUG] [org.openhab.binding.solaredge       ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory}={component.name=org.openhab.binding.solaredge.internal.SolarEdgeHandlerFactory, component.id=119, service.id=228, service.bundleid=183, service.scope=bundle} - org.openhab.binding.solaredge
2017-11-07 22:46:43.371 [DEBUG] [org.openhab.binding.solaredge       ] - BundleEvent STARTING - org.openhab.binding.solaredge
2017-11-07 22:46:43.371 [DEBUG] [org.openhab.binding.solaredge       ] - BundleEvent STARTED - org.openhab.binding.solaredge
2017-11-07 22:46:43.504 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'solaredge.things'
2017-11-07 22:46:43.534 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - About to initialize SolarEdge
2017-11-07 22:46:43.544 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Discovered NibeUplink initialized: org.openhab.binding.solaredge.config.SolarEdgeConfiguration@3a7a05ac[username=my.mail@gmail.com,password=mypassword,solarId=440000,pollingInterval=30,asyncTimeout=120,syncTimeout=120]
2017-11-07 22:46:43.567 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - start polling job at intervall 30
2017-11-07 22:46:43.689 [DEBUG] [.solaredge.internal.command.PreLogin] - received content, length: 40
2017-11-07 22:46:43.690 [DEBUG] [.solaredge.internal.command.PreLogin] - HTTP response 200
2017-11-07 22:46:43.691 [DEBUG] [.solaredge.internal.command.PreLogin] - onComplete()
2017-11-07 22:46:43.821 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://192.168.188.22:8080
2017-11-07 22:46:43.822 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://192.168.188.22:8443
2017-11-07 22:46:43.849 [DEBUG] [.solaredge.internal.command.PreLogin] - JSON String: {"success":true,
 "isLicensed":true
 }
2017-11-07 22:46:43.942 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2017-11-07 22:46:43.960 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2017-11-07 22:46:43.973 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2017-11-07 22:46:43.982 [DEBUG] [solaredge.internal.command.PostLogin] - received content, length: 15727
2017-11-07 22:46:43.982 [DEBUG] [solaredge.internal.command.PostLogin] - HTTP response 200
2017-11-07 22:46:43.984 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - command for solaredge:generic:se3000:live#battery_level: REFRESH
2017-11-07 22:46:44.568 [DEBUG] [g.solaredge.handler.SolarEdgePolling] - polling SolarEdge org.openhab.binding.solaredge.config.SolarEdgeConfiguration@6f7a9def[username=my.mail@gmail.com,password=mypassword,solarId=440000,pollingInterval=30,asyncTimeout=120,syncTimeout=120]
2017-11-07 22:46:44.569 [DEBUG] [edge.internal.connector.WebInterface] - SPRING_SECURITY_REMEMBER_ME_COOKIE: bmVpbC5mZW1NzQ4NTA5N-altered-Tc6YmI1YzY2YjlhZGRhYjM4YzAwMGJlZTRhNzQ4YzM4YmI
2017-11-07 22:46:44.620 [DEBUG] [edge.internal.command.LiveDataUpdate] - received content, length: 320
2017-11-07 22:46:44.620 [DEBUG] [edge.internal.command.LiveDataUpdate] - HTTP response 200
2017-11-07 22:46:44.620 [DEBUG] [edge.internal.command.LiveDataUpdate] - onComplete()
2017-11-07 22:46:44.621 [DEBUG] [edge.internal.command.LiveDataUpdate] - JSON String: {"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"from":"GRID","to":"Load"}],"GRID":{"status":"Active","currentPower":0.25},"LOAD":{"status":"Active","currentPower":0.25},"PV":{"status":"Idle","currentPower":0.0},"STORAGE":{"status":"Idle","currentPower":0.0,"chargeLevel":4,"critical":false}}}
2017-11-07 22:46:44.626 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Handling channel update.
2017-11-07 22:46:44.627 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#battery_status: Idle
2017-11-07 22:46:44.627 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#consumption: 0.25
2017-11-07 22:46:44.627 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#import: 0.25
2017-11-07 22:46:44.628 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#export: 0.0
2017-11-07 22:46:44.628 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#production: 0.0
2017-11-07 22:46:44.628 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#battery_level: 4
2017-11-07 22:46:44.629 [DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Channel is to be updated: live#load_status: Active

Hint: For the long while I had ‘solaredge:web:se3000’ instead of ‘solaredge:generic:se3000’ and as soon as I changed it it started to work!

I hope you get it working!
I also managed to get the Nibe one working without any issues. Thanks a million to AlexF for both :sunglasses:

Next challenge: Somfy io!

Neil

2 Likes

Hi, i was thrilled to see an http JSON binding for Solaredge. I am testing it on OH2.1.
Just followed Neil’s instructions. Downloaded jackson jars, the binding jar and made the thing, item and sitemap updates to my configuration.
On the logs i see that i get the response similar to Javier #18

2017-11-09 01:06:59.239 [DEBUG] [g.solaredge.handler.SolarEdgePolling] - polling SolarEdge org.openhab.binding.solaredge.config.SolarEdgeConfiguration@1060745[username=xxxxx,password=xxxxx,solarId=xxxx,pollingInterval=30,asyncTimeout=120,syncTimeout=120]
2017-11-09 01:06:59.338 [DEBUG] [edge.internal.command.LiveDataUpdate] - received content, length: 27
2017-11-09 01:06:59.353 [DEBUG] [edge.internal.command.LiveDataUpdate] - HTTP response 200
2017-11-09 01:06:59.357 [DEBUG] [edge.internal.command.LiveDataUpdate] - onComplete()
2017-11-09 01:06:59.361 [DEBUG] [edge.internal.command.LiveDataUpdate] - JSON String: {“siteCurrentPowerFlow”:{}}
2017-11-09 01:06:59.378 [DEBUG] [internal.command.AggregateDataUpdate] - received content, length: 4682
2017-11-09 01:06:59.382 [DEBUG] [internal.command.AggregateDataUpdate] - HTTP response 200
2017-11-09 01:06:59.385 [DEBUG] [internal.command.AggregateDataUpdate] - onComplete()
2017-11-09 01:06:59.387 [DEBUG] [internal.command.AggregateDataUpdate] - JSON String: {“fieldStartDate”:1321197910000,“fieldEndDate”:1510185599000,“dataStartDate”:1510099200000,“dataEndDate”:1510185599000,“utilizationMeasures”:{“production”:{“value”:10.361,“unit”:“KWh”}},“isMSCMode”:true,“measurementUnit”:“W”,“systemProduction”:{“dateSeries”:[{“date”:“2017-11-08 00:00:00”,“value”:null},{“date”:“2017-11-08 00:15:00”,“value”:null},{“date”:“2017-11-08 00:30:00”,“value”:null},{“date”:“2017-11-08 00:45:00”,“value”:null},{“date”:“2017-11-08 01:00:00”,“value”:null},{“date”:“2017-11-08 01:15:00”,“value”:null},{“date”:“2017-11-08 01:30:00”,“value”:null},{“date”:“2017-11-08 01:45:00”,“value”:null},{“date”:“2017-11-08 02:00:00”,“value”:null},{“date”:“2017-11-08 02:15:00”,“value”:null},{“date”:“2017-11-08 02:30:00”,“value”:null},{“date”:“2017-11-08 02:45:00”,“value”:null},{“date”:“2017-11-08 03:00:00”,“value”:null},{“date”:“2017-11-08 03:15:00”,“value”:null},{“date”:“2017-11-08 03:30:00”,“value”:null},{“date”:“2017-11-08 03:45:00”,“value”:null},{“date”:“2017-11-08 04:00:00”,“value”:null},{“date”:“2017-11-08 04:15:00”,“value”:null},{“date”:“2017-11-08 04:30:00”,“value”:null},{“date”:“2017-11-08 04:45:00”,“value”:null},

… and keeps this kind kind of data.

can we get a solution, only for reading the daily production ?

i know my inverter is a bit old and its communications board is also a bit old, it doesn’t support modbus. so this binding is our best bet for getting readings.

also, this needs to clarify

Hint: For the long while I had ‘solaredge:web:se3000’ instead of ‘solaredge:generic:se3000’ and as soon as I changed it it started to work!

why is that? i tried both :web: and :generic: with no success.

this is my current files

solaredge.things
solaredge:generic:se3000 [ username=“xxxx”, password=“xxxxx”, solarId=“xxxx”, pollingInterval=30 ]

solaredge.items
Number Solaredge_Production “PV Production [%.2f KW]” {channel=“solaredge:generic:se3000:live#production”}
(i had to edit the " " characters, if copied from the forum, others should be carefull too)

and the sitemap addition
Frame label=“Solar” {
Text item=Solaredge_Production
}

well, this is Nick from Greece, this is also my first post on the forum.

Thanks to Neils great instructions, I am now seeing data coming in. Unfortunately, I don’t know what I have to do to get that data into my items. This is what my log shows:

2017-11-09 12:20:44.111 [DEBUG] [edge.internal.command.LiveDataUpdate] - JSON String: {"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"from":"GRID","to":"Load"},{"from":"PV","to":"Load"}],"GRID":{"status":"Active","currentPower":0.51},"LOAD":{"status":"Active","currentPower":0.62},"PV":{"status":"Active","currentPower":0.11}}}
2017-11-09 12:20:44.267 [DEBUG] [internal.command.AggregateDataUpdate] - received content, length: 26580
2017-11-09 12:20:44.273 [DEBUG] [internal.command.AggregateDataUpdate] - HTTP response 200
2017-11-09 12:20:44.276 [DEBUG] [internal.command.AggregateDataUpdate] - onComplete()
2017-11-09 12:20:44.281 [DEBUG] [internal.command.AggregateDataUpdate] - JSON String: {"fieldStartDate":1496122790000,"fieldEndDate":1510271999000,"dataStartDate":1510185600000,"dataEndDate":1510271999000,"utilizationMeasures":{"production":{"value":326.0,"unit":"Wh"},"consumption":{"value":7.993,"unit":"KWh"},"selfConsumptionForProduction":{"value":326.0,"percentage":1.0,"unit":"Wh"},"selfConsumptionForConsumption":{"value":0.326,"percentage":0.04078569,"unit":"KWh"},"export":{"value":0.0,"percentage":0.0,"unit":"Wh"},"import":{"value":7.667,"percentage":0.95921427,"unit":"KWh"}},"isMSCMode":true,"measurementUnit":"W","systemProduction":.....

This is my items file:

Number Wechselrichter_Gesamtverbrauch "Wechselrichter Gesamtverbrauch [%d]" {channel="solaredge:generic:se3000:aggregate#consumption"}
Number Wechselrichter_Aktueller_Verbrauch "Wechselrichter Aktueller Verbrauch [%d]" {channel="solaredge:generic:se3000:live#consumption"}

Both items don’t get any values. What am I missing?

I have not had time to play with it much since I got it working, and currently only have this in my solaredge.items:
(All are added to my HABPanel)

Number      SE3000_Live_Level        "Battery Level [%d %%]"                 {channel="solaredge:generic:se3000:live#battery_level"}
Number      SE3000_Live_Consumption  "Consumption"           	      {channel="solaredge:generic:se3000:live#consumption"}
Number      SE3000_Live_Production  "Production"           	      {channel="solaredge:generic:se3000:live#production"}
Number      SE3000_Aggregate_Production  "Production"           	      {channel="solaredge:generic:se3000:aggregate#production"}
Number      SE3000_Aggregate_Consumption  "Consumption"           	      {channel="solaredge:generic:se3000:aggregate#consumption"}
  • Live_Level - seems be working OK, it reports the battery as 4% and hasn’t moved for a couple of days (I see the same in the Monitoring Portal App - it has been raining mostly!)

  • Live_Consumption - seems to be working OK, it reports plausible values and changes every minute.

  • Live_Production - I am seeing 0.0 kWh every time I look, which is currently correct (it is dark!), so will need to wait for the weekend to see what happens then.

  • Aggregate_Production - definitely working OK - I see the same as the daily Solar Production figure in the Monitoring Portal

  • Aggregate_Consumption - definitely working OK - I see the same as the daily Consumption figure in the Monitoring Portal

I will put the debug back on in a while and post it for comparison with what you are seeing.

@sirpreis
Did you already try removing the quotes and entering them again?
Nick (post above) mentioned there was an issue when copying them from the forum.

@ngalfas
It seems I cannot upload a text file here, and the entire log is too long to post, so here are the snippets which I guess are interesting for you.

I am not sure it is going to help you, but at least you can compare what I get vs what you have.

The first string will probably be different (or missing) if you don’t have a battery attached (I do).

2017-11-09 22:25:21.938 [DEBUG] [edge.internal.command.LiveDataUpdate] - JSON String: {"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"from":"GRID","to":"Load"}],"GRID":{"status":"Active","currentPower":0.32},"LOAD":{"status":"Active","currentPower":0.32},"PV":{"status":"Idle","currentPower":0.0},"STORAGE":{"status":"Idle","currentPower":0.0,"chargeLevel":4,"critical":false}}}

The second string which looks like the equivalent of what you posted:

2017-11-09 22:25:22.495 [DEBUG] [internal.command.AggregateDataUpdate] - JSON String: {"fieldStartDate":1491324515000,"fieldEndDate":1510271999000,"dataStartDate":1510185600000,"dataEndDate":1510271999000,"utilizationMeasures":{"production":{"value":1.048,"unit":"KWh"},"consumption":{"value":6.791,"unit":"KWh"},"selfConsumptionForProduction":{"value":1.017,"percentage":0.9704198,"unit":"KWh"},"selfConsumptionForConsumption":{"value":1.017,"percentage":0.14975701,"unit":"KWh"},"batterySelfConsumption":{"value":0.014,"percentage":0.01376598,"unit":"KWh"},"export":{"value":0.031,"percentage":0.029580154,"unit":"KWh"},"import":{"value":5.774,"percentage":0.850243,"unit":"KWh"}},"isMSCMode":true,"measurementUnit":"W","systemProduction":{"dateSeries":[{"date":"2017-11-09 00:00:00","value":0.0},{"date":"2017-11-09 00:15:00","value":0.0},{"date":"2017-11-09 00:30:00","value":0.0},{"date":"2017-11-09 00:45:00","value":0.0},{"date":"2017-11-09 01:00:00","value":0.0},{"date":"2017-11-09 01:15:00","value":0.0},{"date":"2017-11-09 01:30:00","value":0.0},{"date":"2017-11-09 01:45:00","value":0.0},{"date":"2017-11-09 02:00:00","value":0.0},{"date":"2017-11-09 02:15:00","value":0.0},{"date":"2017-11-09 02:30:00","value":1.3333333},{"date":"2017-11-09 02:45:00","value":0.0},{"date":"2017-11-09 03:00:00","value":1.0},{"date":"2017-11-09 03:15:00","value":0.0},{"date":"2017-11-09 03:30:00","value":0.6666666},{"date":"2017-11-09 03:45:00","value":0.0},{"date":"2017-11-09 04:00:00","value":0.75},{"date":"2017-11-09 04:15:00","value":0.0},{"date":"2017-11-09 04:30:00","value":0.0},{"date":"2017-11-09 04:45:00","value":0.0},{"date":"2017-11-09 05:00:00","value":0.0},{"date":"2017-11-09 05:15:00","value":0.0},{"date":"2017-11-09 05:30:00","value":2.0},{"date":"2017-11-09 05:45:00","value":1.0},{"date":"2017-11-09 06:00:00","value":0.0},{"date":"2017-11-09 06:15:00","value":0.66666675},{"date":"2017-11-09 06:30:00","value":0.0},{"date":"2017-11-09 06:45:00","value":0.0},{"date":"2017-11-09 07:00:00","value":1.6666667},{"date":"2017-11-09 07:15:00","value":0.0},{"date":"2017-11-09 07:30:00","value":0.0},{"date":"2017-11-09 07:45:00","value":0.0},{"date":"2017-11-09 08:00:00","value":2.6666667},{"date":"2017-11-09 08:15:00","value":14.0}

Even in the night, my “systemProduction” series values are numeric (0.0), whereas your are null.

The same is true for the “consumption”, “selfConsumption”, “export”, “storagePower”, “storageEnergyLevel”, “solarProduction” and “import”. The ONLY nulls I get are for the timestamps that are after the current time (e.g. 23:45 when it is now only 23:00)

EDIT: I am not sure what the difference between systemProduction and solarProduction is.
I am wondering if systemProduction is solarProduction plus ‘consumption from battery’ in which case the nulls could make sense without a battery. Do you have nulls also in solarProduction?

@sirpreis - how does this compare to what you have in the strings?

Neil

@ngalfas:

I think you have a rather old setup without a battery and without a smart power meter attached to your inverter. Yout web dashboard should then look similar to that one Javier posted above.
Unfortunately in that setup the live production is not getting sent via json. I will implement a fallback for those older setups to parse the data from the plain html.

@neilf
I have tried replacing the quotes, that didn’t change anything. I do get data, the corresponding items don’t. I have to say, I might have a different SolarEdge model, I do not have a battery. I think I have the SE2200

Here are my strings that I get (the second one I posted only partially because it’s quite long; there are some null values and some number values):

2017-11-10 08:34:27.185 [DEBUG] [g.solaredge.handler.SolarEdgePolling] - polling SolarEdge org.openhab.binding.solaredge.config.SolarEdgeConfiguration@1c95703[username=xxxxx,password=abcde,solarId=1345,pollingInterval=30,asyncTimeout=120,syncTimeout=120]
2017-11-10 08:34:27.237 [DEBUG] [edge.internal.command.LiveDataUpdate] - received content, length: 240
2017-11-10 08:34:27.246 [DEBUG] [edge.internal.command.LiveDataUpdate] - HTTP response 200
2017-11-10 08:34:27.249 [DEBUG] [edge.internal.command.LiveDataUpdate] - onComplete()
2017-11-10 08:34:27.252 [DEBUG] [edge.internal.command.LiveDataUpdate] - JSON String: {"siteCurrentPowerFlow":{"updateRefreshRate":3,"unit":"kW","connections":[{"from":"GRID","to":"Load"}],"GRID":{"status":"Active","currentPower":0.72},"LOAD":{"status":"Active","currentPower":0.72},"PV":{"status":"Idle","currentPower":0.0}}}
2017-11-10 08:34:27.398 [DEBUG] [internal.command.AggregateDataUpdate] - received content, length: 26229
2017-11-10 08:34:27.405 [DEBUG] [internal.command.AggregateDataUpdate] - HTTP response 200
2017-11-10 08:34:27.408 [DEBUG] [internal.command.AggregateDataUpdate] - onComplete()
2017-11-10 08:34:27.412 [DEBUG] [internal.command.AggregateDataUpdate] - JSON String: {"fieldStartDate":1496122790000,"fieldEndDate":1510358399000,"dataStartDate":1510272000000,"dataEndDate":1510358399000,"utilizationMeasures":{"production":{"value":0.0,"unit":"Wh"},"consumption":{"value":6.128,"unit":"KWh"},"selfConsumptionForProduction":{"value":0.0,"unit":"Wh"},"selfConsumptionForConsumption":{"value":0.0,"percentage":0.0,"unit":"KWh"},"import":{"value":6.128,"percentage":1.0,"unit":"KWh"},"export":{"value":0.0,"unit":"Wh"}},"isMSCMode":true,"measurementUnit":"W","systemProduction":{"dateSeries":[{"date":"2017-11-10 00:00:00","value":null},{"date":"2017-11-10 00:15:00","value":null},{"date":"2017-11-10 00:30:00","value":null},{"date":"2017-11-10 00:45:00","value":null},{"date":"2017-11-10 01:00:00","value":null},{"date":"2017-11-10 01:15:00","value":null},{"date":"2017-11-10 01:30:00","value":null},{"date":"2017-11-10 01:45:00","value":null},{"date":"2017-11-10 02:00:00","value":null},{"date":"2017-11-10 02:15:00","value":null},{"date":"2017-11-10 02:30:00","value":null},{"date":"2017-11-10 02:45:00","value":null},{"date":"2017-11-10 03:00:00","value":null},{"date":"2017-11-10 03:15:00","value":null},{"date":"2017-11-10 03:30:00","value":null},{"date":"2017-11-10 03:45:00","value":null},{"date":"2017-11-10 04:00:00","value":null},{"date":"2017-11-10 04:15:00","value":null},{"date":"2017-11-10 04:30:00","value":null},{"date":"2017-11-10 04:45:00","value":null},{"date":"2017-11-10 05:00:00","value":null},{"date":"2017-11-10 05:15:00","value":null},{"date":"2017-11-10 05:30:00","value":null},{"date":"2017-11-10 05:45:00","value":null},{"date":"2017-11-10 06:00:00","value":null},{"date":"2017-11-10 06:15:00","value":null},{"date":"2017-11-10 06:30:00","value":null},{"date":"2017-11-10 06:45:00","value":null},{"date":"2017-11-10 07:00:00","value":null},{"date":"2017-11-10 07:15:00","value":null},{"date":"2017-11-10 07:30:00","value":null},{"date":"2017-11-10 07:45:00","value":null},{"date":"2017-11-10 08:00:00","value":0.0},{"date":"2017-11-10 08:15:00","value":0.0},{"date":"2017-11-10 08:30:00","value":null},{"date":"2017-11-10 08:45:00","value":null},{"date":"2017-11-10 09:00:00","value":null},{"date":"2017-11-10 09:15:00","value":null},{"date":"2017-11-10 09:30:00","value":null},{"date":"2017-11-10 09:45:00","value":null},{"date":"2017-11-10 10:00:00","value":null},{"date":"2017-11-10 10:15:00","value":null},{"date":"2017-11-10 10:30:00","value":null},{"date":"2017-11-10 10:45:00","value":null},{"date":"2017-11-10 11:00:00","value":null},{"date":"2017-11-10 11:15:00","value":null},{"date":"2017-11-10 11:30:00","value":null},{"date":"2017-11-10 11:45:00","value":null},{"date":"2017-11-10 12:00:00","value":null},{"date":"2017-11-10 12:15:00","value":null},{"date":"2017-11-10 12:30:00","value":null},{"date":"2017-11-10 12:45:00","value":null},{"date":"2017-11-10 13:00:00","value":null},{"date":"2017-11-10 13:15:00","value":null},{"date":"2017-11-10 13:30:00","value":null},{"date":"2017-11-10 13:45:00","value":null},{"date":"2017-11-10 14:00:00","value":null},{"date":"2017-11-10 14:15:00","value":null},{"date":"2017-11-10 14:30:00","value":null},{"date":"2017-11-10 14:45:00","value":null},{"date":"2017-11-10 15:00:00","value":null},{"date":"2017-11-10 15:15:00","value":null},{"date":"2017-11-10 15:30:00","value":null},{"date":"2017-11-10 15:45:00","value":null},{"date":"2017-11-10 16:00:00","value":null},{"date":"2017-11-10 16:15:00","value":null},{"date":"2017-11-10 16:30:00","value":null},{"date":"2017-11-10 16:45:00","value":null},{"date":"2017-11-10 17:00:00","value":null},{"date":"2017-11-10 17:15:00","value":null},{"date":"2017-11-10 17:30:00","value":null},{"date":"2017-11-10 17:45:00","value":null},{"date":"2017-11-10 18:00:00","value":null},{"date":"2017-11-10 18:15:00","value":null},{"date":"2017-11-10 18:30:00","value":null},{"date":"2017-11-10 18:45:00","value":null},{"date":"2017-11-10 19:00:00","value":null},{"date":"2017-11-10 19:15:00","value":null},{"date":"2017-11-10 19:30:00","value":null},{"date":"2017-11-10 19:45:00","value":null},{"date":"2017-11-10 20:00:00","value":null},{"date":"2017-11-10 20:15:00","value":null},{"date":"2017-11-10 20:30:00","value":null},{"date":"2017-11-10 20:45:00","value":null},{"date":"2017-11-10 21:00:00","value":null},{"date":"2017-11-10 21:15:00","value":null},{"date":"2017-11-10 21:30:00","value":null},{"date":"2017-11-10 21:45:00","value":null},{"date":"2017-11-10 22:00:00","value":null},{"date":"2017-11-10 22:15:00","value":null},{"date":"2017-11-10 22:30:00","value":null},{"date":"2017-11-10 22:45:00","value":null},{"date":"2017-11-10 23:00:00","value":null},{"date":"2017-11-10 23:15:00","value":null},{"date":"2017-11-10 23:30:00","value":null},{"date":"2017-11-10 23:45:00","value":null}]},"consumption":{"dateSeries":[{"date":"2017-11-10 00:00:00","value":527.41187},{"date":"2017-11-10 00:15:00","value":548.71967},{"date":"2017-11-10 00:30:00","value":562.7419},{"date":"2017-11-10 00:45:00","value":606.2416},{"date":"2017-11-10 01:00:00","value":614.13464},{"date":"2017-11-10 01:15:00","value":299.2225},{"date":"2017-11-10 01:30:00","value":307.30063},{"date":"2017-11-10 01:45:00","value":633.04443},{"date":"2017-11-10 02:00:00","value":758.13794},{"date":"2017-11-10 02:15:00","value":717.10657},{"date":"2017-11-10 02:30:00","value":805.41907},{"date":"2017-11-10 02:45:00","value":618.6561},{"date":"2017-11-10 03:00:00","value":408.00458},{"date":"2017-11-10 03:15:00","value":881.0108}...

I tried the items that you posted above (withouth the SE3000_Live_Level one), and that does not do anything either.

@AlexF One minor thing I noticed:

[DEBUG] [laredge.handler.SolarEdgeBaseHandler] - Discovered NibeUplink initialized:

That was probably copied from the Nibe binding? :slight_smile:

Let me know if I can be of any help with my “old setup” in my new house :slight_smile:

Yes my dashboard is the older type like Javier’s, and it’s clearly for older inverter models.
When i was looking for RS485 output i saw i have an old communications board on my inverter, so we can assume that the difference on the monitoring dashboard reflects the inverter comm board’s “version”.

I think that everybody who still have problems, has the same version with me, so i think we will have to wait for a second parsing option in the binding for older installations.

We clearly are receiving the JSON feed, it’s only matter of parsing.

P.S. I also noticed something about NibeUplink on my log :slight_smile:

P.S. #2 SolaredgeMonitoring API details

My thought is that either you are 100% right, or alternatively that just whether there is a battery / no battery is making the difference that nerds different handling. In my understanding @sirpreis has a very recent inverter.

PS: i also have the odd NIBE message coming from the SolarEdge binding!

Correct, my inverter is a SE2200H which was installed about half a year ago. I would hope it’s kind of up to date :slight_smile: I do not have a battery though. Maybe @AlexF can look into that some time. I can assist with any data that he might need.

@sirpreis: I included a check for presence of the battery. It should now work for you.

I also removed the dependency to jackson, it should now work without adding that lib manually.

1 Like

Hi. Quick question - is there somewhere to download a compiled version? Thanks.