gravitymon/docs/api.html
2023-02-04 11:01:25 +00:00

699 lines
62 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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="Data Formats" href="data.html" /><link rel="prev" title="Advanced Configuration" href="advanced.html" />
<meta name="generator" content="sphinx-4.3.2, furo 2022.01.02"/>
<title>REST API - GravityMon v1.2.0</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?digest=df49af52631e7917044a9c21a57f7b83170a6dd0" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?digest=fade93df149f7c5fedb3ff897f799dc7d283b420" />
<style>
body {
--color-code-background: #f8f8f8;
--color-code-foreground: black;
}
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 xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path stroke="none" d="M0 0h24v24H0z" />
<line x1="4" y1="6" x2="20" y2="6" />
<line x1="10" y1="12" x2="20" y2="12" />
<line x1="6" y1="18" x2="20" y2="18" />
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" 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" width="24" height="24" 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" width="24" height="24" 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" width="24" height="24" 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" width="24" height="24" 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 v1.2.0</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" 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 centered" href="index.html">
<div class="sidebar-logo-container">
<img class="sidebar-logo" src="_static/gravitymon_logo.png" alt="Logo"/>
</div>
<span class="sidebar-brand-text">GravityMon v1.2.0</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="functionality.html">Functionality</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="configuration.html">Configuration</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="hardware.html">Hardware</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 current current-page"><a class="current reference internal" href="#">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"><a class="reference internal" href="license.html">Licence</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>
</ul>
</div>
</div>
</div>
</div>
</aside>
<div class="main">
<div class="content">
<div class="article-container">
<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" 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="rest-api">
<span id="id1"></span><h1>REST API<a class="headerlink" href="#rest-api" title="Permalink to this headline"></a></h1>
<p>All the APIs use a key called <code class="docutils literal notranslate"><span class="pre">ID</span></code> which is the unique device id (chip id). This is used as an API key when sending requests to the device.</p>
<div class="section" id="get-api-config">
<h2>GET: /api/config<a class="headerlink" href="#get-api-config" title="Permalink to this headline"></a></h2>
<p>Retrieve the current configuration of the device 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">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>
<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">"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">"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>
<span class="w"> </span><span class="nt">"influxdb2-auth"</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">"mqtt-push"</span><span class="p">:</span><span class="w"> </span><span class="s2">"192.168.1.50"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"mqtt-port"</span><span class="p">:</span><span class="w"> </span><span class="mi">1883</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"mqtt-user"</span><span class="p">:</span><span class="w"> </span><span class="s2">"user"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"mqtt-pass"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pass"</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">"voltage-factor"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.59</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity-formula"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0*tilt^3+0.0*tilt^2+0.0017978*tilt+0.9436"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity-format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"G"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"temp-adjustment-value"</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">"gravity-temp-adjustment"</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">"gyro-temp"</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">"gyro-calibration-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">"ax"</span><span class="p">:</span><span class="w"> </span><span class="mi">-330</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"ay"</span><span class="p">:</span><span class="w"> </span><span class="mi">-2249</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"az"</span><span class="p">:</span><span class="w"> </span><span class="mi">1170</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gx"</span><span class="p">:</span><span class="w"> </span><span class="mi">99</span><span class="p">,</span><span class="w"></span>
<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">"a10"</span><span class="p">:</span><span class="mi">0</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">"g10"</span><span class="p">:</span><span class="mi">1</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">"app-ver"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.1.0"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"app-build"</span><span class="p">:</span><span class="w"> </span><span class="s2">"build"</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>
</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>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>Retrieve 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>, <code class="docutils literal notranslate"><span class="pre">esp32c3</span></code>, <code class="docutils literal notranslate"><span class="pre">esp32s2</span></code>, <code class="docutils literal notranslate"><span class="pre">esp32</span></code> or <code class="docutils literal notranslate"><span class="pre">esp32lite</span></code> (floaty hardware)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">temp-c</span></code> will be set to -273 C if there is no temp sensor</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">angle</span></code> will be set to 0 if no valid angle is found and -1 if there is no gyro</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">"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">"wifi-ssid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"connected SSID"</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">"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">"app-build"</span><span class="p">:</span><span class="w"> </span><span class="s2">"gitrev"</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>
</div>
<div class="section" id="get-api-config-formula">
<h2>GET: /api/config/formula<a class="headerlink" href="#get-api-config-formula" title="Permalink to this headline"></a></h2>
<p>Retrieve the data used for formula calculation data via an HTTP GET command. Payload is in JSON format.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">a1</span></code>-<code class="docutils literal notranslate"><span class="pre">a10</span></code> are the angles/tilt readings (up to 10 are currently supported)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">g1</span></code>-<code class="docutils literal notranslate"><span class="pre">g10</span></code> are the corresponding gravity readings in SG or Plato depending on the device-format.</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">"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">"a1"</span><span class="p">:</span><span class="w"> </span><span class="mf">22.4</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a2"</span><span class="p">:</span><span class="w"> </span><span class="mf">54.4</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a3"</span><span class="p">:</span><span class="w"> </span><span class="mi">58</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"a4"</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">"a5"</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">"a6"</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">"a7"</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">"a8"</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">"a9"</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">"a10"</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">"g1"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.000</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g2"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.053</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g3"</span><span class="p">:</span><span class="w"> </span><span class="mf">1.062</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g4"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g5"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g6"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g7"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g8"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g9"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"g10"</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"error"</span><span class="p">:</span><span class="w"> </span><span class="s2">"Potential error message"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity-format"</span><span class="p">:</span><span class="w"> </span><span class="s2">"G"</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gravity-formula"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0.0*tilt^3+0.0*tilt^2+0.0017978*tilt+0.9436"</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</div>
<div class="section" id="get-api-config-advanced">
<h2>GET: /api/config/advanced<a class="headerlink" href="#get-api-config-advanced" title="Permalink to this headline"></a></h2>
<p>Used for adjusting some internal constants and other advanced settings. Should be used with caution.</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">"gyro-read-count"</span><span class="p">:</span><span class="w"> </span><span class="mi">50</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"gyro-moving-threashold"</span><span class="p">:</span><span class="w"> </span><span class="mi">500</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"formula-max-deviation"</span><span class="p">:</span><span class="w"> </span><span class="mf">3.0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"wifi-portal-timeout"</span><span class="p">:</span><span class="w"> </span><span class="mi">120</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"wifi-connect-timeout"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"push-timeout"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"formula-calibration-temp"</span><span class="p">:</span><span class="w"> </span><span class="mi">20</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"int-http1"</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">"int-http2"</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">"int-http3"</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">"int-influx"</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">"int-mqtt"</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">"tempsensor-resolution"</span><span class="p">:</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="nt">"ignore-low-angles"</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>
</div>
</div>
<div class="section" id="post-api-config-advanced">
<h2>POST: /api/config/advanced<a class="headerlink" href="#post-api-config-advanced" title="Permalink to this headline"></a></h2>
<p>Same parameters as above.</p>
<p>Payload should be in standard format used for posting a form.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">ignore-low-angles</span></code> is defined as “on” or “off” when posting since this is the output values
from a checkbox, when reading data its sent as boolean (true,false).</p>
</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>
<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/factory?id=&lt;mydeviceid&gt;
</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, http-3, 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>
<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>
<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> (Celsius) or <code class="docutils literal notranslate"><span class="pre">F</span></code> (Fahrenheit)</p></li>
</ul>
<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">mdns</span><span class="o">=</span><span class="n">gravmon</span>
<span class="n">temp</span><span class="o">-</span><span class="nb">format</span><span class="o">=</span><span class="n">C</span>
<span class="n">sleep</span><span class="o">-</span><span class="n">interval</span><span class="o">=</span><span class="mi">30</span>
</pre></div>
</div>
</div>
<div class="section" id="post-api-config-push">
<h2>POST: /api/config/push<a class="headerlink" href="#post-api-config-push" title="Permalink to this headline"></a></h2>
<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>
<span class="n">http</span><span class="o">-</span><span class="n">push2</span><span class="o">-</span><span class="n">h2</span><span class="o">=</span>
<span class="n">influxdb2</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="p">:</span><span class="mi">8086</span>
<span class="n">influxdb2</span><span class="o">-</span><span class="n">org</span><span class="o">=</span>
<span class="n">influxdb2</span><span class="o">-</span><span class="n">bucket</span><span class="o">=</span>
<span class="n">influxdb2</span><span class="o">-</span><span class="n">auth</span><span class="o">=</span>
<span class="n">mqtt</span><span class="o">-</span><span class="n">push</span><span class="o">=</span><span class="mf">192.168.1.50</span>
<span class="n">mqtt</span><span class="o">-</span><span class="n">port</span><span class="o">=</span><span class="mi">1883</span>
<span class="n">mqtt</span><span class="o">-</span><span class="n">user</span><span class="o">=</span>
<span class="n">mqtt</span><span class="o">-</span><span class="k">pass</span><span class="o">=</span>
</pre></div>
</div>
</div>
<div class="section" id="post-api-config-gravity">
<h2>POST: /api/config/gravity<a class="headerlink" href="#post-api-config-gravity" title="Permalink to this headline"></a></h2>
<p>Used to update gravity settings via an HTTP POST command. Payload is in JSON format.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">gravity-formula</span></code> keywords <code class="docutils literal notranslate"><span class="pre">temp</span></code> and <code class="docutils literal notranslate"><span class="pre">tilt</span></code> are supported.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">gravity-format</span></code> can be either <code class="docutils literal notranslate"><span class="pre">G</span></code> (SG) or <code class="docutils literal notranslate"><span class="pre">P</span></code> (PLATO)</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">gravity-temp-adjustment</span></code> is defined as “on” or “off” when posting since this is the output values
from a checkbox, when reading data its sent as boolean (true,false).</p>
</div>
<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">gravity</span><span class="o">-</span><span class="n">formula</span><span class="o">=</span><span class="mf">0.0</span><span class="o">*</span><span class="n">tilt</span><span class="o">^</span><span class="mi">3</span><span class="o">+</span><span class="mf">0.0</span><span class="o">*</span><span class="n">tilt</span><span class="o">^</span><span class="mi">2</span><span class="o">+</span><span class="mf">0.0017978</span><span class="o">*</span><span class="n">tilt</span><span class="o">+</span><span class="mf">0.9436</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">P</span>
<span class="n">gravity</span><span class="o">-</span><span class="n">temp</span><span class="o">-</span><span class="n">adjustment</span><span class="o">=</span><span class="n">off</span>
</pre></div>
</div>
</div>
<div class="section" id="post-api-config-hardware">
<h2>POST: /api/config/hardware<a class="headerlink" href="#post-api-config-hardware" title="Permalink to this headline"></a></h2>
<p>Used to update hardware settings via an HTTP POST command. Payload is in JSON format.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">gyro-temp</span></code> is defined as “on” or “off” when posting since this is the output values from a checkbox, when
reading data its sent as boolean (true,false).</p>
</div>
<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">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>
</div>
</div>
<div class="section" id="post-api-config-formula">
<h2>POST: /api/config/formula<a class="headerlink" href="#post-api-config-formula" title="Permalink to this headline"></a></h2>
<p>Used to update formula calculation data via an HTTP POST command. Payload is in JSON format.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">a1</span></code>-<code class="docutils literal notranslate"><span class="pre">a10</span></code> are the angles/tilt readings (up to 10 are currently supported)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">g1</span></code>-<code class="docutils literal notranslate"><span class="pre">g10</span></code> are the corresponding gravity readings (in SG)</p></li>
</ul>
<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">a1</span><span class="o">=</span><span class="mf">22.4</span>
<span class="n">a2</span><span class="o">=</span><span class="mf">54.4</span>
<span class="n">a3</span><span class="o">=</span><span class="mi">58</span>
<span class="n">a4</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a5</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a6</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a7</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a8</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a9</span><span class="o">=</span><span class="mi">0</span>
<span class="n">a19</span><span class="o">=</span><span class="mi">0</span>
<span class="n">g1</span><span class="o">=</span><span class="mf">1.000</span>
<span class="n">g2</span><span class="o">=</span><span class="mf">1.053</span>
<span class="n">g3</span><span class="o">=</span><span class="mf">1.062</span>
<span class="n">g4</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g5</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g6</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g7</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g8</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g9</span><span class="o">=</span><span class="mi">1</span>
<span class="n">g10</span><span class="o">=</span><span class="mi">1</span>
</pre></div>
</div>
</div>
<div class="section" id="calling-the-api-s-from-python">
<h2>Calling the APIs from Python<a class="headerlink" href="#calling-the-api-s-from-python" title="Permalink to this headline"></a></h2>
<p>Here is some example code for how to access the APIs from a python script. Keys should always be
present or the API call will fail. You only need to include the parameters you want to change.</p>
<p>The requests package converts the json to standard form post format.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">requests</span>
<span class="kn">import</span> <span class="nn">json</span>
<span class="n">host</span> <span class="o">=</span> <span class="s2">"192.168.1.1"</span> <span class="c1"># IP address (or name) of the device to send these settings to</span>
<span class="nb">id</span> <span class="o">=</span> <span class="s2">"ee1bfc"</span> <span class="c1"># Device ID (shown in serial console during startup or in UI)</span>
<span class="k">def</span> <span class="nf">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>
<span class="n">headers</span> <span class="o">=</span> <span class="p">{</span> <span class="s2">"ContentType"</span><span class="p">:</span> <span class="s2">"application/json"</span> <span class="p">}</span>
<span class="nb">print</span><span class="p">(</span> <span class="n">url</span> <span class="p">)</span>
<span class="n">resp</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">post</span><span class="p">(</span> <span class="n">url</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="n">headers</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">json</span> <span class="p">)</span>
<span class="k">if</span> <span class="n">resp</span><span class="o">.</span><span class="n">status_code</span> <span class="o">!=</span> <span class="mi">200</span> <span class="p">:</span>
<span class="nb">print</span> <span class="p">(</span> <span class="s2">"Failed "</span> <span class="p">)</span>
<span class="k">else</span> <span class="p">:</span>
<span class="nb">print</span> <span class="p">(</span> <span class="s2">"Success "</span> <span class="p">)</span>
<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/device"</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">"mdns"</span><span class="p">:</span> <span class="s2">"gravmon"</span><span class="p">,</span> <span class="c1"># Name of the device</span>
<span class="s2">"temp-format"</span><span class="p">:</span> <span class="s2">"C"</span><span class="p">,</span> <span class="c1"># Temperature format C or F</span>
<span class="s2">"sleep-interval"</span><span class="p">:</span> <span class="mi">30</span> <span class="c1"># Sleep interval in seconds</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>
<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="s2">"http-push2-h2"</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>
<span class="s2">"influxdb2-org"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"influxdb2-bucket"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"influxdb2-auth"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"mqtt-push"</span><span class="p">:</span> <span class="s2">"192.168.1.50"</span><span class="p">,</span>
<span class="s2">"mqtt-port"</span><span class="p">:</span> <span class="mi">1883</span><span class="p">,</span>
<span class="s2">"mqtt-user"</span><span class="p">:</span> <span class="s2">"Qwerty"</span><span class="p">,</span>
<span class="s2">"mqtt-pass"</span><span class="p">:</span> <span class="s2">"Qwerty"</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>
<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/gravity"</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">"gravity-formula"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
<span class="s2">"gravity-format"</span><span class="p">:</span> <span class="s2">"P"</span><span class="p">,</span>
<span class="s2">"gravity-temp-adjustment"</span><span class="p">:</span> <span class="s2">"off"</span> <span class="c1"># Adjust gravity (on/off)</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>
<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/hardware"</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">"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 search 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>
<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/formula"</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">"a1"</span><span class="p">:</span> <span class="mf">22.4</span><span class="p">,</span>
<span class="s2">"a2"</span><span class="p">:</span> <span class="mf">54.4</span><span class="p">,</span>
<span class="s2">"a3"</span><span class="p">:</span> <span class="mi">58</span><span class="p">,</span>
<span class="s2">"a4"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a5"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a6"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a7"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a8"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a9"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"a10"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
<span class="s2">"g1"</span><span class="p">:</span> <span class="mf">1.000</span><span class="p">,</span>
<span class="s2">"g2"</span><span class="p">:</span> <span class="mf">1.053</span><span class="p">,</span>
<span class="s2">"g3"</span><span class="p">:</span> <span class="mf">1.062</span><span class="p">,</span>
<span class="s2">"g4"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g5"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g6"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g7"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g8"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g9"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
<span class="s2">"g10"</span><span class="p">:</span> <span class="mi">1</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>
</pre></div>
</div>
</div>
</div>
</article>
</div>
<footer>
<div class="related-pages">
<a class="next-page" href="data.html">
<div class="page-info">
<div class="context">
<span>Next</span>
</div>
<div class="title">Data Formats</div>
</div>
<svg><use href="#svg-arrow-right"></use></svg>
</a>
<a class="prev-page" href="advanced.html">
<svg><use href="#svg-arrow-right"></use></svg>
<div class="page-info">
<div class="context">
<span>Previous</span>
</div>
<div class="title">Advanced Configuration</div>
</div>
</a>
</div>
<div class="related-information">
Copyright &#169; 2021-2023, Magnus Persson |
Created using <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 theme</a>.
</div>
</footer>
</div>
<aside class="toc-drawer">
<div class="toc-sticky toc-scroll">
<div class="toc-title-container">
<span class="toc-title">
Contents
</span>
</div>
<div class="toc-tree-container">
<div class="toc-tree">
<ul>
<li><a class="reference internal" href="#">REST API</a><ul>
<li><a class="reference internal" href="#get-api-config">GET: /api/config</a></li>
<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-config-advanced">GET: /api/config/advanced</a></li>
<li><a class="reference internal" href="#post-api-config-advanced">POST: /api/config/advanced</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>
<li><a class="reference internal" href="#post-api-config-hardware">POST: /api/config/hardware</a></li>
<li><a class="reference internal" href="#post-api-config-formula">POST: /api/config/formula</a></li>
<li><a class="reference internal" href="#calling-the-api-s-from-python">Calling the APIs from Python</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</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>
<script src="_static/clipboard.min.js"></script>
<script src="_static/copybutton.js"></script>
</body>
</html>