Deployed da0fa88 with MkDocs version: 1.6.0

This commit is contained in:
github-actions[bot]
2024-08-23 22:21:11 +00:00
parent c4a77e1d79
commit 02164f98e0
47 changed files with 1395 additions and 336 deletions

View File

@@ -12,7 +12,7 @@
<link rel="icon" href="/AI-on-the-edge-device-docs/img/favicon.ico"> <link rel="icon" href="/AI-on-the-edge-device-docs/img/favicon.ico">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.32"> <meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.33">
@@ -1248,6 +1248,27 @@
<li class="md-nav__item">
<a href="/AI-on-the-edge-device-docs/Webhook/" class="md-nav__link">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
@@ -1530,7 +1551,7 @@
<script id="__config" type="application/json">{"base": "/AI-on-the-edge-device-docs/", "features": [], "search": "/AI-on-the-edge-device-docs/assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "/AI-on-the-edge-device-docs/", "features": [], "search": "/AI-on-the-edge-device-docs/assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="/AI-on-the-edge-device-docs/assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="/AI-on-the-edge-device-docs/assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>

View File

@@ -9,7 +9,7 @@
<link href="../Neural-Network-Types/" rel="prev"/> <link href="../Neural-Network-Types/" rel="prev"/>
<link href="../New-Releases-Notification/" rel="next"/> <link href="../New-Releases-Notification/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Additional Information - AI on the Edge Device</title> <title>Additional Information - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -485,6 +485,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -614,6 +621,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Reference-Image/" rel="prev"/> <link href="../Reference-Image/" rel="prev"/>
<link href="../ROI-Configuration/" rel="next"/> <link href="../ROI-Configuration/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Alignment References - AI on the Edge Device</title> <title>Alignment References - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -513,6 +513,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -675,6 +682,6 @@ The result will be calculated on the ESP32 - so be a bit patient, before you see
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Hardware-Compatibility/" rel="prev"/> <link href="../Hardware-Compatibility/" rel="prev"/>
<link href="../FAQs/" rel="next"/> <link href="../FAQs/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Best Practice - AI on the Edge Device</title> <title>Best Practice - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -520,6 +520,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -687,6 +694,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -6,10 +6,10 @@
<meta charset="utf-8"/> <meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/> <meta content="width=device-width,initial-scale=1" name="viewport"/>
<link href="https://jomjol.github.io/AI-on-the-edge-device-docs/Build-Instructions/" rel="canonical"/> <link href="https://jomjol.github.io/AI-on-the-edge-device-docs/Build-Instructions/" rel="canonical"/>
<link href="../Influx-DB/" rel="prev"/> <link href="../Webhook/" rel="prev"/>
<link href="../Upload-files-by-script/" rel="next"/> <link href="../Upload-files-by-script/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Build the Project - AI on the Edge Device</title> <title>Build the Project - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -484,6 +484,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -605,6 +612,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Configuration/" rel="prev"/> <link href="../Configuration/" rel="prev"/>
<link href="../ota/" rel="next"/> <link href="../ota/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Model Selection - AI on the Edge Device</title> <title>Model Selection - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -607,6 +607,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -908,6 +915,6 @@ Usually the models are distrusted therefore in both versions. They can be distin
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../ROI-Configuration/" rel="prev"/> <link href="../ROI-Configuration/" rel="prev"/>
<link href="../Choosing-the-Model/" rel="next"/> <link href="../Choosing-the-Model/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Graphical Configuration - AI on the Edge Device</title> <title>Graphical Configuration - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -591,6 +591,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -855,6 +862,6 @@ But you might be interested in it.</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Learn-models-with-your-own-images/" rel="prev"/> <link href="../Learn-models-with-your-own-images/" rel="prev"/>
<link href="../Neural-Network-Types/" rel="next"/> <link href="../Neural-Network-Types/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Correction Algorithm - AI on the Edge Device</title> <title>Correction Algorithm - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -598,6 +598,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -874,6 +881,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Frequent-Reboots/" rel="prev"/> <link href="../Frequent-Reboots/" rel="prev"/>
<link href="../REST-API/" rel="next"/> <link href="../REST-API/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Demo mode - AI on the Edge Device</title> <title>Demo mode - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -566,6 +566,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -740,53 +747,53 @@
<p>For the reference image and the alignment also the first image gets used.</p> <p>For the reference image and the alignment also the first image gets used.</p>
<p>Once the last image got reached, it starts again with the first one.</p> <p>Once the last image got reached, it starts again with the first one.</p>
<h2 id="sd-card-structure"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1</span> SD Card Structure</h2> <h2 id="sd-card-structure"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1</span> SD Card Structure</h2>
<pre><code>demo/ <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>demo/
├── 520.8983.jpg </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a>├── 520.8983.jpg
├── 520.9086.jpg </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a>├── 520.9086.jpg
├── 520.9351.jpg </span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a>├── 520.9351.jpg
├── ... </span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a>├── ...
└── files.txt </span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a>└── files.txt
</code></pre> </span></code></pre></div>
<ul> <ul>
<li>The jpg files can have any name</li> <li>The jpg files can have any name</li>
<li>The jpg files must be smaller than 30'000 bytes</li> <li>The jpg files must be smaller than 30'000 bytes</li>
<li>The <code>files.txt</code> must contains a list of those files, eg:<pre><code>520.8983.jpg <li>The <code>files.txt</code> must contains a list of those files, eg:<div class="language-text highlight"><pre><span></span><code>520.8983.jpg
520.9086.jpg 520.9086.jpg
520.9351.jpg 520.9351.jpg
</code></pre> </code></pre></div>
</li> </li>
</ul> </ul>
<h2 id="recording"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> Recording</h2> <h2 id="recording"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> Recording</h2>
<p>To record real images of a meter, you have to periodically fetch <code>http://&lt;IP&gt;/img_tmp/raw.jpg</code>.</p> <p>To record real images of a meter, you have to periodically fetch <code>http://&lt;IP&gt;/img_tmp/raw.jpg</code>.</p>
<p>To automate this, you can use the following shell script (Linux only):</p> <p>To automate this, you can use the following shell script (Linux only):
<pre><code class="language-bash">#!/bin/bash <div class="language-bash highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="ch">#!/bin/bash</span>
</span><span id="__span-1-2"><a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a>
while [[ true ]]; do </span><span id="__span-1-3"><a href="#__codelineno-1-3" id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="k">while</span><span class="w"> </span><span class="o">[[</span><span class="w"> </span><span class="nb">true</span><span class="w"> </span><span class="o">]]</span><span class="p">;</span><span class="w"> </span><span class="k">do</span>
echo "fetching value..." </span><span id="__span-1-4"><a href="#__codelineno-1-4" id="__codelineno-1-4" name="__codelineno-1-4"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"fetching value..."</span>
wget -q http://192.168.1.151/value -O value.txt </span><span id="__span-1-5"><a href="#__codelineno-1-5" id="__codelineno-1-5" name="__codelineno-1-5"></a><span class="w"> </span>wget<span class="w"> </span>-q<span class="w"> </span>http://192.168.1.151/value<span class="w"> </span>-O<span class="w"> </span>value.txt
</span><span id="__span-1-6"><a href="#__codelineno-1-6" id="__codelineno-1-6" name="__codelineno-1-6"></a>
value=`cat value.txt` </span><span id="__span-1-7"><a href="#__codelineno-1-7" id="__codelineno-1-7" name="__codelineno-1-7"></a><span class="w"> </span><span class="nv">value</span><span class="o">=</span><span class="sb">`</span>cat<span class="w"> </span>value.txt<span class="sb">`</span>
echo "Value: $value" </span><span id="__span-1-8"><a href="#__codelineno-1-8" id="__codelineno-1-8" name="__codelineno-1-8"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Value: </span><span class="nv">$value</span><span class="s2">"</span>
</span><span id="__span-1-9"><a href="#__codelineno-1-9" id="__codelineno-1-9" name="__codelineno-1-9"></a>
diff=`diff value.txt value_previous.txt` </span><span id="__span-1-10"><a href="#__codelineno-1-10" id="__codelineno-1-10" name="__codelineno-1-10"></a><span class="w"> </span><span class="nv">diff</span><span class="o">=</span><span class="sb">`</span>diff<span class="w"> </span>value.txt<span class="w"> </span>value_previous.txt<span class="sb">`</span>
changed=$? </span><span id="__span-1-11"><a href="#__codelineno-1-11" id="__codelineno-1-11" name="__codelineno-1-11"></a><span class="w"> </span><span class="nv">changed</span><span class="o">=</span><span class="nv">$?</span>
#echo "Diff: $diff" </span><span id="__span-1-12"><a href="#__codelineno-1-12" id="__codelineno-1-12" name="__codelineno-1-12"></a><span class="w"> </span><span class="c1">#echo "Diff: $diff"</span>
</span><span id="__span-1-13"><a href="#__codelineno-1-13" id="__codelineno-1-13" name="__codelineno-1-13"></a>
if [[ $changed -ne 0 ]]; then </span><span id="__span-1-14"><a href="#__codelineno-1-14" id="__codelineno-1-14" name="__codelineno-1-14"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[[</span><span class="w"> </span><span class="nv">$changed</span><span class="w"> </span>-ne<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
echo "Value changed:" </span><span id="__span-1-15"><a href="#__codelineno-1-15" id="__codelineno-1-15" name="__codelineno-1-15"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Value changed:"</span>
echo $diff </span><span id="__span-1-16"><a href="#__codelineno-1-16" id="__codelineno-1-16" name="__codelineno-1-16"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="nv">$diff</span>
echo "fetching image..." </span><span id="__span-1-17"><a href="#__codelineno-1-17" id="__codelineno-1-17" name="__codelineno-1-17"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"fetching image..."</span>
wget -q http://192.168.1.151/img_tmp/raw.jpg -O $value.jpg </span><span id="__span-1-18"><a href="#__codelineno-1-18" id="__codelineno-1-18" name="__codelineno-1-18"></a><span class="w"> </span>wget<span class="w"> </span>-q<span class="w"> </span>http://192.168.1.151/img_tmp/raw.jpg<span class="w"> </span>-O<span class="w"> </span><span class="nv">$value</span>.jpg
else </span><span id="__span-1-19"><a href="#__codelineno-1-19" id="__codelineno-1-19" name="__codelineno-1-19"></a><span class="w"> </span><span class="k">else</span>
echo "Value did not change, skipping image fetching!" </span><span id="__span-1-20"><a href="#__codelineno-1-20" id="__codelineno-1-20" name="__codelineno-1-20"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"Value did not change, skipping image fetching!"</span>
fi </span><span id="__span-1-21"><a href="#__codelineno-1-21" id="__codelineno-1-21" name="__codelineno-1-21"></a><span class="w"> </span><span class="k">fi</span>
</span><span id="__span-1-22"><a href="#__codelineno-1-22" id="__codelineno-1-22" name="__codelineno-1-22"></a>
cp value.txt value_previous.txt </span><span id="__span-1-23"><a href="#__codelineno-1-23" id="__codelineno-1-23" name="__codelineno-1-23"></a><span class="w"> </span>cp<span class="w"> </span>value.txt<span class="w"> </span>value_previous.txt
</span><span id="__span-1-24"><a href="#__codelineno-1-24" id="__codelineno-1-24" name="__codelineno-1-24"></a>
echo "waiting 60s..." </span><span id="__span-1-25"><a href="#__codelineno-1-25" id="__codelineno-1-25" name="__codelineno-1-25"></a><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"waiting 60s..."</span>
sleep 60 </span><span id="__span-1-26"><a href="#__codelineno-1-26" id="__codelineno-1-26" name="__codelineno-1-26"></a><span class="w"> </span>sleep<span class="w"> </span><span class="m">60</span>
done </span><span id="__span-1-27"><a href="#__codelineno-1-27" id="__codelineno-1-27" name="__codelineno-1-27"></a><span class="k">done</span>
</code></pre> </span></code></pre></div></p>
<h2 id="installation"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.3</span> Installation</h2> <h2 id="installation"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.3</span> Installation</h2>
<p>Just install the zip file using the OTA Update functionality.</p> <p>Just install the zip file using the OTA Update functionality.</p>
<h2 id="how-does-it-work"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.4</span> How does it work</h2> <h2 id="how-does-it-work"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.4</span> How does it work</h2>
@@ -830,6 +837,6 @@ done
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../prometheus-openmetrics/" rel="prev"/> <link href="../prometheus-openmetrics/" rel="prev"/>
<link href="../StatusLED-BlinkCodes/" rel="next"/> <link href="../StatusLED-BlinkCodes/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Reduced webinterface (error codes) - AI on the Edge Device</title> <title>Reduced webinterface (error codes) - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -570,6 +570,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -751,10 +758,10 @@ Most likely they are caused by a hardware issue!</p>
<h3 id="0x00000001-psram-bad"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.1</span> <code>0x00000001</code> PSRAM bad</h3> <h3 id="0x00000001-psram-bad"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.1</span> <code>0x00000001</code> PSRAM bad</h3>
<p>Your device most likely has no PSRAM at all or it is too small (needs to have at least 4 MBytes)! <p>Your device most likely has no PSRAM at all or it is too small (needs to have at least 4 MBytes)!
See <a href="../Hardware-Compatibility">Hardware Compatibility</a>.</p> See <a href="../Hardware-Compatibility">Hardware Compatibility</a>.</p>
<p>Usually the log shows something like this:</p> <p>Usually the log shows something like this:
<pre><code>psram: PSRAM ID read error: 0xffffffff <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>psram: PSRAM ID read error: 0xffffffff
cpu_start: Failed to init external RAM! </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a>cpu_start: Failed to init external RAM!
</code></pre> </span></code></pre></div></p>
<h3 id="0x00000002-heap-too-small"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.2</span> <code>0x00000002</code> Heap too small</h3> <h3 id="0x00000002-heap-too-small"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.2</span> <code>0x00000002</code> Heap too small</h3>
<p>The firmware failed to allocate enough memory. This most likely is a consequential error of a bad PSRAM!</p> <p>The firmware failed to allocate enough memory. This most likely is a consequential error of a bad PSRAM!</p>
<h3 id="0x00000004-cam-bad"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.3</span> <code>0x00000004</code> Cam bad</h3> <h3 id="0x00000004-cam-bad"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.3</span> <code>0x00000004</code> Cam bad</h3>
@@ -830,6 +837,6 @@ A reboot of the device might help.</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../WLAN-disconnect-reason/" rel="prev"/> <link href="../WLAN-disconnect-reason/" rel="prev"/>
<link href="../Frequent-Reboots/" rel="next"/> <link href="../Frequent-Reboots/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Often observed issues - AI on the Edge Device</title> <title>Often observed issues - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -527,6 +527,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -703,6 +710,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Integration-Home-Assistant/" rel="prev"/> <link href="../Integration-Home-Assistant/" rel="prev"/>
<link href="../data-logging/" rel="next"/> <link href="../data-logging/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>External LED - AI on the Edge Device</title> <title>External LED - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -513,6 +513,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -687,6 +694,6 @@ For power supply stabilization a capacitor between 5V and ground is recommended.
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Best-Practice/" rel="prev"/> <link href="../Best-Practice/" rel="prev"/>
<link href="../Reference-Image/" rel="next"/> <link href="../Reference-Image/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Frequently Asked Questions - AI on the Edge Device</title> <title>Frequently Asked Questions - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -555,6 +555,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -827,6 +834,6 @@ and <a href="https://github.com/haverland/Tenth-of-step-of-a-meter-digit/wiki/Co
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Error-Debugging/" rel="prev"/> <link href="../Error-Debugging/" rel="prev"/>
<link href="../Demo-Mode/" rel="next"/> <link href="../Demo-Mode/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Basic hardware/config issues - AI on the Edge Device</title> <title>Basic hardware/config issues - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -621,6 +621,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -870,10 +877,10 @@
<h5 id="system-instabilities"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1.0.1</span> System instabilities</h5> <h5 id="system-instabilities"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1.0.1</span> System instabilities</h5>
<p>If your system is sometimes running smoothly over several runs and sometimes reboots obviously randomly, you have an partially unstable device. </p> <p>If your system is sometimes running smoothly over several runs and sometimes reboots obviously randomly, you have an partially unstable device. </p>
<p>You can check this in the standard log file on the SD card:</p> <p>You can check this in the standard log file on the SD card:</p>
<pre><code>2021-12-26T06:34:09: task_autodoFlow - round done <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>2021-12-26T06:34:09: task_autodoFlow - round done
2021-12-26T06:34:09: CPU Temperature: 56.1 </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a>2021-12-26T06:34:09: CPU Temperature: 56.1
2021-12-26T06:38:00: task_autodoFlow - next round - Round #23 </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a>2021-12-26T06:38:00: task_autodoFlow - next round - Round #23
</code></pre> </span></code></pre></div>
<p>Here you see, that the round #23 is starting, so obviously there were no reboots in the last 22 rounds. There is hardware (ESP32CAM), where only 2-3 stable rounds are possible and others, where way more than 100 rounds without any reboots is possible. <p>Here you see, that the round #23 is starting, so obviously there were no reboots in the last 22 rounds. There is hardware (ESP32CAM), where only 2-3 stable rounds are possible and others, where way more than 100 rounds without any reboots is possible.
There is noting you can do about it, beside testing different hardware.</p> There is noting you can do about it, beside testing different hardware.</p>
<h4 id="overload-during-html-access"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1.1</span> Overload during HTML access</h4> <h4 id="overload-during-html-access"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1.1</span> Overload during HTML access</h4>
@@ -947,24 +954,24 @@ Unfortunately, there is hardware around, where no PSRAM or only 2MB of PSRAM is
<li><code>/config/XXXXX.tflite</code> (XXXXX is the file name, that is written in the <code>config.ini</code>)</li> <li><code>/config/XXXXX.tflite</code> (XXXXX is the file name, that is written in the <code>config.ini</code>)</li>
</ul> </ul>
<p>If the files which are configured in <code>config.ini</code> are not present or corrupt, the process is going to be interrupted (or at worst case a device crash occurs). Please check logs files to have an indicator for the root cause.</p> <p>If the files which are configured in <code>config.ini</code> are not present or corrupt, the process is going to be interrupted (or at worst case a device crash occurs). Please check logs files to have an indicator for the root cause.</p>
<p>This a logfile extract (DEBUB log level) where digit CNN model file is not present. The system is initializing the system and trying to load the model files:</p> <p>This a logfile extract (DEBUB log level) where digit CNN model file is not present. The system is initializing the system and trying to load the model files:
<pre><code>[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::LoadModel <div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a>[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::LoadModel
[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: /sdcard </span><span id="__span-1-2"><a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a>[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: /sdcard
[0d00h05m11s] 2023-03-27T12:25:14 [PSRAM] Failed to allocate 0 bytes in PSRAM for 'TFLITE-&gt;modelfile'! </span><span id="__span-1-3"><a href="#__codelineno-1-3" id="__codelineno-1-3" name="__codelineno-1-3"></a>[0d00h05m11s] 2023-03-27T12:25:14 [PSRAM] Failed to allocate 0 bytes in PSRAM for 'TFLITE-&gt;modelfile'!
[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: Can't allocate enough memory: 0 </span><span id="__span-1-4"><a href="#__codelineno-1-4" id="__codelineno-1-4" name="__codelineno-1-4"></a>[0d00h05m11s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: Can't allocate enough memory: 0
[0d00h05m12s] 2023-03-27T12:25:14 [HEAP] CTfLiteClass::ReadFileToModel Heap Total: 2266214 | SPI Free: 2205939 | SPI Large Block: 2162688 | SPI Min Free: 2205423 | Int Free: 60275 | Int Large Block: 55296 | Int Min Free: 46451 </span><span id="__span-1-5"><a href="#__codelineno-1-5" id="__codelineno-1-5" name="__codelineno-1-5"></a>[0d00h05m12s] 2023-03-27T12:25:14 [HEAP] CTfLiteClass::ReadFileToModel Heap Total: 2266214 | SPI Free: 2205939 | SPI Large Block: 2162688 | SPI Min Free: 2205423 | Int Free: 60275 | Int Large Block: 55296 | Int Min Free: 46451
[0d00h05m12s] 2023-03-27T12:25:14 [CNN] Can't load tflite model -&gt; Init aborted! </span><span id="__span-1-6"><a href="#__codelineno-1-6" id="__codelineno-1-6" name="__codelineno-1-6"></a>[0d00h05m12s] 2023-03-27T12:25:14 [CNN] Can't load tflite model -&gt; Init aborted!
[0d00h05m12s] 2023-03-27T12:25:14 [HEAP] getNetworkParameter-LoadModel Heap Total: 2266214 | SPI Free: 2205939 | SPI Large Block: 2162688 | SPI Min Free: 2205423 | Int Free: 60275 | Int Large Block: 55296 | Int Min Free: 46451 </span><span id="__span-1-7"><a href="#__codelineno-1-7" id="__codelineno-1-7" name="__codelineno-1-7"></a>[0d00h05m12s] 2023-03-27T12:25:14 [HEAP] getNetworkParameter-LoadModel Heap Total: 2266214 | SPI Free: 2205939 | SPI Large Block: 2162688 | SPI Min Free: 2205423 | Int Free: 60275 | Int Large Block: 55296 | Int Min Free: 46451
[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;modelfile'... </span><span id="__span-1-8"><a href="#__codelineno-1-8" id="__codelineno-1-8" name="__codelineno-1-8"></a>[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;modelfile'...
[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;tensor_arena'... </span><span id="__span-1-9"><a href="#__codelineno-1-9" id="__codelineno-1-9" name="__codelineno-1-9"></a>[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;tensor_arena'...
[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Allocated 819200 bytes in PSRAM for 'TFLITE-&gt;tensor_arena' </span><span id="__span-1-10"><a href="#__codelineno-1-10" id="__codelineno-1-10" name="__codelineno-1-10"></a>[0d00h05m12s] 2023-03-27T12:25:14 [PSRAM] Allocated 819200 bytes in PSRAM for 'TFLITE-&gt;tensor_arena'
[0d00h05m12s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::LoadModel </span><span id="__span-1-11"><a href="#__codelineno-1-11" id="__codelineno-1-11" name="__codelineno-1-11"></a>[0d00h05m12s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::LoadModel
[0d00h05m12s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: /sdcard/config/ana-cont_1105_s2_q.tflite </span><span id="__span-1-12"><a href="#__codelineno-1-12" id="__codelineno-1-12" name="__codelineno-1-12"></a>[0d00h05m12s] 2023-03-27T12:25:14 [TFLITE] CTfLiteClass::ReadFileToModel: /sdcard/config/ana-cont_1105_s2_q.tflite
[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Allocated 53328 bytes in PSRAM for 'TFLITE-&gt;modelfile' </span><span id="__span-1-13"><a href="#__codelineno-1-13" id="__codelineno-1-13" name="__codelineno-1-13"></a>[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Allocated 53328 bytes in PSRAM for 'TFLITE-&gt;modelfile'
[0d00h05m12s] 2023-03-27T12:25:15 [TFLITE] CTfLiteClass::MakeAllocate </span><span id="__span-1-14"><a href="#__codelineno-1-14" id="__codelineno-1-14" name="__codelineno-1-14"></a>[0d00h05m12s] 2023-03-27T12:25:15 [TFLITE] CTfLiteClass::MakeAllocate
[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;modelfile'... </span><span id="__span-1-15"><a href="#__codelineno-1-15" id="__codelineno-1-15" name="__codelineno-1-15"></a>[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;modelfile'...
[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;tensor_arena'... </span><span id="__span-1-16"><a href="#__codelineno-1-16" id="__codelineno-1-16" name="__codelineno-1-16"></a>[0d00h05m12s] 2023-03-27T12:25:15 [PSRAM] Freeing memory in PSRAM used for 'TFLITE-&gt;tensor_arena'...
</code></pre> </span></code></pre></div></p>
<ul> <ul>
<li>Bad config example:</li> <li>Bad config example:</li>
<li> <li>
@@ -1001,6 +1008,6 @@ Unfortunately, there is hardware around, where no PSRAM or only 2MB of PSRAM is
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../initial-setup/" rel="prev"/> <link href="../initial-setup/" rel="prev"/>
<link href="../Best-Practice/" rel="next"/> <link href="../Best-Practice/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Hardware Compatibility - AI on the Edge Device</title> <title>Hardware Compatibility - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -506,6 +506,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -849,6 +856,6 @@ AITRIP ESP32 and CAM <a href="https://www.amazon.co.uk/gp/product/B08X49P8P3/ref
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -7,9 +7,9 @@
<meta content="width=device-width,initial-scale=1" name="viewport"/> <meta content="width=device-width,initial-scale=1" name="viewport"/>
<link href="https://jomjol.github.io/AI-on-the-edge-device-docs/Influx-DB/" rel="canonical"/> <link href="https://jomjol.github.io/AI-on-the-edge-device-docs/Influx-DB/" rel="canonical"/>
<link href="../MQTT-API/" rel="prev"/> <link href="../MQTT-API/" rel="prev"/>
<link href="../Build-Instructions/" rel="next"/> <link href="../Webhook/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Influx DB - AI on the Edge Device</title> <title>Influx DB - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -485,6 +485,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -606,6 +613,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href=".." rel="prev"/> <link href=".." rel="prev"/>
<link href="../initial-setup/" rel="next"/> <link href="../initial-setup/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Installation - AI on the Edge Device</title> <title>Installation - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -634,6 +634,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -963,16 +970,14 @@ You can access it with the following link: <a href="https://jomjol.github.io/AI-
<h4 id="flashing-using-the-python-based-esptool-console"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2.2.3</span> Flashing using the Python based esptool (Console)</h4> <h4 id="flashing-using-the-python-based-esptool-console"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2.2.3</span> Flashing using the Python based esptool (Console)</h4>
<p>For this you need a python environment (e.g. Anaconda in Win10). <p>For this you need a python environment (e.g. Anaconda in Win10).
Here you need to install the esptool:</p> Here you need to install the esptool:</p>
<pre><code>pip install esptool <p><div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>pip install esptool
</code></pre> </span></code></pre></div>
<p>Then connect the ESP32 with the USB-UART connector to the system, put it in boot mode and with the following command you can erase the flash and flash bootloader, partitions and firmware in two steps:</p> Then connect the ESP32 with the USB-UART connector to the system, put it in boot mode and with the following command you can erase the flash and flash bootloader, partitions and firmware in two steps:</p>
<pre><code>esptool erase_flash <p><div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a>esptool erase_flash
esptool write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin </span><span id="__span-1-2"><a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a>esptool write_flash 0x01000 bootloader.bin 0x08000 partitions.bin 0x10000 firmware.bin
</code></pre> </span></code></pre></div>
<ul> - Maybe you need to specify the COM-port if it is not detected by default.
<li>Maybe you need to specify the COM-port if it is not detected by default.</li> - If the erase command throws the error <code>A fatal error occurred: ESP32 ROM does not support function erase_flash.</code>, your <code>esptool</code> might be too old, see <a href="https://techoverflow.net/2022/02/08/how-to-fix-esp32-a-fatal-error-occurred-esp32-rom-does-not-support-function-erase_flash/">https://techoverflow.net/2022/02/08/how-to-fix-esp32-a-fatal-error-occurred-esp32-rom-does-not-support-function-erase_flash/</a></p>
<li>If the erase command throws the error <code>A fatal error occurred: ESP32 ROM does not support function erase_flash.</code>, your <code>esptool</code> might be too old, see <a href="https://techoverflow.net/2022/02/08/how-to-fix-esp32-a-fatal-error-occurred-esp32-rom-does-not-support-function-erase_flash/">https://techoverflow.net/2022/02/08/how-to-fix-esp32-a-fatal-error-occurred-esp32-rom-does-not-support-function-erase_flash/</a></li>
</ul>
<p>With some Python installations this may not work and youll receive an error, try <code>python -m pip install esptool</code> or <code>pip3 install esptool</code>.</p> <p>With some Python installations this may not work and youll receive an error, try <code>python -m pip install esptool</code> or <code>pip3 install esptool</code>.</p>
<p>Further recommendations can be found on the <a href="https://docs.espressif.com/projects/esptool/en/latest/esp32/installation.html">espressif webpage</a>.</p> <p>Further recommendations can be found on the <a href="https://docs.espressif.com/projects/esptool/en/latest/esp32/installation.html">espressif webpage</a>.</p>
<h2 id="3-sd-card"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.3</span> 3. SD Card</h2> <h2 id="3-sd-card"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.3</span> 3. SD Card</h2>
@@ -1080,6 +1085,6 @@ After power on the connection status is indicated by 3x blinking of the red on b
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Parameters/" rel="prev"/> <link href="../Parameters/" rel="prev"/>
<link href="../External-LED/" rel="next"/> <link href="../External-LED/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Integration into Home Assistant - AI on the Edge Device</title> <title>Integration into Home Assistant - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -556,6 +556,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -737,86 +744,86 @@
<img alt="grafik" src="https://user-images.githubusercontent.com/1783586/199352619-217df627-4b87-4fa0-86a2-f5347c452fdb.png"/></img></p> <img alt="grafik" src="https://user-images.githubusercontent.com/1783586/199352619-217df627-4b87-4fa0-86a2-f5347c452fdb.png"/></img></p>
<h3 id="using-mqtt-manually-setup-entities"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.1</span> Using MQTT (Manually Setup Entities)</h3> <h3 id="using-mqtt-manually-setup-entities"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.1</span> Using MQTT (Manually Setup Entities)</h3>
<p>First make sure with an MQTT client (for example <a href="http://mqtt-explorer.com/">MQTT Explorer</a>) that MQTT works as expected and to get a list of the available topics!</p> <p>First make sure with an MQTT client (for example <a href="http://mqtt-explorer.com/">MQTT Explorer</a>) that MQTT works as expected and to get a list of the available topics!</p>
<p>Then add a sensor for each property:</p> <p>Then add a sensor for each property:
<pre><code class="language-yaml">mqtt: <div class="language-yaml highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="nt">mqtt</span><span class="p">:</span>
sensor: </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="w"> </span><span class="nt">sensor</span><span class="p">:</span>
- state_topic: "wasserzaehler/main/value" </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">state_topic</span><span class="p">:</span><span class="w"> </span><span class="s">"wasserzaehler/main/value"</span>
name: "Watermeter Value" </span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">Value"</span>
unique_id: watermeter_value </span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watermeter_value</span>
unit_of_measurement: 'm³' </span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s">'m³'</span>
state_class: total_increasing </span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a><span class="w"> </span><span class="nt">state_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">total_increasing</span>
device_class: water # Needs Home Assistant 2022.11! </span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="w"> </span><span class="nt">device_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">water</span><span class="w"> </span><span class="c1"># Needs Home Assistant 2022.11!</span>
icon: 'mdi:water-pump' </span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s">'mdi:water-pump'</span>
availability_topic: wasserzaehler/connection </span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="w"> </span><span class="nt">availability_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/connection</span>
payload_available: connected </span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="w"> </span><span class="nt">payload_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connected</span>
payload_not_available: connection lost </span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="w"> </span><span class="nt">payload_not_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connection lost</span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a>
- state_topic: "wasserzaehler/main/rate" </span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">state_topic</span><span class="p">:</span><span class="w"> </span><span class="s">"wasserzaehler/main/rate"</span>
name: "Watermeter Rate" </span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">Rate"</span>
unique_id: watermeter_rate </span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watermeter_rate</span>
unit_of_measurement: 'm³/min' </span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s">'m³/min'</span>
state_class: measurement </span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="w"> </span><span class="nt">state_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">measurement</span>
device_class: water # Needs Home Assistant 2022.11! </span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="w"> </span><span class="nt">device_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">water</span><span class="w"> </span><span class="c1"># Needs Home Assistant 2022.11!</span>
icon: 'mdi:water-pump' </span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s">'mdi:water-pump'</span>
availability_topic: wasserzaehler/connection </span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a><span class="w"> </span><span class="nt">availability_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/connection</span>
payload_available: connected </span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="w"> </span><span class="nt">payload_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connected</span>
payload_not_available: connection lost </span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="w"> </span><span class="nt">payload_not_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connection lost</span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a>
- state_topic: "wasserzaehler/main/error" </span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">state_topic</span><span class="p">:</span><span class="w"> </span><span class="s">"wasserzaehler/main/error"</span>
name: "Watermeter Error" </span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">Error"</span>
unique_id: watermeter_error </span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watermeter_error</span>
icon: "mdi:water-alert" </span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s">"mdi:water-alert"</span>
availability_topic: wasserzaehler/connection </span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="w"> </span><span class="nt">availability_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/connection</span>
payload_available: connected </span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="w"> </span><span class="nt">payload_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connected</span>
payload_not_available: connection lost </span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="w"> </span><span class="nt">payload_not_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connection lost</span><span class="w"> </span>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a>
- state_topic: "wasserzaehler/uptime" </span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">state_topic</span><span class="p">:</span><span class="w"> </span><span class="s">"wasserzaehler/uptime"</span>
name: "Watermeter Uptime" </span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">Uptime"</span>
unique_id: watermeter_uptime </span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watermeter_uptime</span>
unit_of_measurement: 's' </span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s">'s'</span>
state_class: measurement </span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="nt">state_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">measurement</span>
device_class: duration </span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="w"> </span><span class="nt">device_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">duration</span>
entity_category: diagnostic </span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="w"> </span><span class="nt">entity_category</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">diagnostic</span>
icon: "mdi:timer-outline" </span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s">"mdi:timer-outline"</span>
availability_topic: wasserzaehler/connection </span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="nt">availability_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/connection</span>
payload_available: connected </span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="w"> </span><span class="nt">payload_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connected</span>
payload_not_available: connection lost </span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="w"> </span><span class="nt">payload_not_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connection lost</span>
</code></pre> </span></code></pre></div>
<p>If you run the discovery once, you can also extract the information from there (MQTT Info, untested):</p> If you run the discovery once, you can also extract the information from there (MQTT Info, untested):
<pre><code class="language-yaml">mqtt: # Extracted form the Discovery but untested! <div class="language-yaml highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="nt">mqtt</span><span class="p">:</span><span class="w"> </span><span class="c1"># Extracted form the Discovery but untested!</span>
sensor: </span><span id="__span-1-2"><a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="w"> </span><span class="nt">sensor</span><span class="p">:</span>
- name: Value </span><span id="__span-1-3"><a href="#__codelineno-1-3" id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Value</span>
unique_id: wasserzaehler-main_value </span><span id="__span-1-4"><a href="#__codelineno-1-4" id="__codelineno-1-4" name="__codelineno-1-4"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler-main_value</span>
icon: mdi:gauge </span><span id="__span-1-5"><a href="#__codelineno-1-5" id="__codelineno-1-5" name="__codelineno-1-5"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mdi:gauge</span>
state_topic: wasserzaehler/main/value </span><span id="__span-1-6"><a href="#__codelineno-1-6" id="__codelineno-1-6" name="__codelineno-1-6"></a><span class="w"> </span><span class="nt">state_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/main/value</span>
unit_of_measurement: m³ </span><span id="__span-1-7"><a href="#__codelineno-1-7" id="__codelineno-1-7" name="__codelineno-1-7"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain"></span>
device_class: water </span><span id="__span-1-8"><a href="#__codelineno-1-8" id="__codelineno-1-8" name="__codelineno-1-8"></a><span class="w"> </span><span class="nt">device_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">water</span>
state_class: total_increasing </span><span id="__span-1-9"><a href="#__codelineno-1-9" id="__codelineno-1-9" name="__codelineno-1-9"></a><span class="w"> </span><span class="nt">state_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">total_increasing</span>
availability_topic: wasserzaehler/connection </span><span id="__span-1-10"><a href="#__codelineno-1-10" id="__codelineno-1-10" name="__codelineno-1-10"></a><span class="w"> </span><span class="nt">availability_topic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">wasserzaehler/connection</span>
payload_available: connected </span><span id="__span-1-11"><a href="#__codelineno-1-11" id="__codelineno-1-11" name="__codelineno-1-11"></a><span class="w"> </span><span class="nt">payload_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connected</span>
payload_not_available: connection lost </span><span id="__span-1-12"><a href="#__codelineno-1-12" id="__codelineno-1-12" name="__codelineno-1-12"></a><span class="w"> </span><span class="nt">payload_not_available</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">connection lost</span>
</code></pre> </span></code></pre></div></p>
<p>If you want to convert the <code></code> to <code>l</code>, use a template sensor:</p> <p>If you want to convert the <code></code> to <code>l</code>, use a template sensor:
<pre><code class="language-yaml">template: <div class="language-yaml highlight"><pre><span></span><code><span id="__span-2-1"><a href="#__codelineno-2-1" id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="nt">template</span><span class="p">:</span>
- sensor: </span><span id="__span-2-2"><a href="#__codelineno-2-2" id="__codelineno-2-2" name="__codelineno-2-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">sensor</span><span class="p">:</span>
- name: "Watermeter in l" </span><span id="__span-2-3"><a href="#__codelineno-2-3" id="__codelineno-2-3" name="__codelineno-2-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">in</span><span class="nv"> </span><span class="s">l"</span>
unique_id: watermeter_in_l </span><span id="__span-2-4"><a href="#__codelineno-2-4" id="__codelineno-2-4" name="__codelineno-2-4"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">watermeter_in_l</span>
icon: "mdi:gauge" </span><span id="__span-2-5"><a href="#__codelineno-2-5" id="__codelineno-2-5" name="__codelineno-2-5"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="s">"mdi:gauge"</span>
state: "{{ states('sensor.watermeter_value')|float(default=0) * 1000 }}" # Convert 1 m3 =&gt; 1000 l </span><span id="__span-2-6"><a href="#__codelineno-2-6" id="__codelineno-2-6" name="__codelineno-2-6"></a><span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">states('sensor.watermeter_value')|float(default=0)</span><span class="nv"> </span><span class="s">*</span><span class="nv"> </span><span class="s">1000</span><span class="nv"> </span><span class="s">}}"</span><span class="w"> </span><span class="c1"># Convert 1 m3 =&gt; 1000 l</span>
unit_of_measurement: l </span><span id="__span-2-7"><a href="#__codelineno-2-7" id="__codelineno-2-7" name="__codelineno-2-7"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">l</span>
availability: "{{ states('sensor.watermeter_value') not in ['unknown', 'unavailable', 'none'] }}" </span><span id="__span-2-8"><a href="#__codelineno-2-8" id="__codelineno-2-8" name="__codelineno-2-8"></a><span class="w"> </span><span class="nt">availability</span><span class="p">:</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">states('sensor.watermeter_value')</span><span class="nv"> </span><span class="s">not</span><span class="nv"> </span><span class="s">in</span><span class="nv"> </span><span class="s">['unknown',</span><span class="nv"> </span><span class="s">'unavailable',</span><span class="nv"> </span><span class="s">'none']</span><span class="nv"> </span><span class="s">}}"</span>
</code></pre> </span></code></pre></div></p>
<p>If you you want to have the consumption per day, you can use an <a href="https://www.home-assistant.io/integrations/utility_meter/">Utility Meter</a>. <p>If you you want to have the consumption per day, you can use an <a href="https://www.home-assistant.io/integrations/utility_meter/">Utility Meter</a>.
it is a helper and can be used to reset the total increasing values once a day</p> it is a helper and can be used to reset the total increasing values once a day</p>
<pre><code class="language-yaml">utility_meter: <div class="language-yaml highlight"><pre><span></span><code><span id="__span-3-1"><a href="#__codelineno-3-1" id="__codelineno-3-1" name="__codelineno-3-1"></a><span class="nt">utility_meter</span><span class="p">:</span>
utility_meter_gas_per_day: </span><span id="__span-3-2"><a href="#__codelineno-3-2" id="__codelineno-3-2" name="__codelineno-3-2"></a><span class="w"> </span><span class="nt">utility_meter_gas_per_day</span><span class="p">:</span>
source: sensor.gasmeter_value </span><span id="__span-3-3"><a href="#__codelineno-3-3" id="__codelineno-3-3" name="__codelineno-3-3"></a><span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">sensor.gasmeter_value</span>
cycle: daily </span><span id="__span-3-4"><a href="#__codelineno-3-4" id="__codelineno-3-4" name="__codelineno-3-4"></a><span class="w"> </span><span class="nt">cycle</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">daily</span>
</span><span id="__span-3-5"><a href="#__codelineno-3-5" id="__codelineno-3-5" name="__codelineno-3-5"></a>
utility_meter_water_per_day: </span><span id="__span-3-6"><a href="#__codelineno-3-6" id="__codelineno-3-6" name="__codelineno-3-6"></a><span class="w"> </span><span class="nt">utility_meter_water_per_day</span><span class="p">:</span>
source: sensor.watermeter_value </span><span id="__span-3-7"><a href="#__codelineno-3-7" id="__codelineno-3-7" name="__codelineno-3-7"></a><span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">sensor.watermeter_value</span>
cycle: daily </span><span id="__span-3-8"><a href="#__codelineno-3-8" id="__codelineno-3-8" name="__codelineno-3-8"></a><span class="w"> </span><span class="nt">cycle</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">daily</span>
</code></pre> </span></code></pre></div>
<p>Note that you also can add it using the UI.</p> <p>Note that you also can add it using the UI.</p>
<h3 id="examples"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.2</span> Examples</h3> <h3 id="examples"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.2</span> Examples</h3>
<p><img alt="grafik" src="https://user-images.githubusercontent.com/1783586/193472069-4135736e-e63a-4afb-8009-5b97aa5c9ac5.png"/></p> <p><img alt="grafik" src="https://user-images.githubusercontent.com/1783586/193472069-4135736e-e63a-4afb-8009-5b97aa5c9ac5.png"/></p>
@@ -827,64 +834,63 @@ it is a helper and can be used to reset the total increasing values once a day</
<p>Note that there seems to be a bug in the graph, see <a href="https://github.com/home-assistant/frontend/issues/13995">https://github.com/home-assistant/frontend/issues/13995</a>!</p> <p>Note that there seems to be a bug in the graph, see <a href="https://github.com/home-assistant/frontend/issues/13995">https://github.com/home-assistant/frontend/issues/13995</a>!</p>
<h3 id="influxdb-graphs"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.4</span> InfluxDb Graphs</h3> <h3 id="influxdb-graphs"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.4</span> InfluxDb Graphs</h3>
<p>See also <a href="../Influx-DB">Influx-DB</a>.</p> <p>See also <a href="../Influx-DB">Influx-DB</a>.</p>
<p>If you have setup InfluxDB already, it is also possible to fetch statistics from there, e.g. daily usage:</p> <p>If you have setup InfluxDB already, it is also possible to fetch statistics from there, e.g. daily usage:
<pre><code>from(bucket: "HomeAssistant") <div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a href="#__codelineno-4-1" id="__codelineno-4-1" name="__codelineno-4-1"></a>from(bucket: "HomeAssistant")
|&gt; range(start: v.timeRangeStart, stop: v.timeRangeStop) </span><span id="__span-4-2"><a href="#__codelineno-4-2" id="__codelineno-4-2" name="__codelineno-4-2"></a>|&gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)
|&gt; filter(fn: (r) =&gt; r["entity_id"] == "wasserverbrauch_tag") </span><span id="__span-4-3"><a href="#__codelineno-4-3" id="__codelineno-4-3" name="__codelineno-4-3"></a> |&gt; filter(fn: (r) =&gt; r["entity_id"] == "wasserverbrauch_tag")
|&gt; filter(fn: (r) =&gt; r["_field"] == "value") </span><span id="__span-4-4"><a href="#__codelineno-4-4" id="__codelineno-4-4" name="__codelineno-4-4"></a> |&gt; filter(fn: (r) =&gt; r["_field"] == "value")
|&gt; timeShift(duration: -1d) </span><span id="__span-4-5"><a href="#__codelineno-4-5" id="__codelineno-4-5" name="__codelineno-4-5"></a> |&gt; timeShift(duration: -1d)
|&gt; aggregateWindow(every: 1d, fn: max, createEmpty: false) </span><span id="__span-4-6"><a href="#__codelineno-4-6" id="__codelineno-4-6" name="__codelineno-4-6"></a> |&gt; aggregateWindow(every: 1d, fn: max, createEmpty: false)
|&gt; yield(name: "mean") </span><span id="__span-4-7"><a href="#__codelineno-4-7" id="__codelineno-4-7" name="__codelineno-4-7"></a> |&gt; yield(name: "mean")
</code></pre> </span></code></pre></div></p>
<p><img alt="grafik" src="https://user-images.githubusercontent.com/1783586/193473347-c81fc301-c52f-4af0-9fcb-56fab12cacac.png"/></p> <p><img alt="grafik" src="https://user-images.githubusercontent.com/1783586/193473347-c81fc301-c52f-4af0-9fcb-56fab12cacac.png"/></p>
<h2 id="using-rest"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> Using REST</h2> <h2 id="using-rest"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> Using REST</h2>
<p>When using REST, Home Assistant has to periodically call an URL on the ESP32 which in return provides the requested data.</p> <p>When using REST, Home Assistant has to periodically call an URL on the ESP32 which in return provides the requested data.</p>
<p>See <a href="../REST-API">REST API</a> for a list of available URLs.</p> <p>See <a href="../REST-API">REST API</a> for a list of available URLs.</p>
<p>The most practical one is the <code>json</code> entrypoint which provides the most relevant data JSON formatted: <p>The most practical one is the <code>json</code> entrypoint which provides the most relevant data JSON formatted:
<code>http://&lt;IP&gt;/json</code> <code>http://&lt;IP&gt;/json</code>
This would return:</p> This would return:
<pre><code class="language-JSON">{ <div class="language-JSON highlight"><pre><span></span><code><span id="__span-5-1"><a href="#__codelineno-5-1" id="__codelineno-5-1" name="__codelineno-5-1"></a><span class="p">{</span>
"main": </span><span id="__span-5-2"><a href="#__codelineno-5-2" id="__codelineno-5-2" name="__codelineno-5-2"></a><span class="nt">"main"</span><span class="p">:</span>
{ </span><span id="__span-5-3"><a href="#__codelineno-5-3" id="__codelineno-5-3" name="__codelineno-5-3"></a><span class="w"> </span><span class="p">{</span>
"value": "512.3020", </span><span id="__span-5-4"><a href="#__codelineno-5-4" id="__codelineno-5-4" name="__codelineno-5-4"></a><span class="w"> </span><span class="nt">"value"</span><span class="p">:</span><span class="w"> </span><span class="s2">"512.3020"</span><span class="p">,</span>
"raw": "0512.3020", </span><span id="__span-5-5"><a href="#__codelineno-5-5" id="__codelineno-5-5" name="__codelineno-5-5"></a><span class="w"> </span><span class="nt">"raw"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0512.3020"</span><span class="p">,</span>
"error": "no error", </span><span id="__span-5-6"><a href="#__codelineno-5-6" id="__codelineno-5-6" name="__codelineno-5-6"></a><span class="w"> </span><span class="nt">"error"</span><span class="p">:</span><span class="w"> </span><span class="s2">"no error"</span><span class="p">,</span>
"rate": 0.000000, </span><span id="__span-5-7"><a href="#__codelineno-5-7" id="__codelineno-5-7" name="__codelineno-5-7"></a><span class="w"> </span><span class="nt">"rate"</span><span class="p">:</span><span class="w"> </span><span class="mf">0.000000</span><span class="p">,</span>
"timestamp": "2022-10-02T20:32:06" </span><span id="__span-5-8"><a href="#__codelineno-5-8" id="__codelineno-5-8" name="__codelineno-5-8"></a><span class="w"> </span><span class="nt">"timestamp"</span><span class="p">:</span><span class="w"> </span><span class="s2">"2022-10-02T20:32:06"</span>
[..] </span><span id="__span-5-9"><a href="#__codelineno-5-9" id="__codelineno-5-9" name="__codelineno-5-9"></a><span class="w"> </span><span class="p">[</span><span class="err">..</span><span class="p">]</span>
} </span><span id="__span-5-10"><a href="#__codelineno-5-10" id="__codelineno-5-10" name="__codelineno-5-10"></a><span class="w"> </span><span class="p">}</span>
} </span><span id="__span-5-11"><a href="#__codelineno-5-11" id="__codelineno-5-11" name="__codelineno-5-11"></a><span class="p">}</span>
</code></pre> </span></code></pre></div></p>
<p>To do such a REST call, you need to create a REST sensor:</p> <p>To do such a REST call, you need to create a REST sensor:
<pre><code class="language-yaml">sensor: <div class="language-yaml highlight"><pre><span></span><code><span id="__span-6-1"><a href="#__codelineno-6-1" id="__codelineno-6-1" name="__codelineno-6-1"></a><span class="nt">sensor</span><span class="p">:</span>
</span><span id="__span-6-2"><a href="#__codelineno-6-2" id="__codelineno-6-2" name="__codelineno-6-2"></a>
- platform: rest </span><span id="__span-6-3"><a href="#__codelineno-6-3" id="__codelineno-6-3" name="__codelineno-6-3"></a><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">platform</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rest</span>
name: "Gasmeter JSON" </span><span id="__span-6-4"><a href="#__codelineno-6-4" id="__codelineno-6-4" name="__codelineno-6-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Gasmeter</span><span class="nv"> </span><span class="s">JSON"</span><span class="w"> </span>
resource: http://&lt;IP&gt;/json </span><span id="__span-6-5"><a href="#__codelineno-6-5" id="__codelineno-6-5" name="__codelineno-6-5"></a><span class="w"> </span><span class="nt">resource</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">http://&lt;IP&gt;/json</span>
json_attributes: </span><span id="__span-6-6"><a href="#__codelineno-6-6" id="__codelineno-6-6" name="__codelineno-6-6"></a><span class="w"> </span><span class="nt">json_attributes</span><span class="p">:</span>
- main </span><span id="__span-6-7"><a href="#__codelineno-6-7" id="__codelineno-6-7" name="__codelineno-6-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">main</span>
value_template: '{{ value_json.value }}' </span><span id="__span-6-8"><a href="#__codelineno-6-8" id="__codelineno-6-8" name="__codelineno-6-8"></a><span class="w"> </span><span class="nt">value_template</span><span class="p">:</span><span class="w"> </span><span class="s">'{{</span><span class="nv"> </span><span class="s">value_json.value</span><span class="nv"> </span><span class="s">}}'</span>
headers: </span><span id="__span-6-9"><a href="#__codelineno-6-9" id="__codelineno-6-9" name="__codelineno-6-9"></a><span class="w"> </span><span class="nt">headers</span><span class="p">:</span>
Content-Type: application/json </span><span id="__span-6-10"><a href="#__codelineno-6-10" id="__codelineno-6-10" name="__codelineno-6-10"></a><span class="w"> </span><span class="nt">Content-Type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">application/json</span>
scan_interval: 60 </span><span id="__span-6-11"><a href="#__codelineno-6-11" id="__codelineno-6-11" name="__codelineno-6-11"></a><span class="w"> </span><span class="nt">scan_interval</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">60</span>
</span><span id="__span-6-12"><a href="#__codelineno-6-12" id="__codelineno-6-12" name="__codelineno-6-12"></a>
template: </span><span id="__span-6-13"><a href="#__codelineno-6-13" id="__codelineno-6-13" name="__codelineno-6-13"></a><span class="nt">template</span><span class="p">:</span>
sensor: </span><span id="__span-6-14"><a href="#__codelineno-6-14" id="__codelineno-6-14" name="__codelineno-6-14"></a><span class="w"> </span><span class="nt">sensor</span><span class="p">:</span>
- name: "Gasmeter Value from JSON" </span><span id="__span-6-15"><a href="#__codelineno-6-15" id="__codelineno-6-15" name="__codelineno-6-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Gasmeter</span><span class="nv"> </span><span class="s">Value</span><span class="nv"> </span><span class="s">from</span><span class="nv"> </span><span class="s">JSON"</span>
unique_id: gas_meter_value_from_json </span><span id="__span-6-16"><a href="#__codelineno-6-16" id="__codelineno-6-16" name="__codelineno-6-16"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gas_meter_value_from_json</span>
state: "{{ state_attr('sensor.gasmeter_json','main')['value'] }}" </span><span id="__span-6-17"><a href="#__codelineno-6-17" id="__codelineno-6-17" name="__codelineno-6-17"></a><span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="s">"{{</span><span class="nv"> </span><span class="s">state_attr('sensor.gasmeter_json','main')['value']</span><span class="nv"> </span><span class="s">}}"</span>
unit_of_measurement: 'm³' </span><span id="__span-6-18"><a href="#__codelineno-6-18" id="__codelineno-6-18" name="__codelineno-6-18"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s">'m³'</span>
</span><span id="__span-6-19"><a href="#__codelineno-6-19" id="__codelineno-6-19" name="__codelineno-6-19"></a>
- name: "Watermeter Value from JSON" </span><span id="__span-6-20"><a href="#__codelineno-6-20" id="__codelineno-6-20" name="__codelineno-6-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="s">"Watermeter</span><span class="nv"> </span><span class="s">Value</span><span class="nv"> </span><span class="s">from</span><span class="nv"> </span><span class="s">JSON"</span>
unique_id: water_meter_value_from_json </span><span id="__span-6-21"><a href="#__codelineno-6-21" id="__codelineno-6-21" name="__codelineno-6-21"></a><span class="w"> </span><span class="nt">unique_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">water_meter_value_from_json</span>
state: &gt;- </span><span id="__span-6-22"><a href="#__codelineno-6-22" id="__codelineno-6-22" name="__codelineno-6-22"></a><span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">&gt;-</span>
{{ state_attr('sensor.watermeter_json','main')['value'] | float }} </span><span id="__span-6-23"><a href="#__codelineno-6-23" id="__codelineno-6-23" name="__codelineno-6-23"></a><span class="w"> </span><span class="no">{{ state_attr('sensor.watermeter_json','main')['value'] | float }}</span>
unit_of_measurement: 'm³' </span><span id="__span-6-24"><a href="#__codelineno-6-24" id="__codelineno-6-24" name="__codelineno-6-24"></a><span class="w"> </span><span class="nt">unit_of_measurement</span><span class="p">:</span><span class="w"> </span><span class="s">'m³'</span>
device_class: water </span><span id="__span-6-25"><a href="#__codelineno-6-25" id="__codelineno-6-25" name="__codelineno-6-25"></a><span class="w"> </span><span class="nt">device_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">water</span>
state_class: total_increasing </span><span id="__span-6-26"><a href="#__codelineno-6-26" id="__codelineno-6-26" name="__codelineno-6-26"></a><span class="w"> </span><span class="nt">state_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">total_increasing</span>
icon: mdi:gauge </span><span id="__span-6-27"><a href="#__codelineno-6-27" id="__codelineno-6-27" name="__codelineno-6-27"></a><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">mdi:gauge</span>
</span></code></pre></div></p>
</code></pre>
<p>The 2nd way is to use the html api call from value.html : </p> <p>The 2nd way is to use the html api call from value.html : </p>
<p><code>sensor: <p><code>sensor:
- platform: rest - platform: rest
@@ -925,6 +931,6 @@ template:
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../collect-new-images/" rel="prev"/> <link href="../collect-new-images/" rel="prev"/>
<link href="../Correction%20Algorithm/" rel="next"/> <link href="../Correction%20Algorithm/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Learn a model with your own images - AI on the Edge Device</title> <title>Learn a model with your own images - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -527,6 +527,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -663,8 +670,8 @@
<h3 id="dig-class11-models-digits"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1</span> dig-class11 models (digits)</h3> <h3 id="dig-class11-models-digits"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.1</span> dig-class11 models (digits)</h3>
<p>Fork and checkout <a href="https://github.com/jomjol/neural-network-digital-counter-readout">neural-network-digital-counter-readout</a>.</p> <p>Fork and checkout <a href="https://github.com/jomjol/neural-network-digital-counter-readout">neural-network-digital-counter-readout</a>.</p>
<p>Install all requirements for running the notebooks.</p> <p>Install all requirements for running the notebooks.</p>
<pre><code class="language-shell">pip install -r requirements.txt <div class="language-shell highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
</code></pre> </span></code></pre></div>
<p>Put your labeled images into <code>/ziffer_sortiert_raw</code> folder and run</p> <p>Put your labeled images into <code>/ziffer_sortiert_raw</code> folder and run</p>
<ol> <ol>
<li><a href="https://github.com/jomjol/neural-network-digital-counter-readout/blob/master/Image_Preparation.ipynb">Image_Preparation.ipynb</a></li> <li><a href="https://github.com/jomjol/neural-network-digital-counter-readout/blob/master/Image_Preparation.ipynb">Image_Preparation.ipynb</a></li>
@@ -675,16 +682,16 @@
<p>Fork and checkout <a href="https://github.com/jomjol/neural-network-digital-counter-readout">neural-network-digital-counter-readout</a>.</p> <p>Fork and checkout <a href="https://github.com/jomjol/neural-network-digital-counter-readout">neural-network-digital-counter-readout</a>.</p>
<p>All labeled images you can find under <a href="https://github.com/haverland/Tenth-of-step-of-a-meter-digit/tree/master/images">Images</a></p> <p>All labeled images you can find under <a href="https://github.com/haverland/Tenth-of-step-of-a-meter-digit/tree/master/images">Images</a></p>
<p>Install all requirements for running the notebooks.</p> <p>Install all requirements for running the notebooks.</p>
<pre><code class="language-shell">pip install -r requirements.txt <div class="language-shell highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
</code></pre> </span></code></pre></div>
<p>Put your labeled images into <code>images/collected/&lt;typeofdevice&gt;/&lt;your_short&gt;/</code></p> <p>Put your labeled images into <code>images/collected/&lt;typeofdevice&gt;/&lt;your_short&gt;/</code></p>
<p>Run <a href="https://github.com/haverland/Tenth-of-step-of-a-meter-digit/blob/master/dig-class100-s2.ipynb">dig-class100-s2.ipynb</a>. The model to upload to your device you can find under '/output'.</p> <p>Run <a href="https://github.com/haverland/Tenth-of-step-of-a-meter-digit/blob/master/dig-class100-s2.ipynb">dig-class100-s2.ipynb</a>. The model to upload to your device you can find under '/output'.</p>
<h3 id="ana-class100ana-cont-models-analog-pointers"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.3</span> ana-class100/ana-cont models (analog pointers)</h3> <h3 id="ana-class100ana-cont-models-analog-pointers"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.0.3</span> ana-class100/ana-cont models (analog pointers)</h3>
<p>Fork and checkout <a href="https://github.com/jomjol/neural-network-analog-needle-readout">neural-network-analog-needle-readout</a>.</p> <p>Fork and checkout <a href="https://github.com/jomjol/neural-network-analog-needle-readout">neural-network-analog-needle-readout</a>.</p>
<p>All labeled images you can find under <a href="https://github.com/jomjol/neural-network-analog-needle-readout/tree/main/data_raw_all">data_raw_all</a></p> <p>All labeled images you can find under <a href="https://github.com/jomjol/neural-network-analog-needle-readout/tree/main/data_raw_all">data_raw_all</a></p>
<p>Install all requirements for running the notebooks.</p> <p>Install all requirements for running the notebooks.</p>
<pre><code class="language-shell">pip install -r requirements.txt <div class="language-shell highlight"><pre><span></span><code><span id="__span-2-1"><a href="#__codelineno-2-1" id="__codelineno-2-1" name="__codelineno-2-1"></a>pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
</code></pre> </span></code></pre></div>
<p>Put your labeled images into <code>images/collected/&lt;typeofdevice&gt;/&lt;your_short&gt;/</code></p> <p>Put your labeled images into <code>images/collected/&lt;typeofdevice&gt;/&lt;your_short&gt;/</code></p>
<p>After every adding of images you need to run <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Image_Preparation.ipynb">Image_Preparation.ipynb</a> before you train the models.</p> <p>After every adding of images you need to run <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Image_Preparation.ipynb">Image_Preparation.ipynb</a> before you train the models.</p>
<p>Run <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Train_CNN_Analog-Readout_100-Small1_Dropout.ipynb">Train_CNN_Analog-Readout_100-Small1_Dropout.ipynb</a> and/or <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Train_CNN_Analog-Readout_Version-Small2.ipynb">Train_CNN_Analog-Readout_Version-Small2.ipynb</a>. The model to upload to your device you can find in the project folder.</p> <p>Run <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Train_CNN_Analog-Readout_100-Small1_Dropout.ipynb">Train_CNN_Analog-Readout_100-Small1_Dropout.ipynb</a> and/or <a href="https://github.com/jomjol/neural-network-analog-needle-readout/blob/main/Train_CNN_Analog-Readout_Version-Small2.ipynb">Train_CNN_Analog-Readout_Version-Small2.ipynb</a>. The model to upload to your device you can find in the project folder.</p>
@@ -715,6 +722,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../REST-API/" rel="prev"/> <link href="../REST-API/" rel="prev"/>
<link href="../Influx-DB/" rel="next"/> <link href="../Influx-DB/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>MQTT API - AI on the Edge Device</title> <title>MQTT API - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -585,6 +585,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -948,6 +955,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Correction%20Algorithm/" rel="prev"/> <link href="../Correction%20Algorithm/" rel="prev"/>
<link href="../Additional-Information/" rel="next"/> <link href="../Additional-Information/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Neural Network Types - AI on the Edge Device</title> <title>Neural Network Types - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -674,6 +674,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -1208,6 +1215,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Additional-Information/" rel="prev"/> <link href="../Additional-Information/" rel="prev"/>
<link href="../prometheus-openmetrics/" rel="next"/> <link href="../prometheus-openmetrics/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Notification about new Releases - AI on the Edge Device</title> <title>Notification about new Releases - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -513,6 +513,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -668,6 +675,6 @@ There are several ways for it:</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../ota/" rel="prev"/> <link href="../ota/" rel="prev"/>
<link href="../Integration-Home-Assistant/" rel="next"/> <link href="../Integration-Home-Assistant/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Parameters - AI on the Edge Device</title> <title>Parameters - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -1155,6 +1155,31 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="#section-webhook">1.14
<span class="md-ellipsis">
Section Webhook
</span>
</a>
<nav aria-label="Section Webhook" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#parameter-apikey">1.14.1
<span class="md-ellipsis">
Parameter ApiKey
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#parameter-uri_3">1.14.2
<span class="md-ellipsis">
Parameter Uri
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -1384,6 +1409,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -2362,6 +2394,31 @@
</ul> </ul>
</nav> </nav>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="#section-webhook">1.14
<span class="md-ellipsis">
Section Webhook
</span>
</a>
<nav aria-label="Section Webhook" class="md-nav">
<ul class="md-nav__list">
<li class="md-nav__item">
<a class="md-nav__link" href="#parameter-apikey">1.14.1
<span class="md-ellipsis">
Parameter ApiKey
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#parameter-uri_3">1.14.2
<span class="md-ellipsis">
Parameter Uri
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul> </ul>
</nav> </nav>
</div> </div>
@@ -3760,6 +3817,19 @@ In such case the time always starts at <code>01.01.1970</code> after each power
<p>Time zone in POSIX syntax (Europe/Berlin = <code>CET-1CEST,M3.5.0,M10.5.0/3</code> - incl. daylight saving) <p>Time zone in POSIX syntax (Europe/Berlin = <code>CET-1CEST,M3.5.0,M10.5.0/3</code> - incl. daylight saving)
Check the table on <code>http://&lt;DEVICE IP&gt;/timezones.html</code> to find the settings for your region.</p> Check the table on <code>http://&lt;DEVICE IP&gt;/timezones.html</code> to find the settings for your region.</p>
<hr style="border:2px solid"/> <hr style="border:2px solid"/>
<h2 id="section-webhook"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.14</span> Section <code>Webhook</code></h2>
<p><a id="Webhook-ApiKey"></a></p>
<h3 id="parameter-apikey"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.14.1</span> Parameter <code>ApiKey</code></h3>
<p>Section: <a href="#section-webhook">1.14 Webhook</a></p>
<p>Default Value: <code>undefined</code></p>
<p>ApiKey sent as Header</p>
<hr style="border:2px solid"/>
<p><a id="Webhook-Uri"></a></p>
<h3 id="parameter-uri_3"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.14.2</span> Parameter <code>Uri</code></h3>
<p>Section: <a href="#section-webhook">1.14 Webhook</a></p>
<p>Default Value: <code>undefined</code></p>
<p>URI of the HTTP Endpoint receiving requests, e.g. <code>http://192.168.1.1/watermeter/webhook</code>.</p>
<hr style="border:2px solid"/>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
@@ -3784,6 +3854,6 @@ Check the table on <code>http://&lt;DEVICE IP&gt;/timezones.html</code> to find
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Demo-Mode/" rel="prev"/> <link href="../Demo-Mode/" rel="prev"/>
<link href="../MQTT-API/" rel="next"/> <link href="../MQTT-API/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>REST API - AI on the Edge Device</title> <title>REST API - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -765,6 +765,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -1146,10 +1153,10 @@
- Set to given value (value &gt;= 0), e.g. <code>/setPreValue?numbers=main&amp;value=1234.5678</code><br/> - Set to given value (value &gt;= 0), e.g. <code>/setPreValue?numbers=main&amp;value=1234.5678</code><br/>
* <code>numbers=</code> Provide name of number sequence, e.g. main * <code>numbers=</code> Provide name of number sequence, e.g. main
* <code>value=</code> provide the value to be set</p> * <code>value=</code> provide the value to be set</p>
<pre><code> - Set to actual RAW value (value &lt; 0, a valid RAW value is mandatory), e.g. `/setPreValue?numbers=main&amp;value=-1` <div class="language-text highlight"><pre><span></span><code> - Set to actual RAW value (value &lt; 0, a valid RAW value is mandatory), e.g. `/setPreValue?numbers=main&amp;value=-1`
* `numbers=` Provide name of number sequence, e.g. main * `numbers=` Provide name of number sequence, e.g. main
* `value=` provide yna negative number * `value=` provide yna negative number
</code></pre> </code></pre></div>
<h3 id="gpio"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.3</span> GPIO</h3> <h3 id="gpio"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1.3</span> GPIO</h3>
<ul> <ul>
<li> <li>
@@ -1278,6 +1285,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Alignment/" rel="prev"/> <link href="../Alignment/" rel="prev"/>
<link href="../Configuration/" rel="next"/> <link href="../Configuration/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>ROIs (Regions of Interest) - AI on the Edge Device</title> <title>ROIs (Regions of Interest) - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -574,6 +574,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -940,6 +947,6 @@ Those models require a different ROI setup; <strong>the height must be set diffe
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../FAQs/" rel="prev"/> <link href="../FAQs/" rel="prev"/>
<link href="../Alignment/" rel="next"/> <link href="../Alignment/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Reference Image - AI on the Edge Device</title> <title>Reference Image - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -520,6 +520,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -734,6 +741,6 @@ There are various ways to deal with them:</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Testing/" rel="prev"/> <link href="../Testing/" rel="prev"/>
<link href="../outdated--Integrated-Functions/" rel="next"/> <link href="../outdated--Integrated-Functions/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Preparing for Release - AI on the Edge Device</title> <title>Preparing for Release - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -484,6 +484,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -625,10 +632,11 @@
<li>Best to wait for the GitHub action to run successfully </li> <li>Best to wait for the GitHub action to run successfully </li>
<li> <li>
<p>On <code>master</code> branch tag the version like <code>v11.3.1</code> and don't forget to push it:</p> <p>On <code>master</code> branch tag the version like <code>v11.3.1</code> and don't forget to push it:</p>
<p><code>git checkout master <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>git checkout master
git pull </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a>git pull
git tag v14.0.0 </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a>git tag v14.0.0
git push --tags</code></p> </span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a>git push --tags
</span></code></pre></div>
</li> </li>
<li> <li>
<p>Wait for the GitHub-Action of release creation. After all is done:</p> <p>Wait for the GitHub-Action of release creation. After all is done:</p>
@@ -665,6 +673,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Error-Codes/" rel="prev"/> <link href="../Error-Codes/" rel="prev"/>
<link href="../WLAN-disconnect-reason/" rel="next"/> <link href="../WLAN-disconnect-reason/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Board status LED (blink codes) - AI on the Edge Device</title> <title>Board status LED (blink codes) - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -485,6 +485,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -884,6 +891,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Upload-files-by-script/" rel="prev"/> <link href="../Upload-files-by-script/" rel="prev"/>
<link href="../Release-creation/" rel="next"/> <link href="../Release-creation/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Testing Option for VSCode - AI on the Edge Device</title> <title>Testing Option for VSCode - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -484,6 +484,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -700,6 +707,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Build-Instructions/" rel="prev"/> <link href="../Build-Instructions/" rel="prev"/>
<link href="../Testing/" rel="next"/> <link href="../Testing/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Scripted File Upload - AI on the Edge Device</title> <title>Scripted File Upload - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -484,6 +484,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -580,10 +587,10 @@
<div class="md-content" data-md-component="content"> <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset"> <article class="md-content__inner md-typeset">
<h1 id="scripted-file-upload"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.</span> Scripted File Upload</h1> <h1 id="scripted-file-upload"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.</span> Scripted File Upload</h1>
<p>To upload a file e.g. using <code>curl</code>, you first have to delete it and then upload it:</p> <p>To upload a file e.g. using <code>curl</code>, you first have to delete it and then upload it:
<pre><code>curl -d '' http://192.168.1.153/delete/html/index.html <div class="language-text highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>curl -d '' http://192.168.1.153/delete/html/index.html
curl --data-binary @ota_page.html http://192.168.1.153/upload/html/index.html </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a>curl --data-binary @ota_page.html http://192.168.1.153/upload/html/index.html
</code></pre> </span></code></pre></div></p>
</article> </article>
</div> </div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
@@ -608,6 +615,6 @@ curl --data-binary @ota_page.html http://192.168.1.153/upload/html/index.html
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../StatusLED-BlinkCodes/" rel="prev"/> <link href="../StatusLED-BlinkCodes/" rel="prev"/>
<link href="../Error-Debugging/" rel="next"/> <link href="../Error-Debugging/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>WLAN disconnect reasons - AI on the Edge Device</title> <title>WLAN disconnect reasons - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -485,6 +485,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -606,6 +613,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../rolling-installation/" rel="prev"/> <link href="../rolling-installation/" rel="prev"/>
<link href="../collect-new-images/" rel="next"/> <link href="../collect-new-images/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Analog/Digital Transition on Water Meters - AI on the Edge Device</title> <title>Analog/Digital Transition on Water Meters - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -527,6 +527,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -695,6 +702,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

698
Webhook/index.html Normal file
View File

@@ -0,0 +1,698 @@
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width,initial-scale=1" name="viewport"/>
<link href="https://jomjol.github.io/AI-on-the-edge-device-docs/Webhook/" rel="canonical"/>
<link href="../Influx-DB/" rel="prev"/>
<link href="../Build-Instructions/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Webhook - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
<link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
<link href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&amp;display=fallback" rel="stylesheet"/>
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body data-md-color-accent="indigo" data-md-color-primary="blue" data-md-color-scheme="default" dir="ltr">
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a class="md-skip" href="#webhook">1.
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav aria-label="Header" class="md-header__inner md-grid">
<a aria-label="AI on the Edge Device" class="md-header__button md-logo" data-md-component="logo" href=".." title="AI on the Edge Device">
<img alt="logo" src="../img/logo.svg"/>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
AI on the Edge Device
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Webhook
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input aria-label="Search" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Search" required="" spellcheck="false" type="text"/>
<label class="md-search__icon md-icon" for="__search">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"></path></svg>
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</label>
<nav aria-label="Search" class="md-search__options">
<button aria-label="Clear" class="md-search__icon md-icon" tabindex="-1" title="Clear" type="reset">
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"></path></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0">
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a class="md-source" data-md-component="source" href="https://github.com/jomjol/AI-on-the-edge-device-docs" title="Go to repository">
<div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Navigation" class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a aria-label="AI on the Edge Device" class="md-nav__button md-logo" data-md-component="logo" href=".." title="AI on the Edge Device">
<img alt="logo" src="../img/logo.svg"/>
</a>
AI on the Edge Device
</label>
<div class="md-nav__source">
<a class="md-source" data-md-component="source" href="https://github.com/jomjol/AI-on-the-edge-device-docs" title="Go to repository">
<div class="md-source__icon md-icon">
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/>
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
<span class="md-ellipsis">
Getting Started
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
Getting Started
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="..">
<span class="md-ellipsis">
Welcome
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Installation/">
<span class="md-ellipsis">
Installation
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../initial-setup/">
<span class="md-ellipsis">
Initial Setup
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Hardware-Compatibility/">
<span class="md-ellipsis">
Hardware Compatibility
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Best-Practice/">
<span class="md-ellipsis">
Best Practice
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../FAQs/">
<span class="md-ellipsis">
Frequently Asked Questions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_2" type="checkbox"/>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
<span class="md-ellipsis">
Configuration
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_2_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Configuration
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../Reference-Image/">
<span class="md-ellipsis">
Reference Image
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Alignment/">
<span class="md-ellipsis">
Alignment References
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../ROI-Configuration/">
<span class="md-ellipsis">
ROIs (Regions of Interest)
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Configuration/">
<span class="md-ellipsis">
Graphical Configuration
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Choosing-the-Model/">
<span class="md-ellipsis">
Model Selection
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../ota/">
<span class="md-ellipsis">
Over-The-Air (OTA) Update
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_3" type="checkbox"/>
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Advanced
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_3_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Advanced
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../Parameters/">
<span class="md-ellipsis">
Parameters
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Integration-Home-Assistant/">
<span class="md-ellipsis">
Integration into Home Assistant
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../External-LED/">
<span class="md-ellipsis">
External LED
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../data-logging/">
<span class="md-ellipsis">
Data Logging
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../rolling-installation/">
<span class="md-ellipsis">
Living on the Edge
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Watermeter-specific-analog---digital-transition/">
<span class="md-ellipsis">
Analog/Digital Transition on Water Meters
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../collect-new-images/">
<span class="md-ellipsis">
Collect images to improve the models
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Learn-models-with-your-own-images/">
<span class="md-ellipsis">
Learn a model with your own images
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Correction%20Algorithm/">
<span class="md-ellipsis">
Correction Algorithm
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Neural-Network-Types/">
<span class="md-ellipsis">
Neural Network Types
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Additional-Information/">
<span class="md-ellipsis">
Additional Information
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../New-Releases-Notification/">
<span class="md-ellipsis">
Notification about new Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../prometheus-openmetrics/">
<span class="md-ellipsis">
Prometheus/OpenMetrics
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_4" type="checkbox"/>
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Troubleshooting
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_4_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Troubleshooting
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../Error-Codes/">
<span class="md-ellipsis">
Reduced webinterface (error codes)
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../StatusLED-BlinkCodes/">
<span class="md-ellipsis">
Board status LED (blink codes)
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../WLAN-disconnect-reason/">
<span class="md-ellipsis">
WLAN disconnect reasons
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Error-Debugging/">
<span class="md-ellipsis">
Often observed issues
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Frequent-Reboots/">
<span class="md-ellipsis">
Basic hardware/config issues
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Demo-Mode/">
<span class="md-ellipsis">
Demo mode
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_5" type="checkbox"/>
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
<span class="md-ellipsis">
Quick Links
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_5_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_5">
<span class="md-nav__icon md-icon"></span>
Quick Links
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="https://github.com/jomjol/AI-on-the-edge-device/releases">
<span class="md-ellipsis">
Releases
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="https://jomjol.github.io/AI-on-the-edge-device/index.html">
<span class="md-ellipsis">
Web Installer/Console
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="https://github.com/jomjol/AI-on-the-edge-device/issues">
<span class="md-ellipsis">
Create an Issue
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="https://github.com/jomjol/AI-on-the-edge-device/discussions">
<span class="md-ellipsis">
Join a Discussion
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input checked="" class="md-nav__toggle md-toggle" id="__nav_6" type="checkbox"/>
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
<span class="md-ellipsis">
API's
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="true" aria-labelledby="__nav_6_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_6">
<span class="md-nav__icon md-icon"></span>
API's
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../REST-API/">
<span class="md-ellipsis">
REST API
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../MQTT-API/">
<span class="md-ellipsis">
MQTT API
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Influx-DB/">
<span class="md-ellipsis">
Influx DB
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
<a class="md-nav__link md-nav__link--active" href="./">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
<span class="md-ellipsis">
Development
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_7">
<span class="md-nav__icon md-icon"></span>
Development
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../Build-Instructions/">
<span class="md-ellipsis">
Build the Project
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Upload-files-by-script/">
<span class="md-ellipsis">
Scripted File Upload
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Testing/">
<span class="md-ellipsis">
Testing Option for VSCode
</span>
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Release-creation/">
<span class="md-ellipsis">
Preparing for Release
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
<span class="md-ellipsis">
Old Pages (no longer maintained)
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
<label class="md-nav__title" for="__nav_8">
<span class="md-nav__icon md-icon"></span>
Old Pages (no longer maintained)
</label>
<ul class="md-nav__list" data-md-scrollfix="">
<li class="md-nav__item">
<a class="md-nav__link" href="../outdated--Integrated-Functions/">
<span class="md-ellipsis">
Integrated Functions
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="..">
<span class="md-ellipsis">
Assorted Pages
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav aria-label="Table of contents" class="md-nav md-nav--secondary">
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="webhook"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.</span> Webhook</h1>
<p>Comming soon.
See <a href="https://github.com/jomjol/AI-on-the-edge-device/pull/3163">https://github.com/jomjol/AI-on-the-edge-device/pull/3163</a> and <a href="https://github.com/jomjol/AI-on-the-edge-device/pull/3174">https://github.com/jomjol/AI-on-the-edge-device/pull/3174</a></p>
<p>@RaHehl Please add some explanations.
Also I think it would be great to add the PHP examples:
<div class="language-PHP highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a><span class="cp">&lt;?php</span>
</span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="nv">$expectedApiKey</span> <span class="o">=</span> <span class="s1">'testtest2'</span><span class="p">;</span>
</span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a>
</span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a><span class="nv">$receivedApiKey</span> <span class="o">=</span> <span class="nb">isset</span><span class="p">(</span><span class="nv">$_SERVER</span><span class="p">[</span><span class="s1">'HTTP_APIKEY'</span><span class="p">])</span> <span class="o">?</span> <span class="nv">$_SERVER</span><span class="p">[</span><span class="s1">'HTTP_APIKEY'</span><span class="p">]</span> <span class="o">:</span> <span class="s1">''</span><span class="p">;</span>
</span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a>
</span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="k">if</span> <span class="p">(</span><span class="nv">$receivedApiKey</span> <span class="o">!==</span> <span class="nv">$expectedApiKey</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">403</span><span class="p">);</span> <span class="c1">// 403 Forbidden</span>
</span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Invalid API key'</span><span class="p">]);</span>
</span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a> <span class="k">exit</span><span class="p">;</span>
</span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a><span class="p">}</span>
</span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a>
</span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="nv">$method</span> <span class="o">=</span> <span class="nv">$_SERVER</span><span class="p">[</span><span class="s1">'REQUEST_METHOD'</span><span class="p">];</span>
</span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a>
</span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="k">if</span> <span class="p">(</span><span class="nv">$method</span> <span class="o">===</span> <span class="s1">'POST'</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a> <span class="c1">// Handle POST request: Write data to CSV</span>
</span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a> <span class="nv">$csvFile</span> <span class="o">=</span> <span class="s1">'webhook_log.csv'</span><span class="p">;</span>
</span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a>
</span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a> <span class="nv">$jsonData</span> <span class="o">=</span> <span class="nb">file_get_contents</span><span class="p">(</span><span class="s1">'php://input'</span><span class="p">);</span>
</span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a>
</span><span id="__span-0-20"><a href="#__codelineno-0-20" id="__codelineno-0-20" name="__codelineno-0-20"></a> <span class="nv">$dataArray</span> <span class="o">=</span> <span class="nb">json_decode</span><span class="p">(</span><span class="nv">$jsonData</span><span class="p">,</span> <span class="k">true</span><span class="p">);</span>
</span><span id="__span-0-21"><a href="#__codelineno-0-21" id="__codelineno-0-21" name="__codelineno-0-21"></a> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nv">$jsonData</span> <span class="o">||</span> <span class="o">!</span><span class="nb">is_array</span><span class="p">(</span><span class="nv">$dataArray</span><span class="p">))</span> <span class="p">{</span>
</span><span id="__span-0-22"><a href="#__codelineno-0-22" id="__codelineno-0-22" name="__codelineno-0-22"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">400</span><span class="p">);</span> <span class="c1">// 400 Bad Request</span>
</span><span id="__span-0-23"><a href="#__codelineno-0-23" id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Invalid JSON data'</span><span class="p">]);</span>
</span><span id="__span-0-24"><a href="#__codelineno-0-24" id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="k">exit</span><span class="p">;</span>
</span><span id="__span-0-25"><a href="#__codelineno-0-25" id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="p">}</span>
</span><span id="__span-0-26"><a href="#__codelineno-0-26" id="__codelineno-0-26" name="__codelineno-0-26"></a>
</span><span id="__span-0-27"><a href="#__codelineno-0-27" id="__codelineno-0-27" name="__codelineno-0-27"></a> <span class="nv">$csvHandle</span> <span class="o">=</span> <span class="nb">fopen</span><span class="p">(</span><span class="nv">$csvFile</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">);</span>
</span><span id="__span-0-28"><a href="#__codelineno-0-28" id="__codelineno-0-28" name="__codelineno-0-28"></a> <span class="k">if</span> <span class="p">(</span><span class="nv">$csvHandle</span> <span class="o">===</span> <span class="k">false</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-29"><a href="#__codelineno-0-29" id="__codelineno-0-29" name="__codelineno-0-29"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span> <span class="c1">// 500 Internal Server Error</span>
</span><span id="__span-0-30"><a href="#__codelineno-0-30" id="__codelineno-0-30" name="__codelineno-0-30"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Unable to open CSV file'</span><span class="p">]);</span>
</span><span id="__span-0-31"><a href="#__codelineno-0-31" id="__codelineno-0-31" name="__codelineno-0-31"></a> <span class="k">exit</span><span class="p">;</span>
</span><span id="__span-0-32"><a href="#__codelineno-0-32" id="__codelineno-0-32" name="__codelineno-0-32"></a> <span class="p">}</span>
</span><span id="__span-0-33"><a href="#__codelineno-0-33" id="__codelineno-0-33" name="__codelineno-0-33"></a>
</span><span id="__span-0-34"><a href="#__codelineno-0-34" id="__codelineno-0-34" name="__codelineno-0-34"></a> <span class="k">foreach</span> <span class="p">(</span><span class="nv">$dataArray</span> <span class="k">as</span> <span class="nv">$data</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-35"><a href="#__codelineno-0-35" id="__codelineno-0-35" name="__codelineno-0-35"></a> <span class="nv">$csvRow</span> <span class="o">=</span> <span class="p">[</span>
</span><span id="__span-0-36"><a href="#__codelineno-0-36" id="__codelineno-0-36" name="__codelineno-0-36"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'timestamp'</span><span class="p">],</span>
</span><span id="__span-0-37"><a href="#__codelineno-0-37" id="__codelineno-0-37" name="__codelineno-0-37"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'name'</span><span class="p">],</span>
</span><span id="__span-0-38"><a href="#__codelineno-0-38" id="__codelineno-0-38" name="__codelineno-0-38"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'rawValue'</span><span class="p">],</span>
</span><span id="__span-0-39"><a href="#__codelineno-0-39" id="__codelineno-0-39" name="__codelineno-0-39"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'value'</span><span class="p">],</span>
</span><span id="__span-0-40"><a href="#__codelineno-0-40" id="__codelineno-0-40" name="__codelineno-0-40"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'preValue'</span><span class="p">],</span>
</span><span id="__span-0-41"><a href="#__codelineno-0-41" id="__codelineno-0-41" name="__codelineno-0-41"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'rate'</span><span class="p">],</span>
</span><span id="__span-0-42"><a href="#__codelineno-0-42" id="__codelineno-0-42" name="__codelineno-0-42"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'changeAbsolute'</span><span class="p">],</span>
</span><span id="__span-0-43"><a href="#__codelineno-0-43" id="__codelineno-0-43" name="__codelineno-0-43"></a> <span class="nv">$data</span><span class="p">[</span><span class="s1">'error'</span><span class="p">]</span>
</span><span id="__span-0-44"><a href="#__codelineno-0-44" id="__codelineno-0-44" name="__codelineno-0-44"></a> <span class="p">];</span>
</span><span id="__span-0-45"><a href="#__codelineno-0-45" id="__codelineno-0-45" name="__codelineno-0-45"></a> <span class="nb">fputcsv</span><span class="p">(</span><span class="nv">$csvHandle</span><span class="p">,</span> <span class="nv">$csvRow</span><span class="p">);</span>
</span><span id="__span-0-46"><a href="#__codelineno-0-46" id="__codelineno-0-46" name="__codelineno-0-46"></a> <span class="p">}</span>
</span><span id="__span-0-47"><a href="#__codelineno-0-47" id="__codelineno-0-47" name="__codelineno-0-47"></a>
</span><span id="__span-0-48"><a href="#__codelineno-0-48" id="__codelineno-0-48" name="__codelineno-0-48"></a> <span class="nb">fclose</span><span class="p">(</span><span class="nv">$csvHandle</span><span class="p">);</span>
</span><span id="__span-0-49"><a href="#__codelineno-0-49" id="__codelineno-0-49" name="__codelineno-0-49"></a>
</span><span id="__span-0-50"><a href="#__codelineno-0-50" id="__codelineno-0-50" name="__codelineno-0-50"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">200</span><span class="p">);</span> <span class="c1">// 200 OK</span>
</span><span id="__span-0-51"><a href="#__codelineno-0-51" id="__codelineno-0-51" name="__codelineno-0-51"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'success'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Data written to CSV file'</span><span class="p">]);</span>
</span><span id="__span-0-52"><a href="#__codelineno-0-52" id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="p">}</span> <span class="k">elseif</span> <span class="p">(</span><span class="nv">$method</span> <span class="o">===</span> <span class="s1">'PUT'</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-53"><a href="#__codelineno-0-53" id="__codelineno-0-53" name="__codelineno-0-53"></a> <span class="c1">// Handle PUT request: Save image</span>
</span><span id="__span-0-54"><a href="#__codelineno-0-54" id="__codelineno-0-54" name="__codelineno-0-54"></a> <span class="nv">$imageFilePath</span> <span class="o">=</span> <span class="s1">'uploaded_image.jpg'</span><span class="p">;</span>
</span><span id="__span-0-55"><a href="#__codelineno-0-55" id="__codelineno-0-55" name="__codelineno-0-55"></a>
</span><span id="__span-0-56"><a href="#__codelineno-0-56" id="__codelineno-0-56" name="__codelineno-0-56"></a> <span class="nv">$imageData</span> <span class="o">=</span> <span class="nb">file_get_contents</span><span class="p">(</span><span class="s1">'php://input'</span><span class="p">);</span>
</span><span id="__span-0-57"><a href="#__codelineno-0-57" id="__codelineno-0-57" name="__codelineno-0-57"></a>
</span><span id="__span-0-58"><a href="#__codelineno-0-58" id="__codelineno-0-58" name="__codelineno-0-58"></a> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nv">$imageData</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-59"><a href="#__codelineno-0-59" id="__codelineno-0-59" name="__codelineno-0-59"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">400</span><span class="p">);</span> <span class="c1">// 400 Bad Request</span>
</span><span id="__span-0-60"><a href="#__codelineno-0-60" id="__codelineno-0-60" name="__codelineno-0-60"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'No image data received'</span><span class="p">]);</span>
</span><span id="__span-0-61"><a href="#__codelineno-0-61" id="__codelineno-0-61" name="__codelineno-0-61"></a> <span class="k">exit</span><span class="p">;</span>
</span><span id="__span-0-62"><a href="#__codelineno-0-62" id="__codelineno-0-62" name="__codelineno-0-62"></a> <span class="p">}</span>
</span><span id="__span-0-63"><a href="#__codelineno-0-63" id="__codelineno-0-63" name="__codelineno-0-63"></a>
</span><span id="__span-0-64"><a href="#__codelineno-0-64" id="__codelineno-0-64" name="__codelineno-0-64"></a> <span class="k">if</span> <span class="p">(</span><span class="nb">file_put_contents</span><span class="p">(</span><span class="nv">$imageFilePath</span><span class="p">,</span> <span class="nv">$imageData</span><span class="p">)</span> <span class="o">===</span> <span class="k">false</span><span class="p">)</span> <span class="p">{</span>
</span><span id="__span-0-65"><a href="#__codelineno-0-65" id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span> <span class="c1">// 500 Internal Server Error</span>
</span><span id="__span-0-66"><a href="#__codelineno-0-66" id="__codelineno-0-66" name="__codelineno-0-66"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Unable to save the image'</span><span class="p">]);</span>
</span><span id="__span-0-67"><a href="#__codelineno-0-67" id="__codelineno-0-67" name="__codelineno-0-67"></a> <span class="k">exit</span><span class="p">;</span>
</span><span id="__span-0-68"><a href="#__codelineno-0-68" id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="p">}</span>
</span><span id="__span-0-69"><a href="#__codelineno-0-69" id="__codelineno-0-69" name="__codelineno-0-69"></a>
</span><span id="__span-0-70"><a href="#__codelineno-0-70" id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">200</span><span class="p">);</span> <span class="c1">// 200 OK</span>
</span><span id="__span-0-71"><a href="#__codelineno-0-71" id="__codelineno-0-71" name="__codelineno-0-71"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'success'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Image uploaded successfully'</span><span class="p">]);</span>
</span><span id="__span-0-72"><a href="#__codelineno-0-72" id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
</span><span id="__span-0-73"><a href="#__codelineno-0-73" id="__codelineno-0-73" name="__codelineno-0-73"></a> <span class="c1">// Handle unsupported HTTP methods</span>
</span><span id="__span-0-74"><a href="#__codelineno-0-74" id="__codelineno-0-74" name="__codelineno-0-74"></a> <span class="nb">http_response_code</span><span class="p">(</span><span class="mi">405</span><span class="p">);</span> <span class="c1">// 405 Method Not Allowed</span>
</span><span id="__span-0-75"><a href="#__codelineno-0-75" id="__codelineno-0-75" name="__codelineno-0-75"></a> <span class="k">echo</span> <span class="nb">json_encode</span><span class="p">([</span><span class="s1">'status'</span> <span class="o">=&gt;</span> <span class="s1">'error'</span><span class="p">,</span> <span class="s1">'message'</span> <span class="o">=&gt;</span> <span class="s1">'Method not allowed'</span><span class="p">]);</span>
</span><span id="__span-0-76"><a href="#__codelineno-0-76" id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="p">}</span>
</span><span id="__span-0-77"><a href="#__codelineno-0-77" id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="cp">?&gt;</span>
</span></code></pre></div></p>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -9,7 +9,7 @@
<link href="../Watermeter-specific-analog---digital-transition/" rel="prev"/> <link href="../Watermeter-specific-analog---digital-transition/" rel="prev"/>
<link href="../Learn-models-with-your-own-images/" rel="next"/> <link href="../Learn-models-with-your-own-images/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Collect images to improve the models - AI on the Edge Device</title> <title>Collect images to improve the models - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -538,6 +538,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -730,6 +737,6 @@ Then search for two..three images of each digit (<strong>not more! :-)</strong>)
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../External-LED/" rel="prev"/> <link href="../External-LED/" rel="prev"/>
<link href="../rolling-installation/" rel="next"/> <link href="../rolling-installation/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Data Logging - AI on the Edge Device</title> <title>Data Logging - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -506,6 +506,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -644,6 +651,6 @@ the results of every round gets written to the SD-Card.</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -8,7 +8,7 @@
<link href="https://jomjol.github.io/AI-on-the-edge-device-docs/" rel="canonical"/> <link href="https://jomjol.github.io/AI-on-the-edge-device-docs/" rel="canonical"/>
<link href="Installation/" rel="next"/> <link href="Installation/" rel="next"/>
<link href="img/favicon.ico" rel="icon"/> <link href="img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Welcome - AI on the Edge Device</title> <title>Welcome - AI on the Edge Device</title>
<link href="assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -537,6 +537,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -746,6 +753,6 @@ Here a small selection:</p>
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": ".", "features": [], "search": "assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": ".", "features": [], "search": "assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../Installation/" rel="prev"/> <link href="../Installation/" rel="prev"/>
<link href="../Hardware-Compatibility/" rel="next"/> <link href="../Hardware-Compatibility/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Initial Setup - AI on the Edge Device</title> <title>Initial Setup - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -513,6 +513,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -679,6 +686,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -52,6 +52,7 @@ nav:
- REST-API.md - REST-API.md
- MQTT-API.md - MQTT-API.md
- Influx-DB.md - Influx-DB.md
- Webhook.md
# - ... # - ...
- Development: - Development:

View File

@@ -9,7 +9,7 @@
<link href="../Choosing-the-Model/" rel="prev"/> <link href="../Choosing-the-Model/" rel="prev"/>
<link href="../Parameters/" rel="next"/> <link href="../Parameters/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Over-The-Air (OTA) Update - AI on the Edge Device</title> <title>Over-The-Air (OTA) Update - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -524,6 +524,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -730,6 +737,6 @@ To do so, go to the menu <code>Settings &gt; Configuration</code> (after the upd
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -8,7 +8,7 @@
<link href="https://jomjol.github.io/AI-on-the-edge-device-docs/outdated--Integrated-Functions/" rel="canonical"/> <link href="https://jomjol.github.io/AI-on-the-edge-device-docs/outdated--Integrated-Functions/" rel="canonical"/>
<link href="../Release-creation/" rel="prev"/> <link href="../Release-creation/" rel="prev"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Integrated Functions - AI on the Edge Device</title> <title>Integrated Functions - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -483,6 +483,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -735,6 +742,6 @@ This can be used for a very simple web server for information or simple web page
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../New-Releases-Notification/" rel="prev"/> <link href="../New-Releases-Notification/" rel="prev"/>
<link href="../Error-Codes/" rel="next"/> <link href="../Error-Codes/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Prometheus/OpenMetrics - AI on the Edge Device</title> <title>Prometheus/OpenMetrics - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -513,6 +513,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -630,35 +637,35 @@
<h1 id="prometheusopenmetrics"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.</span> Prometheus/OpenMetrics</h1> <h1 id="prometheusopenmetrics"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.</span> Prometheus/OpenMetrics</h1>
<p>A set of metrics is exported via the <code>/metrics</code> REST API path on the device. Besides the current value, a set of device properties are exported. Multiple sequences (aka <em>numbers</em>) are supported via a label. The metrics are provided in text wire format.</p> <p>A set of metrics is exported via the <code>/metrics</code> REST API path on the device. Besides the current value, a set of device properties are exported. Multiple sequences (aka <em>numbers</em>) are supported via a label. The metrics are provided in text wire format.</p>
<p>Example:</p> <p>Example:</p>
<pre><code class="language-bash">$ curl http://&lt;IP&gt;/metrics <div class="language-bash highlight"><pre><span></span><code><span id="__span-0-1"><a href="#__codelineno-0-1" id="__codelineno-0-1" name="__codelineno-0-1"></a>$<span class="w"> </span>curl<span class="w"> </span>http://&lt;IP&gt;/metrics
# HELP ai_on_the_edge_device_flow_value current value of meter readout </span><span id="__span-0-2"><a href="#__codelineno-0-2" id="__codelineno-0-2" name="__codelineno-0-2"></a><span class="c1"># HELP ai_on_the_edge_device_flow_value current value of meter readout</span>
# TYPE ai_on_the_edge_device_flow_value gauge </span><span id="__span-0-3"><a href="#__codelineno-0-3" id="__codelineno-0-3" name="__codelineno-0-3"></a><span class="c1"># TYPE ai_on_the_edge_device_flow_value gauge</span>
ai_on_the_edge_device_flow_value{sequence="main"} 240.7064 </span><span id="__span-0-4"><a href="#__codelineno-0-4" id="__codelineno-0-4" name="__codelineno-0-4"></a>ai_on_the_edge_device_flow_value<span class="o">{</span><span class="nv">sequence</span><span class="o">=</span><span class="s2">"main"</span><span class="o">}</span><span class="w"> </span><span class="m">240</span>.7064
# HELP ai_on_the_edge_device_cpu_temperature_celsius current cpu temperature in celsius </span><span id="__span-0-5"><a href="#__codelineno-0-5" id="__codelineno-0-5" name="__codelineno-0-5"></a><span class="c1"># HELP ai_on_the_edge_device_cpu_temperature_celsius current cpu temperature in celsius</span>
# TYPE ai_on_the_edge_device_cpu_temperature_celsius gauge </span><span id="__span-0-6"><a href="#__codelineno-0-6" id="__codelineno-0-6" name="__codelineno-0-6"></a><span class="c1"># TYPE ai_on_the_edge_device_cpu_temperature_celsius gauge</span>
ai_on_the_edge_device_cpu_temperature_celsius 41 </span><span id="__span-0-7"><a href="#__codelineno-0-7" id="__codelineno-0-7" name="__codelineno-0-7"></a>ai_on_the_edge_device_cpu_temperature_celsius<span class="w"> </span><span class="m">41</span>
# HELP ai_on_the_edge_device_rssi_dbm current WiFi signal strength in dBm </span><span id="__span-0-8"><a href="#__codelineno-0-8" id="__codelineno-0-8" name="__codelineno-0-8"></a><span class="c1"># HELP ai_on_the_edge_device_rssi_dbm current WiFi signal strength in dBm</span>
# TYPE ai_on_the_edge_device_rssi_dbm gauge </span><span id="__span-0-9"><a href="#__codelineno-0-9" id="__codelineno-0-9" name="__codelineno-0-9"></a><span class="c1"># TYPE ai_on_the_edge_device_rssi_dbm gauge</span>
ai_on_the_edge_device_rssi_dbm -67 </span><span id="__span-0-10"><a href="#__codelineno-0-10" id="__codelineno-0-10" name="__codelineno-0-10"></a>ai_on_the_edge_device_rssi_dbm<span class="w"> </span>-67
# HELP ai_on_the_edge_device_memory_heap_free_bytes available heap memory </span><span id="__span-0-11"><a href="#__codelineno-0-11" id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="c1"># HELP ai_on_the_edge_device_memory_heap_free_bytes available heap memory</span>
# TYPE ai_on_the_edge_device_memory_heap_free_bytes gauge </span><span id="__span-0-12"><a href="#__codelineno-0-12" id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="c1"># TYPE ai_on_the_edge_device_memory_heap_free_bytes gauge</span>
ai_on_the_edge_device_memory_heap_free_bytes 716303 </span><span id="__span-0-13"><a href="#__codelineno-0-13" id="__codelineno-0-13" name="__codelineno-0-13"></a>ai_on_the_edge_device_memory_heap_free_bytes<span class="w"> </span><span class="m">716303</span>
# HELP ai_on_the_edge_device_uptime_seconds device uptime in seconds </span><span id="__span-0-14"><a href="#__codelineno-0-14" id="__codelineno-0-14" name="__codelineno-0-14"></a><span class="c1"># HELP ai_on_the_edge_device_uptime_seconds device uptime in seconds</span>
# TYPE ai_on_the_edge_device_uptime_seconds gauge </span><span id="__span-0-15"><a href="#__codelineno-0-15" id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="c1"># TYPE ai_on_the_edge_device_uptime_seconds gauge</span>
ai_on_the_edge_device_uptime_seconds 214267 </span><span id="__span-0-16"><a href="#__codelineno-0-16" id="__codelineno-0-16" name="__codelineno-0-16"></a>ai_on_the_edge_device_uptime_seconds<span class="w"> </span><span class="m">214267</span>
# HELP ai_on_the_edge_device_rounds_total data aquisition rounds since device startup </span><span id="__span-0-17"><a href="#__codelineno-0-17" id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="c1"># HELP ai_on_the_edge_device_rounds_total data aquisition rounds since device startup</span>
# TYPE ai_on_the_edge_device_rounds_total counter </span><span id="__span-0-18"><a href="#__codelineno-0-18" id="__codelineno-0-18" name="__codelineno-0-18"></a><span class="c1"># TYPE ai_on_the_edge_device_rounds_total counter</span>
ai_on_the_edge_device_rounds_total 239 </span><span id="__span-0-19"><a href="#__codelineno-0-19" id="__codelineno-0-19" name="__codelineno-0-19"></a>ai_on_the_edge_device_rounds_total<span class="w"> </span><span class="m">239</span>
</code></pre> </span></code></pre></div>
<h2 id="prometheus-scrape-config"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1</span> Prometheus Scrape Config</h2> <h2 id="prometheus-scrape-config"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.1</span> Prometheus Scrape Config</h2>
<p>The following scrape config (add to <code>prometheus.yml</code>) can be used as an example to ingest available metrics with prometheus:</p> <p>The following scrape config (add to <code>prometheus.yml</code>) can be used as an example to ingest available metrics with prometheus:</p>
<pre><code>scrape_configs: <div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a href="#__codelineno-1-1" id="__codelineno-1-1" name="__codelineno-1-1"></a>scrape_configs:
- job_name: watermeter </span><span id="__span-1-2"><a href="#__codelineno-1-2" id="__codelineno-1-2" name="__codelineno-1-2"></a> - job_name: watermeter
scrape_interval: 300s </span><span id="__span-1-3"><a href="#__codelineno-1-3" id="__codelineno-1-3" name="__codelineno-1-3"></a> scrape_interval: 300s
metrics_path: /metrics </span><span id="__span-1-4"><a href="#__codelineno-1-4" id="__codelineno-1-4" name="__codelineno-1-4"></a> metrics_path: /metrics
static_configs: </span><span id="__span-1-5"><a href="#__codelineno-1-5" id="__codelineno-1-5" name="__codelineno-1-5"></a> static_configs:
- targets: ['&lt;IP&gt;'] </span><span id="__span-1-6"><a href="#__codelineno-1-6" id="__codelineno-1-6" name="__codelineno-1-6"></a> - targets: ['&lt;IP&gt;']
</code></pre> </span></code></pre></div>
<h2 id="references"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> References</h2> <h2 id="references"><span class="enumerate-headings-plugin enumerate-heading-plugin">1.2</span> References</h2>
<ul> <ul>
<li><a href="https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md">OpenMetrics</a></li> <li><a href="https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md">OpenMetrics</a></li>
@@ -687,6 +694,6 @@ ai_on_the_edge_device_rounds_total 239
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

View File

@@ -9,7 +9,7 @@
<link href="../data-logging/" rel="prev"/> <link href="../data-logging/" rel="prev"/>
<link href="../Watermeter-specific-analog---digital-transition/" rel="next"/> <link href="../Watermeter-specific-analog---digital-transition/" rel="next"/>
<link href="../img/favicon.ico" rel="icon"/> <link href="../img/favicon.ico" rel="icon"/>
<meta content="mkdocs-1.6.0, mkdocs-material-9.5.32" name="generator"/> <meta content="mkdocs-1.6.0, mkdocs-material-9.5.33" name="generator"/>
<title>Living on the Edge - AI on the Edge Device</title> <title>Living on the Edge - AI on the Edge Device</title>
<link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/main.3cba04c6.min.css" rel="stylesheet"/>
<link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/> <link href="../assets/stylesheets/palette.06af60db.min.css" rel="stylesheet"/>
@@ -506,6 +506,13 @@
</span> </span>
</a> </a>
</li> </li>
<li class="md-nav__item">
<a class="md-nav__link" href="../Webhook/">
<span class="md-ellipsis">
Webhook
</span>
</a>
</li>
</ul> </ul>
</nav> </nav>
</li> </li>
@@ -653,6 +660,6 @@
<div class="md-dialog__inner md-typeset"></div> <div class="md-dialog__inner md-typeset"></div>
</div> </div>
<script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script> <script id="__config" type="application/json">{"base": "..", "features": [], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.471ce7a9.min.js"></script> <script src="../assets/javascripts/bundle.af256bd8.min.js"></script>
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

View File

@@ -160,6 +160,11 @@
<lastmod>2024-08-23</lastmod> <lastmod>2024-08-23</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
</url> </url>
<url>
<loc>https://jomjol.github.io/AI-on-the-edge-device-docs/Webhook/</loc>
<lastmod>2024-08-23</lastmod>
<changefreq>daily</changefreq>
</url>
<url> <url>
<loc>https://jomjol.github.io/AI-on-the-edge-device-docs/collect-new-images/</loc> <loc>https://jomjol.github.io/AI-on-the-edge-device-docs/collect-new-images/</loc>
<lastmod>2024-08-23</lastmod> <lastmod>2024-08-23</lastmod>

Binary file not shown.