@@ -36,6 +36,7 @@ struct inPayload
36
36
{
37
37
byte PcPasswordFirst2Digits;
38
38
byte PcPasswordSecond2Digits;
39
+ byte PcPasswordThird2Digits;
39
40
byte Command;
40
41
byte Subcommand;
41
42
} ;
@@ -697,7 +698,7 @@ void callback(char* topic, byte* payload, unsigned int length) {
697
698
if (!PanelConnected)
698
699
{
699
700
trc (F (" Panel not logged in" ));
700
- doLogin (data.PcPasswordFirst2Digits , data.PcPasswordSecond2Digits );
701
+ doLogin (data); // .PcPasswordFirst2Digits, data.PcPasswordSecond2Digits);
701
702
trc (PanelConnected?" Panel logged in" :" Panel login failed" );
702
703
}
703
704
@@ -1126,7 +1127,7 @@ void PanelStatus1(){
1126
1127
1127
1128
1128
1129
1129
- void doLogin (byte pass1, byte pass2){
1130
+ void doLogin (inPayload _inpayload){ // byte pass1, byte pass2){
1130
1131
byte data[MessageLength] = {};
1131
1132
byte data1[MessageLength] = {};
1132
1133
byte checksum;
@@ -1178,8 +1179,11 @@ void doLogin(byte pass1, byte pass2){
1178
1179
data1[10 ] = 0x00 ;
1179
1180
data1[11 ] = 0x00 ;
1180
1181
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
+
1183
1187
data1[33 ] = 0x05 ;
1184
1188
1185
1189
@@ -1232,6 +1236,7 @@ struct inPayload Decodejson(char *Payload){
1232
1236
{
1233
1237
char charpass1[4 ];
1234
1238
char charpass2[4 ];
1239
+
1235
1240
char charsubcommand[4 ];
1236
1241
1237
1242
String command=" " ;
@@ -1260,6 +1265,18 @@ struct inPayload Decodejson(char *Payload){
1260
1265
String pass1 = password.substring (0 , 2 );
1261
1266
String pass2 = password.substring (2 , 4 );
1262
1267
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
+
1263
1280
// trc(pass1);
1264
1281
// trc(pass2);
1265
1282
@@ -1300,7 +1317,7 @@ if (TRACE)
1300
1317
1301
1318
byte CommandB = getPanelCommand (command) ;
1302
1319
1303
- inPayload data1 = {PanelPassword1, PanelPassword2, CommandB, SubCommand};
1320
+ inPayload data1 = {PanelPassword1, PanelPassword2, PanelPassword3, CommandB, SubCommand};
1304
1321
1305
1322
return data1;
1306
1323
}
@@ -1327,6 +1344,16 @@ boolean reconnect() {
1327
1344
String mqname = WiFi.macAddress ();
1328
1345
char charBuf[50 ];
1329
1346
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
+
1330
1357
1331
1358
if (client.connect (charBuf,Mqtt_Username,Mqtt_Password,LWT,2 ,true ," OFF" )) {
1332
1359
// Once connected, publish an announcement...
@@ -1351,13 +1378,13 @@ boolean reconnect() {
1351
1378
1352
1379
void setup_wifi (){
1353
1380
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 );
1356
1383
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 );
1359
1386
1360
- ESP_WiFiManager wifiManager;
1387
+ WiFiManager wifiManager;
1361
1388
if (ResetConfig)
1362
1389
{
1363
1390
trc (F (" Resetting wifiManager" ));
0 commit comments