GithubHelp home page GithubHelp logo

lux4rd0 / sense-collector Goto Github PK

View Code? Open in Web Editor NEW
25.0 3.0 4.0 3.44 MB

Sense Collector provides a way of collecting real-time data from the Sense Energy Monitor. Includes Grafana dashboards for visualizations of detected devices and smart plugs and their wattage, voltage, and amp utilization.

Home Page: https://labs.lux4rd0.com/sense-collector/

License: GNU Affero General Public License v3.0

Dockerfile 0.91% Python 99.09%
sense grafana docker influxdb energy-consumption energy-monitor observability dashboards

sense-collector's Introduction

About The Project

Sense Collector is a Python application deployed with Docker designed to efficiently collect data from the Sense energy monitoring system. Once deployed, Sense Collector provides a comprehensive set of Grafana dashboards, enabling you to visualize and effortlessly analyze your energy usage data in real-time. Whether starting with Grafana, InfluxDB, and Sense or looking to enhance your existing setup, Sense Collector offers an intuitive and powerful solution for monitoring and understanding your energy consumption.

A live set of these dashboards are available to view.

Getting Started

The project is deployed as a Docker container.

Prerequisites

Deploying the Sense Collector

Use the following Docker container:

lux4rd0/sense-collector:2.0.07
lux4rd0/sense-collector:latest

Correct environmental variables are required for the container to function.

  SENSE_COLLECTOR_API_PASSWORD
  SENSE_COLLECTOR_API_USERNAME
  SENSE_COLLECTOR_INFLUXDB_BUCKET
  SENSE_COLLECTOR_INFLUXDB_ORG
  SENSE_COLLECTOR_INFLUXDB_TOKEN
  SENSE_COLLECTOR_INFLUXDB_URL

The username and password are the same as those used in the Sense mobile or Sense Web apps.

An example command line would be (be sure to change all of the variables):

To start the docker container, simply update this minimal example compose.yaml file:

name: sense-collector-53997
services:
  sense-collector-53997:
    container_name: sense-collector-53997
    environment:
      SENSE_COLLECTOR_API_PASSWORD: CHANGEME
      SENSE_COLLECTOR_API_USERNAME: [email protected]
      SENSE_COLLECTOR_INFLUXDB_BUCKET: sense
      SENSE_COLLECTOR_INFLUXDB_ORG: Lux4rd0
      SENSE_COLLECTOR_INFLUXDB_TOKEN: TOKEN
      SENSE_COLLECTOR_INFLUXDB_URL: http://sense-collector.lux4rd0.com:8086
      TZ: America/Chicago
    image: lux4rd0/sense-collector:latest
    restart: always

If you don't want to use docker-compose, an example docker run command will be displayed on the screen.

docker run --rm \
  --name=sense-collector-53997 \
  -e SENSE_COLLECTOR_API_PASSWORD=CHANGEME \
  -e [email protected] \
  -e SENSE_COLLECTOR_INFLUXDB_BUCKET=sense \
  -e SENSE_COLLECTOR_INFLUXDB_ORG=Tylephony \
  -e SENSE_COLLECTOR_INFLUXDB_TOKEN=TOKEN \
  -e SENSE_COLLECTOR_INFLUXDB_URL=http://sense-collector.lux4rd0.com:8086 \
  -e TZ=America/Chicago \
  --restart always \
  lux4rd0/sense-collector:latest

Running docker compose up -d or the docker-run command will download and start up the sense-collector container.

Environmental Flags:

The Docker contain can be configured with additional environment flags to control collector behaviors. They are described below:

Sense Collector Environmental Variables

This document provides a detailed explanation of the environmental variables used to configure the Sense Collector Docker container. Each variable is classified as required or optional, with its default value and possible options.

Environmental Variables

SENSE_COLLECTOR_API_PASSWORD

  • Description: The password for authenticating with the Sense API.
  • Required: Yes
  • Default: None
  • Options: User-provided password

SENSE_COLLECTOR_API_USERNAME

  • Description: The username (email address) for authenticating with the Sense API.
  • Required: Yes
  • Default: None
  • Options: User-provided email address

SENSE_COLLECTOR_API_TOKEN_RENEW

  • Description: Interval (in seconds) renews the Sense API token to maintain an active session.
  • Required: No
  • Default: 43200 (12 hours)
  • Options: Integer value representing seconds

