Finished 'U' unparing routines
Next Up: Add method to break out of WiFi connection loop by using push button in case WiFi SSID/PWD has changed but there is no desire to unpair controllers. To Do: Move blinking status light setting to named macros.
This commit is contained in:
parent
69c7d939b8
commit
6a2d0741aa
|
|
@ -966,7 +966,7 @@ int HAPClient::postPairingsURL(){
|
||||||
for(int i=0;i<MAX_CONNECTIONS;i++){ // loop over all connection slots
|
for(int i=0;i<MAX_CONNECTIONS;i++){ // loop over all connection slots
|
||||||
if(hap[i].client){ // if slot is connected
|
if(hap[i].client){ // if slot is connected
|
||||||
|
|
||||||
if(!nAdminControllers() || (hap[i].cPair && !hap[i].cPair->allocated)){ // accessory unpaired, OR client connection is verified but points to an unallocated controller
|
if(!nAdminControllers() || (hap[i].cPair && !hap[i].cPair->allocated)){ // accessory unpaired, OR client connection is verified but points to a newly *unallocated* controller
|
||||||
LOG1("*** Terminating Client #");
|
LOG1("*** Terminating Client #");
|
||||||
LOG1(i);
|
LOG1(i);
|
||||||
LOG1("\n");
|
LOG1("\n");
|
||||||
|
|
|
||||||
|
|
@ -33,19 +33,15 @@ void Span::begin(Category catID, char *displayName, char *hostNameBase, char *mo
|
||||||
"Welcome to HomeSpan!\n"
|
"Welcome to HomeSpan!\n"
|
||||||
"Apple HomeKit for the Espressif ESP-32 WROOM and Arduino IDE\n"
|
"Apple HomeKit for the Espressif ESP-32 WROOM and Arduino IDE\n"
|
||||||
"************************************************************\n\n"
|
"************************************************************\n\n"
|
||||||
"** Please ensure serial monitor is set to transmit <newlines>\n");
|
"** Please ensure serial monitor is set to transmit <newlines>\n\n");
|
||||||
|
|
||||||
Serial.print("** Ground pin ");
|
Serial.print("Device Control: Pin ");
|
||||||
Serial.print(resetPin);
|
Serial.print(resetPin);
|
||||||
Serial.print(" to delete all stored WiFi Network and HomeKit Pairing data (factory reset)\n\n");
|
Serial.print("\nHomeSpan Version: ");
|
||||||
|
|
||||||
Serial.print("HomeSpan Version: ");
|
|
||||||
Serial.print(HOMESPAN_VERSION);
|
Serial.print(HOMESPAN_VERSION);
|
||||||
Serial.print("\n");
|
Serial.print("\nESP-IDF Version: ");
|
||||||
Serial.print("ESP-IDF Version: ");
|
|
||||||
Serial.print(esp_get_idf_version());
|
Serial.print(esp_get_idf_version());
|
||||||
Serial.print("\n");
|
Serial.print("\nSketch Compiled: ");
|
||||||
Serial.print("Sketch Compiled: ");
|
|
||||||
Serial.print(__DATE__);
|
Serial.print(__DATE__);
|
||||||
Serial.print(" ");
|
Serial.print(" ");
|
||||||
Serial.print(__TIME__);
|
Serial.print(__TIME__);
|
||||||
|
|
@ -177,11 +173,13 @@ void Span::poll() {
|
||||||
case 2:
|
case 2:
|
||||||
if(digitalRead(resetPin)){
|
if(digitalRead(resetPin)){
|
||||||
statusLED.off();
|
statusLED.off();
|
||||||
processSerialCommand("H");
|
resetPressed=0;
|
||||||
|
processSerialCommand("U"); // UPAIR Device
|
||||||
} else
|
} else
|
||||||
if(millis()>resetTime){
|
if(millis()>resetTime){
|
||||||
statusLED.off();
|
statusLED.on();
|
||||||
processSerialCommand("F");
|
delay(1000);
|
||||||
|
processSerialCommand("W"); // Delete WiFi Data and Restart
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} // switch
|
} // switch
|
||||||
|
|
@ -472,12 +470,34 @@ void Span::processSerialCommand(char *c){
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'U': {
|
||||||
|
|
||||||
|
HAPClient::removeControllers(); // clear all Controller data
|
||||||
|
nvs_set_blob(HAPClient::hapNVS,"CONTROLLERS",HAPClient::controllers,sizeof(HAPClient::controllers)); // update data
|
||||||
|
nvs_commit(HAPClient::hapNVS); // commit to NVS
|
||||||
|
Serial.print("\n** HomeSpan Pairing Data DELETED **\n\n");
|
||||||
|
|
||||||
|
for(int i=0;i<MAX_CONNECTIONS;i++){ // loop over all connection slots
|
||||||
|
if(hap[i].client){ // if slot is connected
|
||||||
|
LOG1("*** Terminating Client #");
|
||||||
|
LOG1(i);
|
||||||
|
LOG1("\n");
|
||||||
|
hap[i].client.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Serial.print("\nDEVICE NOT YET PAIRED -- PLEASE PAIR WITH HOMEKIT APP\n\n");
|
||||||
|
mdns_service_txt_item_set("_hap","_tcp","sf","1"); // set Status Flag = 1 (Table 6-8)
|
||||||
|
statusLED.start(500,0.5,2,1000);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'W': {
|
case 'W': {
|
||||||
|
|
||||||
nvs_erase_all(HAPClient::wifiNVS);
|
nvs_erase_all(HAPClient::wifiNVS);
|
||||||
nvs_commit(HAPClient::wifiNVS);
|
nvs_commit(HAPClient::wifiNVS);
|
||||||
Serial.print("\n** WIFI Network Data DELETED **\n** Restarting...\n\n");
|
Serial.print("\n** WIFI Network Data DELETED **\n** Restarting...\n\n");
|
||||||
delay(2000);
|
delay(1000);
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -486,7 +506,7 @@ void Span::processSerialCommand(char *c){
|
||||||
|
|
||||||
nvs_erase_all(HAPClient::hapNVS);
|
nvs_erase_all(HAPClient::hapNVS);
|
||||||
nvs_commit(HAPClient::hapNVS);
|
nvs_commit(HAPClient::hapNVS);
|
||||||
Serial.print("\n** HomeKit Pairing Data DELETED **\n** Restarting...\n\n");
|
Serial.print("\n** HomeSpan Device ID and Pairing Data DELETED **\n** Restarting...\n\n");
|
||||||
delay(1000);
|
delay(1000);
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
}
|
}
|
||||||
|
|
@ -526,6 +546,7 @@ void Span::processSerialCommand(char *c){
|
||||||
Serial.print(" s - print connection status\n");
|
Serial.print(" s - print connection status\n");
|
||||||
Serial.print(" d - print attributes database\n");
|
Serial.print(" d - print attributes database\n");
|
||||||
Serial.print(" i - print detailed info about configuration\n");
|
Serial.print(" i - print detailed info about configuration\n");
|
||||||
|
Serial.print(" U - unpair device by deleting all Controller data\n");
|
||||||
Serial.print(" W - delete stored WiFi data and restart\n");
|
Serial.print(" W - delete stored WiFi data and restart\n");
|
||||||
Serial.print(" H - delete stored HomeKit Pairing data and restart\n");
|
Serial.print(" H - delete stored HomeKit Pairing data and restart\n");
|
||||||
Serial.print(" F - delete all stored data (Factory Reset) and restart\n");
|
Serial.print(" F - delete all stored data (Factory Reset) and restart\n");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue