1#ifndef SENSESP_NET_WIFI_PROVISIONER_H_
2#define SENSESP_NET_WIFI_PROVISIONER_H_
28 String password =
"",
int channel = 9,
29 bool hidden =
false,
bool captive_portal_enabled =
true)
51 settings.
enabled_ = json[
"enabled"] |
false;
52 settings.
ssid_ = json[
"name"] |
"";
53 settings.
password_ = json[
"password"] |
"";
54 settings.
channel_ = json[
"channel"] | 1;
55 settings.
hidden_ = json[
"hidden"] |
false;
76 IPAddress ip = IPAddress(169, 254, 0, 1),
77 IPAddress netmask = IPAddress(255, 255, 255, 0),
78 IPAddress gateway = IPAddress(192, 168, 0, 1),
79 IPAddress dns_server = IPAddress(8, 8, 8, 8))
98 config.
ssid_ = json[
"name"] |
"";
100 config.
use_dhcp_ = json[
"useDHCP"] |
true;
101 config.
ip_.fromString(json[
"ipAddress"] |
"169.254.0.1");
102 config.
netmask_.fromString(json[
"netmask"] |
"255.255.255.0");
103 config.
gateway_.fromString(json[
"gateway"] |
"192.168.0.1");
104 config.
dns_server_.fromString(json[
"dnsServer"] |
"8.8.8.8");
112 doc[
"ipAddress"] =
ip_.toString();
113 doc[
"netmask"] =
netmask_.toString();
114 doc[
"gateway"] =
gateway_.toString();
129 if (bssid !=
nullptr) {
151 snprintf(bssid_str,
sizeof(bssid_str),
154 doc[
"bssid"] = bssid_str;
175 WiFiProvisioner(
const String& config_path,
const String& client_ssid =
"",
176 const String& client_password =
"",
177 const String& ap_ssid =
"",
178 const String& ap_password =
"");
182 void reset()
override;
185 bool to_json(JsonObject& doc)
override;
186 bool from_json(
const JsonObject& config)
override;
189 IPAddress
local_ip()
const override {
return WiFi.localIP(); }
190 IPAddress
gateway_ip()
const override {
return WiFi.gatewayIP(); }
193 return WiFi.isConnected() || WiFi.getMode() == WIFI_MODE_AP ||
194 WiFi.getMode() == WIFI_MODE_APSTA;
210 String
ssid()
const {
return WiFi.SSID(); }
211 int rssi()
const {
return WiFi.RSSI(); }
Storage object for WiFi access point settings.
static AccessPointSettings from_json(const JsonObject &json)
AccessPointSettings(bool enabled=true, String ssid="", String password="", int channel=9, bool hidden=false, bool captive_portal_enabled=true)
void as_json(JsonObject &doc)
bool captive_portal_enabled_
static ClientSSIDConfig from_json(const JsonObject &json)
void as_json(JsonObject &doc)
ClientSSIDConfig(String ssid="", String password="", bool use_dhcp=true, IPAddress ip=IPAddress(169, 254, 0, 1), IPAddress netmask=IPAddress(255, 255, 255, 0), IPAddress gateway=IPAddress(192, 168, 0, 1), IPAddress dns_server=IPAddress(8, 8, 8, 8))
FileSystemSaveable(const String &config_path)
Transport-agnostic network provisioner interface.
Resettable(int priority=0)
static String get_hostname()
Get the current hostname.
WiFiNetworkInfo(String ssid, int32_t rssi, uint8_t encryption, uint8_t *bssid, int32_t channel)
void as_json(JsonObject &doc)
Manages the ESP's WiFi connection.
bool is_connected() const override
True iff the network interface is usable.
void start_access_point()
bool from_json(const JsonObject &config) override
String mac_address() const override
Hardware MAC address of the active interface.
IPAddress local_ip() const override
Current local IPv4 address. Returns IPAddress() if no link.
AccessPointSettings ap_settings_
std::vector< ClientSSIDConfig > client_settings_
ValueProducer< WiFiState > * get_wifi_state_producer()
IPAddress soft_ap_ip() const
int16_t get_wifi_scan_results(std::vector< WiFiNetworkInfo > &ssid_list)
IPAddress gateway_ip() const override
Default gateway IPv4 address. Returns IPAddress() if no link.
WiFiProvisioner(const String &config_path, const String &client_ssid="", const String &client_password="", const String &ap_ssid="", const String &ap_password="")
bool is_captive_portal_enabled() const
~WiFiProvisioner() override
bool to_json(JsonObject &doc) override
void start_client_autoconnect()
std::unique_ptr< DNSServer > dns_server_
const String ConfigSchema(const SmartSwitchController &obj)
constexpr int kMaxNumClientConfigs
bool ConfigRequiresRestart(const HTTPServer &obj)