Update documentation

This commit is contained in:
GitHub Action 2022-04-18 15:16:54 +00:00
parent 3460e35910
commit 094f7f5d01
46 changed files with 1458 additions and 655 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/_images/config2b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

BIN
docs/_images/esp32.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 KiB

BIN
docs/_images/firmware.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 75 KiB

BIN
docs/_images/ispindel.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -35,6 +35,12 @@ These are the format keys available for use in the format.
* - ${mdns}
- Name of the device
- gravmon2
* - ${token}
- Token
- any value
* - ${token2}
- Token 2
- any value
* - ${id}
- Unique id of the device
- e422a3

View File

@ -12,6 +12,7 @@ Retrive the current configuation of the device via an HTTP GET command. Payload
* ``temp-format`` can be either ``C`` or ``F``
* ``gravity-format`` is always ``G`` (plato is not yet supported)
* ``ble`` is used to enable ble data transmission (only on esp32) simulating a tilt. Valid color names are; red, green, black, purple, orange, blue, yellow, pink
Other parameters are the same as in the configuration guide.
@ -22,14 +23,17 @@ Other parameters are the same as in the configuration guide.
"id": "ee1bfc",
"ota-url": "http://192.168.1.50:80/firmware/gravmon/",
"temp-format": "C",
"ble": "color",
"brewfather-push": "http://log.brewfather.net/stream?id=Qwerty",
"token": "token",
"token2": "token2",
"http-push": "http://192.168.1.50:9090/api/v1/Qwerty/telemetry",
"http-push-h1": "header: value",
"http-push-h2": "header: value",
"http-push2": "http://192.168.1.50/ispindel",
"http-push2-h1": "header: value",
"http-push2-h2": "header: value",
"http-push3": "http://192.168.1.50/ispindel",
"influxdb2-push": "http://192.168.1.50:8086",
"influxdb2-org": "org",
"influxdb2-bucket": "bucket_id",
@ -53,9 +57,22 @@ Other parameters are the same as in the configuration guide.
"gy": -6,
"gz": 4
},
"formula-calculation-data": {
"a1":25,
"a2":30,
"a3":35,
"a4":40,
"a5":45,
"g1":1,
"g2":1.01,
"g3":1.02,
"g4":1.03,
"g5":1.04
},
"angle": 90.93,
"gravity": 1.105,
"battery": 0.04,
"platform": "esp8266",
"runtime-average": 3.12
}
@ -63,17 +80,7 @@ Other parameters are the same as in the configuration guide.
GET: /api/device
================
Retrive the current device settings via an HTTP GET command. Payload is in JSON format.
.. code-block:: json
{
"app-name": "GravityMon",
"app-ver": "0.0.0",
"id": "ee1bfc",
"mdns": "gravmon",
"runtime-average": 3.12
}
This API has been removed from 0.9 and merged with /api/status
GET: /api/status
@ -82,6 +89,7 @@ GET: /api/status
Retrive the current device status via an HTTP GET command. Payload is in JSON format.
* ``temp-format`` can be either ``C`` or ``F``
* ``platform`` can be either ``esp8266`` or ``esp32``
Other parameters are the same as in the configuration guide.
@ -91,13 +99,19 @@ Other parameters are the same as in the configuration guide.
"id": "ee1bfc",
"angle": 89.86,
"gravity": 1.1052,
"gravity-tempcorr": 1.1031,
"temp-c": 0,
"temp-f": 32,
"battery": 0,
"temp-format": "C",
"sleep-mode": false,
"rssi": -56
"token": "token",
"token2": "token2",
"rssi": -56,
"app-ver": "0.0.0",
"mdns": "gravmon",
"sleep-interval": 30,
"platform": "esp8266",
"runtime-average": 3.12
}
@ -128,8 +142,20 @@ Retrive the data used for formula calculation data via an HTTP GET command. Payl
}
GET: /api/clearwifi
===================
Will reset the wifi settings both in the configuration file and eeprom, leaving the rest of the configuration.
For this to work you will need to supply the device id as a parameter in the request:
::
http://mygravity.local/api/clearwifi?id=<mydeviceid>
GET: /api/factory
================
=================
Will do a reset to factory defaults and delete all data except wifi settings.
@ -140,6 +166,27 @@ For this to work you will need to supply the device id as a parameter in the req
http://mygravity.local/api/factory?id=<mydeviceid>
GET: /api/test/push
===================
Trigger a push on one of the targets, used to validate the configuration from the UI.
Requires to parameters to function /api/test/push?id=<deviceid>&format=<format>
* ``format`` defines which endpoint to test, valid values are; http-1, http-2, brewfather, influxdb, mqtt
The response is an json message with the following values.
* ``code`` is the return code from the push function, typically http responsecode or error code from mqtt library.
.. code-block:: json
{
"success": false,
"enabled": true,
"code": -3
}
POST: /api/config/device
========================
@ -167,8 +214,11 @@ Payload should be in standard format used for posting a form. Such as as: `id=va
.. code-block::
id=ee1bfc
token=
token2=
http-push=http://192.168.1.50/ispindel
http-push2=
http-push3=
http-push-h1=
http-push-h2=
http-push2-h1=
@ -222,6 +272,7 @@ Payload should be in standard format used for posting a form. Such as as: `id=va
id=ee1bfc
voltage-factor=1.59
temp-adjustment=0
ble=red
gyro-temp=off
ota-url=http://192.168.1.50/firmware/gravmon/
@ -287,11 +338,13 @@ The requests package converts the json to standard form post format.
url = "http://" + host + "/api/config/push"
json = { "id": id,
"token": "",
"token2": "",
"http-push": "http://192.168.1.1/ispindel",
"http-push2": "",
"http-push3": "",
"http-push-h1": "",
"http-push-h2": "",
"http-push2-h1": "",
"http-push2-h1": ""
"http-push2-h2": "",
"brewfather-push": "",
"influxdb2-push": "",
@ -318,6 +371,7 @@ The requests package converts the json to standard form post format.
"voltage-factor": 1.59, # Default value for voltage calculation
"temp-adjustment": 0, # If temp sensor needs to be corrected
"gyro-temp": "on", # Use the temp sensor in the gyro instead (on/off)
"ble": "red", # Enable ble on esp32
"ota-url": "" # if the device should seach for a new update when active
}
set_config( url, json )

View File

