New final
This commit is contained in:
4
doc/build/.buildinfo
vendored
Normal file
4
doc/build/.buildinfo
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: a84e020f225cc7ba65e040666d94782f
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
BIN
doc/build/.doctrees/db_structure.doctree
vendored
Normal file
BIN
doc/build/.doctrees/db_structure.doctree
vendored
Normal file
Binary file not shown.
BIN
doc/build/.doctrees/environment.pickle
vendored
Normal file
BIN
doc/build/.doctrees/environment.pickle
vendored
Normal file
Binary file not shown.
BIN
doc/build/.doctrees/examples.doctree
vendored
Normal file
BIN
doc/build/.doctrees/examples.doctree
vendored
Normal file
Binary file not shown.
BIN
doc/build/.doctrees/index.doctree
vendored
Normal file
BIN
doc/build/.doctrees/index.doctree
vendored
Normal file
Binary file not shown.
BIN
doc/build/.doctrees/introduction.doctree
vendored
Normal file
BIN
doc/build/.doctrees/introduction.doctree
vendored
Normal file
Binary file not shown.
0
doc/build/.nojekyll
vendored
Normal file
0
doc/build/.nojekyll
vendored
Normal file
244
doc/build/_sources/db_structure.rst.txt
vendored
Normal file
244
doc/build/_sources/db_structure.rst.txt
vendored
Normal file
@@ -0,0 +1,244 @@
|
||||
Structure of InfluxDB
|
||||
=====================
|
||||
|
||||
influxDB SCHEMA:
|
||||
|
||||
DB weather
|
||||
measure wind
|
||||
----------------
|
||||
value | speed or direction or windgust
|
||||
---------------------------------------
|
||||
field tag
|
||||
|
||||
measure temphumi
|
||||
----------------
|
||||
temperature | humidity | external, internal | pressure
|
||||
---------------------------------------------------------
|
||||
field field tag field
|
||||
|
||||
measure rain
|
||||
----------------
|
||||
rain | rate / total / intensity | restart if zero, was it 65535 => before?
|
||||
---------------------------------------------
|
||||
field tag field(int)
|
||||
|
||||
|
||||
|
||||
DB status
|
||||
|
||||
ISS measure
|
||||
----------------
|
||||
voltage | solar or capacitor | state / lqi / | battery or future_shit |
|
||||
----------------------------------------------------------------
|
||||
field tag field tag
|
||||
|
||||
RasPI system
|
||||
----------------
|
||||
usage | disk, mem, cpu, eth, wifi %
|
||||
------------------------------------
|
||||
field | tag
|
||||
|
||||
SQLite SCHEMA:
|
||||
|
||||
DB status
|
||||
|
||||
TABLE raspi
|
||||
----------------
|
||||
t_stamp | usage | host | type
|
||||
-----------------------------------------------
|
||||
INT | INT | VARCHAR(50) | VARCHAR(20)
|
||||
|
||||
CREATE TABLE raspi(
|
||||
t_stamp INT,
|
||||
usage INT,
|
||||
host VARCHAR(50),
|
||||
type VARCHAR(20));
|
||||
|
||||
TABLE network
|
||||
----------------
|
||||
t_stamp | count | type | nic | host
|
||||
------------------------------------------------------------
|
||||
INT | INT | VARCHAR(20) | VARCHAR(20) | VARCHAR(50)
|
||||
|
||||
CREATE TABLE network(
|
||||
t_stamp INT,
|
||||
count INT,
|
||||
type VARCHAR(20),
|
||||
nic VARCHAR(20),
|
||||
host VARCHAR(50));
|
||||
|
||||
TABLE vantage_vue_iss
|
||||
----------------------
|
||||
t_stamp | voltage | type | lqi | rssi | batt_low
|
||||
------------------------------------------------------------------
|
||||
INT | INT | VARCHAR(20) | TINYINT | TINYINT | BOOL
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
ENERGY
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE CONTINUOUS QUERY cq_power_1m on voltage BEGIN
|
||||
SELECT max(power) AS p_max, min(power) AS p_min,
|
||||
mean(power) as power, mean(voltage) AS voltage
|
||||
INTO voltage.monthly.mppt_aggregated
|
||||
FROM voltage.realtime.mppt
|
||||
GROUP BY time(1m),type
|
||||
END
|
||||
CREATE CONTINUOUS QUERY "cq_power_1h" ON "voltage" BEGIN
|
||||
SELECT max("power") AS p_max,min(power) AS p_min,
|
||||
mean(power) as power, mean(voltage) AS voltage
|
||||
INTO "yearly"."mppt_aggregated"
|
||||
FROM realtime.mppt
|
||||
GROUP BY time(1h), type
|
||||
END
|
||||
CREATE CONTINUOUS QUERY "cq_power_6h" ON "voltage" BEGIN
|
||||
SELECT max("power") AS p_max,min(power) AS p_min,
|
||||
mean(power) as power, mean(voltage) AS voltage
|
||||
INTO "infinite"."mppt_aggregated"
|
||||
FROM realtime.mppt
|
||||
GROUP BY time(6h), type
|
||||
END
|
||||
|
||||
|
||||
|
||||
drop continuous query cq_power_30m on voltage
|
||||
show retention policies on weather_v2
|
||||
|
||||
create retention policy realtime on weather_v2 duration 168h replication 1 shard duration 1h
|
||||
create retention policy monthly on weather_v2 duration 720h replication 1 shard duration 24h
|
||||
create retention policy yearly on weather_v2 duration 8760h replication 1 shard duration 168h
|
||||
create retention policy infinite on weather_v2 duration 0s replication 1 shard duration 720h
|
||||
|
||||
select time,value into realtime.rain from autogen.rain where time > now()-1w group by *
|
||||
select time,humidity,pressure,temperature into realtime.temphumi from autogen.temphumi where time > now()-1w group by *
|
||||
select time,humidity,temperature into realtime.usense from autogen.usense where time > now()-1w group by *
|
||||
select time,value into realtime.wind from autogen.wind where time > now()-1w group by *
|
||||
|
||||
alter retention policy realtime on weather_v2 default
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
WIND - DONE
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE CONTINUOUS QUERY "cq_rain_10m" ON "weather_v2" BEGIN
|
||||
SELECT max("rainrate") AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips
|
||||
INTO "monthly"."rainrate_aggregated"
|
||||
FROM realtime.rain
|
||||
GROUP BY time(10m)
|
||||
END
|
||||
CREATE CONTINUOUS QUERY "cq_rain_1h" ON "weather_v2" BEGIN
|
||||
SELECT max("rainrate") AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips
|
||||
INTO "yealy"."rainrate_aggregated"
|
||||
FROM realtime.rain
|
||||
GROUP BY time(10m)
|
||||
END
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
RAIN - DONE
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE CONTINUOUS QUERY "cq_rain_10m" ON "weather_v2" BEGIN
|
||||
SELECT max("value") AS val_max, mean(value) AS value
|
||||
INTO "monthly"."rainrate_aggregated"
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(10m)
|
||||
END
|
||||
CREATE CONTINUOUS QUERY "cq_rain_1h" ON "weather_v2" BEGIN
|
||||
SELECT max("value") AS val_max, mean(value) AS value
|
||||
INTO "yearly"."rainrate_aggregated"
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(1h)
|
||||
END
|
||||
CREATE CONTINUOUS QUERY "cq_rain_6h" ON "weather_v2" BEGIN
|
||||
SELECT max("value") AS val_max, mean(value) AS value
|
||||
INTO "infinite"."rainrate_aggregated"
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(6h)
|
||||
END
|
||||
-------------------------------------------------------------------------------
|
||||
TEMPHUMI - DONE
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE CONTINUOUS QUERY "cq_temphumi_10m" ON "weather_v2" BEGIN
|
||||
SELECT
|
||||
max("humidity") AS humidity_max,
|
||||
min("humidity") AS humidity_min,
|
||||
mean("humidity") AS humidity,
|
||||
max("temperature") AS temperature_max,
|
||||
min("temperature") AS temperature_min,
|
||||
mean("temperature") AS temperature
|
||||
INTO "monthly"."temphumi_aggregated"
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(10m)
|
||||
END
|
||||
|
||||
CREATE CONTINUOUS QUERY "cq_temphumi_1h" ON "weather_v2" BEGIN
|
||||
SELECT
|
||||
max("humidity") AS humidity_max,
|
||||
min("humidity") AS humidity_min,
|
||||
mean("humidity") AS humidity,
|
||||
max("temperature") AS temperature_max,
|
||||
min("temperature") AS temperature_min,
|
||||
mean("temperature") AS temperature
|
||||
INTO "yearly"."temphumi_aggregated"
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(1h)
|
||||
END
|
||||
|
||||
CREATE CONTINUOUS QUERY "cq_temphumi_6h" ON "weather_v2" BEGIN
|
||||
SELECT
|
||||
max("humidity") AS humidity_max,
|
||||
min("humidity") AS humidity_min,
|
||||
mean("humidity") AS humidity,
|
||||
max("temperature") AS temperature_max,
|
||||
min("temperature") AS temperature_min,
|
||||
mean("temperature") AS temperature
|
||||
INTO "infinite"."temphumi_aggregated"
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(6h)
|
||||
END
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
USENSE - DONE
|
||||
-------------------------------------------------------------------------------
|
||||
CREATE CONTINUOUS QUERY "cq_usense_6h" ON "weather_v2" BEGIN
|
||||
SELECT mean("battery") AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature
|
||||
INTO "yearly"."usense_aggregated"
|
||||
FROM realtime.usense
|
||||
GROUP BY type,time(6h)
|
||||
END
|
||||
|
||||
CREATE CONTINUOUS QUERY "cq_usense_12h" ON "weather_v2" BEGIN
|
||||
SELECT mean("battery") AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature
|
||||
INTO "infinite"."usense_aggregated"
|
||||
FROM realtime.usense
|
||||
GROUP BY type,time(12h)
|
||||
END
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
WIND
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
STATUS
|
||||
-------------------------------------------------------------------------------
|
||||
POLICIES
|
||||
--------
|
||||
create retention policy realtime on status duration 168h replication 1 shard duration 1h
|
||||
create retention policy monthly on status duration 720h replication 1 shard duration 24h
|
||||
create retention policy yearly on status duration 8760h replication 1 shard duration 168h
|
||||
create retention policy infinite on status duration 0s replication 1 shard duration 720h
|
||||
|
||||
select time,usage into realtime.RasPI_aggregated from autogen.RasPI where time > now()-1w group by *
|
||||
select time,voltage into realtime.iss_aggregated from autogen.iss where time > now()-1w group by *
|
||||
|
||||
--
|
||||
SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic INTO "monthly"."net_aggregated" FROM autogen.net WHERE time > now()-2w GROUP BY time(30s)
|
||||
CQ
|
||||
--
|
||||
CREATE CONTINUOUS QUERY "cq_net_1m" ON "status" BEGIN
|
||||
SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic
|
||||
INTO "monthly"."net_aggregated"
|
||||
FROM realtime.net
|
||||
WHERE time > now()-1m
|
||||
GROUP BY time(30s)
|
||||
END
|
||||
|
||||
alter retention policy realtime on status default
|
||||
31
doc/build/_sources/examples.rst.txt
vendored
Normal file
31
doc/build/_sources/examples.rst.txt
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
.. Plutonium reporter documentation master file, created by
|
||||
sphinx-quickstart on Wed Apr 3 15:53:15 2019.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
==============================================
|
||||
!
|
||||
==============================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Contents:
|
||||
|
||||
|
||||
Dynamic data
|
||||
=====================
|
||||
.. automodule:: modules.dynamic
|
||||
:members:
|
||||
|
||||
Dynamic Weather
|
||||
================
|
||||
.. autoclass:: modules.dynamic.DynamicWeather
|
||||
:members:
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
95
doc/build/_sources/index.rst.txt
vendored
Normal file
95
doc/build/_sources/index.rst.txt
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
.. Plutonium reporter documentation master file, created by
|
||||
sphinx-quickstart on Wed Apr 3 15:53:15 2019.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
==============================================
|
||||
DOC: Plutonium reporter
|
||||
==============================================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Contents:
|
||||
|
||||
introduction
|
||||
|
||||
|
||||
Scope
|
||||
=====
|
||||
This document covers the **software part** of the reporter, although it consists
|
||||
of a multitude of hw technologies, please keep that in mind.
|
||||
|
||||
Purpose
|
||||
========
|
||||
|
||||
Delivering aggregated and comprehensive representation of data-value pairs
|
||||
in such a way, that even a complete idiot can read them. *This project is
|
||||
created by AND for me.*
|
||||
|
||||
In short, this application spins up a web server and on its address plots and
|
||||
displays values gathered from various sources.
|
||||
|
||||
An example granted: https://bastart.spoton.cz
|
||||
|
||||
Sources
|
||||
--------
|
||||
|
||||
The sources for feeding the **Plutonium** include:
|
||||
|
||||
- Davis Vantage vue weather station (with a couple HW mods)
|
||||
- Victron MPPT solar converter (Utilizing the Victron Direct RS232 protocol)
|
||||
- CPU, MEM, DISK, (W)LAN statistics, plotted
|
||||
- Custom ESP8266 data loggers
|
||||
- Temp / Humidity + battery logging
|
||||
- Current monitoring for LED lighting
|
||||
|
||||
Discrepancies and hardware dependencies
|
||||
---------------------------------------
|
||||
Obviously, all the monitoring cannot be done without proper HW equipment.
|
||||
Although this server is primarily aimed at use on a Raspberry PI, it can be
|
||||
installed on an old notebook, or similar, as the platform is Python3 and thus
|
||||
independent of the OS.
|
||||
|
||||
RasPI statistics
|
||||
++++++++++++++++
|
||||
- Just the RasPI, should work out of the box
|
||||
|
||||
Davis Vantage Vue
|
||||
+++++++++++++++++
|
||||
- Obviously the Davis Vantage Vue weather station
|
||||
- The CC1101 / wireless version
|
||||
- arduino mini / Uno @ 3.3V
|
||||
- CC1101 receiver with a couple other components
|
||||
- Data structure received from davis:
|
||||
|
||||
2 = Supercap voltage (Vue only)
|
||||
3 = ?
|
||||
4 = UV Index
|
||||
5 = Rain rate
|
||||
6 = Solar radiation
|
||||
7 = Solar Cell output (Vue only)
|
||||
8 = Temperature
|
||||
9 = Wind gust
|
||||
a = Humidity
|
||||
e = Rain
|
||||
|
||||
{'nxt': 64, 'P0': 1020.43, 'lqi': 6, 'b2': 3, 'P': 969.29, 'h': 144, 'Ti': 24.49,
|
||||
'cnt': 1, 'Hhtu': 28.68, 'b4': 129, 'b5': 247, 'b6': 36, 'b7': 255, 'b0': 1, 'b1': 10,
|
||||
'hop': 0, 'b3': 225, 'Thtu': 24.28, 'b8': 255, 'b9': 182, 'rssi': 45}
|
||||
|
||||
|
||||
Solar / MPPT
|
||||
++++++++++++
|
||||
- Victron MPPT solar charge controller (Bluesolar)
|
||||
- RS232 -> USB or similar, to get the data to RasPi
|
||||
|
||||
ESP8266 stuff
|
||||
+++++++++++++
|
||||
- basically anything that can feed into the influxDB.
|
||||
|
||||
Indices and tables
|
||||
===================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
134
doc/build/_sources/introduction.rst.txt
vendored
Normal file
134
doc/build/_sources/introduction.rst.txt
vendored
Normal file
@@ -0,0 +1,134 @@
|
||||
.. Plutonium reporter documentation master file, created by
|
||||
sphinx-quickstart on Wed Apr 3 15:53:15 2019.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
|
||||
Introduction to Plutonium
|
||||
+++++++++++++++++++++++++
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 5
|
||||
:caption: Contents:
|
||||
|
||||
Directory structure
|
||||
===================
|
||||
Following structure is applied to this project. Some directories are
|
||||
minified in this view on purpose.
|
||||
::
|
||||
.
|
||||
├── chttpd.py
|
||||
├── config
|
||||
│ └── plutonium.ini
|
||||
├── config.py
|
||||
├── doc ... (documentation in sphinx)
|
||||
├── index.py
|
||||
├── localdeploy.sh
|
||||
├── modules
|
||||
│ ├── dynamic.py
|
||||
│ ├── status.py
|
||||
│ ├── temphumi.py
|
||||
│ ├── voltage.py
|
||||
│ └── weather.py
|
||||
├── static
|
||||
│ ├── css
|
||||
│ │ ├── bootstrap.css
|
||||
│ │ └── dygraph.css ...
|
||||
│ ├── img
|
||||
│ │ ├── battery_0.png ...
|
||||
│ └── js
|
||||
│ ├── solar_graph.js
|
||||
│ ├── status_graph.js
|
||||
│ ├── temphum_graph.js
|
||||
│ └── weather_graph.js ...
|
||||
├── templates
|
||||
│ ├── footer.html
|
||||
│ ├── header.html
|
||||
│ ├── landing_page.html
|
||||
│ ├── status_admin.html
|
||||
│ ├── temphumi_admin.html
|
||||
│ ├── top_menu.html
|
||||
│ ├── voltage_admin.html
|
||||
│ └── weather_admin.html
|
||||
└── TODO.txt
|
||||
|
||||
CherryPy configuration (config.py)
|
||||
==================================
|
||||
Configuration is stored in a separate file statically, so each submodule can
|
||||
load the same configuration. This should be variables, that are project-wide.
|
||||
|
||||
CherryPy configuration file (plutonium.ini)
|
||||
-------------------------------------------
|
||||
Configuration file, .ini style. Option = value. File resides in ./config
|
||||
directory. It is read by confi.py and parsed into a dict(), available
|
||||
throughout the project.
|
||||
::
|
||||
_server_protocol = https
|
||||
_server_name = bastart.spoton.cz
|
||||
_server_port = 80
|
||||
_server_bind_ip = 0.0.0.0
|
||||
_influx_host = localhost
|
||||
_influx_port = 8086
|
||||
_influx_user = pi
|
||||
_influx_pwd = password
|
||||
_influx_weather_db = weather_v2
|
||||
_influx_status_db = status
|
||||
_influx_voltage_db = voltage
|
||||
_influx_IoT_db = weather_v2
|
||||
|
||||
Configuration classes and functions
|
||||
------------------------------------
|
||||
.. automodule:: config
|
||||
:members:
|
||||
|
||||
CherryPy server (chttpd.py)
|
||||
===========================
|
||||
The server uses CherryPy module. For more information, please consult the
|
||||
Cherrypy documentation.
|
||||
|
||||
CHTTPD.py is also the executable, that can be launched as a standalone
|
||||
application by simply typing ./chttpd.py, or python3 chttpd.py
|
||||
|
||||
.. automodule:: chttpd
|
||||
:members:
|
||||
|
||||
Modules and web paths
|
||||
---------------------
|
||||
|
||||
Modules are located in the `modules` directory, hence the imports from a
|
||||
subdirectory
|
||||
::
|
||||
from modules import voltage
|
||||
from modules import weather
|
||||
from modules import dynamic
|
||||
from modules import status
|
||||
from modules import temphumi
|
||||
|
||||
As can be seen, each class / module is mounted under a specific web path. This
|
||||
is the preferred way of future expansion modules.
|
||||
::
|
||||
cherrypy.tree.mount(voltage.EnergyInfo(), "/", conf)
|
||||
cherrypy.tree.mount(voltage.EnergyInfo(), "/energy", conf)
|
||||
cherrypy.tree.mount(weather.WeatherInfo(), "/weather", conf)
|
||||
cherrypy.tree.mount(status.StatusInfo(), "/status", conf)
|
||||
cherrypy.tree.mount(dynamic.Expose(), "/data", conf)
|
||||
cherrypy.tree.mount(temphumi.PuerhInfo(), "/temphumi", conf)
|
||||
|
||||
Index (index.py)
|
||||
================
|
||||
Reserved for future use. Currently not displayed, as the EnergyInfo() class is
|
||||
mounted under root(/) of the web, defined in chttpd.py
|
||||
::
|
||||
cherrypy.tree.mount(voltage.EnergyInfo(), "/", conf)
|
||||
|
||||
.. automodule:: index
|
||||
:members:
|
||||
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
438
doc/build/db_structure.html
vendored
Normal file
438
doc/build/db_structure.html
vendored
Normal file
@@ -0,0 +1,438 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Structure of InfluxDB — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="index.html" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="index.html">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="index.html">Docs</a> »</li>
|
||||
|
||||
<li>Structure of InfluxDB</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="_sources/db_structure.rst.txt" rel="nofollow"> View page source</a>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="structure-of-influxdb">
|
||||
<h1>Structure of InfluxDB<a class="headerlink" href="#structure-of-influxdb" title="Permalink to this headline">¶</a></h1>
|
||||
<blockquote>
|
||||
<div><p>influxDB SCHEMA:</p>
|
||||
<p>DB weather
|
||||
measure wind
|
||||
—————-</p>
|
||||
<blockquote>
|
||||
<div><p>field tag</p>
|
||||
</div></blockquote>
|
||||
<blockquote>
|
||||
<div><p>field field tag field</p>
|
||||
</div></blockquote>
|
||||
<blockquote>
|
||||
<div><p>field tag field(int)</p>
|
||||
</div></blockquote>
|
||||
<p>DB status</p>
|
||||
<blockquote>
|
||||
<div><p>field tag field tag</p>
|
||||
</div></blockquote>
|
||||
<blockquote>
|
||||
<div><p>field | tag</p>
|
||||
</div></blockquote>
|
||||
<p>SQLite SCHEMA:</p>
|
||||
<p>DB status</p>
|
||||
<blockquote>
|
||||
<div><p>INT | INT | VARCHAR(50) | VARCHAR(20)</p>
|
||||
<blockquote>
|
||||
<div><dl class="simple">
|
||||
<dt>CREATE TABLE raspi(</dt><dd><p>t_stamp INT,
|
||||
usage INT,
|
||||
host VARCHAR(50),
|
||||
type VARCHAR(20));</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div></blockquote>
|
||||
</div></blockquote>
|
||||
<blockquote>
|
||||
<div><p>INT | INT | VARCHAR(20) | VARCHAR(20) | VARCHAR(50)</p>
|
||||
<blockquote>
|
||||
<div><dl class="simple">
|
||||
<dt>CREATE TABLE network(</dt><dd><p>t_stamp INT,
|
||||
count INT,
|
||||
type VARCHAR(20),
|
||||
nic VARCHAR(20),
|
||||
host VARCHAR(50));</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>TABLE vantage_vue_iss</p>
|
||||
</div></blockquote>
|
||||
</div></blockquote>
|
||||
<blockquote>
|
||||
<div><p>INT | INT | VARCHAR(20) | TINYINT | TINYINT | BOOL</p>
|
||||
</div></blockquote>
|
||||
</div></blockquote>
|
||||
<div class="section" id="energy">
|
||||
<h2>ENERGY<a class="headerlink" href="#energy" title="Permalink to this headline">¶</a></h2>
|
||||
<dl>
|
||||
<dt>CREATE CONTINUOUS QUERY cq_power_1m on voltage BEGIN</dt><dd><dl class="simple">
|
||||
<dt>SELECT max(power) AS p_max, min(power) AS p_min,</dt><dd><p>mean(power) as power, mean(voltage) AS voltage</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO voltage.monthly.mppt_aggregated
|
||||
FROM voltage.realtime.mppt
|
||||
GROUP BY time(1m),type</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END
|
||||
CREATE CONTINUOUS QUERY “cq_power_1h” ON “voltage” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><dl class="simple">
|
||||
<dt>SELECT max(“power”) AS p_max,min(power) AS p_min,</dt><dd><p>mean(power) as power, mean(voltage) AS voltage</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO “yearly”.”mppt_aggregated”
|
||||
FROM realtime.mppt
|
||||
GROUP BY time(1h), type</p>
|
||||
</div></blockquote>
|
||||
<p>END
|
||||
CREATE CONTINUOUS QUERY “cq_power_6h” ON “voltage” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><dl class="simple">
|
||||
<dt>SELECT max(“power”) AS p_max,min(power) AS p_min,</dt><dd><p>mean(power) as power, mean(voltage) AS voltage</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO “infinite”.”mppt_aggregated”
|
||||
FROM realtime.mppt
|
||||
GROUP BY time(6h), type</p>
|
||||
</div></blockquote>
|
||||
<p>END</p>
|
||||
<p>drop continuous query cq_power_30m on voltage
|
||||
show retention policies on weather_v2</p>
|
||||
<p>create retention policy realtime on weather_v2 duration 168h replication 1 shard duration 1h
|
||||
create retention policy monthly on weather_v2 duration 720h replication 1 shard duration 24h
|
||||
create retention policy yearly on weather_v2 duration 8760h replication 1 shard duration 168h
|
||||
create retention policy infinite on weather_v2 duration 0s replication 1 shard duration 720h</p>
|
||||
<p>select time,value into realtime.rain from autogen.rain where time > now()-1w group by *
|
||||
select time,humidity,pressure,temperature into realtime.temphumi from autogen.temphumi where time > now()-1w group by *
|
||||
select time,humidity,temperature into realtime.usense from autogen.usense where time > now()-1w group by *
|
||||
select time,value into realtime.wind from autogen.wind where time > now()-1w group by *</p>
|
||||
<p>alter retention policy realtime on weather_v2 default</p>
|
||||
</div>
|
||||
<div class="section" id="wind-done">
|
||||
<h2>WIND - DONE<a class="headerlink" href="#wind-done" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="simple">
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_rain_10m” ON “weather_v2” BEGIN</dt><dd><p>SELECT max(“rainrate”) AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips
|
||||
INTO “monthly”.”rainrate_aggregated”
|
||||
FROM realtime.rain
|
||||
GROUP BY time(10m)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END
|
||||
CREATE CONTINUOUS QUERY “cq_rain_1h” ON “weather_v2” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><p>SELECT max(“rainrate”) AS rrate_max, mean(rainrate) AS rrate, max(rain_bucket_tips) AS rain_tips
|
||||
INTO “yealy”.”rainrate_aggregated”
|
||||
FROM realtime.rain
|
||||
GROUP BY time(10m)</p>
|
||||
</div></blockquote>
|
||||
<p>END</p>
|
||||
</div>
|
||||
<div class="section" id="rain-done">
|
||||
<h2>RAIN - DONE<a class="headerlink" href="#rain-done" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="simple">
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_rain_10m” ON “weather_v2” BEGIN</dt><dd><p>SELECT max(“value”) AS val_max, mean(value) AS value
|
||||
INTO “monthly”.”rainrate_aggregated”
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(10m)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END
|
||||
CREATE CONTINUOUS QUERY “cq_rain_1h” ON “weather_v2” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><p>SELECT max(“value”) AS val_max, mean(value) AS value
|
||||
INTO “yearly”.”rainrate_aggregated”
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(1h)</p>
|
||||
</div></blockquote>
|
||||
<p>END
|
||||
CREATE CONTINUOUS QUERY “cq_rain_6h” ON “weather_v2” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><p>SELECT max(“value”) AS val_max, mean(value) AS value
|
||||
INTO “infinite”.”rainrate_aggregated”
|
||||
FROM realtime.rain
|
||||
GROUP BY type,time(6h)</p>
|
||||
</div></blockquote>
|
||||
<div class="section" id="end">
|
||||
<h3>END<a class="headerlink" href="#end" title="Permalink to this headline">¶</a></h3>
|
||||
</div>
|
||||
<div class="section" id="temphumi-done">
|
||||
<h3>TEMPHUMI - DONE<a class="headerlink" href="#temphumi-done" title="Permalink to this headline">¶</a></h3>
|
||||
<dl>
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_temphumi_10m” ON “weather_v2” BEGIN</dt><dd><dl class="simple">
|
||||
<dt>SELECT</dt><dd><p>max(“humidity”) AS humidity_max,
|
||||
min(“humidity”) AS humidity_min,
|
||||
mean(“humidity”) AS humidity,
|
||||
max(“temperature”) AS temperature_max,
|
||||
min(“temperature”) AS temperature_min,
|
||||
mean(“temperature”) AS temperature</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO “monthly”.”temphumi_aggregated”
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(10m)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END</p>
|
||||
<dl>
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_temphumi_1h” ON “weather_v2” BEGIN</dt><dd><dl class="simple">
|
||||
<dt>SELECT</dt><dd><p>max(“humidity”) AS humidity_max,
|
||||
min(“humidity”) AS humidity_min,
|
||||
mean(“humidity”) AS humidity,
|
||||
max(“temperature”) AS temperature_max,
|
||||
min(“temperature”) AS temperature_min,
|
||||
mean(“temperature”) AS temperature</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO “yearly”.”temphumi_aggregated”
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(1h)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END</p>
|
||||
<dl>
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_temphumi_6h” ON “weather_v2” BEGIN</dt><dd><dl class="simple">
|
||||
<dt>SELECT</dt><dd><p>max(“humidity”) AS humidity_max,
|
||||
min(“humidity”) AS humidity_min,
|
||||
mean(“humidity”) AS humidity,
|
||||
max(“temperature”) AS temperature_max,
|
||||
min(“temperature”) AS temperature_min,
|
||||
mean(“temperature”) AS temperature</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>INTO “infinite”.”temphumi_aggregated”
|
||||
FROM realtime.temphumi
|
||||
GROUP BY type, time(6h)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="usense-done">
|
||||
<h2>USENSE - DONE<a class="headerlink" href="#usense-done" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="simple">
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_usense_6h” ON “weather_v2” BEGIN</dt><dd><p>SELECT mean(“battery”) AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature
|
||||
INTO “yearly”.”usense_aggregated”
|
||||
FROM realtime.usense
|
||||
GROUP BY type,time(6h)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END</p>
|
||||
<dl class="simple">
|
||||
<dt>CREATE CONTINUOUS QUERY “cq_usense_12h” ON “weather_v2” BEGIN</dt><dd><p>SELECT mean(“battery”) AS battery, mean(humidity) AS humidity, mean(temperature) AS temperature
|
||||
INTO “infinite”.”usense_aggregated”
|
||||
FROM realtime.usense
|
||||
GROUP BY type,time(12h)</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>END</p>
|
||||
</div>
|
||||
<div class="section" id="wind">
|
||||
<h2>WIND<a class="headerlink" href="#wind" title="Permalink to this headline">¶</a></h2>
|
||||
</div>
|
||||
<div class="section" id="status">
|
||||
<h2>STATUS<a class="headerlink" href="#status" title="Permalink to this headline">¶</a></h2>
|
||||
<blockquote>
|
||||
<div></div></blockquote>
|
||||
<p>create retention policy realtime on status duration 168h replication 1 shard duration 1h
|
||||
create retention policy monthly on status duration 720h replication 1 shard duration 24h
|
||||
create retention policy yearly on status duration 8760h replication 1 shard duration 168h
|
||||
create retention policy infinite on status duration 0s replication 1 shard duration 720h</p>
|
||||
<p>select time,usage into realtime.RasPI_aggregated from autogen.RasPI where time > now()-1w group by *
|
||||
select time,voltage into realtime.iss_aggregated from autogen.iss where time > now()-1w group by *</p>
|
||||
<p>–
|
||||
SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic INTO “monthly”.”net_aggregated” FROM autogen.net WHERE time > now()-2w GROUP BY time(30s)
|
||||
CQ
|
||||
–
|
||||
CREATE CONTINUOUS QUERY “cq_net_1m” ON “status” BEGIN</p>
|
||||
<blockquote>
|
||||
<div><p>SELECT NON_NEGATIVE_DERIVATIVE(max(*)) as traffic
|
||||
INTO “monthly”.”net_aggregated”
|
||||
FROM realtime.net
|
||||
WHERE time > now()-1m
|
||||
GROUP BY time(30s)</p>
|
||||
</div></blockquote>
|
||||
<p>END</p>
|
||||
<p>alter retention policy realtime on status default</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
206
doc/build/examples.html
vendored
Normal file
206
doc/build/examples.html
vendored
Normal file
@@ -0,0 +1,206 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Dynamic data — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="index.html" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="index.html">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="index.html">Docs</a> »</li>
|
||||
|
||||
<li>Dynamic data</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="_sources/examples.rst.txt" rel="nofollow"> View page source</a>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<hr class="docutils" />
|
||||
<div class="toctree-wrapper compound">
|
||||
</div>
|
||||
<div class="section" id="dynamic-data">
|
||||
<h1>Dynamic data<a class="headerlink" href="#dynamic-data" title="Permalink to this headline">¶</a></h1>
|
||||
</div>
|
||||
<div class="section" id="dynamic-weather">
|
||||
<h1>Dynamic Weather<a class="headerlink" href="#dynamic-weather" title="Permalink to this headline">¶</a></h1>
|
||||
</div>
|
||||
<div class="section" id="indices-and-tables">
|
||||
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
194
doc/build/genindex.html
vendored
Normal file
194
doc/build/genindex.html
vendored
Normal file
@@ -0,0 +1,194 @@
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Index — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="#" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="index.html" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="index.html">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="index.html">Docs</a> »</li>
|
||||
|
||||
<li>Index</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
|
||||
<h1 id="index">Index</h1>
|
||||
|
||||
<div class="genindex-jumpbox">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
311
doc/build/index.html
vendored
Normal file
311
doc/build/index.html
vendored
Normal file
@@ -0,0 +1,311 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>DOC: Plutonium reporter — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="next" title="Introduction to Plutonium" href="introduction.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="#" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="#">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="#">Docs</a> »</li>
|
||||
|
||||
<li>DOC: Plutonium reporter</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="_sources/index.rst.txt" rel="nofollow"> View page source</a>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="doc-plutonium-reporter">
|
||||
<h1>DOC: Plutonium reporter<a class="headerlink" href="#doc-plutonium-reporter" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="introduction.html#directory-structure">Directory structure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="introduction.html#cherrypy-configuration-config-py">CherryPy configuration (config.py)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="introduction.html#cherrypy-configuration-file-plutonium-ini">CherryPy configuration file (plutonium.ini)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="introduction.html#configuration-classes-and-functions">Configuration classes and functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="introduction.html#cherrypy-server-chttpd-py">CherryPy server (chttpd.py)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="introduction.html#modules-and-web-paths">Modules and web paths</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="introduction.html#index-index-py">Index (index.py)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="introduction.html#indices-and-tables">Indices and tables</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This document covers the <strong>software part</strong> of the reporter, although it consists
|
||||
of a multitude of hw technologies, please keep that in mind.</p>
|
||||
</div>
|
||||
<div class="section" id="purpose">
|
||||
<h2>Purpose<a class="headerlink" href="#purpose" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Delivering aggregated and comprehensive representation of data-value pairs
|
||||
in such a way, that even a complete idiot can read them. <em>This project is
|
||||
created by AND for me.</em></p>
|
||||
<p>In short, this application spins up a web server and on its address plots and
|
||||
displays values gathered from various sources.</p>
|
||||
<p>An example granted: <a class="reference external" href="https://bastart.spoton.cz">https://bastart.spoton.cz</a></p>
|
||||
<div class="section" id="sources">
|
||||
<h3>Sources<a class="headerlink" href="#sources" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The sources for feeding the <strong>Plutonium</strong> include:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Davis Vantage vue weather station (with a couple HW mods)</p></li>
|
||||
<li><p>Victron MPPT solar converter (Utilizing the Victron Direct RS232 protocol)</p></li>
|
||||
<li><p>CPU, MEM, DISK, (W)LAN statistics, plotted</p></li>
|
||||
<li><dl class="simple">
|
||||
<dt>Custom ESP8266 data loggers</dt><dd><ul>
|
||||
<li><p>Temp / Humidity + battery logging</p></li>
|
||||
<li><p>Current monitoring for LED lighting</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="discrepancies-and-hardware-dependencies">
|
||||
<h3>Discrepancies and hardware dependencies<a class="headerlink" href="#discrepancies-and-hardware-dependencies" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Obviously, all the monitoring cannot be done without proper HW equipment.
|
||||
Although this server is primarily aimed at use on a Raspberry PI, it can be
|
||||
installed on an old notebook, or similar, as the platform is Python3 and thus
|
||||
independent of the OS.</p>
|
||||
<div class="section" id="raspi-statistics">
|
||||
<h4>RasPI statistics<a class="headerlink" href="#raspi-statistics" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p>Just the RasPI, should work out of the box</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="davis-vantage-vue">
|
||||
<h4>Davis Vantage Vue<a class="headerlink" href="#davis-vantage-vue" title="Permalink to this headline">¶</a></h4>
|
||||
<ul>
|
||||
<li><p>Obviously the Davis Vantage Vue weather station</p></li>
|
||||
<li><p>The CC1101 / wireless version</p></li>
|
||||
<li><p>arduino mini / Uno @ 3.3V</p></li>
|
||||
<li><p>CC1101 receiver with a couple other components</p></li>
|
||||
<li><p>Data structure received from davis:</p>
|
||||
<blockquote>
|
||||
<div><p>2 = Supercap voltage (Vue only)
|
||||
3 = ?
|
||||
4 = UV Index
|
||||
5 = Rain rate
|
||||
6 = Solar radiation
|
||||
7 = Solar Cell output (Vue only)
|
||||
8 = Temperature
|
||||
9 = Wind gust
|
||||
a = Humidity
|
||||
e = Rain</p>
|
||||
<p>{‘nxt’: 64, ‘P0’: 1020.43, ‘lqi’: 6, ‘b2’: 3, ‘P’: 969.29, ‘h’: 144, ‘Ti’: 24.49,
|
||||
‘cnt’: 1, ‘Hhtu’: 28.68, ‘b4’: 129, ‘b5’: 247, ‘b6’: 36, ‘b7’: 255, ‘b0’: 1, ‘b1’: 10,
|
||||
‘hop’: 0, ‘b3’: 225, ‘Thtu’: 24.28, ‘b8’: 255, ‘b9’: 182, ‘rssi’: 45}</p>
|
||||
</div></blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="solar-mppt">
|
||||
<h4>Solar / MPPT<a class="headerlink" href="#solar-mppt" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p>Victron MPPT solar charge controller (Bluesolar)</p></li>
|
||||
<li><p>RS232 -> USB or similar, to get the data to RasPi</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="esp8266-stuff">
|
||||
<h4>ESP8266 stuff<a class="headerlink" href="#esp8266-stuff" title="Permalink to this headline">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p>basically anything that can feed into the influxDB.</p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="indices-and-tables">
|
||||
<h2>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
|
||||
<a href="introduction.html" class="btn btn-neutral float-right" title="Introduction to Plutonium" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
331
doc/build/introduction.html
vendored
Normal file
331
doc/build/introduction.html
vendored
Normal file
@@ -0,0 +1,331 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Introduction to Plutonium — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="prev" title="DOC: Plutonium reporter" href="index.html" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="index.html" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul class="current">
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction to Plutonium</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#directory-structure">Directory structure</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#cherrypy-configuration-config-py">CherryPy configuration (config.py)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#cherrypy-configuration-file-plutonium-ini">CherryPy configuration file (plutonium.ini)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#configuration-classes-and-functions">Configuration classes and functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#cherrypy-server-chttpd-py">CherryPy server (chttpd.py)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#modules-and-web-paths">Modules and web paths</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#index-index-py">Index (index.py)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="index.html">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="index.html">Docs</a> »</li>
|
||||
|
||||
<li>Introduction to Plutonium</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
<a href="_sources/introduction.rst.txt" rel="nofollow"> View page source</a>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<div class="section" id="introduction-to-plutonium">
|
||||
<h1>Introduction to Plutonium<a class="headerlink" href="#introduction-to-plutonium" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="toctree-wrapper compound">
|
||||
</div>
|
||||
<div class="section" id="directory-structure">
|
||||
<h2>Directory structure<a class="headerlink" href="#directory-structure" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Following structure is applied to this project. Some directories are
|
||||
minified in this view on purpose.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>.
|
||||
├── chttpd.py
|
||||
├── config
|
||||
│ └── plutonium.ini
|
||||
├── config.py
|
||||
├── doc ... (documentation in sphinx)
|
||||
├── index.py
|
||||
├── localdeploy.sh
|
||||
├── modules
|
||||
│ ├── dynamic.py
|
||||
│ ├── status.py
|
||||
│ ├── temphumi.py
|
||||
│ ├── voltage.py
|
||||
│ └── weather.py
|
||||
├── static
|
||||
│ ├── css
|
||||
│ │ ├── bootstrap.css
|
||||
│ │ └── dygraph.css ...
|
||||
│ ├── img
|
||||
│ │ ├── battery_0.png ...
|
||||
│ └── js
|
||||
│ ├── solar_graph.js
|
||||
│ ├── status_graph.js
|
||||
│ ├── temphum_graph.js
|
||||
│ └── weather_graph.js ...
|
||||
├── templates
|
||||
│ ├── footer.html
|
||||
│ ├── header.html
|
||||
│ ├── landing_page.html
|
||||
│ ├── status_admin.html
|
||||
│ ├── temphumi_admin.html
|
||||
│ ├── top_menu.html
|
||||
│ ├── voltage_admin.html
|
||||
│ └── weather_admin.html
|
||||
└── TODO.txt
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="cherrypy-configuration-config-py">
|
||||
<h2>CherryPy configuration (config.py)<a class="headerlink" href="#cherrypy-configuration-config-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Configuration is stored in a separate file statically, so each submodule can
|
||||
load the same configuration. This should be variables, that are project-wide.</p>
|
||||
<div class="section" id="cherrypy-configuration-file-plutonium-ini">
|
||||
<h3>CherryPy configuration file (plutonium.ini)<a class="headerlink" href="#cherrypy-configuration-file-plutonium-ini" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Configuration file, .ini style. Option = value. File resides in ./config
|
||||
directory. It is read by confi.py and parsed into a dict(), available
|
||||
throughout the project.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">_server_protocol</span> <span class="o">=</span> <span class="n">https</span>
|
||||
<span class="n">_server_name</span> <span class="o">=</span> <span class="n">bastart</span><span class="o">.</span><span class="n">spoton</span><span class="o">.</span><span class="n">cz</span>
|
||||
<span class="n">_server_port</span> <span class="o">=</span> <span class="mi">80</span>
|
||||
<span class="n">_server_bind_ip</span> <span class="o">=</span> <span class="mf">0.0</span><span class="o">.</span><span class="mf">0.0</span>
|
||||
<span class="n">_influx_host</span> <span class="o">=</span> <span class="n">localhost</span>
|
||||
<span class="n">_influx_port</span> <span class="o">=</span> <span class="mi">8086</span>
|
||||
<span class="n">_influx_user</span> <span class="o">=</span> <span class="n">pi</span>
|
||||
<span class="n">_influx_pwd</span> <span class="o">=</span> <span class="n">password</span>
|
||||
<span class="n">_influx_weather_db</span> <span class="o">=</span> <span class="n">weather_v2</span>
|
||||
<span class="n">_influx_status_db</span> <span class="o">=</span> <span class="n">status</span>
|
||||
<span class="n">_influx_voltage_db</span> <span class="o">=</span> <span class="n">voltage</span>
|
||||
<span class="n">_influx_IoT_db</span> <span class="o">=</span> <span class="n">weather_v2</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="configuration-classes-and-functions">
|
||||
<h3>Configuration classes and functions<a class="headerlink" href="#configuration-classes-and-functions" title="Permalink to this headline">¶</a></h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="cherrypy-server-chttpd-py">
|
||||
<h2>CherryPy server (chttpd.py)<a class="headerlink" href="#cherrypy-server-chttpd-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The server uses CherryPy module. For more information, please consult the
|
||||
Cherrypy documentation.</p>
|
||||
<p>CHTTPD.py is also the executable, that can be launched as a standalone
|
||||
application by simply typing ./chttpd.py, or python3 chttpd.py</p>
|
||||
<div class="section" id="modules-and-web-paths">
|
||||
<h3>Modules and web paths<a class="headerlink" href="#modules-and-web-paths" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Modules are located in the <cite>modules</cite> directory, hence the imports from a
|
||||
subdirectory</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">modules</span> <span class="k">import</span> <span class="n">voltage</span>
|
||||
<span class="kn">from</span> <span class="nn">modules</span> <span class="k">import</span> <span class="n">weather</span>
|
||||
<span class="kn">from</span> <span class="nn">modules</span> <span class="k">import</span> <span class="n">dynamic</span>
|
||||
<span class="kn">from</span> <span class="nn">modules</span> <span class="k">import</span> <span class="n">status</span>
|
||||
<span class="kn">from</span> <span class="nn">modules</span> <span class="k">import</span> <span class="n">temphumi</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>As can be seen, each class / module is mounted under a specific web path. This
|
||||
is the preferred way of future expansion modules.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">voltage</span><span class="o">.</span><span class="n">EnergyInfo</span><span class="p">(),</span> <span class="s2">"/"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
<span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">voltage</span><span class="o">.</span><span class="n">EnergyInfo</span><span class="p">(),</span> <span class="s2">"/energy"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
<span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">weather</span><span class="o">.</span><span class="n">WeatherInfo</span><span class="p">(),</span> <span class="s2">"/weather"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
<span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">status</span><span class="o">.</span><span class="n">StatusInfo</span><span class="p">(),</span> <span class="s2">"/status"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
<span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">dynamic</span><span class="o">.</span><span class="n">Expose</span><span class="p">(),</span> <span class="s2">"/data"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
<span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">temphumi</span><span class="o">.</span><span class="n">PuerhInfo</span><span class="p">(),</span> <span class="s2">"/temphumi"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="index-index-py">
|
||||
<h2>Index (index.py)<a class="headerlink" href="#index-index-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Reserved for future use. Currently not displayed, as the EnergyInfo() class is
|
||||
mounted under root(/) of the web, defined in chttpd.py</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cherrypy</span><span class="o">.</span><span class="n">tree</span><span class="o">.</span><span class="n">mount</span><span class="p">(</span><span class="n">voltage</span><span class="o">.</span><span class="n">EnergyInfo</span><span class="p">(),</span> <span class="s2">"/"</span><span class="p">,</span> <span class="n">conf</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="indices-and-tables">
|
||||
<h2>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></p></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
|
||||
|
||||
<a href="index.html" class="btn btn-neutral float-left" title="DOC: Plutonium reporter" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
7
doc/build/objects.inv
vendored
Normal file
7
doc/build/objects.inv
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Sphinx inventory version 2
|
||||
# Project: Plutonium reporter
|
||||
# Version:
|
||||
# The remainder of this file is compressed using zlib.
|
||||
x<EFBFBD>m<EFBFBD>M
|
||||
<EFBFBD>0<10><>9<EFBFBD>\<5C>B<EFBFBD>.[7.J<><1E><>d<EFBFBD>@~$N@o_mL<6D><4C><EFBFBD><EFBFBD><EFBFBD>}o#<23><>D>
|
||||
a"YJ'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@F<><46>gsԶ<>a<EFBFBD>ngnF<6E>S<EFBFBD>&-r<>b<EFBFBD>Q$'<27>z<EFBFBD><7A>J<EFBFBD><4A>v<EFBFBD>[<5B><1B><><08><><EFBFBD>۞<>9<EFBFBD>罄FrVG<> <09>ʐwrm<72><6D>=<3D><><EFBFBD>ndNrG3N<33>i8.EZĀ<5A>JkܻNȽ<18>D<EFBFBD><44><EFBFBD><EFBFBD>}<7D>{d<1F>b<EFBFBD>
|
||||
207
doc/build/search.html
vendored
Normal file
207
doc/build/search.html
vendored
Normal file
@@ -0,0 +1,207 @@
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Search — Plutonium reporter 1.0 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
|
||||
|
||||
|
||||
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||||
<script type="text/javascript" src="_static/language_data.js"></script>
|
||||
<script type="text/javascript" src="_static/searchtools.js"></script>
|
||||
|
||||
<script type="text/javascript" src="_static/js/theme.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="#" />
|
||||
</head>
|
||||
|
||||
<body class="wy-body-for-nav">
|
||||
|
||||
|
||||
<div class="wy-grid-for-nav">
|
||||
|
||||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||||
<div class="wy-side-scroll">
|
||||
<div class="wy-side-nav-search" >
|
||||
|
||||
|
||||
|
||||
<a href="index.html" class="icon icon-home"> Plutonium reporter
|
||||
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="search">
|
||||
<form id="rtd-search-form" class="wy-form" action="#" method="get">
|
||||
<input type="text" name="q" placeholder="Search docs" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction to Plutonium</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
|
||||
|
||||
|
||||
<nav class="wy-nav-top" aria-label="top navigation">
|
||||
|
||||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||||
<a href="index.html">Plutonium reporter</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="wy-nav-content">
|
||||
|
||||
<div class="rst-content">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div role="navigation" aria-label="breadcrumbs navigation">
|
||||
|
||||
<ul class="wy-breadcrumbs">
|
||||
|
||||
<li><a href="index.html">Docs</a> »</li>
|
||||
|
||||
<li>Search</li>
|
||||
|
||||
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<hr/>
|
||||
</div>
|
||||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||||
<div itemprop="articleBody">
|
||||
|
||||
<noscript>
|
||||
<div id="fallback" class="admonition warning">
|
||||
<p class="last">
|
||||
Please activate JavaScript to enable the search
|
||||
functionality.
|
||||
</p>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
|
||||
<div id="search-results">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<footer>
|
||||
|
||||
|
||||
<hr/>
|
||||
|
||||
<div role="contentinfo">
|
||||
<p>
|
||||
© Copyright 2019, Milan 'Ventil' Toman
|
||||
|
||||
</p>
|
||||
</div>
|
||||
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||||
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function () {
|
||||
SphinxRtdTheme.Navigation.enable(true);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function() { Search.loadIndex("searchindex.js"); });
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" id="searchindexloader"></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1
doc/build/searchindex.js
vendored
Normal file
1
doc/build/searchindex.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
Search.setIndex({docnames:["db_structure","examples","index","introduction"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["db_structure.rst","examples.rst","index.rst","introduction.rst"],objects:{},objnames:{},objtypes:{},terms:{"10m":0,"12h":0,"168h":0,"24h":0,"30s":0,"720h":0,"8760h":0,"class":2,"default":0,"function":2,"import":3,"int":0,"short":2,"static":3,AND:2,For:3,INTO:0,The:[2,3],_influx_host:3,_influx_iot_db:3,_influx_port:3,_influx_pwd:3,_influx_status_db:3,_influx_us:3,_influx_voltage_db:3,_influx_weather_db:3,_server_bind_ip:3,_server_nam:3,_server_port:3,_server_protocol:3,address:2,aggreg:2,aim:2,all:2,also:3,alter:0,although:2,anyth:2,appli:3,applic:[2,3],arduino:2,autogen:0,avail:3,basic:2,bastart:[2,3],batteri:[0,2],battery_0:3,begin:0,bluesolar:2,bool:0,bootstrap:3,box:2,can:[2,3],cannot:2,cc1101:2,cell:2,charg:2,cherrypi:2,chttpd:2,cnt:2,complet:2,compon:2,comprehens:2,conf:3,confi:3,config:2,configur:2,consist:2,consult:3,content:2,continu:0,control:2,convert:2,count:0,coupl:2,cover:2,cpu:2,cq_net_1m:0,cq_power_1h:0,cq_power_1m:0,cq_power_30m:0,cq_power_6h:0,cq_rain_10m:0,cq_rain_1h:0,cq_rain_6h:0,cq_temphumi_10m:0,cq_temphumi_1h:0,cq_temphumi_6h:0,cq_usense_12h:0,cq_usense_6h:0,creat:[0,2],css:3,current:[2,3],custom:2,data:[2,3],defin:3,deliv:2,dict:3,direct:2,directori:2,disk:2,displai:[2,3],doc:3,document:[2,3],done:2,drop:0,durat:0,dygraph:3,dynam:3,each:3,energi:3,energyinfo:3,equip:2,even:2,exampl:2,execut:3,expans:3,expos:3,feed:2,field:0,file:2,follow:3,footer:3,from:[0,2,3],futur:3,gather:2,get:2,grant:2,group:0,gust:2,header:3,henc:3,hhtu:2,hop:2,host:0,html:3,http:[2,3],humid:[0,2],humidity_max:0,humidity_min:0,idiot:2,img:3,includ:2,independ:2,index:[1,2],infinit:0,influxdb:2,inform:3,ini:2,instal:2,introduct:2,iss:0,iss_aggreg:0,its:2,just:2,keep:2,lan:2,landing_pag:3,launch:3,led:2,light:2,load:3,localdeploi:3,localhost:3,locat:3,log:2,logger:2,lqi:2,max:0,mean:0,measur:0,mem:2,min:0,mind:2,mini:2,minifi:3,mod:2,modul:[1,2],monitor:2,monthli:0,more:3,mount:3,mppt:0,mppt_aggreg:0,multitud:2,net:0,net_aggreg:0,network:0,nic:0,non_negative_deriv:0,notebook:2,now:0,nxt:2,obvious:2,old:2,onli:2,option:3,other:2,out:2,output:2,p_max:0,p_min:0,page:[1,2,3],pair:2,pars:3,part:2,password:3,path:2,platform:2,pleas:[2,3],plot:2,png:3,polici:0,power:0,prefer:3,pressur:0,primarili:2,project:[2,3],proper:2,protocol:2,puerhinfo:3,purpos:3,python3:[2,3],queri:0,radiat:2,rain:2,rain_bucket_tip:0,rain_tip:0,rainrat:0,rainrate_aggreg:0,raspberri:2,raspi:0,raspi_aggreg:0,rate:2,read:[2,3],realtim:0,receiv:2,replic:0,represent:2,reserv:3,resid:3,retent:0,root:3,rrate:0,rrate_max:0,rs232:2,rssi:2,same:3,schema:0,search:[1,2,3],seen:3,select:0,separ:3,server:2,shard:0,should:[2,3],show:0,similar:2,simpli:3,softwar:2,solar_graph:3,some:3,specif:3,sphinx:3,spin:2,spoton:[2,3],sqlite:0,standalon:3,station:2,statu:3,status_admin:3,status_graph:3,statusinfo:3,store:3,structur:2,style:3,subdirectori:3,submodul:3,supercap:2,t_stamp:0,tabl:0,tag:0,technolog:2,temp:2,temperatur:[0,2],temperature_max:0,temperature_min:0,temphum_graph:3,temphumi:3,temphumi_admin:3,temphumi_aggreg:0,templat:3,them:2,thi:[2,3],throughout:3,thtu:2,thu:2,time:0,tinyint:0,todo:3,top_menu:3,traffic:0,tree:3,txt:3,type:[0,3],under:3,uno:2,usag:0,usb:2,use:[2,3],usense_aggreg:0,uses:3,util:2,val_max:0,valu:[0,2,3],vantage_vue_iss:0,varchar:0,variabl:3,variou:2,version:2,victron:2,view:3,voltag:[0,2,3],voltage_admin:3,wai:[2,3],weather:[0,2,3],weather_admin:3,weather_graph:3,weather_v2:[0,3],weatherinfo:3,web:2,where:0,wide:3,wind:2,wireless:2,without:2,work:2,yeali:0,yearli:0},titles:["Structure of InfluxDB","Dynamic data","DOC: Plutonium reporter","Introduction to Plutonium"],titleterms:{"class":3,"function":3,cherrypi:3,chttpd:3,config:3,configur:3,data:1,davi:2,depend:2,directori:3,discrep:2,doc:2,done:0,dynam:1,end:0,energi:0,esp8266:2,file:3,hardwar:2,index:3,indic:[1,2,3],influxdb:0,ini:3,introduct:3,modul:3,mppt:2,path:3,plutonium:[2,3],purpos:2,rain:0,raspi:2,report:2,scope:2,server:3,solar:2,sourc:2,statist:2,statu:0,structur:[0,3],stuff:2,tabl:[1,2,3],temphumi:0,usens:0,vantag:2,vue:2,weather:1,web:3,wind:0}})
|
||||
Reference in New Issue
Block a user