esp8266_web_settings beta
|
This "device" supports WiFi configuration. More...
#include <grmcdorman/device/WifiSetup.h>
Public Member Functions | |
void | set_defaults () override |
Set defaults. More... | |
void | setup () override |
Setup the device. More... | |
void | loop () override |
Main loop. More... | |
bool | publish (DynamicJsonDocument &json) const override |
Publish the value and attributes. More... | |
DynamicJsonDocument | as_json () const override |
Get the values, as a JSON document. More... | |
const String & | get_configured_local_hostname () const |
Get the local host name. More... | |
bool | get_is_published () const override |
Get whether the device readings have been published. More... | |
![]() | |
Device (const __FlashStringHelper *device_name, const __FlashStringHelper *device_identifier) | |
Construct a new Device object. More... | |
virtual | ~Device () |
Destroy the Device object. | |
const __FlashStringHelper * | name () const |
Get the device name; used for UI names and IDs. More... | |
virtual const __FlashStringHelper * | identifier () const |
Get the device identifier. More... | |
virtual void | set_devices (const std::vector< Device * > &list) |
For devices that support it, add devices to manage. More... | |
const definition_list_t & | get_definitions () const |
Get the definitions list. More... | |
const ::grmcdorman::SettingInterface::settings_list_t & | get_settings () const |
Get the settings list. More... | |
bool | is_enabled () const |
Get whether this device is enabled. More... | |
void | set_enabled (bool state) |
Set whether this device is enabled. More... | |
void | set (const String &setting, const String &value) |
If possible, set a setting's value. More... | |
String | get (const String &setting) const |
Get a setting value, as a string. More... | |
virtual String | get_status () const |
Get a status report. More... | |
void | set_is_published () |
Set the device as having published readings. More... | |
void | clear_is_published () |
Set the device as not having published readings. | |
Additional Inherited Members | |
![]() | |
typedef std::vector< const Definition * > | definition_list_t |
The type containing a list of Definition objects. | |
![]() | |
static void | set_system_identifiers (const __FlashStringHelper *firmware_name_value, const String &system_identifier_value=String()) |
Set the system identifier values. More... | |
static const __FlashStringHelper * | get_firmware_name () |
Get the firmware prefix. More... | |
static const String & | get_system_identifier () |
Get the system identifier. More... | |
![]() | |
static constexpr int | D0 = 16 |
D0 is GPIO16, HIGH at boot, not suitable for most usages. | |
static constexpr int | D1 = 5 |
D1 is GPIO5; often used as SCL. | |
static constexpr int | D2 = 4 |
D2 is GPIO4; often used as SDA. | |
static constexpr int | D3 = 0 |
D3 is GPIO0; pulled up; connected to FLASH button; not for input. | |
static constexpr int | D4 = 2 |
D4 is GPIO2; pulled up; HIGH at boot; on-board LED; not for input. | |
static constexpr int | D5 = 14 |
D5 is GPIO14; SPI (SCLK) | |
static constexpr int | D6 = 12 |
D6 is GPIO12; SPI (MISO) | |
static constexpr int | D7 = 13 |
D7 is GPIO13; SPI (MOSI) | |
static constexpr int | D8 = 15 |
D8 is GPIO15; pulled to GND; SPI (CS); not recommended. | |
static const ExclusiveOptionSetting::names_list_t | data_line_names { FPSTR("D1"), FPSTR("D2"), FPSTR("D3"), FPSTR("D5"), FPSTR("D6"), FPSTR("D7")} |
Names for each configurable data line; see settingsMap . | |
![]() | |
void | initialize (definition_list_t &&definition_list, ::grmcdorman::SettingInterface::settings_list_t &&setting_list) |
Initialize the definition and setting lists. More... | |
![]() | |
static int | index_to_dataline (int index) |
Convert a data line index to a ESP data line. More... | |
static int | dataline_to_index (int dataLine) |
Convert a data line to an index. More... | |
![]() | |
ToggleSetting | enabled |
Whether this device is enabled. | |
![]() | |
static const int | settingsMap [6] |
The set of data lines usable for communication. More... | |
This "device" supports WiFi configuration.
In particular, on a fresh install or reset, it will create a soft AP, with the local host set as a captive portal. Once connected, it will initialize the WiFi connection in station (STA) mode with the configured parameters.
Failure to connect to the configured station will result in falling back to the soft AP.
Note that this is similar to WifiManager; however, the web service is not present in this device. It should be possible to use entirely different mechanisms to configure the WiFi connection without ever creating a web server.
At present, the soft AP is not password protected.
|
overridevirtual |
Get the values, as a JSON document.
The structure is identical to the document created inside publish
.
Reimplemented from grmcdorman::device::Device.
|
inline |
Get the local host name.
This is the configured host name; it is not necessarily the host name as actually present in the WiFi class.
|
inlineoverridevirtual |
Get whether the device readings have been published.
The WiFiSetup device always returns the current RSSI value. It is not averaged and as such should always be considered as "not published".
Reimplemented from grmcdorman::device::Device.
|
overridevirtual |
Main loop.
This is called in the main application loop. This should avoid blocking as doing so will prevent the other devices from running.
An exception is a "device" which requires user interaction, e.g. WiFi association, before the rest of the system can run.
Implements grmcdorman::device::Device.
|
overridevirtual |
Publish the value and attributes.
The values and attributes for all sensors, i.e. all items listed in the Description instances, should added to the supplied JSON object. If the value is not available, or this device does not publish, return false
.
The value, or values, and attributes, if any, are to be added as a single node to the json
parameter. This includes the case for multiple sensors.
[in,out] | json | JSON to receive the device values and attributes. |
true
if a value to be published was added; false
otherwise. Reimplemented from grmcdorman::device::Device.
|
overridevirtual |
Set defaults.
This sets the host name and SoftAP SSID from the system identifier.
Reimplemented from grmcdorman::device::Device.
|
overridevirtual |
Setup the device.
Call once when the system boots. This should perform device-specific setup, if the device is enabled, as well as preparing UI settings (notably info settings) for communication.
This must be called after initial values are loaded.
Implements grmcdorman::device::Device.