mirror of
https://github.com/jomjol/AI-on-the-edge-device-docs.git
synced 2025-12-14 07:26:55 +03:00
added script to generate parameter documentation
This commit is contained in:
613
docs/Parameters.md
Normal file
613
docs/Parameters.md
Normal file
@@ -0,0 +1,613 @@
|
||||
# Parameters
|
||||
This page lists all available Configuration Parameters.
|
||||
|
||||
Click on them to get detailed information about them.
|
||||
|
||||
```
|
||||
Note: This is an auto-generated page!
|
||||
```
|
||||
---
|
||||
|
||||
## Alignment
|
||||
|
||||
### `AlignmentAlgo`
|
||||
Default Value: `Default`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `FlipImageSize`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `InitialMirror`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `InitialRotate`
|
||||
Default Value: `179`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `SearchFieldX`
|
||||
Default Value: `20`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `SearchFieldY`
|
||||
Default Value: `20`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Analog
|
||||
|
||||
### `CNNGoodThreshold`
|
||||
Default Value: `0.5`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `ExtendedResolution`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogImageLocation`
|
||||
Default Value: `/log/analog`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogfileRetentionInDays`
|
||||
Default Value: `3`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Model`
|
||||
Default Value: `/config/ana-cont_11.3.1_s2.tflite`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## AutoTimer
|
||||
|
||||
### `AutoStart`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Intervall`
|
||||
Default Value: `5`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## DataLogging
|
||||
|
||||
### `DataLogActive`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `DataLogRetentionInDays`
|
||||
Default Value: `3`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Debug
|
||||
|
||||
### `Logfile`
|
||||
Default Value: `1`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogfileRetentionInDays`
|
||||
Default Value: `3`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Digits
|
||||
|
||||
### `CNNGoodThreshold`
|
||||
Default Value: `0.5`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogImageLocation`
|
||||
Default Value: `/log/digit`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogfileRetentionInDays`
|
||||
Default Value: `3`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Model`
|
||||
Default Value: `/config/dig-cont_0600_s3.tflite`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## GPIO
|
||||
|
||||
### `IO0`
|
||||
Default Value: `input disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `IO1`
|
||||
Default Value: `input disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `IO12`
|
||||
Default Value: `input-pullup disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `IO13`
|
||||
Default Value: `input-pullup disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `IO3`
|
||||
Default Value: `input disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `IO4`
|
||||
Default Value: `built-in-led disabled 10 false false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LEDColor`
|
||||
Default Value: `150 150 150`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LEDNumbers`
|
||||
Default Value: `2`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LEDType`
|
||||
Default Value: `WS2812`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `MainTopicMQTT`
|
||||
Default Value: `wasserzaehler/GPIO`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## InfluxDB
|
||||
|
||||
### `Database`
|
||||
Default Value: ``
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Measurement`
|
||||
Default Value: `undefined`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Uri`
|
||||
Default Value: `undefined`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `password`
|
||||
Default Value: `undefined`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `user`
|
||||
Default Value: `undefined`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## MQTT
|
||||
|
||||
### `ClientID`
|
||||
Default Value: `watermeter`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `HomeassistantDiscovery`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `MainTopic`
|
||||
Default Value: `watermeter`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `MeterType`
|
||||
Default Value: `other`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `SetRetainFlag`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Uri`
|
||||
Default Value: `mqtt://IP-ADRESS:1883`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `password`
|
||||
Default Value: `PASSWORD`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `user`
|
||||
Default Value: `USERNAME`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## MakeImage
|
||||
|
||||
### `Brightness`
|
||||
Default Value: `0`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Contrast`
|
||||
Default Value: `0`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Demo`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `FixedExposure`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `ImageQuality`
|
||||
Default Value: `12`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `ImageSize`
|
||||
Default Value: `VGA`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LEDIntensity`
|
||||
Default Value: `50`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogImageLocation`
|
||||
Default Value: `/log/source`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `LogfileRetentionInDays`
|
||||
Default Value: `15`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Saturation`
|
||||
Default Value: `0`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `WaitBeforeTakingPicture`
|
||||
Default Value: `5`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## PostProcessing
|
||||
|
||||
### `AllowNegativeRates`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `CheckDigitIncreaseConsistency`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `ErrorMessage`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `PreValueAgeStartup`
|
||||
Default Value: `720`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `PreValueUse`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.AnalogDigitalTransitionStart`
|
||||
Default Value: `9.2`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.DecimalShift`
|
||||
Default Value: `0`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.ExtendedResolution`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.IgnoreLeadingNaN`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.MaxRateType`
|
||||
Default Value: `AbsoluteChange`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `main.MaxRateValue`
|
||||
Default Value: `0.05`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
|
||||
## System
|
||||
|
||||
### `AutoAdjustSummertime`
|
||||
Default Value: `false`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `Hostname`
|
||||
Default Value: `undefined`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `SetupMode`
|
||||
Default Value: `true`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `TimeServer`
|
||||
Default Value: `pool.ntp.org`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
### `TimeZone`
|
||||
Default Value: `CET-1CEST,M3.5.0,M10.5.0/3`
|
||||
|
||||
#### Description
|
||||
#### Example
|
||||
|
||||
---
|
||||
|
||||
@@ -22,6 +22,7 @@ nav:
|
||||
- Choosing-the-Model.md
|
||||
- Neural-Network-Types.md
|
||||
- ota.md
|
||||
- Parameters.md
|
||||
|
||||
- Advanced:
|
||||
- Integration-Home-Assistant.md
|
||||
|
||||
51
generate-param-docs/concat-parameter-pages.py
Normal file
51
generate-param-docs/concat-parameter-pages.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
Grab all parameter files and concat them into a single file.
|
||||
The header structure gets moved down 1 level
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import glob
|
||||
|
||||
|
||||
parameterDocsFolder = "parameter-docs"
|
||||
parameterOverviewFile = "../docs/Parameters.md"
|
||||
parameterOverviewTemplateFile = "./templates/overview.md"
|
||||
|
||||
def appendParameterFile(folder, file):
|
||||
print(folder, file)
|
||||
|
||||
with open(file, 'r') as parameterFileHandle:
|
||||
parameterDoc = parameterFileHandle.read()
|
||||
parameterDoc = parameterDoc.replace("# ", "### ") # Move all headings 2 level down
|
||||
|
||||
# Add parameter doc to overview page
|
||||
with open(parameterOverviewFile, 'a') as overviewFileHandle:
|
||||
overviewFileHandle.write(parameterDoc + "\n---\n\n")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Create templated overview markdown file
|
||||
if os.path.exists(parameterOverviewFile):
|
||||
os.remove(parameterOverviewFile)
|
||||
shutil.copy(parameterOverviewTemplateFile, parameterOverviewFile)
|
||||
|
||||
"""
|
||||
Append all parameter pages in a sorted manner
|
||||
"""
|
||||
folders = sorted( filter( os.path.isdir, glob.glob(parameterDocsFolder + '/*') ) )
|
||||
for folder in folders:
|
||||
folder = folder.split("/")[-1]
|
||||
# print(folder)
|
||||
|
||||
# Add section
|
||||
with open(parameterOverviewFile, 'a') as overviewFileHandle:
|
||||
overviewFileHandle.write("\n## %s\n\n" % folder)
|
||||
|
||||
files = sorted(filter(os.path.isfile, glob.glob(parameterDocsFolder + "/" + folder + '/*')))
|
||||
for file in files:
|
||||
# print(" %s" % file)
|
||||
appendParameterFile(folder, file)
|
||||
68
generate-param-docs/generate-param-doc-pages.py
Normal file
68
generate-param-docs/generate-param-doc-pages.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""
|
||||
For each parameter which can be found in the config file,
|
||||
create a markdown file with a templated contentf it does not exist yet.
|
||||
The files are grouped in sub folders representing the config sections.
|
||||
"""
|
||||
|
||||
import os
|
||||
import configparser
|
||||
import urllib.request
|
||||
|
||||
configFileUrl = "https://raw.githubusercontent.com/jomjol/AI-on-the-edge-device/rolling/sd-card/config/config.ini"
|
||||
|
||||
parameterDocsFolder = "parameter-docs"
|
||||
parameterTemplateFile = "./templates/parameter.md"
|
||||
|
||||
# Fetch default config file from URL
|
||||
with urllib.request.urlopen(configFileUrl) as response:
|
||||
content = response.read().decode("utf-8")
|
||||
|
||||
lines = str(content).split("\n")
|
||||
|
||||
for l in range(len(lines)):
|
||||
lines[l] = lines[l].strip() + "\n"
|
||||
if lines[l][0] == ";":
|
||||
lines[l] = lines[l][1:] # Remove comment
|
||||
|
||||
content = "".join(lines)
|
||||
|
||||
|
||||
config = configparser.ConfigParser(allow_no_value=True)
|
||||
config.optionxform = str # Make it case-insensitive
|
||||
config.read_string(content)
|
||||
|
||||
#shutil.rmtree(parameterDocsFolder)
|
||||
if not os.path.exists(parameterDocsFolder):
|
||||
os.mkdir(parameterDocsFolder)
|
||||
|
||||
with open(parameterTemplateFile, 'r') as parameterTemplateFileHandle:
|
||||
parameterTemplate = parameterTemplateFileHandle.read()
|
||||
|
||||
|
||||
|
||||
for section in config:
|
||||
if section != "DEFAULT":
|
||||
#print(section)
|
||||
|
||||
subFolder = parameterDocsFolder + "/" + section
|
||||
|
||||
if not os.path.exists(subFolder):
|
||||
os.mkdir(subFolder)
|
||||
|
||||
for parameter in config[section]:
|
||||
if not " " in parameter: # Ignore parameters with whitespaces in them (special format, not part of editable config)
|
||||
value = config[section][parameter]
|
||||
#print(" %s = %s" % (parameter, value))
|
||||
|
||||
"""
|
||||
For each config line, create a markdown file
|
||||
"""
|
||||
parameterDocFile = subFolder + '/' + parameter + ".md"
|
||||
|
||||
if not os.path.exists(parameterDocFile): # File does not exist yet, generate template
|
||||
with open(parameterDocFile, 'w') as paramFileHandle:
|
||||
content = parameterTemplate
|
||||
content = content.replace("$NAME", parameter)
|
||||
content = content.replace("$DEFAULT", value)
|
||||
|
||||
paramFileHandle.write(content)
|
||||
9
generate-param-docs/templates/overview.md
Normal file
9
generate-param-docs/templates/overview.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Parameters
|
||||
This page lists all available Configuration Parameters.
|
||||
|
||||
Click on them to get detailed information about them.
|
||||
|
||||
```
|
||||
Note: This is an auto-generated page!
|
||||
```
|
||||
---
|
||||
5
generate-param-docs/templates/parameter.md
Normal file
5
generate-param-docs/templates/parameter.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# `$NAME`
|
||||
Default Value: `$DEFAULT`
|
||||
|
||||
## Description
|
||||
## Example
|
||||
Reference in New Issue
Block a user