diff --git a/README.md b/README.md index 9277569..8587c73 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ To test it locally: 1. Install the required tools (See also [.github/workflows/build-docs.yaml](.github/workflows/build-docs.yaml)): ``` pip install --upgrade pip - pip install mkdocs mkdocs-gen-files mkdocs-awesome-pages-plugin mkdocs-material + pip install mkdocs mkdocs-gen-files mkdocs-awesome-pages-plugin mkdocs-material pymdown-extensions ``` 1. In the main folder of the repo, call `mkdocs serve` (and keep it running). This will locally generate the documentation. diff --git a/docs/Addditional-Information.md b/docs/Addditional-Information.md deleted file mode 100644 index 36c520b..0000000 --- a/docs/Addditional-Information.md +++ /dev/null @@ -1,9 +0,0 @@ -The following links point to additional information in other repos: - -# Digits -* [Overview](https://github.com/jomjol/neural-network-digital-counter-readout) -* [Background](https://github.com/jomjol/neural-network-digital-counter-readout/blob/master/Train_Network.md) - -# Analog -* [Overview](https://github.com/jomjol/neural-network-analog-needle-readout) -* [Background](https://github.com/jomjol/neural-network-analog-needle-readout/blob/master/Train_Network.md) \ No newline at end of file diff --git a/docs/Additional-Information.md b/docs/Additional-Information.md new file mode 100644 index 0000000..c5fec93 --- /dev/null +++ b/docs/Additional-Information.md @@ -0,0 +1,9 @@ +The following links point to additional information in other repos: + +# Digits +* [Training and using a neural network to readout the value of a digital counter](https://github.com/jomjol/neural-network-digital-counter-readout) +* [Training the CNN neural network](https://github.com/jomjol/neural-network-digital-counter-readout/blob/master/Train_Network.md) + +# Analog +* [Training and using a neural network to read out the value of an analog display](https://github.com/jomjol/neural-network-analog-needle-readout) +* [Training the CNN neural network](https://github.com/jomjol/neural-network-analog-needle-readout/blob/master/Train_Network.md) \ No newline at end of file diff --git a/docs/Build-Instructions.md b/docs/Build-Instructions.md index 8ea39ec..99d5307 100644 --- a/docs/Build-Instructions.md +++ b/docs/Build-Instructions.md @@ -1,2 +1,2 @@ -# Build the project yourself +# Build the Project See [README.md](https://github.com/jomjol/AI-on-the-edge-device/blob/master/code/README.md) diff --git a/docs/Choosing-the-Model.md b/docs/Choosing-the-Model.md index 77d6ec6..d6c180f 100644 --- a/docs/Choosing-the-Model.md +++ b/docs/Choosing-the-Model.md @@ -1,5 +1,8 @@ # Model Selection +!!! Warning + This page overlaps [Neural Network Types](../Neural-Network-Types). They should be merged to one page! + In the [Graphical Configuration Page](Graphical-configuration), you can choose different models depending on your needs. This wiki page tries to help you on which model to select. diff --git a/docs/Configuration-Parameter-Details.md b/docs/Configuration-Parameter-Details.md index dc34acd..6638de4 100644 --- a/docs/Configuration-Parameter-Details.md +++ b/docs/Configuration-Parameter-Details.md @@ -173,7 +173,7 @@ LogfileRetentionInDays = 2 ``` This paragraph is used to switch on an extended logging. It is optional and by default only a minimum logging is enabled. -**Attention:** in case of extended logging the size of the log file (`/log.txt`, `/alignment.txt`) might increase rapidly, therefore manually deletion from time to time is recommended +**:bangbang: Attention:** in case of extended logging the size of the log file (`/log.txt`, `/alignment.txt`) might increase rapidly, therefore manually deletion from time to time is recommended @@ -193,7 +193,7 @@ SetupMode = false ``` This paragraph is used to switch on an extended logging. It is optional and by default only a minimum logging is enabled. -**Attention:** in case of extended logging the size of the log file (`/log.txt`, `/alignment.txt`) might increase rapidly, therefore manually deletion from time to time is recommended +**:bangbang: Attention:** in case of extended logging the size of the log file (`/log.txt`, `/alignment.txt`) might increase rapidly, therefore manually deletion from time to time is recommended diff --git a/docs/Configuration.md b/docs/Configuration.md index fc227a8..ea77e61 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,3 +1,9 @@ +# Configuration + +!!! Warning + This page overlaps [Graphical-Configuration](../Graphical-Configuration). They should be merged to one page! + + Most of the settings can be modified with the help of a web based [graphical user interface](Graphical-configuration). This is hosted through the web server on the ESP32. More configuration parameters can be edited by hand in the `config.ini` and corresponding files in the `/config` directory on the SD-card. diff --git a/docs/Demo-Mode.md b/docs/Demo-Mode.md index d1fb967..4b636e8 100644 --- a/docs/Demo-Mode.md +++ b/docs/Demo-Mode.md @@ -28,11 +28,10 @@ demo/ - The jpg files can have any name - The jpg files must be smaller than 30'000 bytes - The `files.txt` must contains a list of those files, eg: - ``` - 520.8983.jpg - 520.9086.jpg - 520.9351.jpg - ``` + + 520.8983.jpg + 520.9086.jpg + 520.9351.jpg ## Recoding To record real images of a meter, you have to periodically fetch `http:///img_tmp/raw.jpg`. diff --git a/docs/Error-Codes.md b/docs/Error-Codes.md index 7765f9d..9534291 100644 --- a/docs/Error-Codes.md +++ b/docs/Error-Codes.md @@ -8,7 +8,8 @@ Most likely they are caused by a hardware issue! ## `0x00000001` PSRAM bad Your device most likely has no PSRAM at all or it is too small (needs to have at least 4 MBytes)! -See https://github.com/jomjol/AI-on-the-edge-device/wiki/Hardware-Compatibility +See [Hardware Compatibility](../Hardware-Compatibility). + Usually the log shows something like this: ``` psram: PSRAM ID read error: 0xffffffff @@ -21,7 +22,7 @@ The firmware failed to allocate enough memory. This most likely is a consequenti ## `0x00000004` Cam bad The attached camera can not be initialized. This usually is because on of the following reasons: - - The camera is not supported, see https://github.com/jomjol/AI-on-the-edge-device/wiki/Hardware-Compatibility + - The camera is not supported, see [Hardware Compatibility](../Hardware-Compatibility) - The camera is not attached properly -> Try to remove and attach it again. Make sure you move the black part enough into the socket! - The camera or the camera cable is damaged diff --git a/docs/Frequent Reboots.md b/docs/Frequent-Reboots.md similarity index 98% rename from docs/Frequent Reboots.md rename to docs/Frequent-Reboots.md index 13babc5..7e4c947 100644 --- a/docs/Frequent Reboots.md +++ b/docs/Frequent-Reboots.md @@ -1,4 +1,4 @@ -# Frequent reboots +# Frequent Reboots @@ -41,6 +41,7 @@ If your system is sometimes running smoothly over several runs and sometimes reb You can check this in the standard log file on the SD card: + ``` 2021-12-26T06:34:09: task_autodoFlow - round done 2021-12-26T06:34:09: CPU Temperature: 56.1 @@ -79,7 +80,8 @@ Easy to detect: fast blinking red LED directly after startup, no reaction of the Error message of no detectable SC card in the log file. **Normal looking** log for a 16GB SD card is like this: -```09:38:25.037 -> I (4789) main: Using SDMMC peripheral +``` +09:38:25.037 -> I (4789) main: Using SDMMC peripheral 09:38:25.037 -> I (4789) main: Using SDMMC peripheral 09:38:25.138 -> Name: SC16G 09:38:25.138 -> Type: SDHC/SDXC @@ -102,6 +104,7 @@ Sometimes, there is hardware, where only 2 MB of PSRAM is present - **even if yo You can identify the amount of PSRAM in the serial log file: + ``` 09:38:21.224 -> I (881) psram: This chip is ESP32-D0WD 09:38:21.224 -> I (885) spiram: Found 64MBit SPI RAM device diff --git a/docs/Graphical-configuration.md b/docs/Graphical-Configuration.md similarity index 92% rename from docs/Graphical-configuration.md rename to docs/Graphical-Configuration.md index 0ac44cf..76c9827 100644 --- a/docs/Graphical-configuration.md +++ b/docs/Graphical-Configuration.md @@ -1,14 +1,13 @@ -# Graphical configuration +# Graphical Configuration + +!!! Warning + This page overlaps [Configuration](../Configuration). They should be merged to one page! ### **General remark:** - to activate the changes, currently the device needs a restart after saving the changes. - - partially the commands needs processing on the ESP32 device. This is not very fast - so please be patient. -- too frequent http-request could result in a reboot of the ESP32 - normally this is not a problem as the server react about 30s later normally. - - ## Access to the graphical user interface @@ -18,9 +17,6 @@ The graphical configuration mode can be reached via the "Edit Configuration" but - - - ## Overview function * @@ -41,13 +37,15 @@ This is a text editor for the config.ini. Changes commited with the button on th * +Details see [Configuration-Parameter-Details](../Configuration-Parameter-Details). + ### 2a. Create Reference Image The reference image is the basis for the coordination of the ROIs. Therefore it is very important, to have a well aligned image, that is not rotated. -**Attention:** Updating the reference image, also means, that all alignment images and ROIs needs to be teached again. Therefore do this step only with caution. +**:bangbang: Attention:** Updating the reference image, also means, that all alignment images and ROIs needs to be teached again. Therefore do this step only with caution. * @@ -100,15 +98,9 @@ In order to have a good recognition, the active ROI has two rectangles for align * The line in the middle should go through the middle of the number (in case it is not moving in or out) - - - To save the result push "Save all to config.ini" (4). +**:bangbang: Attention:** Currently you have to reboot the ESP32 to take the changes in the `config.ini` to take place. - - -**Attention:** Currently you have to reboot the ESP32 to take the changes in the `config.ini` to take place. - -This steps are running on the ESP32 directly. So be patient with the results. \ No newline at end of file +This steps are running on the ESP32 directly. So be patient with the results. diff --git a/docs/Influx-DB.md b/docs/Influx-DB.md new file mode 100644 index 0000000..f3b7a18 --- /dev/null +++ b/docs/Influx-DB.md @@ -0,0 +1,4 @@ +# Influx DB +The device also supports direct sending of data to an Influ DB. + +:bangbang: Only Influx DB 1 is supported! \ No newline at end of file diff --git a/docs/Install-a-rolling-(unstable)-release.md b/docs/Install-a-rolling-(unstable)-release.md deleted file mode 100644 index 43eb59f..0000000 --- a/docs/Install-a-rolling-(unstable)-release.md +++ /dev/null @@ -1,21 +0,0 @@ -# :bangbang: Living on the edge :bangbang: -:bangbang: The branch [rolling](https://github.com/jomjol/AI-on-the-edge-device/tree/rolling) contains the latest version of the Firmware and the Web Interface. It is work in progress, don't expect it to work stable or be an improvement for your AI-on-the-edge-device! Also it might break the OTA Update and then require manual flashing over USB! :bangbang: - -# Still here? - -Grab the latest build from https://github.com/jomjol/AI-on-the-edge-device/actions and proceed as following: -1. Pick the most top successful (green) build. -2. Download the `firmware__extract_before_upload__only_needed_for_migration_from_11.2.0` and extract it (its a zip file). -3. Flash that binary as new firmware. -4. Download the `html__only_needed_for_migration_from_11.2.0__2022-09-15_19-13-37__rolling_(042ff18)`. It is also a zip file but you should **not** extract it! -5. Flash the zip file als html part. - -The filenames have changed, e.g. right now it is: -* AI-on-the-edge-device__manual-setup__rolling_(4b23e0c) -* AI-on-the-edge-device__remote-setup__rolling_(4b23e0c)   -* AI-on-the-edge-device__update__rolling_(4b23e0c) - -Github bot-reply Rolling Build has the following info at the moment: - -You can use the latest [Automatic Build](https://github.com/jomjol/AI-on-the-edge-device/actions/workflows/build.yaml?query=branch%3Arolling) of the the rolling branch. It might already contain a fix for your issue. -Pick the most top passing entry (it has a green circle with a tick in it), then scroll down to the Artifacts and download the file named update_*. So I do not know what the manual-setup and remote-setup are used for. \ No newline at end of file diff --git a/docs/Integration-Home-Assistant.md b/docs/Integration-Home-Assistant.md index 6e1f368..d071492 100644 --- a/docs/Integration-Home-Assistant.md +++ b/docs/Integration-Home-Assistant.md @@ -1,5 +1,6 @@ # Integration into Home Assistant There are 3 ways to get the data into your Home Assistant: + 1. Using MQTT (Automatically Setup Entities using Homeassistant MQTT Discovery) 1. Using MQTT (Manually Setup Entities) 2. Using REST calls @@ -11,6 +12,7 @@ The first one is the easier way if you already have MQTT in use. :bangbang: This feature will be available with the next release! Starting with Version `>12.0.1`, AI-on-the-edge-devices support Homeassistant Discovery. + 1. Check [here](https://www.home-assistant.io/docs/mqtt/discovery/) to learn more about it and how to enable it in Homeassistant. 1. You also have to enable it in the MQTT settings of your device: @@ -127,10 +129,13 @@ Note that you also can add it using the UI. Creating Statistics Graphs (eg. usage per day) is easy using the [Energy Dashboard](https://www.home-assistant.io/home-energy-management/): ![grafik](https://user-images.githubusercontent.com/1783586/193471893-d8ab8f5f-0906-4076-8926-8b5a69a24bce.png) -Note that there seems to be a bug in the graph, see https://github.com/home-assistant/frontend/issues/13995! +Note that there seems to be a bug in the graph, see [https://github.com/home-assistant/frontend/issues/13995](https://github.com/home-assistant/frontend/issues/13995)! ### InfluxDb Graphs + +See also [Influx-DB](../Influx-DB). + If you have setup InfluxDB already, it is also possible to fetch statistics from there, eg. daily usage: ``` from(bucket: "HomeAssistant") diff --git a/docs/Learn-models-with-your-own-images.md b/docs/Learn-models-with-your-own-images.md index 68fed3c..300cf25 100644 --- a/docs/Learn-models-with-your-own-images.md +++ b/docs/Learn-models-with-your-own-images.md @@ -1,3 +1,4 @@ +# Learn a model with your own images If your device has new, different digits and the existing models don't recognize them well, you can collect your own images and train the model. But before you do this, please check if your type really is not contained yet in the training data, see [digits](https://jomjol.github.io/neural-network-digital-counter-readout) resp. [pointers](https://jomjol.github.io/neural-network-analog-needle-readout/) for an overview of images used for the training diff --git a/docs/Neural-Network-Types.md b/docs/Neural-Network-Types.md index 496bb96..8fe4c13 100644 --- a/docs/Neural-Network-Types.md +++ b/docs/Neural-Network-Types.md @@ -1,17 +1,12 @@ +# Neural Network Types + +!!! Warning + This page overlaps [Choosing the Model](../Choosing-the-Model). They should be merged to one page! + This section is describing the different types of neural networks, that are used with the AI-on-the-edge approach and gives an introduction on how and where to use them. - -### Content - -1) Overview neural network type -2) Naming convention -3) Overview of trained types and details - -_______________________________ - - -### 1. Overview neural network type +## Overview neural network type There are two **types of input**: @@ -28,7 +23,7 @@ There are two **types of neural networks**: No setting of the type in the firmware is necessary. The type can detect by the output structure automatically. -**Attention:** +**:bangbang: Attention:** * It is very important to choose the right network type (digits or analog pointers). Technically a wrong network will work and create output, but that would be totally arbitrary @@ -37,10 +32,8 @@ No setting of the type in the firmware is necessary. The type can detect by the * For the continious and 100 classes network especially for the digits, there are only a view types of digits trained up to now * Therefore sometimes for the digits it is more effective to choose the simpler 11 classes network type (= default). -_______________________________ - -### 2. Naming convention +## Naming convention | | Classification
11 classes
0, 1, ... 9 + "N" | Classification
100 classes
0.0, 0.1, ... 9.9 | Continuous
Interval
[0, 10[ | | ---------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------ | ------------------------------------- | @@ -66,37 +59,34 @@ Example: `dig-class11_1410_s2_q.tflite` +## Overview of trained types and details -_______________________________________________________ - -### 3. Overview of trained types and details - -#### 3a. Analog Pointer ("ana-cont_XXX.tflite" & "ana-class100_XXX.tflite") +### Analog Pointer ("ana-cont_XXX.tflite" & "ana-class100_XXX.tflite") This is to transfer the direction of a pointer into a continuous number between 0 and 1, whereas 0 (=1) is the upwards position (12 o'clock), 0.25 corresponds to the 3 o'clock positions and so on. This network is a envolop for all different types of pointers. Currently there are no dedicated network trainings for specific types of pointers. There are two types of network structure, currently both are supported. The "class100" is a pure classification network, that might need a bit more accuracy in the labeling. "cont" is a no classic approach with a continuous output off only 2 neurons (details see below). -##### Types of counters trained: +#### Types of counters trained: | | | | | | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | | ![](img/ana-cont/examp-ana1.jpg) | ![](img/ana-cont/examp-ana2.jpg) | ![](img/ana-cont/examp-ana3.jpg) | ![](img/ana-cont/examp-ana4.jpg) | | ![](img/ana-cont/examp-ana5.jpg) | ![](img/ana-cont/examp-ana6.jpg) | ![](img/ana-cont/examp-ana7.jpg) | | -##### Training data needs +#### Training data needs * Quadratic images, minimum size: 32x32 pixel * Typically 100 - 200 images with a resultion of 1/100 of the full rotation (every 0.1 value or 3.6°) * Naming: x.y_ARBITRARY.jpg, where x.y = value 0.0 ... 9.9 -##### CNN Technical details: +#### CNN Technical details: -###### Input +##### Input * 32 x 32 RGB images -###### Output +##### Output * **ana-cont**_XXX.tflite: * 2 neurons with output in range [-1, 1] - representing a sinus / cosinus encoding of the angle @@ -108,12 +98,12 @@ There are two types of network structure, currently both are supported. The "cla -#### 3b. Digits with 11 classes ("dig-class11_XXX.tflite") +### Digits with 11 classes ("dig-class11_XXX.tflite") The digit type is a classical classification network, with 11 classes representing the numbers 0, 1, ... 9 and the special class "N". It is trained for the rolling ring of gas and electric meters. As there is sometime a status between two images, the special class "N" is representing Not-A-Number for the case, that the image cannot be unique classified to one number e.g. because it is between two digits. For this type the lowest amount of training data per type is needed, resulting in a large variety of type being already part of the training set. -##### Types of counters trained: +#### Types of counters trained: | | | | | | | | | -------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- | -------------------------- | @@ -122,20 +112,20 @@ The digit type is a classical classification network, with 11 classes representi | | | | | | | | -##### Training data needs +#### Training data needs * RGB images, with minimum size: 20x32 pixel * Typically 10 - 20 images (1-2 for each digit and an arbitrary number for the "N" class * Naming: x_ARBITRARY.jpg, where x = value 0 ... 9 + N -##### CNN Technical details: +#### CNN Technical details: -###### Input +##### Input * 20 x 32 RGB images -###### Output +##### Output * 11 neurons for image classification (last layer normalized to 1) * Neuron 0 to 9 represent the corresponding numbers "0" to "9" @@ -143,12 +133,12 @@ The digit type is a classical classification network, with 11 classes representi -#### 3c. Digits with rolling results ("dig-class100_XXX.tflite" & "dig-cont_XXX.tflite") +### Digits with rolling results ("dig-class100_XXX.tflite" & "dig-cont_XXX.tflite") This type of network tries to overcome the problem, that there are intermediate values, when a rolling digit is between two numbers. Previous this was the "N" class. In this network type, there are also subdigit values trained, so that the intermediate state can be used as additional information for the algorithms. -##### Types of counters trained: +#### Types of counters trained: | | | | | | ---------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ---- | @@ -157,20 +147,20 @@ This type of network tries to overcome the problem, that there are intermediate -##### Training data needs +#### Training data needs * RGB images, with minimum size: 20x32 pixel * Typically 100 - 200 images (1-2 for each possible position) * Naming: x.y_ARBITRARY.jpg, where x.y = 0.0, 0.1, ... 9.9 representing the intermediate state -##### CNN Technical details: +#### CNN Technical details: -###### Input +##### Input * 20 x 32 RGB images -###### Output +##### Output * **dig-cont**_XXX.tflite: * 10 neurons representing the digits 0, 1, ... 9. The intermediate values are represented by weighted normalized values of two neighboring output neurons diff --git a/docs/ROI-Configuration.md b/docs/ROI-Configuration.md index eda53d7..a61320a 100644 --- a/docs/ROI-Configuration.md +++ b/docs/ROI-Configuration.md @@ -1,4 +1,4 @@ -# ROI (Region of Interest) Configuration +# ROI (Region of Interest) General remark: > You are using a neural network approach which is trained to fit as many different type of meters as possible. The accuracy will never be 100%. It is normal to see a missing reading once in a while. There there are several precautions to detect this. For details see the section `PostProcessing` on the configuration page. @@ -12,27 +12,27 @@ The most critical settings for accurate detection are: _____ -## 1. Correct Setup of ROI +## Correct Setup of ROI Please proceed in the following order! Don't forget to save after each step! -### 1. Image Sharpness +### Image Sharpness Ensure a sharp image of the camera by adjusting the focal length of the ESP OV2640 camera. **Adjust the focus for the clearest possible image** See [these instructions](https://github.com/jomjol/water-meter-picture-provider/blob/master/ESP32-CAM_Lens_Modification.md) for help. -### 2. Horizontal Alignment +### Horizontal Alignment Ensure an **exact horizontal alignment** of the number via the alignment / reference setup: | :heavy_check_mark: Okay | :x: Not Okay | | ------------------------------ | ---------------------------------- | | ![](img/alignment_okay.jpg) | ![](img/alignment_not_okay.jpg) | -### 3. Correct Size for ROI +### Correct Size for ROI Choose the right size of the ROI: > The configuration of ROIs differs a bit on the model you choose. Below you find the differences between the different AI models. Pick the one you think fits best your purpose. If you don't get to good result, try another model. -### 4. Model Selection +### Model Selection #### dig-class11 Configuration dig-class11 - Models recognize the **complete digit only**. Here it is not relevant if the ROI fits the Border of the digit window. diff --git a/docs/Release-creation.md b/docs/Release-creation.md index 211ea26..cc9b099 100644 --- a/docs/Release-creation.md +++ b/docs/Release-creation.md @@ -1,4 +1,4 @@ -## Preparing for release +# Preparing for Release 1. [Changelog](https://github.com/jomjol/AI-on-the-edge-device/blob/rolling/Changelog.md) is merged back from `master` branch to `rolling` branch (should be the last step of the previous release creation) 1. All changes are documented in the [Changelog](https://github.com/jomjol/AI-on-the-edge-device/blob/rolling/Changelog.md) in `rolling` branch diff --git a/docs/Watermeter-specific-analog---digital-transition.md b/docs/Watermeter-specific-analog---digital-transition.md index 89baf14..1dba7c3 100644 --- a/docs/Watermeter-specific-analog---digital-transition.md +++ b/docs/Watermeter-specific-analog---digital-transition.md @@ -1,4 +1,4 @@ -# Understanding the problem +# Analog/Digital Transition on Watermeters At first, for the most watermeters the default configuration should be work. But the digit, especially the last digit differs in some devices. diff --git a/docs/nav.yml b/docs/nav.yml index a9ffad0..10ef4c0 100644 --- a/docs/nav.yml +++ b/docs/nav.yml @@ -10,27 +10,53 @@ nav: - Best-Practice.md - FAQs.md - - Configuration: - - Choosing-the-Model.md - - - Advanced: - - Build-Instructions.md - - Upload-files-by-script.md - - - API's: - - REST-API.md - - MQTT-API.md - # - Influx DB - # - ... - - - - Links: + - External Links: - Releases: https://github.com/jomjol/AI-on-the-edge-device/releases - Web Installer/Console: https://jomjol.github.io/AI-on-the-edge-device/index.html - Place an Issues: https://github.com/jomjol/AI-on-the-edge-device/issues - Join a Discussions: https://github.com/jomjol/AI-on-the-edge-device/discussions - #- Old Documentation: + - Configuration: + - ROI-Configuration.md + - Graphical-Configuration.md + - Choosing-the-Model.md + - Neural-Network-Types.md + - ota.md + + - Advanced: + - Integration-Home-Assistant.md + - External-LED.md + - rolling-installation.md + - Configuration-Parameter-Details.md + - Configuration.md + - Watermeter-specific-analog---digital-transition.md + - Learn-models-with-your-own-images.md + - Correction Algorithm.md + - Additional-Information.md + + - Troubleshooting: + - Error-Codes.md + - Error-Debugging.md + - Frequent-Reboots.md + + - API's: + - REST-API.md + - MQTT-API.md + - Influx-DB.md + # - ... + + - Development: + - Build-Instructions.md + - Demo-Mode.md + - Upload-files-by-script.md + - Testing.md + - Release-creation.md + + + - Old Pages (no longer maintained): + - outdated--Integrated-Functions.md + - outdated--Gasmeter-Log-Downloader.md + - outdated--Migrate-Old-Config-To-New-Config.md - Asorted Pages: # List all pages which are not covered by above list diff --git a/docs/OTA---Update-Firmware-and-Web-Interface.md b/docs/ota.md similarity index 90% rename from docs/OTA---Update-Firmware-and-Web-Interface.md rename to docs/ota.md index 534c95b..b58471c 100644 --- a/docs/OTA---Update-Firmware-and-Web-Interface.md +++ b/docs/ota.md @@ -4,7 +4,7 @@ You can do an OTA (over-the-air) update via the graphical user interface. Grab the firmware from the * [Releases page](https://github.com/jomjol/AI-on-the-edge-device/releases) (Stable, tested versions), or the - * [Automatically build development branch](https://github.com/jomjol/AI-on-the-edge-device/actions?query=branch%3Arolling) (experimental, untested versions). Please have a look on https://github.com/jomjol/AI-on-the-edge-device/wiki/Install-a-rolling-%28unstable%29-release first! + * [Automatically build development branch](https://github.com/jomjol/AI-on-the-edge-device/actions?query=branch%3Arolling) (experimental, untested versions). Please have a look on [](https://github.com/jomjol/AI-on-the-edge-device/wiki/Install-a-rolling-%28unstable%29-release) first! You need: * firmware.bin diff --git a/docs/Gasmeter-Log-Downloader.md b/docs/outdated--Gasmeter-Log-Downloader.md similarity index 93% rename from docs/Gasmeter-Log-Downloader.md rename to docs/outdated--Gasmeter-Log-Downloader.md index 463c13b..b06b76b 100644 --- a/docs/Gasmeter-Log-Downloader.md +++ b/docs/outdated--Gasmeter-Log-Downloader.md @@ -1,4 +1,7 @@ -## **Gasmeter Log-Downloader** +# Gasmeter Log-Downloader + +!!! Warning + This page no longer is maintained! This small tool downloads the logfiles from your ESP32 and stores the last value of the day in an *.csv file. diff --git a/docs/Integrated Functions.md b/docs/outdated--Integrated-Functions.md similarity index 96% rename from docs/Integrated Functions.md rename to docs/outdated--Integrated-Functions.md index 9e592d4..8da7248 100644 --- a/docs/Integrated Functions.md +++ b/docs/outdated--Integrated-Functions.md @@ -1,3 +1,8 @@ +# Integrated Functions + +!!! Warning + This page no longer is maintained! + ## wasserzaehler ```http://IP-ESP32/wasserzaehler.html``` diff --git a/docs/Migrate-Old-Config-To-New-Config.md b/docs/outdated--Migrate-Old-Config-To-New-Config.md similarity index 98% rename from docs/Migrate-Old-Config-To-New-Config.md rename to docs/outdated--Migrate-Old-Config-To-New-Config.md index 4351888..e831391 100644 --- a/docs/Migrate-Old-Config-To-New-Config.md +++ b/docs/outdated--Migrate-Old-Config-To-New-Config.md @@ -1,6 +1,7 @@ # Migration from water-meter „old“ to water-meter “AI-on-the-edge-device” - +!!! Warning + This page no longer is maintained! There are only some few steps necessary to migrate your old system to the new one. diff --git a/docs/rolling-installation.md b/docs/rolling-installation.md new file mode 100644 index 0000000..9793c1d --- /dev/null +++ b/docs/rolling-installation.md @@ -0,0 +1,10 @@ +# Living on the edge +The branch [rolling](https://github.com/jomjol/AI-on-the-edge-device/tree/rolling) contains the latest version of the Firmware and the Web Interface. It might already contain a fix for your issue. But it is work in progress, don't expect it to work stable or be an improvement for your AI-on-the-edge-device! Also it might break the [OTA Update](../ota) and thus require manual flashing over USB! + +## You still want to try it? + +Grab the latest `rolling` build from [Github Actions](https://github.com/jomjol/AI-on-the-edge-device/actions/workflows/build.yaml?query=branch%3Arolling) Page and proceed as following: + +1. Pick the most top successful (green) build. +2. Download the `AI-on-the-edge-device__update__rolling_*.zip` +5. Flash the zip file using the [OTA Update](../ota) page of your device. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index e7a801a..442e72f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,6 +8,7 @@ theme: name: readthedocs custom_dir: readthedocs-mod/ + plugins: - search - awesome-pages: @@ -18,4 +19,5 @@ plugins: markdown_extensions: - attr_list # Needed to scale images - pymdownx.emoji: # Emoji support - emoji_generator: !!python/name:pymdownx.emoji.to_alt \ No newline at end of file + emoji_generator: !!python/name:pymdownx.emoji.to_alt + - markdown.extensions.admonition \ No newline at end of file