#include "Domoticz.h" Domoticz::Domoticz(String domoticz, String port, const char* ssid, const char* pass) { _domoticz = domoticz; _port = port; _ssid = ssid; _pass = pass; // // Domo // _domoc[_domoticz.length() + 1]; // _domoticz.toCharArray(_domoc, _domoticz.length() + 1); // // // Port // char portc[_port.length() + 1]; // _port.toCharArray(portc, _port.length() + 1); // _iport = atoi(portc); } boolean Domoticz::connect() { // Domo char _domoc[_domoticz.length() + 1]; _domoticz.toCharArray(_domoc, _domoticz.length() + 1); // Port char portc[_port.length() + 1]; _port.toCharArray(portc, _port.length() + 1); int _iport = atoi(portc); boolean connected = _client.connect(_domoc, _iport); Serial.print(_domoc); Serial.print(" "); Serial.print(_iport); Serial.print(" "); Serial.println(" connected "); // // printf(connected); return connected; } void Domoticz::close() { } void Domoticz::initWifi() { WiFi.mode(WIFI_AP); WiFi.begin(_ssid, _pass); //Connect to local Wifi // printf(); // printf("Connecting to WiFi"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi Connected!"); Serial.print("Connexion au reseau "); Serial.println(WiFi.localIP()); delay(500); } String Domoticz::generateKey() { // WiFi.mode(WIFI_AP); // Do a little work to get a unique-ish name. Append the // last two bytes of the MAC (HEX'd) to "Thing-": uint8_t mac[WL_MAC_ADDR_LENGTH]; WiFi.softAPmacAddress(mac); String macID = String(mac[WL_MAC_ADDR_LENGTH - 2], HEX) + String(mac[WL_MAC_ADDR_LENGTH - 1], HEX); macID.toUpperCase(); String AP_NameString = "ESP32 Thing " + macID; char AP_NameChar[AP_NameString.length() + 1]; memset(AP_NameChar, 0, AP_NameString.length() + 1); for (int i = 0; i < AP_NameString.length(); i++) { AP_NameChar[i] = AP_NameString.charAt(i); } // WiFi.softAP(AP_NameChar, WiFiAPPSK); // printf("macID=" + macID); return macID; } String Domoticz::getIndexOfString(String data, String separator, int index) { int found = 0; int strIndex[] = { 0, -1 }; int maxIndex = data.length() - 1; for (int i = 0; i <= maxIndex && found <= index; i++) { if (data.charAt(i) == separator.charAt(0) || i == maxIndex) { found++; strIndex[0] = strIndex[1] + 1; strIndex[1] = (i == maxIndex) ? i + 1 : i; } } return found > index ? data.substring(strIndex[0], strIndex[1]) : ""; }