Shelly Plus H&T Wireless Temperature Sensor to Emoncms via MQTT

HA has vastly improved the BLE support in the last few releases. It has not adopted all of the ble_monitor stuff yet, so I’m still using that.

I’m still looking for a non Home Assistant room temp solution for a mate of mine that would hook best into emoncms.

He’s got a emonbase (emonTX and heatpump HAT). But no HA at the moment.

There’s no real way of running a DS18B20 into a room unfortunately.

Shelly Plus H&T still the best bet do you think?

Quite probably. Other way would be an ESP32 and ESPHome to read the BLE data…

Depends on how much of a finished solution they want/need. A Raspberry pi zero W (or Pico W) plus a DS18B20 or a Si7021 would likely be cheaper.

While that’s likely, Mick also said:

Yes, I know, but that’s not what I’m proposing. No long wires required. I’m proposing putting the Pi and the sensor both in the room, much as you would with the Shelly device. The W on the end of the Pi’s name means it supports wi-fi, which is how it would communicate with the emonbase.

If he’s got no wi-fi issues, that would definitely work.

Thanks guys.

I doubt my friend would be up for a Pi/pico/boards etc. Think he’d prefer a more ready made / aesthetically pleasing device on the counter side, ideally battery driven.

So in lieu of the emonTH being available, perhaps the Shelley is the way to go.

If anyone is considered using ESPHome, then this is a handy resources of devices that can be flashed https://www.esphome-devices.com

HI I am a new user just getting set up and have a couple basic questions on this topic. Any guidance would be apricated, thanks!

NOTE: I am currently getting going on the hosted emaonscms.org vs a local rpi/base (but could add that if better)

  1. Is it still the case that the current Shelly H&Ts and their energy reporting smart plugs require a MQTT translation in order to send to emoncms?

  2. Assuming yes to #1, for a limited-skills rpi lunix guy, do you imaging going the nodeRed route or the HA route makes more sense? I have basic experience with both.
    – For nodeRed, since using hosted emoncms I assume I’d run nodeRed and if needed a mqtt receiver on an Ubuntu VM?
    – If HA route, is that easy and reliable?

Note: Its too bad emoncms doesnt have an option to receive variants of mqtt per source.

Thanks

Different, not better. You can access more data sources on a local setup via MQTT. the online version is limited to HTTP API.

To an extent, but that would be a lot of work considering the number of different data structures possible. Use a different tool to do the translations.

Use both! HA to receive the data and the Node-RED addon to poll the sensors and send the data to emoncms.

Steep learning curve, but pretty reliable IME and you can do other things with it.

[edit]
Of course HA can then communicate with the online emoncms easily via HTTP.

Hi

I have been trying to add a Shelly temperature and humidity sensor to my Emonpi setup following the write up at the start of this thread. I have managed to get to a point where the temperature appears as an input in my local Emoncms running on the Emonpi😀

I would like to send this data onto my Emoncms.org account but can’t seem to make it work.

I found this and modified my emonhub accordingly but still nothing received at Emoncms.org

My emonhub looks like this

[MQTT_sub]]
Type = EmonHubMqttInterfacer
[[[init_settings]]]
mqtt_host = 127.0.0.1
mqtt_port = 1883
mqtt_user = emonpi
mqtt_passwd = emonpimqtt2016
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
node_JSON_enable = 1
node_JSON_basetopic = shelly123/Indoortemp

shelly123 being the topic sent from nodered.

Am I on the right track? Where am I going wrong?

When posting code or output, please put 3 ‘backticks’ (normally found at the top left of the keyboard) on a line of their own before the code, and 3 more backticks also on a line of their own after the code:

```
code
```

If it is something like php you can add a language identifier after the first 3 backticks: ```php or even ```text if you don’t want any language markup applied.

I solved this by sending the data directly from node red to Emoncms using the Emoncms push node in node

Assuming you have followed the guide at the start of this thread , you can add an Emoncms push node. This node is an add on to node red and can be added as follows

  1. Select settings toolbar top right in node red window , looks like 3 horizontal bars
  2. Select manage pallette
  3. Select install
  4. In the search modules - enter Emoncms
  5. Select node-red-node-Emoncms in the search results and select install
  6. Once installed restart node red , I also had to reopen my browser window before the Emoncms node appeared in my list of nodes
  7. Select the Emoncms node and place into flow diagram , connect to output of the function block.
  8. Click on the Emoncms node to set it up
  9. Add a new server by clicking the + button next to Emoncms server
  10. In the properties for the server enter as follows
  11. Base URL : http://emoncms.org
  12. API key : enter your Emoncms api key
  13. Name : give it a name eg ‘myemoncmsserver’
  14. Save the server details
  15. Enter a meaningful name in the Node box
  16. Data type : legacy processing
  17. Name : Emoncms Push

Deploy it, and wait for Shelly temp sensor to update, you can force the update by plugging/unplugging the usb power cable to the Shelly temp sensor.

The sync module would work well for this: