diff --git a/MainDoor/platformio.ini b/MainDoor/platformio.ini index 5af6e23..53a27dd 100644 --- a/MainDoor/platformio.ini +++ b/MainDoor/platformio.ini @@ -20,4 +20,5 @@ upload_port = 192.168.1.154 lib_deps = # RECOMMENDED # Accept new functionality in a backwards compatible manner and patches - ottowinter/AsyncMqttClient-esphome @ ^0.8.6 \ No newline at end of file + ottowinter/AsyncMqttClient-esphome @ ^0.8.6 + https://github.com/RobTillaart/PCF8574.git \ No newline at end of file diff --git a/MainDoor/src/main.cpp b/MainDoor/src/main.cpp index d71dae4..7ea6b93 100644 --- a/MainDoor/src/main.cpp +++ b/MainDoor/src/main.cpp @@ -16,7 +16,7 @@ IPAddress subnet(255, 255, 255, 0); const char* ssid = "wf-home"; const char* password = "0ndthnrf"; -const char* mqtt_server = "192.168.1.111"; +const char* mqtt_server = "192.168.1.10"; #define TOPIC "home/kor/" AsyncMqttClient mqttClient; @@ -85,18 +85,11 @@ void onMqttConnect(bool sessionPresent) { Serial.println("Connected to MQTT."); Serial.print("Session present: "); Serial.println(sessionPresent); - //uint16_t packetIdSub = - //mqttClient.subscribe(TOPIC"doortimeout_set", 1); mqttClient.publish(TOPIC"locker_top", 1, false, tP ? "0" : "1"); mqttClient.publish(TOPIC"locker_int", 1, false, iP ? "0" : "1"); mqttClient.publish(TOPIC"locker_down", 1, false, dP ? "0" : "1"); mqttClient.publish(TOPIC"locker_small", 1, false, sP ? "0" : "1"); mqttClient.publish(TOPIC"door", 1, false, doorP ? "1" : "0"); - //mqttClient.publish(TOPIC"doorlocker", 1, false, sP || dP || iP || tP ? "1" : "0"); - /*char v[7]; - itoa(timeAlm, v, 10); - mqttClient.publish(TOPIC"doortimeout", 1, false, v);*/ - //digitalWrite(L_WIFI2, LOW); digitalWrite(L_MQTT, HIGH); } @@ -107,8 +100,6 @@ void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) { mqttReconnectTimer.once(2, connectToMqtt); } digitalWrite(L_MQTT, LOW); - //if(WiFi.isConnected()) - // digitalWrite(L_WIFI2, HIGH); } void onMqttSubscribe(uint16_t packetId, uint8_t qos) { @@ -126,16 +117,6 @@ void onMqttUnsubscribe(uint16_t packetId) { } void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) { -/* if(strcmp(topic, TOPIC"doortimeout_set") == 0){ - char v[7]; - timeAlm = atoi(payload); - EEPROM.put(0, timeAlm); - EEPROM.commit(); - itoa(timeAlm, v, 10); - mqttClient.publish(TOPIC"doortimeout", 0, false, v); - Serial.print("New Timeout: "); - Serial.println(timeAlm); - }*/ } void onMqttPublish(uint16_t packetId) { @@ -190,32 +171,10 @@ void setup() { mqttClient.setClientId("Door"); Wire.begin(SCL, SDA); - // Serial.println("Begin Scan"); - // for (byte i = 8; i < 120; i++) - // { - // Wire.beginTransmission (i); - // if (Wire.endTransmission () == 0) - // { - // Serial.print ("Found address: "); - // Serial.print (i, DEC); - // Serial.print (" (0x"); - // Serial.print (i, HEX); - // Serial.println (")"); - // delay (1); // maybe unneeded? - // } // end of good response - // } // end of for loop - // Serial.println("End Scan"); - //Wire.beginTransmission(0x3F); Wire.beginTransmission(0x20); if(Wire.endTransmission() == 0) Serial.println("PCF Found"); else Serial.println("PCF Not Found"); - pcf.begin(SCL, SDA); - - // pinMode(L_TOP, INPUT_PULLUP); - // pinMode(L_INT, INPUT_PULLUP); - // pinMode(L_DOWN, INPUT_PULLUP); - // pinMode(L_SMALL, INPUT_PULLUP); - // pinMode(DOOR, INPUT_PULLUP); + pcf.begin(); pinMode(L_WIFI, OUTPUT); //pinMode(L_WIFI2, OUTPUT); pinMode(L_MQTT, OUTPUT); @@ -235,26 +194,13 @@ void setup() { dP = dC =(pcfreg >> L_DOWN) & 0x1; sP = sC = (pcfreg >> L_SMALL) & 0x1; doorP = door = (pcfreg >> DOOR) & 0x1;// tP = digitalRead(L_TOP); - // iP = digitalRead(L_INT); - // dP = digitalRead(L_DOWN); - // sP = digitalRead(L_SMALL); - // EEPROM.begin(16); - // EEPROM.get(0, timeAlm); - // timeOpen = 0; - // doorSent = lockSent = false; Serial.println("Connect to WiFi"); connectToWifi(); Serial.println("Loop"); } void loop() { - // uint8_t tC = digitalRead(L_TOP); - // uint8_t iC = digitalRead(L_INT); - // uint8_t dC = digitalRead(L_DOWN); - // uint8_t sC = digitalRead(L_SMALL); - //char v[10]; msg.tick(); - //door = digitalRead(DOOR); if(l_m && (l_run + 100) < millis()){ analogWrite(L_MSG, 0); l_m = false; @@ -271,11 +217,6 @@ void loop() { dC = (pcfreg >> L_DOWN) & 0x1; sC = (pcfreg >> L_SMALL) & 0x1; door = (pcfreg >> DOOR) & 0x1; - // if(opcfreg != pcfreg){ - // itoa(pcfreg, v, 2); - // mqttClient.publish(TOPIC"pcf", 1, false, v); - // opcfreg = pcfreg; - // } if(tC != tP){ Serial.println("Top Changed"); @@ -310,61 +251,17 @@ void loop() { } nSec++; - // if(nSec % 10 == 0){ - // Serial.println(pcfreg, 2); - // // char v[11]; - // // itoa(pcfreg, v, 2); - // // if(mqttClient.connected()) - // // mqttClient.publish("/home/test/pcfreg", 0, false, v); - // } if(nSec > 99){ if(mqttClient.connected()){ char v[11]; dtostrf(millis() / 60000.0, 7, 1, v); trim(v); - //ultoa(millis(), v, 10); - //analogWrite(L_MSG, 1); - //l_run = millis(); - //l_m = true; - //r_led.start(); mqttClient.publish(TOPIC"doormin", 1, false, v); Serial.print("Millis: "); Serial.println(millis()); } nSec = 0; } -/* if((((tC == 0) && (iC == 0) && (dC == 0) && (sC == 0)) || (door == 0)) && ((timeOpen / 10) < timeAlm)){ - timeOpen++; - if((timeOpen / 10) >= timeAlm){ - if(mqttClient.connected()){ - if (door == 0){ //Door to long time open - r_led.start(); - mqttClient.publish(TOPIC"doorlong", 1, false, "1"); - doorSent = true; - } - else{ //Not closed locker - r_led.start(); - mqttClient.publish(TOPIC"doorlocker", 1, false, "0"); - lockSent = true; - } - } - } - } - else{ - timeOpen = 0; - if(doorSent == true){ - doorSent = false; - if(mqttClient.connected()) - r_led.start(); - mqttClient.publish(TOPIC"doorlong", 1, false, "0"); - } - if(lockSent == true){ - lockSent = false; - if(mqttClient.connected()) - r_led.start(); - mqttClient.publish(TOPIC"doorlocker", 1, false, "1"); - } - }*/ } }