[RELEASE] SmarThings Smart App and Device Handler for Flume Smart Home Water Monitor

Code is available at: GitHub - tronikos/FlumeSmartThings: SmarThings Smart App and Device Handler for Flume Smart Home Water Monitor

Direct links to code:

Features

  • Leak sensor
    • Changes to wet on low flow leaks
    • Changes to wet on any usage alert (configurable)
    • Changes to dry when notification is deleted in the flume app or when it’s read (configurable)
    • Wet/dry status can be permanently or temporarily paused (with configurable time lime)
  • Water usage for the last full minute, today, this month, this year is shown in the device page as well as the dashboard
    • water usage stats, connection status, battery level, away mode are exposed as attributes for webCoRE automations
  • When SmartThings changes to away, Flume can be put in away mode that notifies emergency contacts
  • Supports multiple Flume devices
  • Configurable polling frequencies
  • To avoid rate limitting there is support for proxy running somewhere in your LAN

Installation

If you have GitHub IDE integration you need to:

  1. Go to “My SmartApps”
  2. Add GitHub repository with: owner: tronikos, name: FlumeSmartThings, branch: main
  3. Update from Repo → FlumeSmartThings
  4. Check tronikos:Flume Smart Home Water Monitor
  5. Check Publish
  6. Click Execute Update
  7. Click Edit Properies of the new installed SmartApp
  8. Expand Settings
  9. Enter FlumeAPI_Key and FlumeAPI_Secret. You can get these from Flume Portal by expanding API Access
  10. Go to “My Device Handlers”
  11. Update from Repo → FlumeSmartThings
  12. Check tronikos:Flume Smart Home Water Monitor DH
  13. Check Publish
  14. Click Execute Update

Proxy

Flume API has a rate limit of 120 requests per hour per IP address. SmartThings SmartApps run on the cloud so this limit is shared among other users of this SmartApp. To avoid rate limiting it’s recommended to setup a proxy running in your local network that the SmartThings hub will locally connect to.

The proxy is implemeted in Node.js, see code, that can run pretty much anywhere, e.g. Windows/Linux/macOS/Android etc. In my case, my hub is a SmartThings Link for NVIDIA SHIELD, so the proxy runs on the NVIDIA SHIELD that is always on. I used Termux. Do a web search how to run Node.js on whatever machine you have available. It needs to be in the same LAN as your SmartThings hub. And then enter local_ip:port in the SmartApp settings.

Thanks @getterdone for their version that this was based on.

1 Like

Awesome! Can’t wait to try this version :). I have another update cooking as well but the rate limit issue keeps creeping up. I’ll try to figure out the Proxy solution/workaround you mentioned and test some and hopefully fixes the rate limit issue for me and then release my changes.

@NickT
Working great for me, thanks! Perhaps add an installation step for enabling OAuth, took me a minute to realize that. Any idea if it’s possible to get daily usage as a tile in ActionTiles?

OAuth isn’t needed. No harm enabling it though.

I just tried ActionTiles for the first time. You can achieve what you want following these steps:

  1. Go to My Devices on the web version of SmartThings
  2. Click New Device
  3. Set the device type to: “Simulated Temperature Sensor” and enter any name and id. For example:
  4. Make the new device visible in webCoRE and ActionTiles.
  5. Create a new piston like the following to copy today’s water usage to the temperature of the simulated device:
    piston
  6. In ActionTiles add a tile like the following, selecting decimals, unselecting unit:
  7. The tile will appear like the following:
    tile
  8. Repeat above steps if you also want to expose this month’s and this year’s water usage.

That’s fantastic, thanks for taking the time to look into this. I might I have some other uses for this method of exposing things in ActionTiles.

I just released an update:

Fixed icon that was always showing as wet. Water usage isn’t shown anymore in the dashboard. It’s only shown in the detail view. If you want water usage in the dashboard and don’t mind the broken icon, you can manually uncomment the corresponding vid in the DH code.

Thanks so much for this! Everything installed well and looks to be working great. I wound up going back to the broken tile just so I could see at a glance that everything is working properly and see flow at a glance.

It took me a while (ignorance) to get the js setup on my always on Windows 10 machine and to get it running properly as a service so it’d always be running in the background. Keep in mind the port is defined as 3006, but you can change it in the .js file if it is in use already for something else.
For anyone else that is struggling:
I installed node.js, including everything that came with it
Saved index.js file in the OP to where I want it to live
I attempted to run it from the command prompt (pointing to the location) and resulted in errors of missing modules
I installed missing modules with:
npm install xxxx --save (where xxxx is the missing dependent)
IIRC this allowed it to run without issue, but keeps the window open and will need to be run at each reboot, etc.
If you want to run it as a windows service, go here: GitHub - coreybutler/node-windows: Windows support for Node.JS scripts (daemons, eventlog, UAC, etc).
Just create a new .js file with the included directions and point to the location of index.js. I was stupid and only included single backslashes between folders/files in the file path (it wants two for each).