110 lines
2.5 KiB
C++
110 lines
2.5 KiB
C++
#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]) : "";
|
|
}
|