How to integrate Shelly 3EM in Emoncms local?

It is a theoretical question at the moment as I don’t have an emoncms server running.
But I plan to run one as I would also like to monitor my other 3-phase input running on another tariff for my heatpump.

I have a Shelly 3EM for monitoring my 3-phase house input (and solar output) connection.
What would be the way to get the data from the Shelly device to Emoncms?

The Shelly has a REST API where you can query the measurements.
If I disable the cloud access, it also has MQTT, although probably not in the format Emonhub is expecting data.

I was thinking of something simple in Node Red. It would query the Shelly REST API and in the same flow commit the data to Emoncms with HTTP.

Could this be working? Did somebody manage something like this already?

I don’t have a 3EM, but I do have a 1PM. I use Node-RED to convert the MQTT from the Shelly to an emon/shellies-topic for emoncms.

Thank you very much!

It seems like a good solution and I am happy to hear, that it is already working.
The firmware of EM and 3EM should not be that much different from this point of view.

I have a further question on this subject, hope that someone has the answer.

Would it be possible to use the HTTP post from Shelly, to send data straight to another server then the Shelly cloud? And that way divert data from Shelly cloud to any server of my own preference?

Is there any place i can find out how the post string looks like and how to use it?

Thank you kindly for any input here, as you notice i am not a developer.

best regards

I know of no documentation about the format of the data posted to the Shelly cloud.

But at Shelly you can find the documentation about getting data from the Shelly locally over HTTP.
Finally I use this way to read data from my Shellies with NodeRed.

Hello M2ts,
I’m totally new on nodered.

I’m trying to connect a shelly HT to emoncms. Please could you explain how do you set “string2numer” note ?

thank you.


Look at the JSONATA docs. Numeric functions · JSONata.

However, I think Emoncms will translate a string to number when it reads the topic (IIRC).

You can use a JSONATA string function to set the Topics.