Skip to content

Commit d91cc28

Browse files
committed
20210208 Added support for 6 digit codes
1 parent 3104027 commit d91cc28

File tree

3 files changed

+41
-13
lines changed

3 files changed

+41
-13
lines changed

platformio.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ lib_deps =
1818
knolleary/PubSubClient@^2.8
1919
ottowinter/ESPAsyncWebServer-esphome@^1.2.7
2020
luc-github/ESP32SSDP@^1.1.1
21-
khoih-prog/ESP_WiFiManager@^1.3.0
2221
bblanchon/ArduinoJson@^6.17.2
22+
tzapu/WiFiManager@^2.0.4-beta

src/main.cpp

+37-10
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ struct inPayload
3636
{
3737
byte PcPasswordFirst2Digits;
3838
byte PcPasswordSecond2Digits;
39+
byte PcPasswordThird2Digits;
3940
byte Command;
4041
byte Subcommand;
4142
} ;
@@ -697,7 +698,7 @@ void callback(char* topic, byte* payload, unsigned int length) {
697698
if (!PanelConnected)
698699
{
699700
trc(F("Panel not logged in"));
700-
doLogin(data.PcPasswordFirst2Digits, data.PcPasswordSecond2Digits);
701+
doLogin(data);//.PcPasswordFirst2Digits, data.PcPasswordSecond2Digits);
701702
trc(PanelConnected?"Panel logged in":"Panel login failed");
702703
}
703704

@@ -1126,7 +1127,7 @@ void PanelStatus1(){
11261127

11271128

11281129

1129-
void doLogin(byte pass1, byte pass2){
1130+
void doLogin(inPayload _inpayload){//byte pass1, byte pass2){
11301131
byte data[MessageLength] = {};
11311132
byte data1[MessageLength] = {};
11321133
byte checksum;
@@ -1178,8 +1179,11 @@ void doLogin(byte pass1, byte pass2){
11781179
data1[10] = 0x00;
11791180
data1[11] = 0x00;
11801181
data1[13] = 0x55;
1181-
data1[14] = pass1; //panel pc password digit 1 & 2
1182-
data1[15] = pass2; //panel pc password digit 3 & 4
1182+
data1[14] = _inpayload.PcPasswordFirst2Digits; //panel pc password digit 1 & 2
1183+
data1[15] = _inpayload.PcPasswordSecond2Digits; //panel pc password digit 3 & 4
1184+
if (USE6DigitCode)
1185+
data1[16] = _inpayload.PcPasswordThird2Digits; //panel pc password digit 3 & 4
1186+
11831187
data1[33] = 0x05;
11841188

11851189

@@ -1232,6 +1236,7 @@ struct inPayload Decodejson(char *Payload){
12321236
{
12331237
char charpass1[4];
12341238
char charpass2[4];
1239+
12351240
char charsubcommand[4];
12361241

12371242
String command="";
@@ -1260,6 +1265,18 @@ struct inPayload Decodejson(char *Payload){
12601265
String pass1 = password.substring(0, 2);
12611266
String pass2 = password.substring(2, 4);
12621267

1268+
byte PanelPassword3=0xFF;
1269+
if (USE6DigitCode)
1270+
{
1271+
char charpass3[4];
1272+
String pass3 = password.substring(4, 6);
1273+
pass3.toCharArray(charpass3, 4);
1274+
unsigned long passNumber3 = strtoul(charpass3, NULL, 16);
1275+
if (passNumber3 < 10)
1276+
passNumber3 = passNumber3 + 160;
1277+
PanelPassword3 = passNumber3 & 0xFF;
1278+
}
1279+
12631280
// trc(pass1);
12641281
// trc(pass2);
12651282

@@ -1300,7 +1317,7 @@ if (TRACE)
13001317

13011318
byte CommandB = getPanelCommand(command) ;
13021319

1303-
inPayload data1 = {PanelPassword1, PanelPassword2, CommandB, SubCommand};
1320+
inPayload data1 = {PanelPassword1, PanelPassword2, PanelPassword3, CommandB, SubCommand};
13041321

13051322
return data1;
13061323
}
@@ -1327,6 +1344,16 @@ boolean reconnect() {
13271344
String mqname = WiFi.macAddress();
13281345
char charBuf[50];
13291346
mqname.toCharArray(charBuf, 50) ;
1347+
1348+
if (WiFi.status() != WL_CONNECTED) {
1349+
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
1350+
Serial.println("Connection Failed! Rebooting...");
1351+
delay(5000);
1352+
ESP.restart();
1353+
}
1354+
}
1355+
1356+
13301357

13311358
if (client.connect(charBuf,Mqtt_Username,Mqtt_Password,LWT,2,true,"OFF")) {
13321359
// Once connected, publish an announcement...
@@ -1351,13 +1378,13 @@ boolean reconnect() {
13511378

13521379
void setup_wifi(){
13531380

1354-
ESP_WMParameter custom_mqtt_server("server", "mqtt server", Mqtt_ServerAddress, 40);
1355-
ESP_WMParameter custom_mqtt_port("port", "mqtt port", Mqtt_ServerPort, 6);
1381+
WiFiManagerParameter custom_mqtt_server("server", "mqtt server", Mqtt_ServerAddress, 40);
1382+
WiFiManagerParameter custom_mqtt_port("port", "mqtt port", Mqtt_ServerPort, 6);
13561383

1357-
ESP_WMParameter custom_MqttUserName("Username", "mqtt Username", Mqtt_Username, 40);
1358-
ESP_WMParameter custom_MqttUserPassword("Password", "mqtt Password", Mqtt_Password, 40);
1384+
WiFiManagerParameter custom_MqttUserName("Username", "mqtt Username", Mqtt_Username, 40);
1385+
WiFiManagerParameter custom_MqttUserPassword("Password", "mqtt Password", Mqtt_Password, 40);
13591386

1360-
ESP_WiFiManager wifiManager;
1387+
WiFiManager wifiManager;
13611388
if (ResetConfig)
13621389
{
13631390
trc(F("Resetting wifiManager"));

src/main.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include <ESPmDNS.h>
1818
#include <DNSServer.h>
1919
#include "PubSubClient.h"
20-
#include "ESP_WiFiManager.h"
20+
#include "WiFiManager.h"
2121
#include <HardwareSerial.h>
2222
#include <AsyncTCP.h>
2323

@@ -67,6 +67,7 @@ const char* ntpServer = "pool.ntp.org";
6767

6868

6969

70+
bool USE6DigitCode = false;
7071
//If esp is dev kit then set to 1 else 0
7172
bool ESPDEVKit = 1;
7273

@@ -106,7 +107,7 @@ void readSerial();
106107
void answer_E0();
107108
boolean reconnect();
108109
struct inPayload Decodejson(char *Payload);
109-
void doLogin(byte pass1, byte pass2);
110+
void doLogin(inPayload _inpayload);//byte pass1, byte pass2);
110111
void ControlPanel(inPayload data);
111112
void ArmState();
112113
void PanelStatus0();

0 commit comments

Comments
 (0)