SENSE_COLLECTOR_HOST_HOSTNAME

  • Description: The hostname that is running the Docker container. Used in the Collector Info dashboard to know where the Collector is running.
  • Required: No
  • Default: None
  • Options: User-provided hostname

SENSE_COLLECTOR_INFLUXDB_BUCKET

  • Description: The bucket name in InfluxDB where data will be stored.
  • Required: Yes
  • Default: None
  • Options: User-provided bucket name

SENSE_COLLECTOR_INFLUXDB_ORG

  • Description: The organization name in InfluxDB.
  • Required: Yes
  • Default: None
  • Options: User-provided organization name

SENSE_COLLECTOR_INFLUXDB_TOKEN

  • Description: The authentication token for InfluxDB.
  • Required: Yes
  • Default: None
  • Options: User-provided token

SENSE_COLLECTOR_INFLUXDB_URL

  • Description: The URL of the InfluxDB instance where data will be written.
  • Required: Yes
  • Default: None
  • Options: User-provided URL

SENSE_COLLECTOR_LOG_LEVEL_API

  • Description: Sets the logging level for the API interactions.
  • Required: No
  • Default: INFO
  • Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

SENSE_COLLECTOR_LOG_LEVEL_GENERAL

  • Description: Sets the general logging level for the application.
  • Required: No
  • Default: INFO
  • Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

SENSE_COLLECTOR_LOG_LEVEL_STORAGE

  • Description: Sets the logging level for storage operations.
  • Required: No
  • Default: INFO
  • Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

SENSE_COLLECTOR_OUTPUT_RECEIVED_DATA

  • Description: Enables or disables the output of received Sense API data to a file.
  • Required: No
  • Default: false
  • Options: true, false

SENSE_COLLECTOR_WS_HEARTBEAT_INTERVAL

  • Description: Interval (in seconds) between heartbeat messages to keep the WebSocket connection alive.
  • Required: No
  • Default: 10
  • Options: Integer value representing seconds

SENSE_COLLECTOR_WS_HEARTBEAT_TIMEOUT

  • Description: Timeout (in seconds) to wait for a heartbeat response before considering the WebSocket connection as dead.
  • Required: No
  • Default: 30
  • Options: Integer value representing seconds

SENSE_COLLECTOR_WS_RECONNECT_DELAY_INITIAL

  • Description: Initial delay (in seconds) before reconnecting the WebSocket after a connection loss.
  • Required: No
  • Default: 5
  • Options: Integer value representing seconds

SENSE_COLLECTOR_WS_RECONNECT_DELAY_CAP

  • Description: Maximum delay (in seconds) between reconnection attempts.
  • Required: No
  • Default: 60
  • Options: Integer value representing seconds

SENSE_COLLECTOR_WS_MAX_RETRIES

  • Description: Maximum number of retries for reconnecting the WebSocket before giving up.
  • Required: No
  • Default: 3
  • Options: Integer value

SENSE_COLLECTOR_WS_BACKOFF_FACTOR

  • Description: Factor for exponential backoff between reconnection attempts.
  • Required: No
  • Default: 1
  • Options: Integer value

SENSE_COLLECTOR_WS_RECONNECT_INTERVAL

  • Description: Interval (in seconds) between forced WebSocket reconnections to maintain a fresh connection.
  • Required: No
  • Default: 840
  • Options: Integer value representing seconds

SENSE_COLLECTOR_DEVICE_CACHE_EXPIRY_SECONDS

  • Description: Duration (in seconds) for which the device data should be cached before it expires.
  • Required: No
  • Default: 120
  • Options: Integer value representing seconds

SENSE_COLLECTOR_DEVICE_MAX_CONCURRENT_LOOKUPS

  • Description: Maximum number of concurrent lookups that can be performed for device data.
  • Required: No
  • Default: 4
  • Options: Integer value

SENSE_COLLECTOR_DEVICE_LOOKUP_DELAY_SECONDS

  • Description: Delay (in seconds) between consecutive device data lookup requests.
  • Required: No
  • Default: 0.5
  • Options: Float value representing seconds

Collector Details

sense-collector

Sense Collector is the primary data collector and is responsible for gathering details on the following:

Voltage, Watts, Hz on the mains, and device-specific wattage details are collected. If you happen to have any Sense compatible smart plugs, their additional metric details of voltage and amps are also collected.

Timeline events for device's change of states (on, off, idle)

device-details

Device Details polls the Sense API to gather details on your devices. This includes:

avg_duration, avg_monthly_KWH, avg_monthly_cost, avg_monthly_cost, avg_monthly_pct, avg_monthly_runs, avg_watts, current_ao_wattage, current_month_KWH, current_month_cost, current_month_runs, icon, last_state, last_state_time, name, yearly_KWH, yearly_cost, yearly_text

monitor-status

Monitor Status gathers details about the Sense monitor and detection status for both in-progress and found devices. Monitor details include: emac, ethernet, ip_address, mac, ndt_enabled, online, progress, serial, signal, ssid, status, test_result, version, wifi_strength

Grafana Dashboards

Collecting data is only half the fun. Now it's time to provision some Grafana Dashboards to visualize your essential Sense data. You'll find a folder of dashboards with collectors and backends split out. You can also use the links/numbers next to each dashboard title to load the dashboards directly from Grafana.

In General:

Each dashboard has dropdowns at the top that allow you to filter measurements based on devices and plugs. The dropdowns default to "All," but you can select and save preferences.

Interval: A dropdown that provides different smoothing levels helps manage how the graphs look based on the interval of data collected by the Sense Collector. Think of this as a level of "smoothing" based on your chosen time frame and the quantity of data collected.

Device Status On/Off/Idle: These three toggles overlay event annotations in the Wattage By Devices panels and the Wattage, Volts, and Hz panels in the Mains Overview dashboard.

Sense Collector Dashboard Links: This dropdown in the top right-hand corner provides easy access to the other dashboards in this collection.

Time Range: This defaults to "Today so far" but can be updated to any other Relative or Absolute time range. Change the "Interval" dropdown for longer time ranges to smooth out any of the data.

Dashboard Refresh: Each dashboard is set to refresh every sixty seconds, but this can be changed or disabled.

Collector Info - 14734

Collector Info: This dashboard provides observability into how the Sense Collector functions alongside metrics related to the host's performance. It helps understand the performance of the main collector functions to assist with troubleshooting.

Epoch Time Difference: Helps determine if your hosts can keep up with processing messages from the Sense monitor. It provides the difference between the host and epoch times received in the Sense monitor data. Negative numbers mean the Sense monitor is ahead of the hosts. Positive numbers mean the host is behind the Sense monitor. If the drift trends positively, it may also mean there's just time clock drift. Ensure you monitor the NTP time sync on both your host and Sense if there's a large discrepancy.

CPU, Load Average, Memory Utilization: These panels show host-level details and are not specific to the performance of the docker container. Per Process CPU Usage, Netstat, and Processes are particular to the container.

Collector Starts: Provide the last time the container and process were started. Because Sense times out the connection, it is reset every fifteen minutes.

Device Overview - 14735

Device Overview is the main dashboard for Sense Collector. Here, you'll see several sections about the device's overall details.

Current Wattage: A Bubble Chart showing current wattage usage by device. Larger circles represent higher wattage consumption.

Wattage By Device (Stacked): Wattage overtime per device. The graph is stacked to represent total household wattage.

Device Status: This is a State Timeline representing event data from the Sensor Monitor over time. It currently represents three states: On, Off, and Idle.

Event Timeline: This table view shows each device's state change.

Device Details - Average: This is a table view of current data representing the current state, state time, watts in use, average, and always on makeup. Average duration, monthly kWh, percent, and the number of runs are also listed. This table defaults to being sorted by "Watts (In Use)."

Device Details - Current Month: Shows the number of runs per device since the start of the current month.

Device Details - Yearly: This section shows each device's calculated kWh and costs. The text next to each device provides details on how the costs are calculated, such as "Based on the last 30 days," "Based on the last 7 days," or "Based on last season."

Smart Device Details: If you have any of the Sense compatible smart plugs, they will be listed here as well. Open up this row to display the voltages and amps measured by each plug. There's another measurement (Who Knows By Plugs), but I don't know what it does yet.

Always On Devices: This shows which devices the Sense monitor has detected have an Always On wattage component. This may be different from actual wattage and tends to update less frequently.

Notice: This Grafana dashboard uses the community visualization Bubble Chart panel plugin.

Mains Overview - 14736

Mains Overview provides three panels showing Wattage (Stacked), Voltages, and Frequency. Dropdowns at the top of the dashboard show Leg 1, Leg 2, or both together. Device Status On, Off, and Idle event annotations may be toggled on or off.

Monitor & Detection - 14737

The Monitor & Detection dashboard provides observability of the monitor itself.

Device Detection Status: Represents Device Detection Status for both "Found" and "In Progress" devices.

Wifi Signal Strength - RSSI: Represents the Wifi signal strength of your Sense monitor.

Monitor Details: This panel shows current information about Online status, General Status, Learning Progress, IP Address, MAC Address, Wi-Fi SSID, Wi-Fi strength, Ethernet, NDT Enabled, and software version.

Grafana Datasource

This collector uses InfluxQL, and for the dashboards to function, you need to create a data source in Grafana using the credentials you set in InfluxDB V2. More details can be found on the InfluxDB V2 Web site:

https://docs.influxdata.com/influxdb/v2/tools/grafana/?t=InfluxQL#configure-your-influxdb-connection

The biggest change here is:

  • Configure InfluxDB authentication:

    Token authentication Under Custom HTTP Headers, select Add Header. Provide your InfluxDB API token:

    Header: Enter Authorization

    Value: Use the Token schema and provide your InfluxDB API token. For example:

    Token y0uR5uP3rSecr3tT0k3n
    

Multiple Devices

The Sense Collector and dashboards currently only support a single Sense instance. Please let me know if you have more than one Sense device and are interested in having multiple devices supported.

Time Zone Variable

A TZ variable is used when running the Docker container based on the value returned during the initial docker-compose configuration scripts. It's not currently in use in any of the current dashboards.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contact

Dave Schmid: @lux4rd0 - [email protected]

Project Link: https://github.com/lux4rd0/sense-collector

Acknowledgements

sense-collector's People

Contributors

lux4rd0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sense-collector's Issues

Raspberry PI arm build

This is really great work! I've rebuilt the docker image for arm so that it can run on a Raspberry Pi which can be found here https://hub.docker.com/r/wmandra/sense-collector

A few issues I ran into:
copying in jq binary didn't work, just added jq to the apt-get install
had to grab arm version of websocat (either the build script should just grab this, or download within the Dockerfile)
had to disable health check as the script was missing
for some reason $delay was being calculated as a negative number causing sleep to treat the value as an option, added "| awk -F- '{print $NF}'" to ensure it is always a positive number

Also noticed some items in Grafana dashboards hardcoded and removed those on my installation.

2.0?

I’ve been enjoying using sense-collector 1.0.1 for a while, thanks to your work.

I noticed recently that you had pushed a 2.0 image on docker hub a few months back. I don’t see a 2.0 branch, new commits or documentation on GitHub, is that something you will update soon?

Support MFA tokens

Accounts with MFA on them don't work with the setup scripts, i had to use Fiddler to track down the bearer token in order to fill in the token value to allow the collector to poll data.

HTTP Error: 204 No Content AND 400 Bad Request

Hi,

Great script!
Unfortunately, for some reason my setup stopped working (it works 1/2 day and stops after that) and I have been trying to scratch my head to find out where the issue is.

My setup (all inside docker instance):

  • InfluxDB 180
  • Chronograf (to setup the sense db on influxDB for the first time)
  • Grafana Private Data Source Connect (PDC) Agent (to be able to send the report to Grafana from my own network)
  • Grafana free account
  • sense-collector docker

Environment variable used:

SENSE_COLLECTOR_TOKEN=t1.v2.eyJhbxxx
SENSE_COLLECTOR_MONITOR_ID=267xxx
TZ=Australia/Sydney
SENSE_COLLECTOR_HOST_HOSTNAME=ubuntu
SENSE_COLLECTOR_INFLUXDB_PASSWORD=12345678
SENSE_COLLECTOR_INFLUXDB_URL=http://192.168.1.26:32800/write?db=sense
SENSE_COLLECTOR_INFLUXDB_USERNAME=sensedb
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SENSE_COLLECTOR_DISABLE_HEALTH_CHECK=true
SENSE_COLLECTOR_DEBUG=true
SENSE_COLLECTOR_DEBUG_CURL=true
SENSE_COLLECTOR_DEBUG_IF=true
SENSE_COLLECTOR_DEBUG_SLEEPING=true
SENSE_COLLECTOR_DISABLE_HOST_PERFORMANCE=false

Error logs:

