# Edit Config

## Configuration

Expert Mode

Parameter | Value | Information
--- | --- | ---

#### TakeImage

LogImageLocation |  | Location to store raw images for logging
LogfileRetentionInDays |  | Time to keep the raw image (in days, resp. "0" = forever)
Demo Mode |  | Enable to use demo images instead of the real camera images. Make sure to have a demo folder on your SD-Card! Check the documentation for details.
WaitBeforeTakingPicture |  | Wait time between switching illumination on and taking the picture (in seconds)
ImageQuality |  | Quality index for picture (default = "12" - "0" high ... "63" low) Remark: values smaller than 12 can result in a reboot, as the bigger sized JPEG might not fit in the available RAM!
ImageSize |  | Size of camera picture (default = "VGA")
LEDIntensity |  | Internal LED Flash Intensity (PWM from 0% - 100%). Remark: as the camera autoillumination settings are used, this is rather for energy saving, than reducing reflections.
Brightness |  | Image Brightness (-2 .. 2 - default = "0")
Contrast |  | Image Contrast (-2 .. 2 - default = "0") Remark: camera driver is not fully supporting this setting yet (no impact on image)
Saturation |  | Image Saturation (-2 .. 2 - default = "0") Remark: camera driver is not fully supporting this setting yet (no impact on image)
FixedExposure |  | Fixes the illumination setting of camera at the startup and uses this later --> individual round is faster

#### Alignment

SearchFieldX |  | x size (width) in which the reference is searched (default = "20")
SearchFieldY |  | y size (height) in which the reference is searched (default = "20")
AlignmentAlgo |  | "Default" = use only R-Channel, "HighAccuracy" = use all Channels (RGB, 3x slower), "Fast" (First time RGB, then only check if image is shifted)

#### Digits

Model |  | Path to CNN model file for image recognition. Check the documentation for details.
CNNGoodThreshold |  | EXPERIMENTAL - NOT WORKING FOR ALL CNNs! - Threshold above which the classification should be to accept the value (only for digits meaningfull)
LogImageLocation |  | Location to store separated digits for logging
LogfileRetentionInDays |  | Time to keep the separated digit images (in days, resp. "0" = forever)

#### Analog

Model |  | Path to CNN model file for image recognition. Check the documentation for details.
LogImageLocation |  | Location to store separated digits for logging
LogfileRetentionInDays |  | Time to keep the separated digit images (in days, resp. "0" = forever)

#### PostProcessing

PreValueUse |  | Enable to use the previous read value for consistency checks - also on reboots
PreValueAgeStartup |  | Time (in minutes), how long a previous read value is valid after reboot (default = 720 min)
ErrorMessage |  | Do not show error message in return value - in error case, the last valid number will be send out
CheckDigitIncreaseConsistency |  | Enable additional consistency check - especially zero crossing check between digits
Postprocessing Individual Parameters:
AllowNegativeRates |  | Set to "false" to ensure, that only positive changes are accepted (typically for counter)
DecimalShift |  | Shift the decimal separator (positiv or negativ). Eg. to move from 'm³' to 'l' (Multiply by 1000), you need to set it to +3.
AnalogDigitalTransitionStart |  | If you have false Values, but the recognition is correct. Look for the start of changing of the first digit and note the analog pointer value behind. Set it here. Only used on combination of digits and analog pointers. Default=9.2
MaxRateValue |  | Maximum change of a reading - if treated as absolute or relative change see next parameter.
MaxRateType |  | Defines if the change rate compared to the previous value is calculated as absolute change (AbsoluteChange) or as rate normalized to the interval (RateChange = change/minute).
ExtendedResolution |  | Enable to use the decimal place of the last analog counter
IgnoreLeadingNaN |  | Leading "N"'s will be deleted before further processing

#### MQTT

Uri |  | URI to the MQTT broker including port e.g.: mqtt://IP-Address:Port

MainTopic

MQTT main topic, under which the counters are published.
The single value will be published with the following key: MAINTOPIC/VALUE_NAME/PARAMETER where

- VALUE_NAME is the name of the value (a meter might have more than one value) as defined during analog and digital ROI configuration (defaults to "main")
- and PARAMETERS are: value, rate, timestamp, error

The general connection status can be found in MAINTOPIC/CONNECTION

ClientID |  | ClientID to connect to the MQTT broker
user |  | User for MQTT authentication
password |  | Password for MQTT authentication
Enable MQTT Retain Flag |  | Enable or disable the retain flag for all MQTT entries

#### Homeassistant Discovery (using MQTT)

##### The discovery topics and the static topics (IP, MAC, Hostname, Interval, ...) only get sent on startup. To send them again, you can call the following URL: http://<IP>/mqtt_publish_discovery

Homeassistant Discovery |  | Enable or disable the Homeassistant Discovery
Meter Type |  | Select the meter type so the sensors have the right units in Homeassistant. Note: For 'Watermeter' you need to have Homeassistant 2022.11 or never! Please also make sure that it matches the dimention of the value provided by the meter! Eg. if your meter provides m3, you need to also set it to m3. Alternatively you could set 'DecimalShift' to '3' so the value is converted to 'l'!

#### InfluxDB

##### Only InfluxDB v1.x is supported, v2.x has a changed interface

Uri |  | URI of the HTTP interface to InfluxDB, without traililing slash, e.g. http://IP-Address:Port
Database |  | Database name in which to publish the read value.
Measurement |  | Measurement name to use to publish the read value.
user |  | User for InfluxDB authentication
password |  | Password for InfluxDB authentication

#### GPIO Settings

##### Enabling GPIO handler, disable by default integrated flash light.
Please enable it with GPIO4 (internal flash LED) settings or GPIO12 (external LED).

