WiFi portal
This commit is contained in:
@@ -69,7 +69,7 @@ void NukiNetwork::setupDevice()
|
||||
{
|
||||
_ipConfiguration = new IPConfiguration(_preferences);
|
||||
int hardwareDetect = _preferences->getInt(preference_network_hardware, 0);
|
||||
Log->print(F("Hardware detect : "));
|
||||
Log->print(F("Hardware detect: "));
|
||||
Log->println(hardwareDetect);
|
||||
|
||||
_firstBootAfterDeviceChange = _preferences->getBool(preference_ntw_reconfigure, false);
|
||||
@@ -95,7 +95,7 @@ void NukiNetwork::setupDevice()
|
||||
if(strcmp(WiFi_fallbackDetect, "wifi_fallback") == 0)
|
||||
{
|
||||
#ifndef CONFIG_IDF_TARGET_ESP32H2
|
||||
if(_preferences->getBool(preference_network_wifi_fallback_disabled) && !_firstBootAfterDeviceChange)
|
||||
if(!_firstBootAfterDeviceChange)
|
||||
{
|
||||
Log->println(F("Failed to connect to network. Wi-Fi fallback is disabled, rebooting."));
|
||||
memset(WiFi_fallbackDetect, 0, sizeof(WiFi_fallbackDetect));
|
||||
@@ -122,7 +122,7 @@ void NukiNetwork::setupDevice()
|
||||
_device = NetworkDeviceInstantiator::Create(_networkDeviceType, _hostname, _preferences, _ipConfiguration);
|
||||
|
||||
Log->print(F("Network device: "));
|
||||
Log->print(_device->deviceName());
|
||||
Log->println(_device->deviceName());
|
||||
}
|
||||
|
||||
void NukiNetwork::reconfigureDevice()
|
||||
@@ -130,6 +130,16 @@ void NukiNetwork::reconfigureDevice()
|
||||
_device->reconfigure();
|
||||
}
|
||||
|
||||
void NukiNetwork::scan(bool passive, bool async)
|
||||
{
|
||||
_device->scan(passive, async);
|
||||
}
|
||||
|
||||
bool NukiNetwork::isApOpen()
|
||||
{
|
||||
return _device->isApOpen();
|
||||
}
|
||||
|
||||
const String NukiNetwork::networkDeviceName() const
|
||||
{
|
||||
return _device->deviceName();
|
||||
@@ -317,7 +327,6 @@ void NukiNetwork::readSettings()
|
||||
{
|
||||
_restartOnDisconnect = _preferences->getBool(preference_restart_on_disconnect, false);
|
||||
_checkUpdates = _preferences->getBool(preference_check_updates, false);
|
||||
_reconnectNetworkOnMqttDisconnect = _preferences->getBool(preference_recon_netw_on_mqtt_discon, false);
|
||||
_rssiPublishInterval = _preferences->getInt(preference_rssi_publish_interval, 0) * 1000;
|
||||
|
||||
if(_rssiPublishInterval == 0)
|
||||
@@ -341,38 +350,17 @@ bool NukiNetwork::update()
|
||||
int64_t ts = (esp_timer_get_time() / 1000);
|
||||
_device->update();
|
||||
|
||||
if(!_mqttEnabled)
|
||||
if(!_mqttEnabled || _device->isApOpen())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!_device->isConnected() || (_mqttConnectCounter > 15 && _reconnectNetworkOnMqttDisconnect && !_firstConnect))
|
||||
if(!_device->isConnected() || (_mqttConnectCounter > 15 && !_firstConnect))
|
||||
{
|
||||
_mqttConnectCounter = 0;
|
||||
|
||||
if(!_webEnabled) forceEnableWebServer = true;
|
||||
if(_restartOnDisconnect && (esp_timer_get_time() / 1000) > 60000) restartEsp(RestartReason::RestartOnDisconnectWatchdog);
|
||||
|
||||
Log->println(F("Network not connected. Trying reconnect."));
|
||||
ReconnectStatus reconnectStatus = _device->reconnect(true);
|
||||
|
||||
switch(reconnectStatus)
|
||||
{
|
||||
case ReconnectStatus::CriticalFailure:
|
||||
strcpy(WiFi_fallbackDetect, "wifi_fallback");
|
||||
Log->println("Network device has a critical failure, enable fallback to Wi-Fi and reboot.");
|
||||
delay(200);
|
||||
restartEsp(RestartReason::NetworkDeviceCriticalFailure);
|
||||
break;
|
||||
case ReconnectStatus::Success:
|
||||
memset(WiFi_fallbackDetect, 0, sizeof(WiFi_fallbackDetect));
|
||||
Log->print(F("Reconnect successful: IP: "));
|
||||
Log->println(_device->localIP());
|
||||
break;
|
||||
case ReconnectStatus::Failure:
|
||||
Log->println(F("Reconnect failed"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(_device->isConnected() && !_mqttClientInitiated && strcmp(_mqttBrokerAddr, "") != 0)
|
||||
|
||||
Reference in New Issue
Block a user