@ -22,49 +22,24 @@ URL: (http://gravmon.local)
:width: 800
:alt: Index page
Configuration is accessed by entering the URL for the device, this will be the mDNS name *device.local* or the IP adress. The following chapter assumes the device name is *gravmon*.
The main page shows the device readings; gravity, angle, temperature and battery charge. If the checkbox is active then the device will never go into sleep mode. This is useful if
you are collecting angle/tilt for calibration. If this is unchecked the device will change mode as explained before.
You can also view the average time a gravity measurement takes. Under optimal setting this should be around 1.5 - 2.0 seconds. If this is higher than 2 seconds this is most likley connected to slow wifi
connection. It will show 0 if data has not been collected yet.
.. tip::
If you are connected to the device via a serial console (speed: 115200) you can see the connection sequence and get the Unique ID and IP adress from there.
Device
======
URL: (http://gravmon.local/device)
.. image:: images/device.png
:width: 800
:alt: Device Settings
.. tip::
The button `view error log` will show the last 15 errors on the device. This can be useful for checking errors without
the need to connect to the serial port or to check what errors has occured while in `gravity mode`.
* **Version:**
Installed version of the code and html files.
* **Device name:**
This is unique name of the device which is set in the configuration, also known as MDNS name.
* **Device ID:**
This is unique identifier for the device (ESP8266 id), this is required when using the API as an API Key to safeguard
against faulty requests. This is the ESP8266 chip ID, so it should be unique.
* **Average runtime:**
This shows the average time a gravity measurement takes. Under optimal setting this should be
around 1.5 - 2.0 seconds. If this is higher than 2 seconds this is most likley connected to slow wifi
connection. It will show 0 if data has not been collected yet.
Configuration
=============
@ -80,27 +55,28 @@ Device Setting
* **Device name:**
This is unique name for the device. It will be used in pushing data as well as mDNS name on the network (<name>.local)
This is unique name for the device. It will be used in pushing data as well as mDNS name on the network (<name>.local)
* **Temperature format:**
Choose between Celsius and Farenheight when displaying temperature.
Choose between Celsius and Farenheight when displaying temperature.
* **Interval:**
This defines how long the device should be sleeping between the readings when in `gravity monitoring` mode. You will also see
the values in minutes/seconds to easier set the interval. 900s is a recommended interval. The sleep interval can
be set between 10 - 3600 seconds (60 minutes).
This defines how long the device should be sleeping between the readings when in `gravity monitoring` mode. You will also see
the values in minutes/seconds to easier set the interval. 900s is a recommended interval. The sleep interval can
be set between 10 - 3600 seconds (60 minutes).
.. note::
A low value such as 30s will give a lifespan of 1-2 weeks and 300s (5 min) would last for 3+ weeks. This assumes that
there is good wifi connection that takes less than 1s to reconnect. Poor wifi connection is the main reason for battery drain.
The device will show the estimated lifespan based on the average connection time, if no data exist it will not be shown.
* **Calibration values:**
These are calibration data for the gyro. Place the device flat on a table and press the button to save the default orientation values. Without this calibration we cannot calculate the correct angle/tilt.
These are calibration data for the gyro. Place the device flat on a table and press the button to save the default orientation values. Without this calibration we cannot calculate the correct angle/tilt.
.. warning::
@ -118,85 +94,102 @@ Push Settings
When enabling SSL this will not validate the root CA of the remote service, this is a design decision based on two aspects. Enabling CA validation will take 3-4s extra on each connection which means way less
battery life, so the decision is to prioritize battery life over security. The data transmitted is not really that sensitive anyway so I belive this is a good balance.
* **HTTP 1 (POST):**
* **HTTP URL 1:**
Endpoint to send data via http. Default format used Format used :ref:`data-formats-ispindle`. You can customize the format using :ref:`format-editor`.
Endpoint to send data via http. Default format used Format used :ref:`data-formats-ispindle`. You can customize the format using :ref:`format-editor`.
If you add the prefix `https://` then the device will use SSL when sending data.
If you add the prefix `https://` then the device will use SSL when sending data.
* **HTTP 2 (POST):**
* **HTTP URL 2:**
Endpoint to send data via http. Default format used :ref:`data-formats-ispindle`. You can customize the format using :ref:`format-editor`.
Endpoint to send data via http. Default format used :ref:`data-formats-ispindle`. You can customize the format using :ref:`format-editor`.
If you add the prefix `https://` then the device will use SSL when sending data.
If you add the prefix `https://` then the device will use SSL when sending data.
* **Token:**
The token is included in the iSpindle JSON format and will be used for both HTTP targets. If you
need to have 2 different tokens please use the :ref:`format-editor` to customize the data format.
The token is included in the iSpindle JSON format and will be used for both HTTP targets. If you
need to have 2 different tokens please use the :ref:`format-editor` to customize the data format.
* **HTTP 3 (GET):**
Endpoint to send data via http. This is using an HTTP GET request instead of a post. This means that the values are appended to the URL like; http://endpoint?param=value&param2=value2. You can customize the format using :ref:`format-editor`.
If you add the prefix `https://` then the device will use SSL when sending data.
* **Token 2:**
The token is included in the default format for the HTTP GET url but can be used for any of the formats. For HTTP GET use can use this for an authorization token with for instance ubidots or blynk http api.
* **Brewfather URL:**
Endpoint to send data via http to brewfather. Format used :ref:`data-formats-brewfather`
Endpoint to send data via http to brewfather. Format used :ref:`data-formats-brewfather`
SSL is not supported for this target.
* **Influx DB v2 URL:**
Endpoint to send data via http to InfluxDB. Format used :ref:`data-formats-influxdb2`. You can customize the format using :ref:`format-editor`.
SSL is not supported for this target. Raise a issue on github if this is wanted.
* **Influx DB v2 Organisation:**
Name of organisation in Influx.
* **Influx DB v2 Bucket:**
Identifier for bucket.
* **Influx DB v2 Token:**
Token with write access to bucket.
* **MQTT server:**
IP or name of server to send data to. Default format used :ref:`data-formats-mqtt`. You can customize the format using :ref:`format-editor`.
* **MQTT Port:**
Which port should be used for communication, default is 1883 (standard port). For SSL use 8883 (any port over 8000 is treated as SSL).
* **MQTT user:**
Username or blank if anonymous is accepted
* **MQTT password:**
Password or blank if anonymous is accepted
SSL is not supported for this target.
* **HTTP Headers**
.. image:: images/config-popup1.png
:width: 300
:alt: HTTP Headers
.. image:: images/config-popup1.png
:width: 300
:alt: HTTP Headers
You can define 2 http headers per push target. This is available via a pop-up window but dont forget
to press the save buttons on the post section to save the values. One common header is content type which is the
default setting for http targets.
You can define 2 http headers per push target. This is available via a pop-up window but dont forget
to press the save buttons on the post section to save the values. One common header is content type which is the
default setting for http targets.
The input must have the format **'<header>: <value>'** for it to work. The UI will accept any value so errors
will not show until the device tries to push data.
The input must have the format **'<header>: <value>'** for it to work. The UI will accept any value so errors
will not show until the device tries to push data.
::
::
Content-Type: application/json
X-Auth-Token: <api-token>
Content-Type: application/json
X-Auth-Token: <api-token>
Mozilla has a good guide on what headers are valid; `HTTP Headers <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers>`_
Mozilla has a good guide on what headers are valid; `HTTP Headers <https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers>`_
Push Settings (2)
+++++++++++++++++
.. image:: images/config2b.png
:width: 800
:alt: Push Settings
* **Influx DB v2 URL:**
Endpoint to send data via http to InfluxDB. Format used :ref:`data-formats-influxdb2`. You can customize the format using :ref:`format-editor`.
SSL is not supported for this target. Raise a issue on github if this is wanted.
* **Influx DB v2 Organisation:**
Name of organisation in Influx.
* **Influx DB v2 Bucket:**
Identifier for bucket.
* **Influx DB v2 Token:**
Token with write access to bucket.
* **MQTT server:**
IP or name of server to send data to. Default format used :ref:`data-formats-mqtt`. You can customize the format using :ref:`format-editor`.
* **MQTT Port:**
Which port should be used for communication, default is 1883 (standard port). For SSL use 8883 (any port over 8000 is treated as SSL).
* **MQTT user:**
Username or blank if anonymous is accepted
* **MQTT password:**
Password or blank if anonymous is accepted
Gravity Settings
@ -208,25 +201,26 @@ Gravity Settings
* **Gravity format:**
Gravity format can be eihter `SG` or `Plato`. The device will use SG Internally and convert to Plato when displaying or sending data.
Gravity format can be eihter `SG` or `Plato`. The device will use SG Internally and convert to Plato when displaying or sending data.
* **Gravity formula:**
Gravity formula is compatible with standard iSpindle formulas so any existing calculation option can be used. You can also use
the feature to create the formula by supplying the raw data. See :ref:`create-formula`
Gravity formula is compatible with standard iSpindle formulas so any existing calculation option can be used. You can also use
the feature to create the formula by supplying the raw data. See :ref:`create-formula`
The gravity formula accepts to paramaters, **tilt** for the angle or **temp** for temperature (temperature inserted into the formula
will be in celsius). I would recommend to use the formula calculation feature instead since this is much easier.
The gravity formula accepts to paramaters, **tilt** for the angle or **temp** for temperature (temperature inserted into the formula
will be in celsius). I would recommend to use the formula calculation feature instead since this is much easier.
* **Temperature correct gravity:**
Will apply a temperature calibration formula to the gravity as a second step after gravity has been calculated. It's also possible to
build this into the gravity formula.
Will apply a temperature calibration formula to the gravity as a second step after gravity has been calculated. It's also possible to
build this into the gravity formula.
.. warning::
This formula assumes that the calibration has been done at 20°C / 68°F.
Formula used in temperature correction.
Formula used in temperature correction.
::
@ -243,30 +237,34 @@ Hardware Settings
* **Voltage factor:**
Factor used to calcualate the battery voltage. If you get a too low/high voltage you can adjust this value.
Factor used to calcualate the battery voltage. If you get a too low/high voltage you can adjust this value.
* **Temperature correction:**
This value will be added to the temperature reading (negative value will reduce temperature reading). This is applied
when the device starts. So changing this will not take affect until the device is restarted.
This value will be added to the temperature reading (negative value will reduce temperature reading). This is applied
when the device starts. So changing this will not take affect until the device is restarted.
* **Gyro Temperature:**
Enable this feature will use the temp sensor i the gyro instead of the DS18B20, the benefit is shorter run time and
longer battery life (this is an experimental feature). The value used is the first temperature reading from when the
device is activated, since the gyro should be cool this is reflecting the surronding temperature. After it has
been running the value would be totally off.
Enable this feature will use the temp sensor i the gyro instead of the DS18B20, the benefit is shorter run time and
longer battery life (this is an experimental feature). The value used is the first temperature reading from when the
device is activated, since the gyro should be cool this is reflecting the surronding temperature. After it has
been running the value would be totally off.
* **Bluetooth: (Only ESP32)**
If the build is using an ESP32 then you can send data over BLE, simulating a Tilt device. Choose the color that you want the device to simulate.
* **OTA URL:**
Should point to a URL where the firmware.bin file + version.json file are located.
Should point to a URL where the firmware.bin file + version.json file are located. For an ESP32 target the firmware should be named firmware32.bin.
For the OTA to work, place the following files (version.json + firmware.bin) at the location that you pointed out in OTA URL. If the version number in the json file is newer than in the
code the update will be done during startup.
For the OTA to work, place the following files (version.json + firmware.bin) at the location that you pointed out in OTA URL. If the version number in the json file is newer than in the
code the update will be done during startup.
If you have the previx `https://` then the device will use secure transfer without CA validation.
If you have the previx `https://` then the device will use secure transfer without CA validation.
Example; OTA URL (don't forget trailing dash), the name of the file should be firmware.bin
Example; OTA URL (don't forget trailing dash), the name of the file should be firmware.bin
.. code-block::
@ -274,3 +272,12 @@ Hardware Settings
https://192.168.1.1/firmware/gravmon/
* **Upload Firmware**
This option gives you the possibility to install an new version of the firmware (or any firmware that uses the standard flash layout).
.. image:: images/firmware.png
:width: 600
:alt: Update firmware

View File

@ -5,8 +5,8 @@ Data Formats
.. _data-formats-ispindle:
iSpindle format
===============
HTTP Post, iSpindle format
==========================
This is the format used for standard http posts.
@ -22,7 +22,7 @@ This is the format used for standard http posts.
"token" : "gravmon",
"interval": 900,
"temperature": 20.5,
"temp-units": "C",
"temp_units": "C",
"gravity": 1.0050,
"angle": 45.34,
"battery": 3.67,
@ -43,7 +43,7 @@ This is the format template used to create the json above.
"token" : "gravmon",
"interval": ${sleep-interval},
"temperature": ${temp},
"temp-units": "${temp-unit}",
"temp_units": "${temp-unit}",
"gravity": ${gravity},
"angle": ${angle},
"battery": ${battery},
@ -75,6 +75,25 @@ This is the format for Brewfather. See: `Brewfather API docs <https://docs.brewf
.. _data-formats-influxdb2:
HTTP Get
========
This is the format added to the URL when using HTTP get
.. code-block::
?name=<mdns>,id=<id>,token=<token>&interval=300&temperature=20.1&temp-units=<C|F>&
gravity=$1.004&angle=45.5&battery=3.96&rssi=-18&corr-gravity=1.004&gravity-unit=<G|P>&run-time=2.1
This is the format template used to create the data above.
.. code-block::
?name=${mdns}&id=${id}&token=${token2}&interval=${sleep-interval}&temperature=${temp}&
temp-units=${temp-unit}&gravity=${gravity}&angle=${angle}&battery=${battery}&rssi=${rssi}&
corr-gravity=${corr-gravity}&gravity-unit=${gravity-unit}&run-time=${run-time}
Influx DB v2
============
@ -82,14 +101,17 @@ This is the format for InfluxDB v2
.. code-block::
measurement,host=<mdns>,device=<id>,temp-format=<C|F>,gravity-format=SG,gravity=1.0004,corr-gravity=1.0004,angle=45.45,temp=20.1,battery=3.96,rssi=-18
measurement,host=<mdns>,device=<id>,temp-format=<C|F>,gravity-format=SG,
gravity=1.0004,corr-gravity=1.0004,angle=45.45,temp=20.1,battery=3.96,rssi=-18
This is the format template used to create the json above.
.. code-block::
measurement,host=${mdns},device=${id},temp-format=${temp-unit},gravity-format=${gravity-unit} gravity=${gravity},corr-gravity=${corr-gravity},angle=${angle},temp=${temp},battery=${battery},rssi=${rssi}
measurement,host=${mdns},device=${id},temp-format=${temp-unit},
gravity-format=${gravity-unit} gravity=${gravity},corr-gravity=${corr-gravity},
angle=${angle},temp=${temp},battery=${battery},rssi=${rssi}
.. _data-formats-mqtt:
@ -130,7 +152,10 @@ This is a format template that is compatible with v0.6. Just replace the `topic`
.. code-block::
topic:{"name":"gravmon","ID":"${id}","token":"gravmon","interval": ${sleep-interval},"temperature": ${temp},"temp-units": "${temp-unit}","gravity":${gravity},"angle": ${angle},"battery":${battery},"rssi": ${rssi},"corr-gravity":${corr-gravity},"gravity-unit": "${gravity-unit}","run-time": ${run-time}}|
topic:{"name":"gravmon", "ID":"${id}", "token":"gravmon", "interval": ${sleep-interval},
"temperature": ${temp}, "temp_units": "${temp-unit}", "gravity":${gravity},
"angle": ${angle}, "battery":${battery}, "rssi": ${rssi}, "corr-gravity":${corr-gravity},
"gravity-unit": "${gravity-unit}", "run-time": ${run-time}}|
version.json
@ -147,7 +172,7 @@ they can be uploaded manually afterwards.
"version":"0.7.0",
"html": [
"index.min.htm",
"device.min.htm",
"test.min.htm",
"config.min.htm",
"format.min.htm",
"calibration.min.htm",

View File

@ -0,0 +1,26 @@
.. _hardware:
Hardware
########
There are lots of resouces out there on how to build the hardware for an iSpindle so I will not go into details on that part. Here are two of my builds using the iSpindle PCB v4.
.. image:: images/ispindel.jpg
:width: 500
:alt: Builds of iSpindel
It's possible to use this PCB and mount an ESP32 on top of that. It must be an pin compatible ESP32 and the one I used was called *ESP32 d1 mini*. Since this is the same width as the PCB you need to
mount it really close to the PCB in order for it to fit in the PET tube/container. I also had to smooth the edge of the ESP32 in order for it to fit.
I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.
You also need to desolder (remove) the RED ON LED from the ESP32 or the battery power will be reduced a lot.
Final thing is to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor which
the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.
.. image:: images/esp32.jpg
:width: 500
:alt: Mounting esp32

View File

@ -7,7 +7,7 @@ Welcome to GravityMon's documentation!
######################################
.. note::
This documentation reflects **v0.8**. Last updated 2022-03-05
This documentation reflects **v0.9**. Last updated 2022-03-14
GravityMon is used to measure gravity and temperature during fermentation of beer and report the progress. The graph below is
an example on how the fermentation process can be tracked. This is from my last brew that was over on a few days. The graph is rendered using
@ -21,6 +21,8 @@ GravityMon is a replacement firmware for the iSpindle and uses the same hardware
implements a lot of the features that has been requested in the orginal iSpindle project but has been rejected for
various reasons. Here is a list of :ref:`main_features`.
From v0.9 the firmware now supports a iSpindle build based on an ESP32 d1 mini (pin compatible with esp8266). See :ref:`hardware`.
I started GravityMon because I like to create software and wanted to do some low level programming. I had done a few
projects based on esp8266 and also started to brew beer so this combination was quite natural.
@ -124,17 +126,29 @@ the following libraries and without these this would have been much more difficu
CSS templates for the web page.
* https://github.com/lorol/LITTLEFS
LittleFS library for ESP32 framework 1.x
* https://github.com/h2zero/NimBLE-Arduino
Bluetooth library for ESP32 framework 1.x
* https://github.com/spouliot/tilt-sim
Excellent project for simulating a tilt device.
.. toctree::
:maxdepth: 2
:caption: Contents:
license
functionallity
intro
installation
releases
functionallity
installation
configuration
troubleshooting
q_and_a
formula
services
advanced
@ -142,8 +156,8 @@ the following libraries and without these this would have been much more difficu
data
compiling
contributing
troubleshooting
q_and_a
hardware
license
Indices and tables
==================

View File

@ -3,6 +3,12 @@
Installation
------------
You have these 3 options for flashing this firmware.
* Brewflasher via USB serial
* Esptool via USB serial
* iSpindel web interface
Brewflasher
===========
@ -16,7 +22,7 @@ on both Windows and Mac. You can download the latest version from here: `Brewfla
Binaries
********
In the /bin directory you will find 2 different firmware builds;
In the /bin directory you will find 3 different firmware builds;
* **firmware.bin**
@ -26,6 +32,10 @@ In the /bin directory you will find 2 different firmware builds;
This version also submits performance data to an influx database with detailed execution times.
* **firmware32.bin**
This is the standard release build for an ESP32 variant
In these versions all the html files are embedded in the binaries. The file system is currently only used for storing
the configuration file.
@ -49,6 +59,40 @@ If there are issues you can try do erase the flash first using this command;
``esptool.py --port COM4 erase_flash``
iSpindel
========
If you already have the device flashed with iSpindel firmware you can go into the configuration mode where you will find
an option for updating firmware. The option is under the maintence meny.
Select the esp8266 version of the firmware called firmware.bin and press upload.
Updating firmware
=================
You can use the above options for updating the firmware as well. But if you want to do updates without connecting the USB cable these
are your options.
OTA Option
**********
You can use the OTA option by adding this URL to your configuration and when the device starts up in configuration mode it
will check for a new version and if it finds a newer version it will do an update.
``https://mp-se.github.io/gravitymon/release/``
Manual update
*************
When the device in is configuration mode you can manually update with a new firmware. Just open this URL in the web
browser and select the firmware.bin file that corresponds to the version you want to flash.
``http://<device_name>/firmware.htm``
.. _serial_monitoring:
Serial Monitoring
=================

View File

@ -3,6 +3,31 @@
Releases
########
v0.9.0
------
* Added one http push target that uses HTTP GET. This can be used with ubidots or blynk api's.
* Added function to test push targets from configuration page. It will send data and show the return code as a first step.
* Added documetation on how to integrate with Blynk.io using http get.
* Config page now shows the estimated runtime for the device (based on a full battery and previous average runtime)
* Experimental release of firmware using an esp32 instead of esp8266
* Merged index and device pages into one so that all the needed information is available on the index page.
* Removed api for device (/api/device), it's now merged into the /api/status api.
* Test function in format editor now uses real data and not fake.
* Split push configuration into two sections to make it fit better on smaller devices
* Updated WifiManager and DoubleReset libraries
* Updated esp32 target with littlefs support
* Updated esp32 target with BLE send support (it will simulate a tilt)
* Mounted esp32 d1 mini mounted to a iSpindle PCB 4.0 (CherryPhilip) which worked fine.
* Documented hardware changes on esp32
* Default mDNS name is now shown on WIFI setup page.
* Added option to manually update/downgrade firmware under hardware settings.
* BUG: Corrected PIN for voltage read on ESP32
* BUG: If using plato and not gravity formula was defined the value was set to null.
* BUG: Temp format name was incorrect in iSpindle format causing receiver to incorrectly read temperature.
* BUG: Temperature sensor adjusmemnt value was not handled properly when using Farenheight.
* BUG: If the ID was to low the device id could end up with a leading space causing errors in data post. Added leading zero to ID.
* BUG: Entering wifi setup and a timeout occured the wifi settings could be deleted.
v0.8.0
------
@ -13,7 +38,7 @@ v0.8.0
* Added instructions for how to configure integration with Brewspy
* Added instructions for how to configure integration with Thingspeak
* Added option to do a factory reset via API.
* Logging the runtime, how long a measurement take (last 10 are stored). This can be
* Added logging of the runtime, how long a measurement take (last 10 are stored). This can be
used to check how good the wifi connection is and estimate the lifetime when on battery.
Check the device page in the UI for this information.
* Refactored code to free up more RAM to make SSL more stable.

View File

@ -10,14 +10,55 @@ Brewfather
Brewfather is an all in one service that allows you to manage you recepies and brews.
Just enter the http adress found on brewfather, not other settings are needed. The endpoint has the following format:
.. tip::
The integration named Brewfather is uses the custom stream endpoint in brewfather not the standard iSpindle
endpoint. You can use the iSpindle endpoint as well. In that case just use the http-1 or http-2 fields.
**Option 1** - Custom Stream
This option makes use of the push endpoint called Brewfather in the UI. Just enter the http stream adress found
on brewfather, not other settings are needed. The stream endpoint URL has the following format:
.. code-block::
http://log.brewfather.net/http://log.brewfather.net/stream?id=<yourid>
http://log.brewfather.net/stream?id=<yourid>
Documentation on this can be found under `Brewfather Custom Endpoint <https://docs.brewfather.app/integrations/custom-stream>`_
The implementation is basically a http request with the following format template:
.. code-block::
{
"name": "${mdns}",
"temp": ${temp},
"aux_temp": 0,
"ext_temp": 0,
"temp_unit": "${temp-unit}",
"gravity": ${gravity},
"gravity_unit": "${gravity-unit}",
"pressure": 0,
"pressure_unit": "PSI",
"ph": 0,
"bpm": 0,
"comment": "",
"beer": "",
"battery": ${battery}
}
The URL is found under settings.
**Option 2** - iSpindle Endpoint
This opion makes use of the standard http (1 or 2) endpoints in the push section. The brewfather iSpindle endpoint
has the following format:
.. code-block::
http://log.brewfather.net/ispindel?id=<yourid>
Documentation on this can be found under `Brewfather iSpindle Endpoint <https://docs.brewfather.app/integrations/ispindel>`_
Fermentrack
+++++++++++
@ -149,7 +190,7 @@ format for the endpoint. Just add you API key after token.
"token" : "[API KEY]",
"interval": ${sleep-interval},
"temperature": ${temp},
"temp-units": "${temp-unit}",
"temp_units": "${temp-unit}",
"gravity": ${gravity},
"angle": ${angle},
"battery": ${battery},
@ -195,3 +236,28 @@ you want to include. The example below sends 5 different values to the channel i
"field4": ${battery},
"field5": ${rssi}
}
Blynk.io
++++++++
Blynk is an IoT service which can be updated via http get. It also has an mobile device that can be used to show the data.
In order to use this platform you need to create a device which can be used to receive the data. Each device will have a
unique token that is used to identify it. You need to use the HTTP GET option (http-3) on the device for this to work. Enter the
following URL in the UI. This will allow us to update several data points at once. I usually enter the token in the ``token2`` field
so the format template does not contain any sensitive data and it's easier to switch to another device.
.. code-block::
http://blynk.cloud/external/api/batch/update
In the format editor you can enter this template which will send 3 values to blynk. You can add as many as you want but make sure
these are configured on the device with the correct validation option such as data type and range. The value should be on one line
starting with a ``?``. This string will be added to the URL above when doing the post. You can add more values if you want.
.. code-block::
?token=${token2}&v1=${temp}&v2=${gravity}&v3=${angle}

View File

@ -154,9 +154,7 @@ var Documentation = {
this.fixFirefoxAnchorBug();
this.highlightSearchWords();
this.initIndexTable();
if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) {
this.initOnKeyListeners();
}
this.initOnKeyListeners();
},
/**
@ -269,6 +267,13 @@ var Documentation = {
window.history.replaceState({}, '', url);
},
/**
* helper function to focus on search bar
*/
focusSearchBar : function() {
$('input[name=q]').first().focus();
},
/**
* make the url absolute
*/
@ -291,27 +296,54 @@ var Documentation = {
},
initOnKeyListeners: function() {
// only install a listener if it is really needed
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
return;
$(document).keydown(function(event) {
var activeElementType = document.activeElement.tagName;
// don't navigate when in search box, textarea, dropdown or button
if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT'
&& activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey
&& !event.shiftKey) {
switch (event.keyCode) {
case 37: // left
var prevHref = $('link[rel="prev"]').prop('href');
if (prevHref) {
window.location.href = prevHref;
return false;
}
break;
case 39: // right
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
break;
&& activeElementType !== 'BUTTON') {
if (event.altKey || event.ctrlKey || event.metaKey)
return;
if (!event.shiftKey) {
switch (event.key) {
case 'ArrowLeft':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var prevHref = $('link[rel="prev"]').prop('href');
if (prevHref) {
window.location.href = prevHref;
return false;
}
break;
case 'ArrowRight':
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS)
break;
var nextHref = $('link[rel="next"]').prop('href');
if (nextHref) {
window.location.href = nextHref;
return false;
}
break;
case 'Escape':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.hideSearchWords();
return false;
}
}
// some keyboard layouts may need Shift to get /
switch (event.key) {
case '/':
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS)
break;
Documentation.focusSearchBar();
return false;
}
}
});

View File

@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
VERSION: '0.8.0',
VERSION: '0.9.0',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
@ -8,5 +8,7 @@ var DOCUMENTATION_OPTIONS = {
LINK_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
NAVIGATION_WITH_KEYS: false
NAVIGATION_WITH_KEYS: false,
SHOW_SEARCH_SUMMARY: true,
ENABLE_SEARCH_SHORTCUTS: true,
};

View File

@ -172,10 +172,6 @@ var Search = {
}
// stem the word
var word = stemmer.stemWord(tmp[i].toLowerCase());
// prevent stemmer from cutting word smaller than two chars
if(word.length < 3 && tmp[i].length >= 3) {
word = tmp[i];
}
var toAppend;
// select the correct list
if (word[0] == '-') {
@ -276,7 +272,7 @@ var Search = {
setTimeout(function() {
displayNextItem();
}, 5);
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
} else if (DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY) {
$.ajax({url: requestUrl,
dataType: "text",
complete: function(jqxhr, textstatus) {
@ -293,7 +289,7 @@ var Search = {
}, 5);
}});
} else {
// no source available, just display title
// just display title
Search.output.append(listItem);
setTimeout(function() {
displayNextItem();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="REST API" href="api.html" /><link rel="prev" title="Service Integration" href="services.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Advanced Configuration - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Advanced Configuration - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -235,6 +238,14 @@ The save button will save the current formla and reload the data from the device
<td><p>Name of the device</p></td>
<td><p>gravmon2</p></td>
</tr>
<tr class="row-odd"><td><p>${token}</p></td>
<td><p>Token</p></td>
<td><p>any value</p></td>
</tr>
<tr class="row-even"><td><p>${token2}</p></td>
<td><p>Token 2</p></td>
<td><p>any value</p></td>
</tr>
<tr class="row-odd"><td><p>${id}</p></td>
<td><p>Unique id of the device</p></td>
<td><p>e422a3</p></td>

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Data Formats" href="data.html" /><link rel="prev" title="Advanced Configuration" href="advanced.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>REST API - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>REST API - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -209,6 +212,7 @@
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">temp-format</span></code> can be either <code class="docutils literal notranslate"><span class="pre">C</span></code> or <code class="docutils literal notranslate"><span class="pre">F</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">gravity-format</span></code> is always <code class="docutils literal notranslate"><span class="pre">G</span></code> (plato is not yet supported)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ble</span></code> is used to enable ble data transmission (only on esp32) simulating a tilt. Valid color names are; red, green, black, purple, orange, blue, yellow, pink</p></li>
</ul>
<p>Other parameters are the same as in the configuration guide.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
@ -216,14 +220,17 @@
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ee1bfc"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"ota-url"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://192.168.1.50:80/firmware/gravmon/"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"C"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"ble"</span><span class="p">:</span><span class="w"> </span><span class="s2">"color"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"brewfather-push"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://log.brewfather.net/stream?id=Qwerty"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"token"</span><span class="p">:</span><span class="w"> </span><span class="s2">"token"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"token2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"token2"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://192.168.1.50:9090/api/v1/Qwerty/telemetry"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push-h1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"header: value"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push-h2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"header: value"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://192.168.1.50/ispindel"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push2-h1"</span><span class="p">:</span><span class="w"> </span><span class="s2">"header: value"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push2-h2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"header: value"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"http-push3"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://192.168.1.50/ispindel"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"influxdb2-push"</span><span class="p">:</span><span class="w"> </span><span class="s2">"http://192.168.1.50:8086"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"influxdb2-org"</span><span class="p">:</span><span class="w"> </span><span class="s2">"org"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"influxdb2-bucket"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bucket_id"</span><span class="p">,</span><span class="w"></span>
@ -247,9 +254,22 @@
<span class="w"> </span><span class="nt">"gy"</span><span class="p">:</span><span class="w"> </span><span class="mi">-6</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gz"</span><span class="p">:</span><span class="w"> </span><span class="mi">4</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">"formula-calculation-data"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a1"</span><span class="p">:</span><span class="mi">25</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a2"</span><span class="p">:</span><span class="mi">30</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a3"</span><span class="p">:</span><span class="mi">35</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a4"</span><span class="p">:</span><span class="mi">40</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a5"</span><span class="p">:</span><span class="mi">45</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g1"</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g2"</span><span class="p">:</span><span class="mf">1.01</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g3"</span><span class="p">:</span><span class="mf">1.02</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g4"</span><span class="p">:</span><span class="mf">1.03</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g5"</span><span class="p">:</span><span class="mf">1.04</span><span class="w"></span>
<span class="w"> </span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="nt">"angle"</span><span class="p">:</span><span class="w"> </span><span class="mf">90.93</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.105</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"battery"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.04</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"platform"</span><span class="p">:</span><span class="w"> </span><span class="s2">"esp8266"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"runtime-average"</span><span class="p">:</span><span class="w"> </span><span class="mf">3.12</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
@ -257,35 +277,33 @@
</div>
<div class="section" id="get-api-device">
<h2>GET: /api/device<a class="headerlink" href="#get-api-device" title="Permalink to this headline">#</a></h2>
<p>Retrive the current device settings via an HTTP GET command. Payload is in JSON format.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">"app-name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"GravityMon"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"app-ver"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0.0"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ee1bfc"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"mdns"</span><span class="p">:</span><span class="w"> </span><span class="s2">"gravmon"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"runtime-average"</span><span class="p">:</span><span class="w"> </span><span class="mf">3.12</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
<p>This API has been removed from 0.9 and merged with /api/status</p>
</div>
<div class="section" id="get-api-status">
<h2>GET: /api/status<a class="headerlink" href="#get-api-status" title="Permalink to this headline">#</a></h2>
<p>Retrive the current device status via an HTTP GET command. Payload is in JSON format.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">temp-format</span></code> can be either <code class="docutils literal notranslate"><span class="pre">C</span></code> or <code class="docutils literal notranslate"><span class="pre">F</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">platform</span></code> can be either <code class="docutils literal notranslate"><span class="pre">esp8266</span></code> or <code class="docutils literal notranslate"><span class="pre">esp32</span></code></p></li>
</ul>
<p>Other parameters are the same as in the configuration guide.</p>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"ee1bfc"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"angle"</span><span class="p">:</span><span class="w"> </span><span class="mf">89.86</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.1052</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity-tempcorr"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.1031</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-c"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-f"</span><span class="p">:</span><span class="w"> </span><span class="mi">32</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"battery"</span><span class="p">:</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"C"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"sleep-mode"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"rssi"</span><span class="p">:</span><span class="w"> </span><span class="mi">-56</span><span class="w"></span>
<span class="w"> </span><span class="nt">"token"</span><span class="p">:</span><span class="w"> </span><span class="s2">"token"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"token2"</span><span class="p">:</span><span class="w"> </span><span class="s2">"token2"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"rssi"</span><span class="p">:</span><span class="w"> </span><span class="mi">-56</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"app-ver"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0.0"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"mdns"</span><span class="p">:</span><span class="w"> </span><span class="s2">"gravmon"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"sleep-interval"</span><span class="p">:</span><span class="w"> </span><span class="mi">30</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"platform"</span><span class="p">:</span><span class="w"> </span><span class="s2">"esp8266"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"runtime-average"</span><span class="p">:</span><span class="w"> </span><span class="mf">3.12</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
@ -315,6 +333,14 @@
</pre></div>
</div>
</div>
<div class="section" id="get-api-clearwifi">
<h2>GET: /api/clearwifi<a class="headerlink" href="#get-api-clearwifi" title="Permalink to this headline">#</a></h2>
<p>Will reset the wifi settings both in the configuration file and eeprom, leaving the rest of the configuration.</p>
<p>For this to work you will need to supply the device id as a parameter in the request:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>http://mygravity.local/api/clearwifi?id=&lt;mydeviceid&gt;
</pre></div>
</div>
</div>
<div class="section" id="get-api-factory">
<h2>GET: /api/factory<a class="headerlink" href="#get-api-factory" title="Permalink to this headline">#</a></h2>
<p>Will do a reset to factory defaults and delete all data except wifi settings.</p>
@ -323,6 +349,25 @@
</pre></div>
</div>
</div>
<div class="section" id="get-api-test-push">
<h2>GET: /api/test/push<a class="headerlink" href="#get-api-test-push" title="Permalink to this headline">#</a></h2>
<p>Trigger a push on one of the targets, used to validate the configuration from the UI.</p>
<p>Requires to parameters to function /api/test/push?id=&lt;deviceid&gt;&amp;format=&lt;format&gt;</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">format</span></code> defines which endpoint to test, valid values are; http-1, http-2, brewfather, influxdb, mqtt</p></li>
</ul>
<p>The response is an json message with the following values.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">code</span></code> is the return code from the push function, typically http responsecode or error code from mqtt library.</p></li>
</ul>
<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="nt">"success"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"enabled"</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"code"</span><span class="p">:</span><span class="w"> </span><span class="mi">-3</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</div>
<div class="section" id="post-api-config-device">
<h2>POST: /api/config/device<a class="headerlink" href="#post-api-config-device" title="Permalink to this headline">#</a></h2>
<p>Used to update device settings via an HTTP POST command.</p>
@ -342,8 +387,11 @@
<p>Used to update push settings via an HTTP POST command. Payload is in JSON format.</p>
<p>Payload should be in standard format used for posting a form. Such as as: <cite>id=value&amp;mdns=value</cite> etc. Key value pairs are shown below.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">id</span><span class="o">=</span><span class="n">ee1bfc</span>
<span class="n">token</span><span class="o">=</span>
<span class="n">token2</span><span class="o">=</span>
<span class="n">http</span><span class="o">-</span><span class="n">push</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168.1.50</span><span class="o">/</span><span class="n">ispindel</span>
<span class="n">http</span><span class="o">-</span><span class="n">push2</span><span class="o">=</span>
<span class="n">http</span><span class="o">-</span><span class="n">push3</span><span class="o">=</span>
<span class="n">http</span><span class="o">-</span><span class="n">push</span><span class="o">-</span><span class="n">h1</span><span class="o">=</span>
<span class="n">http</span><span class="o">-</span><span class="n">push</span><span class="o">-</span><span class="n">h2</span><span class="o">=</span>
<span class="n">http</span><span class="o">-</span><span class="n">push2</span><span class="o">-</span><span class="n">h1</span><span class="o">=</span>
@ -392,6 +440,7 @@ reading data its sent as boolean (true,false).</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nb">id</span><span class="o">=</span><span class="n">ee1bfc</span>
<span class="n">voltage</span><span class="o">-</span><span class="n">factor</span><span class="o">=</span><span class="mf">1.59</span>
<span class="n">temp</span><span class="o">-</span><span class="n">adjustment</span><span class="o">=</span><span class="mi">0</span>
<span class="n">ble</span><span class="o">=</span><span class="n">red</span>
<span class="n">gyro</span><span class="o">-</span><span class="n">temp</span><span class="o">=</span><span class="n">off</span>
<span class="n">ota</span><span class="o">-</span><span class="n">url</span><span class="o">=</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168.1.50</span><span class="o">/</span><span class="n">firmware</span><span class="o">/</span><span class="n">gravmon</span><span class="o">/</span>
</pre></div>
@ -450,11 +499,13 @@ present or the API call will fail.</p>
<span class="n">url</span> <span class="o">=</span> <span class="s2">"http://"</span> <span class="o">+</span> <span class="n">host</span> <span class="o">+</span> <span class="s2">"/api/config/push"</span>
<span class="n">json</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"id"</span><span class="p">:</span> <span class="nb">id</span><span class="p">,</span>
<span class="s2">"token"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"token2"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push"</span><span class="p">:</span> <span class="s2">"http://192.168.1.1/ispindel"</span><span class="p">,</span>
<span class="s2">"http-push2"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push3"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push-h1"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push-h2"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push2-h1"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"http-push2-h1"</span><span class="p">:</span> <span class="s2">""</span>
<span class="s2">"http-push2-h2"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"brewfather-push"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"influxdb2-push"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
@ -481,6 +532,7 @@ present or the API call will fail.</p>
<span class="s2">"voltage-factor"</span><span class="p">:</span> <span class="mf">1.59</span><span class="p">,</span> <span class="c1"># Default value for voltage calculation</span>
<span class="s2">"temp-adjustment"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># If temp sensor needs to be corrected</span>
<span class="s2">"gyro-temp"</span><span class="p">:</span> <span class="s2">"on"</span><span class="p">,</span> <span class="c1"># Use the temp sensor in the gyro instead (on/off)</span>
<span class="s2">"ble"</span><span class="p">:</span> <span class="s2">"red"</span><span class="p">,</span> <span class="c1"># Enable ble on esp32</span>
<span class="s2">"ota-url"</span><span class="p">:</span> <span class="s2">""</span> <span class="c1"># if the device should seach for a new update when active</span>
<span class="p">}</span>
<span class="n">set_config</span><span class="p">(</span> <span class="n">url</span><span class="p">,</span> <span class="n">json</span> <span class="p">)</span>
@ -566,7 +618,9 @@ present or the API call will fail.</p>
<li><a class="reference internal" href="#get-api-device">GET: /api/device</a></li>
<li><a class="reference internal" href="#get-api-status">GET: /api/status</a></li>
<li><a class="reference internal" href="#get-api-config-formula">GET: /api/config/formula</a></li>
<li><a class="reference internal" href="#get-api-clearwifi">GET: /api/clearwifi</a></li>
<li><a class="reference internal" href="#get-api-factory">GET: /api/factory</a></li>
<li><a class="reference internal" href="#get-api-test-push">GET: /api/test/push</a></li>
<li><a class="reference internal" href="#post-api-config-device">POST: /api/config/device</a></li>
<li><a class="reference internal" href="#post-api-config-push">POST: /api/config/push</a></li>
<li><a class="reference internal" href="#post-api-config-gravity">POST: /api/config/gravity</a></li>

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Contributing" href="contributing.html" /><link rel="prev" title="Data Formats" href="data.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Compiling the software - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Compiling the software - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Create formula" href="formula.html" /><link rel="prev" title="Releases" href="releases.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Troubleshooting" href="troubleshooting.html" /><link rel="prev" title="Installation" href="installation.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Configuration - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Configuration - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -217,45 +220,17 @@
<p>Configuration is accessed by entering the URL for the device, this will be the mDNS name <em>device.local</em> or the IP adress. The following chapter assumes the device name is <em>gravmon</em>.</p>
<p>The main page shows the device readings; gravity, angle, temperature and battery charge. If the checkbox is active then the device will never go into sleep mode. This is useful if
you are collecting angle/tilt for calibration. If this is unchecked the device will change mode as explained before.</p>
<p>You can also view the average time a gravity measurement takes. Under optimal setting this should be around 1.5 - 2.0 seconds. If this is higher than 2 seconds this is most likley connected to slow wifi
connection. It will show 0 if data has not been collected yet.</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>If you are connected to the device via a serial console (speed: 115200) you can see the connection sequence and get the Unique ID and IP adress from there.</p>
</div>
</div>
<div class="section" id="device">
<h2>Device<a class="headerlink" href="#device" title="Permalink to this headline">#</a></h2>
<p>URL: (<a class="reference external" href="http://gravmon.local/device">http://gravmon.local/device</a>)</p>
<a class="reference internal image-reference" href="_images/device.png"><img alt="Device Settings" src="_images/device.png" style="width: 800px;"/></a>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>The button <cite>view error log</cite> will show the last 15 errors on the device. This can be useful for checking errors without
the need to connect to the serial port or to check what errors has occured while in <cite>gravity mode</cite>.</p>
</div>
<ul>
<li><p><strong>Version:</strong></p>
<blockquote>
<div><p>Installed version of the code and html files.</p>
</div></blockquote>
</li>
<li><p><strong>Device name:</strong></p>
<blockquote>
<div><p>This is unique name of the device which is set in the configuration, also known as MDNS name.</p>
</div></blockquote>
</li>
<li><p><strong>Device ID:</strong></p>
<blockquote>
<div><p>This is unique identifier for the device (ESP8266 id), this is required when using the API as an API Key to safeguard
against faulty requests. This is the ESP8266 chip ID, so it should be unique.</p>
</div></blockquote>
</li>
<li><p><strong>Average runtime:</strong></p>
<blockquote>
<div><p>This shows the average time a gravity measurement takes. Under optimal setting this should be
around 1.5 - 2.0 seconds. If this is higher than 2 seconds this is most likley connected to slow wifi
connection. It will show 0 if data has not been collected yet.</p>
</div></blockquote>
</li>
</ul>
</div>
<div class="section" id="id1">
<h2>Configuration<a class="headerlink" href="#id1" title="Permalink to this headline">#</a></h2>
@ -263,37 +238,30 @@ connection. It will show 0 if data has not been collected yet.</p>
<div class="section" id="device-setting">
<h3>Device Setting<a class="headerlink" href="#device-setting" title="Permalink to this headline">#</a></h3>
<a class="reference internal image-reference" href="_images/config1.png"><img alt="Device Settings" src="_images/config1.png" style="width: 800px;"/></a>
<ul>
<li><p><strong>Device name:</strong></p>
<blockquote>
<div><p>This is unique name for the device. It will be used in pushing data as well as mDNS name on the network (&lt;name&gt;.local)</p>
</div></blockquote>
</li>
<li><p><strong>Temperature format:</strong></p>
<blockquote>
<div><p>Choose between Celsius and Farenheight when displaying temperature.</p>
</div></blockquote>
</li>
<li><p><strong>Interval:</strong></p>
<blockquote>
<div><p>This defines how long the device should be sleeping between the readings when in <cite>gravity monitoring</cite> mode. You will also see
<ul class="simple">
<li><p><strong>Device name:</strong></p></li>
</ul>
<p>This is unique name for the device. It will be used in pushing data as well as mDNS name on the network (&lt;name&gt;.local)</p>
<ul class="simple">
<li><p><strong>Temperature format:</strong></p></li>
</ul>
<p>Choose between Celsius and Farenheight when displaying temperature.</p>
<ul class="simple">
<li><p><strong>Interval:</strong></p></li>
</ul>
<p>This defines how long the device should be sleeping between the readings when in <cite>gravity monitoring</cite> mode. You will also see
the values in minutes/seconds to easier set the interval. 900s is a recommended interval. The sleep interval can
be set between 10 - 3600 seconds (60 minutes).</p>
</div></blockquote>
</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>A low value such as 30s will give a lifespan of 1-2 weeks and 300s (5 min) would last for 3+ weeks. This assumes that
there is good wifi connection that takes less than 1s to reconnect. Poor wifi connection is the main reason for battery drain.</p>
there is good wifi connection that takes less than 1s to reconnect. Poor wifi connection is the main reason for battery drain.
The device will show the estimated lifespan based on the average connection time, if no data exist it will not be shown.</p>
</div>
<ul>
<li><p><strong>Calibration values:</strong></p>
<blockquote>
<div><p>These are calibration data for the gyro. Place the device flat on a table and press the button to save the default orientation values. Without this calibration we cannot calculate the correct angle/tilt.</p>
</div></blockquote>
</li>
<ul class="simple">
<li><p><strong>Calibration values:</strong></p></li>
</ul>
<p>These are calibration data for the gyro. Place the device flat on a table and press the button to save the default orientation values. Without this calibration we cannot calculate the correct angle/tilt.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The device will <strong>not</strong> go into <cite>gravity monitoring</cite> mode unless calibrated</p>
@ -307,75 +275,39 @@ there is good wifi connection that takes less than 1s to reconnect. Poor wifi co
<p>When enabling SSL this will not validate the root CA of the remote service, this is a design decision based on two aspects. Enabling CA validation will take 3-4s extra on each connection which means way less
battery life, so the decision is to prioritize battery life over security. The data transmitted is not really that sensitive anyway so I belive this is a good balance.</p>
</div>
<ul>
<li><p><strong>HTTP URL 1:</strong></p>
<blockquote>
<div><p>Endpoint to send data via http. Default format used Format used <a class="reference internal" href="data.html#data-formats-ispindle"><span class="std std-ref">iSpindle format</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<ul class="simple">
<li><p><strong>HTTP 1 (POST):</strong></p></li>
</ul>
<p>Endpoint to send data via http. Default format used Format used <a class="reference internal" href="data.html#data-formats-ispindle"><span class="std std-ref">HTTP Post, iSpindle format</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<p>If you add the prefix <cite>https://</cite> then the device will use SSL when sending data.</p>
</div></blockquote>
</li>
<li><p><strong>HTTP URL 2:</strong></p>
<blockquote>
<div><p>Endpoint to send data via http. Default format used <a class="reference internal" href="data.html#data-formats-ispindle"><span class="std std-ref">iSpindle format</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<ul class="simple">
<li><p><strong>HTTP 2 (POST):</strong></p></li>
</ul>
<p>Endpoint to send data via http. Default format used <a class="reference internal" href="data.html#data-formats-ispindle"><span class="std std-ref">HTTP Post, iSpindle format</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<p>If you add the prefix <cite>https://</cite> then the device will use SSL when sending data.</p>
</div></blockquote>
</li>
<li><p><strong>Token:</strong></p>
<blockquote>
<div><p>The token is included in the iSpindle JSON format and will be used for both HTTP targets. If you
<ul class="simple">
<li><p><strong>Token:</strong></p></li>
</ul>
<p>The token is included in the iSpindle JSON format and will be used for both HTTP targets. If you
need to have 2 different tokens please use the <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a> to customize the data format.</p>
</div></blockquote>
</li>
<li><p><strong>Brewfather URL:</strong></p>
<blockquote>
<div><p>Endpoint to send data via http to brewfather. Format used <a class="reference internal" href="data.html#data-formats-brewfather"><span class="std std-ref">Brewfather format</span></a></p>
<ul class="simple">
<li><p><strong>HTTP 3 (GET):</strong></p></li>
</ul>
<p>Endpoint to send data via http. This is using an HTTP GET request instead of a post. This means that the values are appended to the URL like; <a class="reference external" href="http://endpoint?param=value&amp;param2=value2">http://endpoint?param=value&amp;param2=value2</a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<p>If you add the prefix <cite>https://</cite> then the device will use SSL when sending data.</p>
<ul class="simple">
<li><p><strong>Token 2:</strong></p></li>
</ul>
<p>The token is included in the default format for the HTTP GET url but can be used for any of the formats. For HTTP GET use can use this for an authorization token with for instance ubidots or blynk http api.</p>
<ul class="simple">
<li><p><strong>Brewfather URL:</strong></p></li>
</ul>
<p>Endpoint to send data via http to brewfather. Format used <a class="reference internal" href="data.html#data-formats-brewfather"><span class="std std-ref">Brewfather format</span></a></p>
<p>SSL is not supported for this target.</p>
</div></blockquote>
</li>
<li><p><strong>Influx DB v2 URL:</strong></p>
<blockquote>
<div><p>Endpoint to send data via http to InfluxDB. Format used <a class="reference internal" href="data.html#data-formats-influxdb2"><span class="std std-ref">Influx DB v2</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<p>SSL is not supported for this target. Raise a issue on github if this is wanted.</p>
</div></blockquote>
</li>
<li><p><strong>Influx DB v2 Organisation:</strong></p>
<blockquote>
<div><p>Name of organisation in Influx.</p>
</div></blockquote>
</li>
<li><p><strong>Influx DB v2 Bucket:</strong></p>
<blockquote>
<div><p>Identifier for bucket.</p>
</div></blockquote>
</li>
<li><p><strong>Influx DB v2 Token:</strong></p>
<blockquote>
<div><p>Token with write access to bucket.</p>
</div></blockquote>
</li>
<li><p><strong>MQTT server:</strong></p>
<blockquote>
<div><p>IP or name of server to send data to. Default format used <a class="reference internal" href="data.html#data-formats-mqtt"><span class="std std-ref">MQTT</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
</div></blockquote>
</li>
<li><p><strong>MQTT Port:</strong></p>
<blockquote>
<div><p>Which port should be used for communication, default is 1883 (standard port). For SSL use 8883 (any port over 8000 is treated as SSL).</p>
</div></blockquote>
</li>
<li><p><strong>MQTT user:</strong></p>
<blockquote>
<div><p>Username or blank if anonymous is accepted</p>
</div></blockquote>
</li>
<li><p><strong>MQTT password:</strong></p>
<blockquote>
<div><p>Password or blank if anonymous is accepted</p>
</div></blockquote>
</li>
<li><p><strong>HTTP Headers</strong></p>
<blockquote>
<div><a class="reference internal image-reference" href="_images/config-popup1.png"><img alt="HTTP Headers" src="_images/config-popup1.png" style="width: 300px;"/></a>
<ul class="simple">
<li><p><strong>HTTP Headers</strong></p></li>
</ul>
<a class="reference internal image-reference" href="_images/config-popup1.png"><img alt="HTTP Headers" src="_images/config-popup1.png" style="width: 300px;"/></a>
<p>You can define 2 http headers per push target. This is available via a pop-up window but dont forget
to press the save buttons on the post section to save the values. One common header is content type which is the
default setting for http targets.</p>
@ -386,39 +318,68 @@ will not show until the device tries to push data.</p>
</pre></div>
</div>
<p>Mozilla has a good guide on what headers are valid; <a class="reference external" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers">HTTP Headers</a></p>
</div></blockquote>
</li>
</div>
<div class="section" id="push-settings-2">
<h3>Push Settings (2)<a class="headerlink" href="#push-settings-2" title="Permalink to this headline">#</a></h3>
<a class="reference internal image-reference" href="_images/config2b.png"><img alt="Push Settings" src="_images/config2b.png" style="width: 800px;"/></a>
<ul class="simple">
<li><p><strong>Influx DB v2 URL:</strong></p></li>
</ul>
<p>Endpoint to send data via http to InfluxDB. Format used <a class="reference internal" href="data.html#data-formats-influxdb2"><span class="std std-ref">HTTP Get</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<p>SSL is not supported for this target. Raise a issue on github if this is wanted.</p>
<ul class="simple">
<li><p><strong>Influx DB v2 Organisation:</strong></p></li>
</ul>
<p>Name of organisation in Influx.</p>
<ul class="simple">
<li><p><strong>Influx DB v2 Bucket:</strong></p></li>
</ul>
<p>Identifier for bucket.</p>
<ul class="simple">
<li><p><strong>Influx DB v2 Token:</strong></p></li>
</ul>
<p>Token with write access to bucket.</p>
<ul class="simple">
<li><p><strong>MQTT server:</strong></p></li>
</ul>
<p>IP or name of server to send data to. Default format used <a class="reference internal" href="data.html#data-formats-mqtt"><span class="std std-ref">MQTT</span></a>. You can customize the format using <a class="reference internal" href="advanced.html#format-editor"><span class="std std-ref">Format editor</span></a>.</p>
<ul class="simple">
<li><p><strong>MQTT Port:</strong></p></li>
</ul>
<p>Which port should be used for communication, default is 1883 (standard port). For SSL use 8883 (any port over 8000 is treated as SSL).</p>
<ul class="simple">
<li><p><strong>MQTT user:</strong></p></li>
</ul>
<p>Username or blank if anonymous is accepted</p>
<ul class="simple">
<li><p><strong>MQTT password:</strong></p></li>
</ul>
<p>Password or blank if anonymous is accepted</p>
</div>
<div class="section" id="gravity-settings">
<h3>Gravity Settings<a class="headerlink" href="#gravity-settings" title="Permalink to this headline">#</a></h3>
<a class="reference internal image-reference" href="_images/config3.png"><img alt="Gravity Settings" src="_images/config3.png" style="width: 800px;"/></a>
<ul>
<li><p><strong>Gravity format:</strong></p>
<blockquote>
<div><p>Gravity format can be eihter <cite>SG</cite> or <cite>Plato</cite>. The device will use SG Internally and convert to Plato when displaying or sending data.</p>
</div></blockquote>
</li>
<li><p><strong>Gravity formula:</strong></p>
<blockquote>
<div><p>Gravity formula is compatible with standard iSpindle formulas so any existing calculation option can be used. You can also use
<ul class="simple">
<li><p><strong>Gravity format:</strong></p></li>
</ul>
<p>Gravity format can be eihter <cite>SG</cite> or <cite>Plato</cite>. The device will use SG Internally and convert to Plato when displaying or sending data.</p>
<ul class="simple">
<li><p><strong>Gravity formula:</strong></p></li>
</ul>
<p>Gravity formula is compatible with standard iSpindle formulas so any existing calculation option can be used. You can also use
the feature to create the formula by supplying the raw data. See <a class="reference internal" href="formula.html#create-formula"><span class="std std-ref">Create formula</span></a></p>
<p>The gravity formula accepts to paramaters, <strong>tilt</strong> for the angle or <strong>temp</strong> for temperature (temperature inserted into the formula
will be in celsius). I would recommend to use the formula calculation feature instead since this is much easier.</p>
</div></blockquote>
</li>
<li><p><strong>Temperature correct gravity:</strong></p>
<blockquote>
<div><p>Will apply a temperature calibration formula to the gravity as a second step after gravity has been calculated. Its also possible to
build this into the gravity formula.</p>
</div></blockquote>
</li>
<ul class="simple">
<li><p><strong>Temperature correct gravity:</strong></p></li>
</ul>
<p>Will apply a temperature calibration formula to the gravity as a second step after gravity has been calculated. Its also possible to
build this into the gravity formula.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>This formula assumes that the calibration has been done at 20°C / 68°F.</p>
</div>
<p>Formula used in temperature correction.</p>
</div>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">gravity</span><span class="o">*</span><span class="p">((</span><span class="mf">1.00130346</span><span class="o">-</span><span class="mf">0.000134722124</span><span class="o">*</span><span class="n">temp</span><span class="o">+</span><span class="mf">0.00000204052596</span><span class="o">*</span><span class="n">temp</span><span class="o">^</span><span class="mi">2</span><span class="o">-</span><span class="mf">0.00000000232820948</span><span class="o">*</span><span class="n">temp</span><span class="o">^</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span>
<span class="p">(</span><span class="mf">1.00130346</span><span class="o">-</span><span class="mf">0.000134722124</span><span class="o">*</span><span class="n">cal</span><span class="o">+</span><span class="mf">0.00000204052596</span><span class="o">*</span><span class="n">cal</span><span class="o">^</span><span class="mi">2</span><span class="o">-</span><span class="mf">0.00000000232820948</span><span class="o">*</span><span class="n">cal</span><span class="o">^</span><span class="mi">3</span><span class="p">))</span>
</pre></div>
@ -427,40 +388,43 @@ build this into the gravity formula.</p>
<div class="section" id="hardware-settings">
<h3>Hardware Settings<a class="headerlink" href="#hardware-settings" title="Permalink to this headline">#</a></h3>
<a class="reference internal image-reference" href="_images/config4.png"><img alt="Hardware Settings" src="_images/config4.png" style="width: 800px;"/></a>
<ul>
<li><p><strong>Voltage factor:</strong></p>
<blockquote>
<div><p>Factor used to calcualate the battery voltage. If you get a too low/high voltage you can adjust this value.</p>
</div></blockquote>
</li>
<li><p><strong>Temperature correction:</strong></p>
<blockquote>
<div><p>This value will be added to the temperature reading (negative value will reduce temperature reading). This is applied
<ul class="simple">
<li><p><strong>Voltage factor:</strong></p></li>
</ul>
<p>Factor used to calcualate the battery voltage. If you get a too low/high voltage you can adjust this value.</p>
<ul class="simple">
<li><p><strong>Temperature correction:</strong></p></li>
</ul>
<p>This value will be added to the temperature reading (negative value will reduce temperature reading). This is applied
when the device starts. So changing this will not take affect until the device is restarted.</p>
</div></blockquote>
</li>
<li><p><strong>Gyro Temperature:</strong></p>
<blockquote>
<div><p>Enable this feature will use the temp sensor i the gyro instead of the DS18B20, the benefit is shorter run time and
<ul class="simple">
<li><p><strong>Gyro Temperature:</strong></p></li>
</ul>
<p>Enable this feature will use the temp sensor i the gyro instead of the DS18B20, the benefit is shorter run time and
longer battery life (this is an experimental feature). The value used is the first temperature reading from when the
device is activated, since the gyro should be cool this is reflecting the surronding temperature. After it has
been running the value would be totally off.</p>
</div></blockquote>
</li>
<li><p><strong>OTA URL:</strong></p>
<blockquote>
<div><p>Should point to a URL where the firmware.bin file + version.json file are located.</p>
<ul class="simple">
<li><p><strong>Bluetooth: (Only ESP32)</strong></p></li>
</ul>
<p>If the build is using an ESP32 then you can send data over BLE, simulating a Tilt device. Choose the color that you want the device to simulate.</p>
<ul class="simple">
<li><p><strong>OTA URL:</strong></p></li>
</ul>
<p>Should point to a URL where the firmware.bin file + version.json file are located. For an ESP32 target the firmware should be named firmware32.bin.</p>
<p>For the OTA to work, place the following files (version.json + firmware.bin) at the location that you pointed out in OTA URL. If the version number in the json file is newer than in the
code the update will be done during startup.</p>
<p>If you have the previx <cite>https://</cite> then the device will use secure transfer without CA validation.</p>
<p>Example; OTA URL (dont forget trailing dash), the name of the file should be firmware.bin</p>
</div></blockquote>
</li>
</ul>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168.1.1</span><span class="o">/</span><span class="n">firmware</span><span class="o">/</span><span class="n">gravmon</span><span class="o">/</span>
<span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="mf">192.168.1.1</span><span class="o">/</span><span class="n">firmware</span><span class="o">/</span><span class="n">gravmon</span><span class="o">/</span>
</pre></div>
</div>
<ul class="simple">
<li><p><strong>Upload Firmware</strong></p></li>
</ul>
<p>This option gives you the possibility to install an new version of the firmware (or any firmware that uses the standard flash layout).</p>
<a class="reference internal image-reference" href="_images/firmware.png"><img alt="Update firmware" src="_images/firmware.png" style="width: 600px;"/></a>
</div>
</div>
</div>
@ -470,23 +434,23 @@ code the update will be done during startup.</p>
<footer>
<div class="related-pages">
<a class="next-page" href="formula.html">
<a class="next-page" href="troubleshooting.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Create formula</div>
<div class="title">Troubleshooting</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="releases.html">
<a class="prev-page" href="installation.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Releases</div>
<div class="title">Installation</div>
</div>
</a>
@ -524,10 +488,10 @@ code the update will be done during startup.</p>
<ul>
<li><a class="reference internal" href="#">Configuration</a><ul>
<li><a class="reference internal" href="#status">Status</a></li>
<li><a class="reference internal" href="#device">Device</a></li>
<li><a class="reference internal" href="#id1">Configuration</a><ul>
<li><a class="reference internal" href="#device-setting">Device Setting</a></li>
<li><a class="reference internal" href="#push-settings">Push Settings</a></li>
<li><a class="reference internal" href="#push-settings-2">Push Settings (2)</a></li>
<li><a class="reference internal" href="#gravity-settings">Gravity Settings</a></li>
<li><a class="reference internal" href="#hardware-settings">Hardware Settings</a></li>
</ul>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Troubleshooting" href="troubleshooting.html" /><link rel="prev" title="Compiling the software" href="compiling.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Hardware" href="hardware.html" /><link rel="prev" title="Compiling the software" href="compiling.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Contributing - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Contributing - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -210,12 +213,12 @@
<footer>
<div class="related-pages">
<a class="next-page" href="troubleshooting.html">
<a class="next-page" href="hardware.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Troubleshooting</div>
<div class="title">Hardware</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Compiling the software" href="compiling.html" /><link rel="prev" title="REST API" href="api.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Data Formats - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Data Formats - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -202,8 +205,8 @@
<article role="main">
<div class="section" id="data-formats">
<span id="id1"></span><h1>Data Formats<a class="headerlink" href="#data-formats" title="Permalink to this headline">#</a></h1>
<div class="section" id="ispindle-format">
<span id="data-formats-ispindle"></span><h2>iSpindle format<a class="headerlink" href="#ispindle-format" title="Permalink to this headline">#</a></h2>
<div class="section" id="http-post-ispindle-format">
<span id="data-formats-ispindle"></span><h2>HTTP Post, iSpindle format<a class="headerlink" href="#http-post-ispindle-format" title="Permalink to this headline">#</a></h2>
<p>This is the format used for standard http posts.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">corr-gravity</span></code> is an extended parameter containing a temperature corrected gravity reading.</p></li>
@ -216,7 +219,7 @@
<span class="w"> </span><span class="nt">"token"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="s2">"gravmon"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"interval"</span><span class="p">:</span><span class="w"> </span><span class="mi">900</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temperature"</span><span class="p">:</span><span class="w"> </span><span class="mf">20.5</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-units"</span><span class="p">:</span><span class="w"> </span><span class="s2">"C"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp_units"</span><span class="p">:</span><span class="w"> </span><span class="s2">"C"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.0050</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"angle"</span><span class="p">:</span><span class="w"> </span><span class="mf">45.34</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"battery"</span><span class="p">:</span><span class="w"> </span><span class="mf">3.67</span><span class="p">,</span><span class="w"></span>
@ -235,7 +238,7 @@
"token" : "gravmon",
"interval": ${sleep-interval},
"temperature": ${temp},
"temp-units": "${temp-unit}",
"temp_units": "${temp-unit}",
"gravity": ${gravity},
"angle": ${angle},
"battery": ${battery},
@ -261,14 +264,31 @@
</pre></div>
</div>
</div>
<div class="section" id="http-get">
<span id="data-formats-influxdb2"></span><h2>HTTP Get<a class="headerlink" href="#http-get" title="Permalink to this headline">#</a></h2>
<p>This is the format added to the URL when using HTTP get</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>?name=&lt;mdns&gt;,id=&lt;id&gt;,token=&lt;token&gt;&amp;interval=300&amp;temperature=20.1&amp;temp-units=&lt;C|F&gt;&amp;
gravity=$1.004&amp;angle=45.5&amp;battery=3.96&amp;rssi=-18&amp;corr-gravity=1.004&amp;gravity-unit=&lt;G|P&gt;&amp;run-time=2.1
</pre></div>
</div>
<p>This is the format template used to create the data above.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>?name=${mdns}&amp;id=${id}&amp;token=${token2}&amp;interval=${sleep-interval}&amp;temperature=${temp}&amp;
temp-units=${temp-unit}&amp;gravity=${gravity}&amp;angle=${angle}&amp;battery=${battery}&amp;rssi=${rssi}&amp;
corr-gravity=${corr-gravity}&amp;gravity-unit=${gravity-unit}&amp;run-time=${run-time}
</pre></div>
</div>
</div>
<div class="section" id="influx-db-v2">
<span id="data-formats-influxdb2"></span><h2>Influx DB v2<a class="headerlink" href="#influx-db-v2" title="Permalink to this headline">#</a></h2>
<h2>Influx DB v2<a class="headerlink" href="#influx-db-v2" title="Permalink to this headline">#</a></h2>
<p>This is the format for InfluxDB v2</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">measurement</span><span class="p">,</span><span class="n">host</span><span class="o">=&lt;</span><span class="n">mdns</span><span class="o">&gt;</span><span class="p">,</span><span class="n">device</span><span class="o">=&lt;</span><span class="nb">id</span><span class="o">&gt;</span><span class="p">,</span><span class="n">temp</span><span class="o">-</span><span class="nb">format</span><span class="o">=&lt;</span><span class="n">C</span><span class="o">|</span><span class="n">F</span><span class="o">&gt;</span><span class="p">,</span><span class="n">gravity</span><span class="o">-</span><span class="nb">format</span><span class="o">=</span><span class="n">SG</span><span class="p">,</span><span class="n">gravity</span><span class="o">=</span><span class="mf">1.0004</span><span class="p">,</span><span class="n">corr</span><span class="o">-</span><span class="n">gravity</span><span class="o">=</span><span class="mf">1.0004</span><span class="p">,</span><span class="n">angle</span><span class="o">=</span><span class="mf">45.45</span><span class="p">,</span><span class="n">temp</span><span class="o">=</span><span class="mf">20.1</span><span class="p">,</span><span class="n">battery</span><span class="o">=</span><span class="mf">3.96</span><span class="p">,</span><span class="n">rssi</span><span class="o">=-</span><span class="mi">18</span>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">measurement</span><span class="p">,</span><span class="n">host</span><span class="o">=&lt;</span><span class="n">mdns</span><span class="o">&gt;</span><span class="p">,</span><span class="n">device</span><span class="o">=&lt;</span><span class="nb">id</span><span class="o">&gt;</span><span class="p">,</span><span class="n">temp</span><span class="o">-</span><span class="nb">format</span><span class="o">=&lt;</span><span class="n">C</span><span class="o">|</span><span class="n">F</span><span class="o">&gt;</span><span class="p">,</span><span class="n">gravity</span><span class="o">-</span><span class="nb">format</span><span class="o">=</span><span class="n">SG</span><span class="p">,</span>
<span class="n">gravity</span><span class="o">=</span><span class="mf">1.0004</span><span class="p">,</span><span class="n">corr</span><span class="o">-</span><span class="n">gravity</span><span class="o">=</span><span class="mf">1.0004</span><span class="p">,</span><span class="n">angle</span><span class="o">=</span><span class="mf">45.45</span><span class="p">,</span><span class="n">temp</span><span class="o">=</span><span class="mf">20.1</span><span class="p">,</span><span class="n">battery</span><span class="o">=</span><span class="mf">3.96</span><span class="p">,</span><span class="n">rssi</span><span class="o">=-</span><span class="mi">18</span>
</pre></div>
</div>
<p>This is the format template used to create the json above.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>measurement,host=${mdns},device=${id},temp-format=${temp-unit},gravity-format=${gravity-unit} gravity=${gravity},corr-gravity=${corr-gravity},angle=${angle},temp=${temp},battery=${battery},rssi=${rssi}
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>measurement,host=${mdns},device=${id},temp-format=${temp-unit},
gravity-format=${gravity-unit} gravity=${gravity},corr-gravity=${corr-gravity},
angle=${angle},temp=${temp},battery=${battery},rssi=${rssi}
</pre></div>
</div>
</div>
@ -299,7 +319,10 @@ ispindel/${mdns}/RSSI:${rssi}|
</pre></div>
</div>
<p>This is a format template that is compatible with v0.6. Just replace the <cite>topic</cite> with the topic you want to post data to.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>topic:{"name":"gravmon","ID":"${id}","token":"gravmon","interval": ${sleep-interval},"temperature": ${temp},"temp-units": "${temp-unit}","gravity":${gravity},"angle": ${angle},"battery":${battery},"rssi": ${rssi},"corr-gravity":${corr-gravity},"gravity-unit": "${gravity-unit}","run-time": ${run-time}}|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>topic:{"name":"gravmon", "ID":"${id}", "token":"gravmon", "interval": ${sleep-interval},
"temperature": ${temp}, "temp_units": "${temp-unit}", "gravity":${gravity},
"angle": ${angle}, "battery":${battery}, "rssi": ${rssi}, "corr-gravity":${corr-gravity},
"gravity-unit": "${gravity-unit}", "run-time": ${run-time}}|
</pre></div>
</div>
</div>
@ -313,7 +336,7 @@ they can be uploaded manually afterwards.</p>
<span class="w"> </span><span class="nt">"version"</span><span class="p">:</span><span class="s2">"0.7.0"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"html"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="w"></span>
<span class="w"> </span><span class="s2">"index.min.htm"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s2">"device.min.htm"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s2">"test.min.htm"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s2">"config.min.htm"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s2">"format.min.htm"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s2">"calibration.min.htm"</span><span class="p">,</span><span class="w"></span>
@ -383,8 +406,9 @@ they can be uploaded manually afterwards.</p>
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Data Formats</a><ul>
<li><a class="reference internal" href="#ispindle-format">iSpindle format</a></li>
<li><a class="reference internal" href="#http-post-ispindle-format">HTTP Post, iSpindle format</a></li>
<li><a class="reference internal" href="#brewfather-format">Brewfather format</a></li>
<li><a class="reference internal" href="#http-get">HTTP Get</a></li>
<li><a class="reference internal" href="#influx-db-v2">Influx DB v2</a></li>
<li><a class="reference internal" href="#mqtt">MQTT</a></li>
<li><a class="reference internal" href="#version-json">version.json</a></li>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Service Integration" href="services.html" /><link rel="prev" title="Configuration" href="configuration.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Service Integration" href="services.html" /><link rel="prev" title="Q &amp; A" href="q_and_a.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Create formula - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Create formula - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -222,14 +225,14 @@
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="configuration.html">
<a class="prev-page" href="q_and_a.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Configuration</div>
<div class="title">Q &amp; A</div>
</div>
</a>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Getting started" href="intro.html" /><link rel="prev" title="Licence" href="license.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Installation" href="installation.html" /><link rel="prev" title="Releases" href="releases.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Functionallity - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Functionallity - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -352,23 +355,23 @@ temperature would reduce the total runtime with 25%. Sending data over http take
<footer>
<div class="related-pages">
<a class="next-page" href="intro.html">
<a class="next-page" href="installation.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Getting started</div>
<div class="title">Installation</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="license.html">
<a class="prev-page" href="releases.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Licence</div>
<div class="title">Releases</div>
</div>
</a>

View File

@ -4,10 +4,10 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#" /><link rel="search" title="Search" href="search.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/><title>Index - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/><title>Index - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -34,10 +34,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -119,7 +121,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -142,7 +144,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -152,12 +154,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -165,8 +168,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>

277
docs/hardware.html Normal file
View File

@ -0,0 +1,277 @@
<!doctype html>
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Licence" href="license.html" /><link rel="prev" title="Contributing" href="contributing.html" />
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Hardware - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
@media not print {
body[data-theme="dark"] {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
body:not([data-theme="light"]) {
--color-code-background: #202020;
--color-code-foreground: #d0d0d0;
}
}
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024">
<path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line>
<line x1="3" y1="6" x2="21" y2="6"></line>
<line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-sun" viewBox="0 0 24 24">
<title>Light mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="feather-sun">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</symbol>
<symbol id="svg-moon" viewBox="0 0 24 24">
<title>Dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon">
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" />
</svg>
</symbol>
<symbol id="svg-sun-half" viewBox="0 0 24 24">
<title>Auto light/dark mode</title>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-shadow">
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
<circle cx="12" cy="12" r="9" />
<path d="M13 12h5" />
<path d="M13 15h4" />
<path d="M13 18h1" />
<path d="M13 9h4" />
<path d="M13 6h1" />
</svg>
</symbol>
</svg>
<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
<label class="overlay sidebar-overlay" for="__navigation">
<div class="visually-hidden">Hide navigation sidebar</div>
</label>
<label class="overlay toc-overlay" for="__toc">
<div class="visually-hidden">Hide table of contents sidebar</div>
</label>
<div class="page">
<header class="mobile-header">
<div class="header-left">
<label class="nav-overlay-icon" for="__navigation">
<div class="visually-hidden">Toggle site navigation sidebar</div>
<i class="icon"><svg><use href="#svg-menu"></use></svg></i>
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-header-icon no-toc" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
</header>
<aside class="sidebar-drawer">
<div class="sidebar-container">
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
<input type="hidden" name="check_keywords" value="yes">
<input type="hidden" name="area" value="default">
</form>
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="api.html">REST API</a></li>
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<a href="#" class="back-to-top muted-link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path>
</svg>
<span>Back to top</span>
</a>
<div class="content-icon-container"><div class="theme-toggle-container theme-toggle-content">
<button class="theme-toggle">
<div class="visually-hidden">Toggle Light / Dark / Auto color theme</div>
<svg class="theme-icon-when-auto"><use href="#svg-sun-half"></use></svg>
<svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg>
<svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg>
</button>
</div>
<label class="toc-overlay-icon toc-content-icon no-toc" for="__toc">
<div class="visually-hidden">Toggle table of contents sidebar</div>
<i class="icon"><svg><use href="#svg-toc"></use></svg></i>
</label>
</div>
<article role="main">
<div class="section" id="hardware">
<span id="id1"></span><h1>Hardware<a class="headerlink" href="#hardware" title="Permalink to this headline">#</a></h1>
<p>There are lots of resouces out there on how to build the hardware for an iSpindle so I will not go into details on that part. Here are two of my builds using the iSpindle PCB v4.</p>
<a class="reference internal image-reference" href="_images/ispindel.jpg"><img alt="Builds of iSpindel" src="_images/ispindel.jpg" style="width: 500px;"/></a>
<p>Its possible to use this PCB and mount an ESP32 on top of that. It must be an pin compatible ESP32 and the one I used was called <em>ESP32 d1 mini</em>. Since this is the same width as the PCB you need to
mount it really close to the PCB in order for it to fit in the PET tube/container. I also had to smooth the edge of the ESP32 in order for it to fit.</p>
<p>I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.</p>
<p>You also need to desolder (remove) the RED ON LED from the ESP32 or the battery power will be reduced a lot.</p>
<p>Final thing is to add a resistor between A0 (Analog PIN) and ground of 470k. The reason is that the esp8266 has a build in resistor which
the esp32 does not have. So in order to get a valid voltage (less than 3.2V) on the A0 pin this is needed. Once the modification is done you might
need to adjust the voltage factor so the battery reading is correct.</p>
<a class="reference internal image-reference" href="_images/esp32.jpg"><img alt="Mounting esp32" src="_images/esp32.jpg" style="width: 500px;"/></a>
</div>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="license.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Licence</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="contributing.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Contributing</div>
</div>
</a>
</div>
<div class="bottom-of-page">
<div class="left-details">
<div class="copyright">
Copyright &#169; 2021-2022, Magnus Persson
</div>
Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
<a href="https://github.com/pradyunsg/furo">Furo</a>
</div>
<div class="right-details">
<div class="icons">
</div>
</div>
</div>
</footer>
</div>
<aside class="toc-drawer no-toc">
</aside>
</div>
</div><script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/scripts/furo.js"></script>
</body>
</html>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Licence" href="license.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Getting started" href="intro.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="#"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="#"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="#">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -204,7 +207,7 @@
<h1>Welcome to GravityMons documentation!<a class="headerlink" href="#welcome-to-gravitymon-s-documentation" title="Permalink to this headline">#</a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This documentation reflects <strong>v0.8</strong>. Last updated 2022-03-05</p>
<p>This documentation reflects <strong>v0.9</strong>. Last updated 2022-03-14</p>
</div>
<p>GravityMon is used to measure gravity and temperature during fermentation of beer and report the progress. The graph below is
an example on how the fermentation process can be tracked. This is from my last brew that was over on a few days. The graph is rendered using
@ -213,6 +216,7 @@ Fermentrack.</p>
<p>GravityMon is a replacement firmware for the iSpindle and uses the same hardware configuration and is 100% compatible. It
implements a lot of the features that has been requested in the orginal iSpindle project but has been rejected for
various reasons. Here is a list of <a class="reference internal" href="#main-features"><span class="std std-ref">Main features:</span></a>.</p>
<p>From v0.9 the firmware now supports a iSpindle build based on an ESP32 d1 mini (pin compatible with esp8266). See <a class="reference internal" href="hardware.html#hardware"><span class="std std-ref">Hardware</span></a>.</p>
<p>I started GravityMon because I like to create software and wanted to do some low level programming. I had done a few
projects based on esp8266 and also started to brew beer so this combination was quite natural.</p>
<p>The hardware design comes from the fantastic iSpindle project so that is not covered in this documentation. For more
@ -293,17 +297,19 @@ the following libraries and without these this would have been much more difficu
<li><p><a class="reference external" href="https://getbootstrap.com/">https://getbootstrap.com/</a></p>
<p>CSS templates for the web page.</p>
</li>
<li><p><a class="reference external" href="https://github.com/lorol/LITTLEFS">https://github.com/lorol/LITTLEFS</a></p>
<p>LittleFS library for ESP32 framework 1.x</p>
</li>
<li><p><a class="reference external" href="https://github.com/h2zero/NimBLE-Arduino">https://github.com/h2zero/NimBLE-Arduino</a></p>
<p>Bluetooth library for ESP32 framework 1.x</p>
</li>
<li><p><a class="reference external" href="https://github.com/spouliot/tilt-sim">https://github.com/spouliot/tilt-sim</a></p>
<p>Excellent project for simulating a tilt device.</p>
</li>
</ul>
<div class="toctree-wrapper compound">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a><ul>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#the-main-features">The main features</a></li>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#battery-life">Battery life</a></li>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#performance">Performance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="intro.html#step-1-flash-the-device">Step 1 - Flash the device</a></li>
<li class="toctree-l2"><a class="reference internal" href="intro.html#step-2-setup-wifi">Step 2 - Setup WIFI</a></li>
@ -311,14 +317,8 @@ the following libraries and without these this would have been much more difficu
<li class="toctree-l2"><a class="reference internal" href="intro.html#step-4-completed">Step 4 - Completed</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installation.html#brewflasher">Brewflasher</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#esptool">Esptool</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#serial-monitoring">Serial Monitoring</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#configuring-wifi">Configuring WIFI</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a><ul>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v0-9-0">v0.9.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v0-8-0">v0.8.0</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v0-7-1">v0.7.1</a></li>
<li class="toctree-l2"><a class="reference internal" href="releases.html#v0-7-0">v0.7.0</a></li>
@ -327,12 +327,35 @@ the following libraries and without these this would have been much more difficu
<li class="toctree-l2"><a class="reference internal" href="releases.html#v0-4-0">v0.4.0</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a><ul>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#the-main-features">The main features</a></li>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#battery-life">Battery life</a></li>
<li class="toctree-l2"><a class="reference internal" href="functionallity.html#performance">Performance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installation.html#brewflasher">Brewflasher</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#esptool">Esptool</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#ispindel">iSpindel</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#updating-firmware">Updating firmware</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#serial-monitoring">Serial Monitoring</a></li>
<li class="toctree-l2"><a class="reference internal" href="installation.html#configuring-wifi">Configuring WIFI</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#status">Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#device">Device</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#id1">Configuration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html#log-errors">Log errors</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a><ul>
<li class="toctree-l2"><a class="reference internal" href="q_and_a.html#my-device-is-no-going-in-to-sleep-after-fully-charged">My device is no going in to sleep after fully charged</a></li>
<li class="toctree-l2"><a class="reference internal" href="q_and_a.html#my-device-reports-a-temperature-of-273c-or-491f">My device reports a temperature of -273C or -491F</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="services.html#brewfather">Brewfather</a></li>
@ -342,6 +365,7 @@ the following libraries and without these this would have been much more difficu
<li class="toctree-l2"><a class="reference internal" href="services.html#brewer-s-friend">Brewers Friend</a></li>
<li class="toctree-l2"><a class="reference internal" href="services.html#brewspy">Brewspy</a></li>
<li class="toctree-l2"><a class="reference internal" href="services.html#thingspeak">Thingspeak</a></li>
<li class="toctree-l2"><a class="reference internal" href="services.html#blynk-io">Blynk.io</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a><ul>
@ -353,7 +377,9 @@ the following libraries and without these this would have been much more difficu
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-device">GET: /api/device</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-status">GET: /api/status</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-config-formula">GET: /api/config/formula</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-clearwifi">GET: /api/clearwifi</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-factory">GET: /api/factory</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#get-api-test-push">GET: /api/test/push</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#post-api-config-device">POST: /api/config/device</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#post-api-config-push">POST: /api/config/push</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#post-api-config-gravity">POST: /api/config/gravity</a></li>
@ -363,8 +389,9 @@ the following libraries and without these this would have been much more difficu
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a><ul>
<li class="toctree-l2"><a class="reference internal" href="data.html#ispindle-format">iSpindle format</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#http-post-ispindle-format">HTTP Post, iSpindle format</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#brewfather-format">Brewfather format</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#http-get">HTTP Get</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#influx-db-v2">Influx DB v2</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#mqtt">MQTT</a></li>
<li class="toctree-l2"><a class="reference internal" href="data.html#version-json">version.json</a></li>
@ -379,15 +406,8 @@ the following libraries and without these this would have been much more difficu
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html#log-errors">Log errors</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a><ul>
<li class="toctree-l2"><a class="reference internal" href="q_and_a.html#my-device-is-no-going-in-to-sleep-after-fully-charged">My device is no going in to sleep after fully charged</a></li>
<li class="toctree-l2"><a class="reference internal" href="q_and_a.html#my-device-reports-a-temperature-of-273c-or-491f">My device reports a temperature of -273C or -491F</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
<div class="section" id="indices-and-tables">
@ -406,12 +426,12 @@ the following libraries and without these this would have been much more difficu
<footer>
<div class="related-pages">
<a class="next-page" href="license.html">
<a class="next-page" href="intro.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Licence</div>
<div class="title">Getting started</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Releases" href="releases.html" /><link rel="prev" title="Getting started" href="intro.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Configuration" href="configuration.html" /><link rel="prev" title="Functionallity" href="functionallity.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Installation - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Installation - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -202,6 +205,12 @@
<article role="main">
<div class="section" id="installation">
<span id="id1"></span><h1>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">#</a></h1>
<p>You have these 3 options for flashing this firmware.</p>
<ul class="simple">
<li><p>Brewflasher via USB serial</p></li>
<li><p>Esptool via USB serial</p></li>
<li><p>iSpindel web interface</p></li>
</ul>
<div class="section" id="brewflasher">
<h2>Brewflasher<a class="headerlink" href="#brewflasher" title="Permalink to this headline">#</a></h2>
<p>The prefered option for flashing GravityMon is using BrewFlasher, its a tools that support many brewing related firmwares for ESP8266 and ESP32. This works
@ -209,7 +218,7 @@ on both Windows and Mac. You can download the latest version from here: <a class
<a class="reference internal image-reference" href="_images/brewflasher.png"><img alt="Serial output" src="_images/brewflasher.png" style="width: 600px;"/></a>
<div class="section" id="binaries">
<h3>Binaries<a class="headerlink" href="#binaries" title="Permalink to this headline">#</a></h3>
<p>In the /bin directory you will find 2 different firmware builds;</p>
<p>In the /bin directory you will find 3 different firmware builds;</p>
<ul>
<li><p><strong>firmware.bin</strong></p>
<p>This is the standard release build (prefered version)</p>
@ -217,6 +226,9 @@ on both Windows and Mac. You can download the latest version from here: <a class
<li><p><strong>firmware-perf.bin</strong></p>
<p>This version also submits performance data to an influx database with detailed execution times.</p>
</li>
<li><p><strong>firmware32.bin</strong></p>
<p>This is the standard release build for an ESP32 variant</p>
</li>
</ul>
<p>In these versions all the html files are embedded in the binaries. The file system is currently only used for storing
the configuration file.</p>
@ -235,8 +247,31 @@ here; <a class="reference external" href="https://docs.espressif.com/projects/es
<p>If there are issues you can try do erase the flash first using this command;</p>
<p><code class="docutils literal notranslate"><span class="pre">esptool.py</span> <span class="pre">--port</span> <span class="pre">COM4</span> <span class="pre">erase_flash</span></code></p>
</div>
<div class="section" id="ispindel">
<h2>iSpindel<a class="headerlink" href="#ispindel" title="Permalink to this headline">#</a></h2>
<p>If you already have the device flashed with iSpindel firmware you can go into the configuration mode where you will find
an option for updating firmware. The option is under the maintence meny.</p>
<p>Select the esp8266 version of the firmware called firmware.bin and press upload.</p>
</div>
<div class="section" id="updating-firmware">
<h2>Updating firmware<a class="headerlink" href="#updating-firmware" title="Permalink to this headline">#</a></h2>
<p>You can use the above options for updating the firmware as well. But if you want to do updates without connecting the USB cable these
are your options.</p>
<div class="section" id="ota-option">
<h3>OTA Option<a class="headerlink" href="#ota-option" title="Permalink to this headline">#</a></h3>
<p>You can use the OTA option by adding this URL to your configuration and when the device starts up in configuration mode it
will check for a new version and if it finds a newer version it will do an update.</p>
<p><code class="docutils literal notranslate"><span class="pre">https://mp-se.github.io/gravitymon/release/</span></code></p>
</div>
<div class="section" id="manual-update">
<h3>Manual update<a class="headerlink" href="#manual-update" title="Permalink to this headline">#</a></h3>
<p>When the device in is configuration mode you can manually update with a new firmware. Just open this URL in the web
browser and select the firmware.bin file that corresponds to the version you want to flash.</p>
<p><code class="docutils literal notranslate"><span class="pre">http://&lt;device_name&gt;/firmware.htm</span></code></p>
</div>
</div>
<div class="section" id="serial-monitoring">
<h2>Serial Monitoring<a class="headerlink" href="#serial-monitoring" title="Permalink to this headline">#</a></h2>
<span id="id3"></span><h2>Serial Monitoring<a class="headerlink" href="#serial-monitoring" title="Permalink to this headline">#</a></h2>
<p>To check output from the device (logs) there are several tools out there. I found this simple tool in the Windows Store called <code class="docutils literal notranslate"><span class="pre">Serial</span> <span class="pre">Port</span> <span class="pre">Monitoring</span></code>.
Just select a baud rate of 115200, 8N1.</p>
<a class="reference internal image-reference" href="_images/serial.png"><img alt="Serial output" src="_images/serial.png" style="width: 800px;"/></a>
@ -257,23 +292,23 @@ in the browser: <strong>http://192.168.4.1</strong></p>
<footer>
<div class="related-pages">
<a class="next-page" href="releases.html">
<a class="next-page" href="configuration.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Releases</div>
<div class="title">Configuration</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="intro.html">
<a class="prev-page" href="functionallity.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Getting started</div>
<div class="title">Functionallity</div>
</div>
</a>
@ -315,6 +350,12 @@ in the browser: <strong>http://192.168.4.1</strong></p>
</ul>
</li>
<li><a class="reference internal" href="#esptool">Esptool</a></li>
<li><a class="reference internal" href="#ispindel">iSpindel</a></li>
<li><a class="reference internal" href="#updating-firmware">Updating firmware</a><ul>
<li><a class="reference internal" href="#ota-option">OTA Option</a></li>
<li><a class="reference internal" href="#manual-update">Manual update</a></li>
</ul>
</li>
<li><a class="reference internal" href="#serial-monitoring">Serial Monitoring</a></li>
<li><a class="reference internal" href="#configuring-wifi">Configuring WIFI</a></li>
</ul>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Installation" href="installation.html" /><link rel="prev" title="Functionallity" href="functionallity.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Releases" href="releases.html" /><link rel="prev" title="Welcome to GravityMons documentation!" href="index.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Getting started - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Getting started - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -261,23 +264,23 @@ Its recommended to attach the device to power when you have it in <cite>configur
<footer>
<div class="related-pages">
<a class="next-page" href="installation.html">
<a class="next-page" href="releases.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Installation</div>
<div class="title">Releases</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="functionallity.html">
<a class="prev-page" href="index.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Functionallity</div>
<div class="title">Home</div>
</div>
</a>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Functionallity" href="functionallity.html" /><link rel="prev" title="Welcome to GravityMons documentation!" href="index.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Hardware" href="hardware.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Licence - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Licence - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Licence</a></li>
</ul>
</div>
@ -226,23 +229,15 @@ SOFTWARE.</p>
<footer>
<div class="related-pages">
<a class="next-page" href="functionallity.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Functionallity</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="index.html">
<a class="prev-page" href="hardware.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Home</div>
<div class="title">Hardware</div>
</div>
</a>

Binary file not shown.

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Create formula" href="formula.html" /><link rel="prev" title="Troubleshooting" href="troubleshooting.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Q &amp; A - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Q &amp; A - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -225,7 +228,15 @@
<footer>
<div class="related-pages">
<a class="next-page" href="formula.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Create formula</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="troubleshooting.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Configuration" href="configuration.html" /><link rel="prev" title="Installation" href="installation.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Functionallity" href="functionallity.html" /><link rel="prev" title="Getting started" href="intro.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Releases - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Releases - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -202,6 +205,33 @@
<article role="main">
<div class="section" id="releases">
<span id="id1"></span><h1>Releases<a class="headerlink" href="#releases" title="Permalink to this headline">#</a></h1>
<div class="section" id="v0-9-0">
<h2>v0.9.0<a class="headerlink" href="#v0-9-0" title="Permalink to this headline">#</a></h2>
<ul class="simple">
<li><p>Added one http push target that uses HTTP GET. This can be used with ubidots or blynk apis.</p></li>
<li><p>Added function to test push targets from configuration page. It will send data and show the return code as a first step.</p></li>
<li><p>Added documetation on how to integrate with Blynk.io using http get.</p></li>
<li><p>Config page now shows the estimated runtime for the device (based on a full battery and previous average runtime)</p></li>
<li><p>Experimental release of firmware using an esp32 instead of esp8266</p></li>
<li><p>Merged index and device pages into one so that all the needed information is available on the index page.</p></li>
<li><p>Removed api for device (/api/device), its now merged into the /api/status api.</p></li>
<li><p>Test function in format editor now uses real data and not fake.</p></li>
<li><p>Split push configuration into two sections to make it fit better on smaller devices</p></li>
<li><p>Updated WifiManager and DoubleReset libraries</p></li>
<li><p>Updated esp32 target with littlefs support</p></li>
<li><p>Updated esp32 target with BLE send support (it will simulate a tilt)</p></li>
<li><p>Mounted esp32 d1 mini mounted to a iSpindle PCB 4.0 (CherryPhilip) which worked fine.</p></li>
<li><p>Documented hardware changes on esp32</p></li>
<li><p>Default mDNS name is now shown on WIFI setup page.</p></li>
<li><p>Added option to manually update/downgrade firmware under hardware settings.</p></li>
<li><p>BUG: Corrected PIN for voltage read on ESP32</p></li>
<li><p>BUG: If using plato and not gravity formula was defined the value was set to null.</p></li>
<li><p>BUG: Temp format name was incorrect in iSpindle format causing receiver to incorrectly read temperature.</p></li>
<li><p>BUG: Temperature sensor adjusmemnt value was not handled properly when using Farenheight.</p></li>
<li><p>BUG: If the ID was to low the device id could end up with a leading space causing errors in data post. Added leading zero to ID.</p></li>
<li><p>BUG: Entering wifi setup and a timeout occured the wifi settings could be deleted.</p></li>
</ul>
</div>
<div class="section" id="v0-8-0">
<h2>v0.8.0<a class="headerlink" href="#v0-8-0" title="Permalink to this headline">#</a></h2>
<ul class="simple">
@ -212,7 +242,7 @@ other http formats than json (default) and for adding authentication headers.</p
<li><p>Added instructions for how to configure integration with Brewspy</p></li>
<li><p>Added instructions for how to configure integration with Thingspeak</p></li>
<li><p>Added option to do a factory reset via API.</p></li>
<li><p>Logging the runtime, how long a measurement take (last 10 are stored). This can be
<li><p>Added logging of the runtime, how long a measurement take (last 10 are stored). This can be
used to check how good the wifi connection is and estimate the lifetime when on battery.
Check the device page in the UI for this information.</p></li>
<li><p>Refactored code to free up more RAM to make SSL more stable.</p></li>
@ -303,23 +333,23 @@ the behaviour in v0.6 is wanted this can be done via the format editor.</p></li>
<footer>
<div class="related-pages">
<a class="next-page" href="configuration.html">
<a class="next-page" href="functionallity.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Configuration</div>
<div class="title">Functionallity</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="installation.html">
<a class="prev-page" href="intro.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Installation</div>
<div class="title">Getting started</div>
</div>
</a>
@ -356,6 +386,7 @@ the behaviour in v0.6 is wanted this can be done via the format editor.</p></li>
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">Releases</a><ul>
<li><a class="reference internal" href="#v0-9-0">v0.9.0</a></li>
<li><a class="reference internal" href="#v0-8-0">v0.8.0</a></li>
<li><a class="reference internal" href="#v0-7-1">v0.7.1</a></li>
<li><a class="reference internal" href="#v0-7-0">v0.7.0</a></li>

View File

@ -4,9 +4,9 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="#" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/><title>Search - GravityMon 0.8.0 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/><title>Search - GravityMon 0.9.0 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -33,10 +33,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -118,7 +120,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -141,7 +143,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="#" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -151,12 +153,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -164,8 +167,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>

File diff suppressed because one or more lines are too long

View File

@ -4,11 +4,11 @@
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Advanced Configuration" href="advanced.html" /><link rel="prev" title="Create formula" href="formula.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Service Integration - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Service Integration - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -206,11 +209,44 @@
<div class="section" id="brewfather">
<h2>Brewfather<a class="headerlink" href="#brewfather" title="Permalink to this headline">#</a></h2>
<p>Brewfather is an all in one service that allows you to manage you recepies and brews.</p>
<p>Just enter the http adress found on brewfather, not other settings are needed. The endpoint has the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>http://log.brewfather.net/http://log.brewfather.net/stream?id=&lt;yourid&gt;
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>The integration named Brewfather is uses the custom stream endpoint in brewfather not the standard iSpindle
endpoint. You can use the iSpindle endpoint as well. In that case just use the http-1 or http-2 fields.</p>
</div>
<p><strong>Option 1</strong> - Custom Stream</p>
<p>This option makes use of the push endpoint called Brewfather in the UI. Just enter the http stream adress found
on brewfather, not other settings are needed. The stream endpoint URL has the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>http://log.brewfather.net/stream?id=&lt;yourid&gt;
</pre></div>
</div>
<p>The URL is found under settings.</p>
<p>Documentation on this can be found under <a class="reference external" href="https://docs.brewfather.app/integrations/custom-stream">Brewfather Custom Endpoint</a></p>
<p>The implementation is basically a http request with the following format template:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>{
"name": "${mdns}",
"temp": ${temp},
"aux_temp": 0,
"ext_temp": 0,
"temp_unit": "${temp-unit}",
"gravity": ${gravity},
"gravity_unit": "${gravity-unit}",
"pressure": 0,
"pressure_unit": "PSI",
"ph": 0,
"bpm": 0,
"comment": "",
"beer": "",
"battery": ${battery}
}
</pre></div>
</div>
<p><strong>Option 2</strong> - iSpindle Endpoint</p>
<p>This opion makes use of the standard http (1 or 2) endpoints in the push section. The brewfather iSpindle endpoint
has the following format:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>http://log.brewfather.net/ispindel?id=&lt;yourid&gt;
</pre></div>
</div>
<p>Documentation on this can be found under <a class="reference external" href="https://docs.brewfather.app/integrations/ispindel">Brewfather iSpindle Endpoint</a></p>
</div>
<div class="section" id="fermentrack">
<h2>Fermentrack<a class="headerlink" href="#fermentrack" title="Permalink to this headline">#</a></h2>
@ -304,7 +340,7 @@ format for the endpoint. Just add you API key after token.</p>
"token" : "[API KEY]",
"interval": ${sleep-interval},
"temperature": ${temp},
"temp-units": "${temp-unit}",
"temp_units": "${temp-unit}",
"gravity": ${gravity},
"angle": ${angle},
"battery": ${battery},
@ -342,6 +378,23 @@ you want to include. The example below sends 5 different values to the channel i
</pre></div>
</div>
</div>
<div class="section" id="blynk-io">
<h2>Blynk.io<a class="headerlink" href="#blynk-io" title="Permalink to this headline">#</a></h2>
<p>Blynk is an IoT service which can be updated via http get. It also has an mobile device that can be used to show the data.</p>
<p>In order to use this platform you need to create a device which can be used to receive the data. Each device will have a
unique token that is used to identify it. You need to use the HTTP GET option (http-3) on the device for this to work. Enter the
following URL in the UI. This will allow us to update several data points at once. I usually enter the token in the <code class="docutils literal notranslate"><span class="pre">token2</span></code> field
so the format template does not contain any sensitive data and its easier to switch to another device.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">blynk</span><span class="o">.</span><span class="n">cloud</span><span class="o">/</span><span class="n">external</span><span class="o">/</span><span class="n">api</span><span class="o">/</span><span class="n">batch</span><span class="o">/</span><span class="n">update</span>
</pre></div>
</div>
<p>In the format editor you can enter this template which will send 3 values to blynk. You can add as many as you want but make sure
these are configured on the device with the correct validation option such as data type and range. The value should be on one line
starting with a <code class="docutils literal notranslate"><span class="pre">?</span></code>. This string will be added to the URL above when doing the post. You can add more values if you want.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>?token=${token2}&amp;v1=${temp}&amp;v2=${gravity}&amp;v3=${angle}
</pre></div>
</div>
</div>
</div>
</article>
@ -409,6 +462,7 @@ you want to include. The example below sends 5 different values to the channel i
<li><a class="reference internal" href="#brewer-s-friend">Brewers Friend</a></li>
<li><a class="reference internal" href="#brewspy">Brewspy</a></li>
<li><a class="reference internal" href="#thingspeak">Thingspeak</a></li>
<li><a class="reference internal" href="#blynk-io">Blynk.io</a></li>
</ul>
</li>
</ul>

View File

@ -2,13 +2,13 @@
<html class="no-js">
<head><meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Q &amp; A" href="q_and_a.html" /><link rel="prev" title="Contributing" href="contributing.html" />
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="genindex.html" /><link rel="search" title="Search" href="search.html" /><link rel="next" title="Q &amp; A" href="q_and_a.html" /><link rel="prev" title="Configuration" href="configuration.html" />
<meta name="generator" content="sphinx-4.4.0, furo 2022.03.04"/>
<title>Troubleshooting - GravityMon 0.8.0 documentation</title>
<meta name="generator" content="sphinx-4.5.0, furo 2022.04.07"/>
<title>Troubleshooting - GravityMon 0.9.0 documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=935aa2abcc5c1da4283d1dc201fb1f0add16d23a" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=25ceb02ed1c46dc30f2321ff83e92799f69dfdb9" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=68f4518137b9aefe99b631505a2064c3c42c9852" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=30d1aed668e5c3a91c3e3bf6a60b675221979f0e" />
@ -35,10 +35,12 @@
}
</style></head>
<body>
<script>
document.body.dataset.theme = localStorage.getItem("theme") || "auto";
</script>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-toc" viewBox="0 0 24 24">
<title>Contents</title>
@ -120,7 +122,7 @@
</label>
</div>
<div class="header-center">
<a href="index.html"><div class="brand">GravityMon 0.8.0 documentation</div></a>
<a href="index.html"><div class="brand">GravityMon 0.9.0 documentation</div></a>
</div>
<div class="header-right">
<div class="theme-toggle-container theme-toggle-header">
@ -143,7 +145,7 @@
<div class="sidebar-sticky"><a class="sidebar-brand" href="index.html">
<span class="sidebar-brand-text">GravityMon 0.8.0 documentation</span>
<span class="sidebar-brand-text">GravityMon 0.9.0 documentation</span>
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
<input class="sidebar-search" placeholder=Search name="q" aria-label="Search">
@ -153,12 +155,13 @@
<div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree">
<p class="caption" role="heading"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="intro.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="releases.html">Releases</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionallity.html">Functionallity</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="formula.html">Create formula</a></li>
<li class="toctree-l1"><a class="reference internal" href="services.html">Service Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced Configuration</a></li>
@ -166,8 +169,8 @@
<li class="toctree-l1"><a class="reference internal" href="data.html">Data Formats</a></li>
<li class="toctree-l1"><a class="reference internal" href="compiling.html">Compiling the software</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing</a></li>
<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">Troubleshooting</a></li>
<li class="toctree-l1"><a class="reference internal" href="q_and_a.html">Q &amp; A</a></li>
<li class="toctree-l1"><a class="reference internal" href="hardware.html">Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Licence</a></li>
</ul>
</div>
@ -259,14 +262,14 @@ to memory leaks.</p>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="contributing.html">
<a class="prev-page" href="configuration.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Contributing</div>
<div class="title">Configuration</div>
</div>
</a>