GPIO 0 state |  | GPIO 0 Usable with restrictions. Must be disabled when camera is used. Pin is used to activate flash mode and must therefore be HIGH when booting.
GPIO 0 use interrupt |  | GPIO 0 enable interrupt trigger
GPIO 0 PWM duty resolution |  | GPIO 0 LEDC PWM duty resolution in bit
GPIO 0 enable MQTT |  | GPIO 0 enable MQTT publishing/subscribing
GPIO 0 enable HTTP |  | GPIO 0 enable HTTP write/read
GPIO 0 name |  | GPIO 0 MQTT topic name (empty = GPIO0). Allowed characters (a-z, A-Z, 0-9, _, -)
<label=GPIO_IO1_enabled>GPIO 1 state |  | GPIO 1 Used by default for serial communication as TX pin. Required for seriales monitor.
GPIO 1 use interrupt |  | GPIO 1 enable interrupt trigger
GPIO 1 PWM duty resolution |  | GPIO 1 LEDC PWM duty resolution in bit
GPIO 1 enable MQTT |  | GPIO 1 enable MQTT publishing/subscribing
GPIO 1 enable HTTP |  | GPIO 1 enable HTTP write/read
GPIO 1 name |  | GPIO 1 MQTT topic name (empty = GPIO1). Allowed characters (a-z, A-Z, 0-9, _, -)
<label=GPIO_IO3_enabled>GPIO 3 state |  | GPIO 3 Used by default for serial communication as RX pin.
GPIO 3 use interrupt |  | GPIO 3 Used by default for serial communication as RX pin.
GPIO 3 PWM duty resolution |  | GPIO 3 LEDC PWM duty resolution in bit
GPIO 3 enable MQTT |  | GPIO 3 enable MQTT publishing/subscribing
GPIO 3 enable HTTP |  | GPIO 3 enable HTTP write/read
GPIO 3 name |  | GPIO 3 MQTT topic name (empty = GPIO3). Allowed characters (a-z, A-Z, 0-9, _, -)
GPIO 4 state |  | GPIO 4 Usable with restrictions. Pin is used for build-in flash light.
GPIO 4 use interrupt |  | GPIO 4 enable interrupt trigger
GPIO 4 PWM duty resolution |  | GPIO 4 LEDC PWM duty resolution in bit
GPIO 4 enable MQTT |  | GPIO 4 enable MQTT publishing/subscribing
GPIO 4 enable HTTP |  | GPIO 4 enable HTTP write/read
GPIO 4 name |  | GPIO 4 MQTT topic name (empty = GPIO4). Allowed characters (a-z, A-Z, 0-9, _, -)
GPIO 12 state |  | GPIO 12 is usable without restrictions
GPIO 12 use interrupt |  | GPIO 12 enable interrupt trigger
GPIO 12 PWM duty resolution |  | GPIO 12 LEDC PWM duty resolution in bit
GPIO 12 enable MQTT |  | GPIO 12 enable MQTT publishing/subscribing
GPIO 12 enable HTTP |  | GPIO 12 enable HTTP write/read
GPIO 12 name |  | GPIO 12 MQTT topic name (empty = GPIO12). Allowed characters (a-z, A-Z, 0-9, _, -)
LED-Type |  | Type of WS2812x, that is connected to GPIO12
Numbers of LEDs |  | Number of LEDs on the external LED-stripe
LED Color | R G B | Color of LEDs in (R)ed, (G)reen (B)lue from 0...255
<label=GPIO_IO13_enabled>GPIO 13 state |  | GPIO 13 is usable without restrictions
GPIO 13 use interrupt |  | GPIO 13 enable interrupt trigger
GPIO 13 PWM duty resolution |  | GPIO 13 LEDC PWM duty resolution in bit
GPIO 13 enable MQTT |  | GPIO 13 enable MQTT publishing/subscribing
GPIO 13 enable HTTP |  | GPIO 13 enable HTTP write/read
GPIO 13 name |  | GPIO 13 MQTT topic name (empty = GPIO13). Allowed characters (a-z, A-Z, 0-9, _, -)

#### AutoTimer

AutoStart |  | Start the image recognition immediatly after power up. false is basically for debugging.
Interval |  | Interval in which the number(s) are read (in minutes). If a digitalization round takes longer than this interval, the next run gets postponed until the current run completes.

#### DataLogging

DataLogActive |  | Activate data log to SD card
DataLogRetentionInDays |  | Time to keep the data files (in days - "0" = forever)

#### Debug

Logfile Log Level |  | Set the level of the logging to the SD-Card. Warning: DEBUG or INFO might damage the SD-Card if enabled longterm due to excessive writes to the SD-Card!
LogfileRetentionInDays |  | Time to keep the log files (in days - "0" = forever)

#### System

TimeZone |  | Time zone in POSIX syntax (Europe/Berlin = "CET-1CEST,M3.5.0,M10.5.0/3" - incl. daylight saving) Use this table to find the settings for your region.
TimeServer |  | Time server to synchronize system time. If it is disabled or "undefined", "pool.ntp.org" will be used. You can also set it to the IP of your router. Many routers like Fritzboxes can act as a local NTP server. To disable NTP, you need to activate it but set the TimeServer config to be empty. In such case the time always starts at 01.01.1970 after each power cycle!
Hostname |  | Hostname for server - will be transfered to wlan.ini at next startup)
RSSIThreashold |  | WLAN Mesh Parameter: Threashold for RSSI value to check for start switching access point in a mesh system. Possible values: -100 to 0, 0 = disabled - Value will be transfered to wlan.ini at next startup)