Solax Cloud API integration?

Hello @Mariano_Colmenarejo I have a question. Is it possible to create an edge drivers for a virtual device using third party API? I’m asking because I have a solar power system from Solax and they have API, which looks pretty simple - https://eu.solaxcloud.com/green/doc/SolaxCloud_User_Monitoring_API_V6.1.pdf
And I would really like to integrate it into my Smartthigs to easily read data and use that data for routines. I wanted to try it myself, but I’m not sure where to start.

Hi,

I think it would be possible with some virtual device from @TAustin.

I have it implemented with an Aeotec gen5 energy meter.

With the clamp you can locally monitor the instantaneous generated power if you place the clamp on the AC port of the inverter, before connecting to the load input (house).
or surpluses power if you put the clamp in the cable that comes from the outside network, before connecting to the entrance of the load (house).

With this you can activate routines to turn on and off loads depending on solar production or surpluses such as air conditioning, heating, electric hot water, etc…

It works well and does not generate excessive traffic on the zwave network, since the reports can be scheduled, by default every 5 minutes. I have them in 2 minute intervals.

Interesting solution with that Aeotec energy meter, but it won’t be able to provide data like battery status etc. This API is really simple, I just have link with my token and it outputs JSON data like this:
{
“success”: true,
“exception”: “Query success!”,
“result”: {
“inverterSN”: “XXXXXXXXXXXXXX”,
“sn”: “XXXXXXXXXX”,
“acpower”: 379,
“yieldtoday”: 17.3,
“yieldtotal”: 20.2,
“feedinpower”: 0,
“feedinenergy”: 0.4,
“consumeenergy”: 0.5,
“feedinpowerM2”: 0,
“soc”: 82,
“peps1”: 0,
“peps2”: 0,
“peps3”: 0,
“inverterType”: “14”,
“inverterStatus”: “102”,
“uploadTime”: “2024-05-31 23:34:58”,
“batPower”: -358,
“powerdc1”: 0,
“powerdc2”: 0,
“powerdc3”: null,
“powerdc4”: null,
“batStatus”: “0”
},
“code”: 0
}

Some I just need virtual device, which extracts 2 or 3 values from this every 1 minute and display them. I saw @TAustin created Web Requestor: a driver to issue local POST and GET HTTP requests, so maybe this is something I need, but I’m not really sure.

That particular API is in the cloud. From the link you gave:

Solax API Interface document is a guide for clients to obtaining information from the Solax cloud through http protocol.

Edge drivers can get information from a Zigbee device, Z wave device, matter device, or LAN device, but only locally. They are not allowed to go out to the Internet.

So in order to create an integration with something like your Solax data you have to have an always running server device, typically a raspberry pi or maybe a laptop, which can receive local communications from the SmartThings/Aeotec hub and which itself can then reach the Internet.

That is how all of @taustin’s projects of this type work, usually with his “EdgeBridge” set up.

The local Webhooks edge driver that he has that you mentioned is only local. So it could communicate to something that is available locally at your house, but not out to the Internet.

Anyway, it can still be done, but since it’s not strictly an edge driver project, I’ve moved your posts into their own topic.

1 Like

Oh, I didn’t know edge drivers can’t reach internet. Well I could use Raspberry Pi or maybe a VM, but I guess that would make whole process even more difficult and I’m not sure if I would manage it. But if anyone has any idea, how to make it simple, feel free to post it here.

2 Likes

I don’t there is a simple hub-based solution for what you want. First, you need to have a device that supports the capabilities for metrics you want to pull from the solar system. If one doesn’t exist, you’re going to need to create a new device type. In both cases, you’ll need to have the driver pull the data from the API which is going to require a proxy on the local LAN of the hub.

A different approach might be to create a SmartApp for ST and host it on a Raspberry Pi or perhaps in a public cloud. That SmartApp would be responsible for pulling the data from the API and then presenting it in the ST mobile app. This approach would eliminate the need for having a hub-based device and would be similar to other cloud->cloud device integrations. Information for creating Cloud Connected Devices can be found here Get Started with Cloud Connected Devices | Developer Documentation | SmartThings

1 Like