payload={"voltage":[248.2037353515625],"frame":17049350,"devices":[{"id":"always_on","name":"Always On","icon":"alwayson","tags":{"DefaultUserDeviceType":"AlwaysOn","DeviceListAllowed":"true","TimelineAllowed":"false","UserDeleted":"false","UserDeviceType":"AlwaysOn","UserDeviceTypeDisplayString":"Always On","UserEditable":"false","UserMergeable":"false"},"attrs":[],"w":318},{"id":"unknown","name":"Other","icon":"home","tags":{"DefaultUserDeviceType":"Unknown","DeviceListAllowed":"true","TimelineAllowed":"false","UserDeleted":"false","UserDeviceType":"Unknown","UserDeviceTypeDisplayString":"Unknown","UserEditable":"false","UserMergeable":"false"},"attrs":[],"w":140.02094},{"id":"solar","name":"Solar","icon":"solar_alt","tags":{"DefaultUserDeviceType":"Solar","DeviceListAllowed":"false","TimelineAllowed":"false","UserDeleted":"false","UserDeviceType":"Solar","UserDeviceTypeDisplayString":"Solar","UserEditable":"false","UserMergeable":"false"},"attrs":[],"w":6.2918267}],"deltas":[],"defaultCost":29.65,"channels":[458.02093505859375],"hz":50.01411437988281,"w":458.02093505859375,"c":13,"solar_w":6.2918267250061035,"grid_w":452,"solar_c":0,"_stats":{"brcv":1699989443.435617,"mrcv":1699989443.552,"msnd":1699989443.552},"aux":{"solar":[-6.2918267250061035]},"power_flow":{"solar":["home"],"grid":["home"]},"solar_pct":1,"d_w":458,"d_solar_w":6,"epoch":1699988873} type=realtime_update 
sense-collector: poll_check=23

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   230    0     0  100   230      0   3432 --:--:-- --:--:-- --:--:--  3432
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 706535bb-8322-11ee-b5c1-02420a000302
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.8.0
X-Request-Id: 706535bb-8322-11ee-b5c1-02420a000302
Date: Tue, 14 Nov 2023 19:17:23 GMT
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   246    0     0  100   246      0   3727 --:--:-- --:--:-- --:--:--  3727

and sometimes showing error 400 bad request too:

HTTP/1.1 400 Bad Request
Content-Type: application/json
Request-Id: 7cd1b35c-8324-11ee-87fc-02420a000302
X-Influxdb-Build: OSS
X-Influxdb-Error: partial write: unable to parse 'sense_mains,leg=L2 voltage= 1699989750': missing field value unable to parse 'sense_mains,leg=L2 watts= 1699989750': missing field value dropped=0
X-Influxdb-Version: 1.8.0
X-Request-Id: 7cd1b35c-8324-11ee-87fc-02420a000302
Date: Tue, 14 Nov 2023 19:32:04 GMT
Content-Length: 192
error=partial write: unable to parse 'sense_mains,leg=L2 voltage= 1699989750': missing field value
unable to parse 'sense_mains,leg=L2 watts= 1699989750': missing field value dropped=0 

InfluxDB log also stated the same:

[httpd] 10.0.3.20 - sensedb [14/Nov/2023:19:36:00 +0000] "POST /write?db=sense HTTP/1.1" 204 0 "-" "curl/7.64.0" 0a41db03-8325-11ee-8bea-02420a000302 4578031
[httpd] 10.0.3.20 - sensedb [14/Nov/2023:19:36:00 +0000] "POST /write?db=sense&precision=s HTTP/1.1" 400 192 "-" "curl/7.64.0" 0a41a891-8325-11ee-8be9-02420a000302 4584451
[httpd] 10.0.3.20 - sensedb [14/Nov/2023:19:36:03 +0000] "POST /write?db=sense&precision=s HTTP/1.1" 400 192 "-" "curl/7.64.0" 0c0cdeaf-8325-11ee-8bec-02420a000302 3228334
[httpd] 10.0.3.20 - sensedb [14/Nov/2023:19:36:05 +0000] "POST /write?db=sense HTTP/1.1" 204 0 "-" "curl/7.64.0" 0d0b6a75-8325-11ee-8bee-02420a000302 2477032
[httpd] 10.0.3.20 - sensedb [14/Nov/2023:19:36:05 +0000] "POST /write?db=sense&precision=s HTTP/1.1" 204 0 "-" "curl/7.64.0" 0d0bc8cb-8325-11ee-8bef-02420a000302 2474658

