Skip to content

A command line interface for the Flume water meter monitor and enphase energy solar energy meter.

Notifications You must be signed in to change notification settings

JamesOBenson/Home_Portal

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick little CLI for the flume API.

This script is currently written to explictly log data for just the last 1 minute assuming that your cron/scheduler is the throttle for data fidelity. There's lots of options available from flume. Feel free to make this code more robust/configurable

Dependencies

  • python3
  • pyjwt library
  • requests library

What you will need

  • Your API client ID and secret. You have to get this through the flumetech portal: https://portal.flumetech.com/#dashboard
  • Your username and password for the portal.
  • Only 1 flume device. I wrote this code to work with a single flume sensor. I have no idea what will happen if you have more than one.

How does it work

  1. First you need to establish a JWT/Token. This requires client ID & secret as well as username and password. You need to specify a tokenfile to write the resulting token to.
    • flumecli.py --auth --clientid <clientid> --clientsecret <clientsecret> --username <flumetech username> --password <flumetech password> --tokenfile <pathtofile>
  2. You may want to have a look at the details of your environment. These can be used to interface with the API directly or using other systems.
    • flumecli.py --details --tokenfile <pathtofile>
    • Your User ID and Device ID are generated by the flume system. These are often required when interacting with other API calls
  3. Query the flume API. There's a query language from flume but for the purposes of this script I'm just looking at the last 1 minute of water flow, assuming that you just schedule this script to run every minute. There's a number of different ways to output this data.
    1. flumecli.py --query --tokenfile <pathtofile> Simple query with output to stdout showing timestamp and water flow from last minute
    2. flumecli.py --query --tokenfile <pathtofile> --logfile <pathtologfile> Same output as above, except the output gets appended to the specified file
  4. Query the flume API for several days (YYYY-MM-DD format). This will retrieve all data, per minute, from 00:00:00 to 23:59:00 each day listed. Each day is two queries split into 12 hour segments.
    1. flumecli.py --getBulkData --startDate 2020-07-01 --endDate 2020-07-01 --tokenfile <pathtofile> Simple query with output to stdout showing timestamp and water flow for the day
    2. flumecli.py --getBulkData --startDate 2020-07-01 --endDate 2020-07-02 --tokenfile <pathtofile> --logfile <pathtologfile> Same output as above, except the output gets appended to the specified file
    3. flumecli.py --getBulkData --startDate 2020-07-01 --endDate 2020-07-02 --tokenfile <pathtofile> --logfile <pathtologfile> --DBfile <DB name> --DBtable <DB table> Same output as above, except the output gets appended to the specified tinyDB and table.

Read the --help on the command line. There are some other options available.

TL;DR

  1. Update credentials in the local_credentials.py file
  2. python3 flumecli.py --auth
  3. python3 flumecli.py --getBulkData --startDate 2021-01-15
  4. python3 flumecli.py --getBulkData --startDate 2021-01-15 --endDate 2021-02-01

About

A command line interface for the Flume water meter monitor and enphase energy solar energy meter.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%