1. Parameters
This page lists all available Configuration Parameters. If a parameter or section has a tick box on its left side, you can disable it. In such case the functionality gets disabled respectively the default values will be used.
Note
This is an auto-generated page! See the README for details!
1.1 Section TakeImage
1.1.1 Parameter Brightness
Default Value: 0
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Note
This parameter can also be set on the Reference Image configuration.
Image Brightness (-2 .. 2)
1.1.2 Parameter Contrast
Default Value: 0
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Note
This parameter can also be set on the Reference Image configuration.
Image Contrast (-2 .. 2)
1.1.3 Parameter Demo
Default Value: false
Enable to use demo images instead of the real camera images.
Make sure to have a /demo folder on your SD-Card and it contains the expected files!
Check here for details.
1.1.4 Parameter FixedExposure
Default Value: false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Fixes the illumination setting of camera at the startup and uses this later -> Individual round is faster.
1.1.5 Parameter ImageQuality
Default Value: 12
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Quality index for pictures: 8 (highest quality) ... 63 (lowest quality)
Warning
Value below 12 could result in system instabilities!
1.1.6 Parameter ImageSize
Default Value: VGA
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Size of the camera picture.
Available options:
VGA(640 x 480 pixel)QVGA(320 x 240 pixel)
1.1.7 Parameter LEDIntensity
Default Value: 50
Warning
This is an Expert Parameter! Only change it if you understand what it does! This parameter can also be set on the Reference Image configuration.
Set the Flash LED Intensity: (0 .. 100)
1.1.8 Parameter RawImagesLocation
Default Value: /log/source
Location on the SD-Card to store the raw images.
Warning
A SD-Card has limited write cycles. Since the device does not do Wear Leveling, this can wear out your SD-Card!
1.1.9 Parameter RawImagesRetention
Default Value: 15
Unit: Days
Number of days to keep the raw images (0 = forever)
1.1.10 Parameter Saturation
Default Value: 0
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Note
This parameter can also be set on the Reference Image configuration.
Image Saturation (-2 .. 2)
1.1.11 Parameter WaitBeforeTakingPicture
Default Value: 5
Unit: seconds
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Waiting time between switching the flash light (onboard LED) on and taking the picture.
1.2 Section Alignment
1.2.1 Parameter AlignmentAlgo
Default Value: Default
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Algorithm used for the alignment step.
Available options:
Default: Use only red color channelHighAccuracy: Use all 3 color channels (3x slower)Fast: First time useHighAccuracy, then only check if the image is shiftedOff: Disable alignment algorithm
1.2.2 Parameter FlipImageSize
Default Value: false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Note
This parameter can also be set on the Reference Image configuration.
This parameter can be used to rotate the viewport together with the alignment rotation:
1.2.3 Parameter InitialMirror
Default Value: false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Note
This parameter can also be set on the Reference Image configuration.
Option for initially mirroring the image on the original x-axis.
1.2.4 Parameter InitialRotate
Default Value: 179
Unit: Degrees
Initial rotation of image before alignment in degree (0 .. 359)
Note
This parameter is accessible on the Reference Image Page but not on the Config page!
1.2.5 Parameter SearchFieldX
Default Value: 20
Unit: Pixels
Warning
This is an Expert Parameter! Only change it if you understand what it does!
X-size (width) in which the reference is searched.
Note
Since the alignment is one of the steps using a lot of computation time, the search field should be as small as possible. The calculation time goes quadratic with the search field size.
1.2.6 Parameter SearchFieldY
Default Value: 20
Unit: Pixels
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Y-size (height) in which the reference is searched.
Note
Since the alignment is one of the steps using a lot of computation time, the search field should be as small as possible. The calculation time goes quadratic with the search field size.
1.3 Section Digits
1.3.1 Parameter CNNGoodThreshold
Default Value: 0.5
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Threshold above which the classification should be to accept the value (only meaningful for digits).
Warning
This is only supported for the dig-class100 models!
1.3.2 Parameter Model
Default Value: /config/dig-cont_*.tflite (See /config/config.ini)
Path to CNN model file for image recognition. See here for details.
1.3.3 Parameter ROIImagesLocation
Default Value: /log/digit
Location to store separated digit images on the SD-Card.
Warning
A SD-Card has limited write cycles. Since the device does not do Wear Leveling, this can wear out your SD-Card!
1.3.4 Parameter ROIImagesRetention
Default Value: 3
Unit: Days
Days to keep the separated digit images (0 = forever).
1.4 Section Analog
1.4.1 Parameter CNNGoodThreshold
Default Value: 0.5
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Threshold above which the classification should be to accept the value (only meaningful for digits).
Warning
This is only supported for the ana-class100 models!
1.4.2 Parameter ExtendedResolution
Warning
This parameter is unused!
Use NUMBER.ExtendedResolution instead!
1.4.3 Parameter Model
Default Value: /config/ana-cont_*.tflite (See /config/config.ini)
Path to CNN model file for image recognition. See here for details.
1.4.4 Parameter ROIImagesLocation
Default Value: /log/analog
Location to store separated analog images on the SD-Card.
Warning
A SD-Card has limited write cycles. Since the device does not do Wear Leveling, this can wear out your SD-Card!
1.4.5 Parameter ROIImagesRetention
Default Value: 3
Unit: Days
Days to keep the separated analog images (0 = forever).
1.5 Section PostProcessing
1.5.1 Parameter AllowNegativeRates
Warning
This parameter is unused!
Use NUMBER.AllowNegativeRates instead!
1.5.2 Parameter CheckDigitIncreaseConsistency
Default Value: false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
An additional consistency check. It especially improves the zero crossing check between digits.
1.5.3 Parameter ErrorMessage
Default Value: true
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Do not show error message in return value. In an error case, the last valid number will be used for the various transmission protocols (MQTT, InfluxDB, REST, ...).
1.5.4 Parameter <NUMBERS>.AllowNegativeRates
Default Value: false
Allow a meter to count backwards (decreasing values).
Note
This is unusual (it means there is a negative rate) and not wanted in most cases!
1.5.5 Parameter <NUMBER>.AnalogDigitalTransitionStart
Default Value: 9.2
This can be used if you have wrong values, but the recognition of the individual ROIs are 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. See here for details.
Range: 6.0 .. 9.9.
1.5.6 Parameter <NUMBER>.DecimalShift
Default Value: 0
Shift the decimal separator (positiv or negativ).
Eg. to move from m³ to liter (1 m³ equals 1000 liters), you need to set it to +3.
1.5.7 Parameter <NUMBER>.ExtendedResolution
Default Value: false
Use the decimal place of the last analog counter for increased accuracy.
Note
This parameter is only supported on the *-class* and *-const models! See Choosing-the-Model for details.
1.5.8 Parameter <NUMBER>.IgnoreLeadingNaN
Default Value: true
Leading N's will be deleted before further processing.
This is only relevant for models which use N!
See here for details.
1.5.9 Parameter <NUMBER>.MaxRateType
Default Value: AbsoluteChange
Defines if the Change Rate is calculated as the difference between the last two readings (AbsoluteChange = difference) or
as the difference normalized to the interval (RateChange = difference per minute).
1.5.10 Parameter <NUMBER>.MaxRateValue
Default Value: 0,05
Maximum allowed change between two readings, if exceeded the last reading will be rejected. Depending on the settings of <NUMBER>.MaxRateType the MaxRateValue is either treated as the difference between the two measurements (AbsoluteChange = difference) not taking the set time interval into account or as the difference normalized to the interval (RateChange = difference per minute).
If negative rate is disallowed and no maximum rate value is set, one false high reading will lead to a period of missing measurements until the measurement reaches the previous false high reading. E.g. if the counter is at 600,00 and it's read incorrectly as610,00, all measurements will be skipped until the counter reaches 610,00. Setting the MaxRateValue to 0,05 leads to a rejection of all readings with a difference > 0,05, in this case 610,00. The rejection also applies to correct readings with a difference > 0,05!
1.5.11 Parameter PreValueAgeStartup
Default Value: 720
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Time in minutes, how long a previous read value is valid after reboot.
1.5.12 Parameter PreValueUse
Default Value: true
Use the previous value (value from previous round) for consistency checks. This also works through a reboot of the device!
1.6 Section MQTT
1.6.1 Parameter CACert
Default Value: ""
Example: /config/certs/RootCA.pem.
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Path to the CA certificate file.
This is part of the configuration to enable TLS for MQTT. The CA Certificate is used by the client to validate the broker is who it claims to be. It allows the client to authenticate the server, which is the first part of the MTLS handshake.
Usually there is a common RootCA certificate for the MQTT broker
Note
This also means that you might have to change the protocol and port in uri to mqtts://example.com:8883!
1.6.2 Parameter ClientCert
Default Value: ""
Example: /config/certs/client.pem.crt.
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Path to the Client Certificate file.
This is part of the configuration to enable TLS for MQTT. The Client Certificate is used by the client to prove its identity to the server, in conjunction with the Client Key. It is the second part of the MTLS handshake.
Usually there is a one pair of Client Certificate/Key for each client that connects to the MQTT broker
Note
If set, ClientKey must be set too
This also means that you might have to change the protocol and port in uri to mqtts://example.com:8883!
1.6.3 Parameter ClientID
Default Value: watermeter
Client ID used to connect to the MQTT broker.
If disabled, the hostname will be used.
1.6.4 Parameter ClientKey
Default Value: ""
Example: /config/certs/client.pem.key.
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Path to the Client Key file.
This is part of the configuration to enable TLS for MQTT. The Client Key is used by the client to prove its identity to the server, in conjunction with the Client Certificate. It is the second part of the MTLS handshake.
Usually there is a one pair of Client Certificate/Key for each client that connects to the MQTT broker
Note
If set, ClientCert must be set too
This also means that you might have to change the protocol and port in uri to mqtts://example.com:8883!
1.6.5 Parameter HomeassistantDiscovery
Default Value: true
Enable or disable the Homeassistant Discovery. See here for details about the discovery.
1.6.6 Parameter MainTopic
Default Value: watermeter
MQTT main topic, under which the counters are published.
The single value will be published with the following key: MAINTOPIC/NUMBER/RESULT_TOPIC
With:
NUMBER: The name of the value (a meter might have more than one value). The names get defined in the analog and digital ROI configuration (defaults tomain).RESULT_TOPIC: Automatically filled with the right name, eg.value,rate,timestamp,error, ....
The general connection status can be found in MAINTOPIC/CONNECTION.
See MQTT Result Topics for a full list of topics.
Note
The main topic is allowed to contain / which can be used to split it into multiple levels, eg. /basement/meters/watermeter/1/ if you have multiple water meters in your basement.
1.6.7 Parameter MeterType
Default Value: other
Select the Meter Type so the sensors have the right units in Homeassistant.
Note
For Watermeter you need to have Homeassistant 2022.11 or newer!
Please also make sure that the selected Meter Type matches the dimension of the value provided by the meter!
Eg. if your meter provides m³, you need to also set it to m³.
Alternatively you can set the parameter DecimalShift to 3 so the value is converted to liters!
1.6.8 Parameter RetainMessages
Default Value: true
Enable or disable the Retain Flag for all MQTT entries.
1.6.9 Parameter Uri
Default Value: mqtt://example.com:1883
URI to the MQTT broker including the port. E.g. mqtt://192.168.1.1:1883.
1.6.10 Parameter password
Default Value: PASSWORD
Password for MQTT authentication.
1.6.11 Parameter user
Default Value: USERNAME
Username for MQTT authentication.
1.7 Section InfluxDB
1.7.1 Parameter Database
Default Value: ''
Name of the InfluxDB v1 Database into which to publish the values.
Note
See section InfluxDBv2 for InfluxDB v2 support!
1.7.2 Parameter Measurement
Default Value: undefined
Please fill me with an explanation and useful links.
1.7.3 Parameter <NUMBER>.Field
Default Value: undefined
Dedicated definition of the field for InfluxDB use for saving in the Influx database (e.g.: "watermeter/value").
1.7.4 Parameter Measurement
Default Value: undefined
Name of the InfluxDB v1 Measurement to use to publish the value.
Note
See section InfluxDBv2 for InfluxDB v2 support!
1.7.5 Parameter Uri
Default Value: undefined
URI of the HTTP interface to InfluxDB v1, without trailing slash, e.g. http://192.168.1.1:8086.
Note
See section InfluxDBv2 for InfluxDB v2 support!
1.7.6 Parameter password
Default Value: undefined
Password for the InfluxDB v1 authentication.
Note
See section InfluxDBv2 for InfluxDB v2 support!
1.7.7 Parameter user
Default Value: undefined
Username for the InfluxDB v1 authentication.
Note
See section InfluxDBv2 for InfluxDB v2 support!
1.8 Section InfluxDBv2
1.8.1 Parameter Bucket
Default Value: ''
Name of the InfluxDB v2 Bucket into which to publish the values.
1.8.2 Parameter Database
Warning
This parameter is unused!
Use Basket instead!
1.8.3 Parameter Measurement
Default Value: undefined
Please fill me with an explanation and useful links.
1.8.4 Parameter <NUMBER>.Field
Default Value: undefined
Field for InfluxDB v2 to use for saving.
1.8.5 Parameter NUMBER.Fieldname
Default Value: undefined
Please fill me with an explanation and useful links.
1.8.6 Parameter Measurement
Default Value: undefined
Name of the InfluxDB v2 Measurement to use to publish the value.
1.8.7 Parameter Org
Default Value: undefined
Organisation (Org) for InfluxDB v2 authentication
1.8.8 Parameter Token
Default Value: undefined
Token for InfluxDB v2 authentication
1.8.9 Parameter Uri
Default Value: undefined
URI of the HTTP interface to InfluxDB v2, without trailing slash, e.g. http://192.168.1.1:8086.
1.9 Section GPIO
1.9.1 Parameter IO0
Default Value: input disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO0 pin.
Warning
This pin is only usable with restrictions! It must be disabled when the camera is used. Additionally, it is used to activate Bootloader mode and must therefore be HIGH after a reset!
Parameters:
GPIO 0 state: One ofinput,input pullup,input pulldownoroutput.GPIO 0 use interrupt: Enable interrupt triggerGPIO 0 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 0 enable MQTT: Enable MQTT publishing/subscribingGPIO 0 enable HTTP: Enable HTTP write/readGPIO 0 name: MQTT topic name (empty =GPIO0). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.2 Parameter IO1
Default Value: input disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO1 pin.
Warning
This pin is by default used for the serial communication as TX pin (USB logging)!
Parameters:
GPIO 1 state: One ofinput,input pullup,input pulldownoroutput.GPIO 1 use interrupt: Enable interrupt triggerGPIO 1 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 1 enable MQTT: Enable MQTT publishing/subscribingGPIO 1 enable HTTP: Enable HTTP write/readGPIO 1 name: MQTT topic name (empty =GPIO1). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.3 Parameter IO12
Default Value: input-pullup disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO12 pin.
Note
This pin is usable without known restrictions!
Parameters:
GPIO 12 state: One ofexternal-flash-ws281x,input,input pullup,input pulldownoroutput.GPIO 12 use interrupt: Enable interrupt triggerGPIO 12 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 12 enable MQTT: Enable MQTT publishing/subscribingGPIO 12 enable HTTP: Enable HTTP write/readGPIO 12 name: MQTT topic name (empty =GPIO12). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.4 Parameter IO13
Default Value: input-pullup disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO13 pin.
Note
This pin is usable without known restrictions!
Parameters:
GPIO 13 state: One ofinput,input pullup,input pulldownoroutput.GPIO 13 use interrupt: Enable interrupt triggerGPIO 13 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 13 enable MQTT: Enable MQTT publishing/subscribingGPIO 13 enable HTTP: Enable HTTP write/readGPIO 13 name: MQTT topic name (empty =GPIO13). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.5 Parameter IO3
Default Value: input disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO3 pin.
Warning
This pin is by default used for the serial communication as RX pin (USB logging)!
Parameters:
GPIO 3 state: One ofinput,input pullup,input pulldownoroutput.GPIO 3 use interrupt: Enable interrupt triggerGPIO 3 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 3 enable MQTT: Enable MQTT publishing/subscribingGPIO 3 enable HTTP: Enable HTTP write/readGPIO 3 name: MQTT topic name (empty =GPIO3). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.6 Parameter IO4
Default Value: built-in-led disabled 10 false false
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter can be used to configure the GPIO IO4 pin.
Warning
This pin is only usable with restrictions! By default, it is used for build-in flash light (onboard LED).
Parameters:
GPIO 4 state: One ofbuilt-in-led,input,input pullup,input pulldownoroutput.GPIO 4 use interrupt: Enable interrupt triggerGPIO 4 PWM duty resolution: LEDC PWM duty resolution in bitGPIO 4 enable MQTT: Enable MQTT publishing/subscribingGPIO 4 enable HTTP: Enable HTTP write/readGPIO 4 name: MQTT topic name (empty =GPIO4). Allowed characters:a-z, A-Z, 0-9, _, -.
1.9.7 Parameter LEDColor
Default Value: 150 150 150
Color of the attached LEDs to GPIO12 in Red, Green Blue from 0 (full off) .. 255 (full on)
(See IO12 parameter).
1.9.8 Parameter LEDNumbers
Default Value: 2
Number of LEDs on the external LED-stripe attached to GPIO12 (See IO12 parameter).
1.9.9 Parameter LEDType
Default Value: WS2812
Type of the WS2812x which is connected to GPIO12 (See IO12 parameter).
1.9.10 Parameter MainTopicMQTT
Default Value: wasserzaehler/GPIO
Note
This parameter is not accessible through the Web Interface Configuration Page!
The GPIO Interface is prepared to report it's status and status changes as a MQTT topic. With this parameter you configure the MQTT main topic, under which the status is published.
As this parameter is still experimental it can only be set manually in the config.ini itself and has not been tested in detail so far.
1.10 Section AutoTimer
1.10.1 Parameter AutoStart
Default Value: true
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Automatically start the Flow (Digitization Rounds) immediately after power up.
Note
Typically this is set to true.
The main reasons to set it to false is when you want to trigger it manually using the
REST API or MQTT-API or for debugging.
1.10.2 Parameter Interval
Default Value: 5
Unit: Minutes
Interval in which the Flow (Digitization Round) is run. If a round takes longer than this interval, the next round gets postponed until the current round completes.
1.11 Section DataLogging
1.11.1 Parameter DataFilesRetention
Default Value: 3
Unit: Days
Number of days to keep the data files (0 = forever).
1.11.2 Parameter DataLogActive
Default Value: true
Activate data logging to the SD-Card.
The files will be stored in /log/data/data_YYYY-MM-DD.csv. See Data Logging for details.
Warning
A SD-Card has limited write cycles. Since the device does not do Wear Leveling, this can wear out your SD-Card!
1.12 Section Debug
1.12.1 Parameter LogLevel
Default Value: 1 (ERROR)
Define the log level for the logging to the SD-Card.
Available options:
1:ERROR2:WARNING3:INFO4:DEBUG
As higher the level, as more log messages get written to the SD-Card.
Warning
DEBUG or INFO might damage the SD-Card if enabled long term due to excessive writes to the SD-Card!
A SD-Card has limited write cycles. Since the device does not do Wear Leveling, this can wear out your SD-Card!
1.12.2 Parameter LogfilesRetention
Default Value: 3
Unit: Days
Number of days to keep the log files (0 = forever).
1.13 Section System
1.13.1 Parameter CPUFrequency
Default Value: 160
Set the CPU Frequency.
Warning
Setting it to 240 will lead to a faster device, but it will also require a stronger power supply! Additionally, depending on the quality of your ESP32-CAM, it might run unstable!
Possible values:
- 160
- 240
1.13.2 Parameter Hostname
Default Value: undefined
Warning
This is an Expert Parameter! Only change it if you understand what it does!
Hostname for the device.
It gets automatically transferred to /wlan.ini on the SD-Card at the next startup.
1.13.3 Parameter RSSIThreshold
Default Value: 0
Possible values: -100 .. 0 (0 = disabled).
Warning
This is an Expert Parameter! Only change it if you understand what it does!
This parameter activates a client triggered AP switching functionality (simplified roaming).
If actual RSSI value is lower (more negative) than RSSIThreshold, all WIFI channels will be scanned for configured access point SSID. If an access point is in range which has better RSSI value (less negative) than actual RSSI value + 5 dBm, the device is trying to connect to this access point with the better RSSI value.
Note
The RSSI check only gets initiated at the end of each round to avoid any disturbance of processing.
Note
It gets automatically transferred to /wlan.ini on the SD-Card at next startup.
1.13.4 Parameter SetupMode
Default Value: true
Note
This parameter is not accessible through the Web Interface Configuration Page!
Set this parameter to true to stay in the Setup Mode after the next start of the device.
1.13.5 Parameter TimeServer
Default Value: pool.ntp.org
Warning
This is an Expert Parameter! Only change it if you understand what it does!
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!
1.13.6 Parameter TimeZone
Default Value: CET-1CEST,M3.5.0,M10.5.0/3
Time zone in POSIX syntax (Europe/Berlin = CET-1CEST,M3.5.0,M10.5.0/3 - incl. daylight saving)
Check the table on http://<DEVICE IP>/timezones.html to find the settings for your region.