I have also tried to re-authenticate using "./generate_docker-compose.sh" command and use the new token too, unfortunately, still showing the same http 204 result

Is there something that I missed?

Thank you

Error messages: sleep

Hello,
I've got this working but there is a persistent error in the logs:

Try 'sleep --help' for more information.

sleep: invalid option -- '1'

I went through the .sh scripts and tried to see which call was causing the error, but I couldn't work it out. But I suspect that if one of the scripts isn't sleeping as it should be, it may be polling much more frequently than designed.

Health Check Missing

It looks like the start-health-check.sh file is missing from the repo. This is similar to an item listed in #2 . Was this file intentionally left out, or maybe intended for future growth?

sense-init: Starting Health Check
/sense-collector/sense-collector-init.sh: line 103: ./start-health-check.sh: No such file or directory

Things still work even when the error is there, but it litters the logs. On initial install, the constant log messages may prevent you from seeing important messages, so it is best to bypass it with a variable:
SENSE_COLLECTOR_DISABLE_HEALTH_CHECK=true

start-health-check.sh: No such file or directory

Hello,

Thanks for such a great script!
I tried to run it using the following docker-compose.yml

services:
  sense-1234:
    container_name: sense-1234
    environment:
      TZ: Australia/Sydney
      SENSE_COLLECTOR_HOST_HOSTNAME: ubuntu
      SENSE_COLLECTOR_INFLUXDB_PASSWORD: 1233123
      SENSE_COLLECTOR_INFLUXDB_URL: http://influxdb01.com:8086/write?db=sense
      SENSE_COLLECTOR_INFLUXDB_USERNAME: sensuser
      SENSE_COLLECTOR_TOKEN: xxx
      SENSE_COLLECTOR_MONITOR_ID: 1234
    image: lux4rd0/sense-collector:latest
version: '3.3'

For some reason, when I ran the docker, it keeps throwing this message:

sense-init: Starting Health Check
/sense-collector/sense-collector-init.sh: line 103: ./start-health-check.sh: No such file or directory
sense-init: Starting Health Check
/sense-collector/sense-collector-init.sh: line 103: ./start-health-check.sh: No such file or directory

Did I miss anything?

Thanks

After 24 hours - current running login gets marked as "Authorized"

I'm currently hunting down an issue where the Sense API marks the collector as "Unauthorized" after a period of time. Even though I have it set to reconnect, it's reusing the token, so I'm guessing I need to grab a new token, not just reconnect. If anybody else is seeing the same thing, please let me know. I will try a few quick updates on my theory and will publish an update if it fixes it.

sleep: invalid option -- '1'

Anyone getting the following error:

sleep: invalid option -- '1'

Constantly keeps showing up in the logs!

Thank you!

Live dashboard doesn't match code

Hi, the live dashboard seems to have different values than the repository used in the dashboard.

I've forked and updated the code to use influx 2.0 api, and got it working.

Any chance you could push the new code and dashboards up to this repo?
Thanks!

image

Sense Collector - Device Overview

Based on the lack of replies here this project looks abandoned. Thats a shame if that is true. I have been at this all afternoon and thought I might just simply ask why this one visualization isn't working. I have all 4 dashboards running with no issues and I am stumped on this one called [Device Status]. Its got nothing going on graphically.

db is created influx db v1.8 as 'sense' and added to grafana with no issues at all.

This is the query from the 'Device Status' dashboard and how it came from the import:

SELECT last("device_state") FROM "sense_event" WHERE ("event_type" = 'new_timeline' AND "name" =~ /^$devices$/) AND $timeFilter GROUP BY time($__interval), "name" fill(previous)

When I edit the dash and look in 'explore' it does see the devices, yet it doesn't display anything in this one dashboard. Its driving me crazy. lol Any ideas?

[edit]
some things are beginning to pop in but are completely incorrect. Ill give it a few days to iron out.

Device Overview dashboard doesn't show any data

didn't know where else to submit this bug report, but i get this from the device overview dashboard.
No data fills in and all boxes show the same error, except for the plugin not found message.
image

image

Feature Request: Migrate/Add support for InfluxDB v2

Currently it looks like support is only there for Influx v1. I've tried creating a v1 compatible endpoint in Influx v2 and it doesn't work. I think it'd be great to update this to support the Authorization header with a token and influxv2 buckets!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.