Homie for ESP8266 lets you implement custom settings that can be set from the JSON configuration file and the Configuration API. Below is an example of how to use this feature:
HomieSetting<long> percentageSetting("percentage", "A simple percentage"); // id, description void setup() { percentageSetting.setDefaultValue(50).setValidator([] (long candidate) { return (candidate >= 0) && (candidate <= 100); }); Homie.setup(); }
setDefaultValue() before Homie.setup()
As shown in the example above, the default value has to be set before Homie.setup()
is called. Otherwise you get an error on startup if there is also no value configured in JSON configuration file.
An HomieSetting
instance can be of the following types:
bool
true
or false
long
An integer from -2,147,483,648
to 2,147,483,647
double
A floating number that can fit into a real64_t
const char*
Any string
By default, a setting is mandatory (you have to set it in the configuration file). If you give it a default value with setDefaultValue()
, the setting becomes optional. You can validate a setting by giving a validator function to setValidator()
. To get the setting from your code, use get()
. To get whether the value returned is the optional one or the one provided, use wasProvided()
.
For this example, if you want to provide the percentage
setting, you will have to put in your configuration file:
{ "settings": { "percentage": 75 } }
See the following example for a concrete use case:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4