first commit

This commit is contained in:
Jérôme Delacotte
2025-03-06 11:15:32 +01:00
commit 7b30d6e298
5276 changed files with 2108927 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
//extern "C" {
//#include "user_interface.h"
//}
// Need for getVcc
ADC_MODE(ADC_VCC);
/////////////////////
// Domoticz Classe
/////////////////////
#include "Domoticz.h"
Domoticz domo("192.168.1.3", "81", "Livebox-37cc", "8A6060920A8A86896F770F2C47");
#include "Modules.h"
Modules modules;
Params * params;
#include "ServeurWeb.h"
ServeurWeb * serveurWeb;
WiFiServer server(80);
#include "Octoprint.h"
Octoprint octoprint("192.168.1.3", "5000", "B5746ACFF37140D0B5F6FEAAC4413B5C");
#include "Files.h"
Files * files;
// Convert image to char array http://www.digole.com/tools/PicturetoC_Hex_converter.php
Params p;
ServeurWeb sw;
// domoticz
String macID = "";
unsigned long milli;
void setup()
{
Serial.begin(9600);
// /* sda scl */
// Wire.pins(SDA, SCL);
// Wire.begin(SDA, SCL);
// Conversion d'objet en pointeur
params = &p;
serveurWeb = &sw;
serveurWeb->domoticz = &domo;
serveurWeb->modules = &modules;
serveurWeb->server = &server;
serveurWeb->server->begin();
delay(100);
domo.initWifi();
macID = domo.generateKey();
domo.getIdFromDomoticz(macID, params);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH);
// octoprint.connect();
// octoprint.executeJson("/api/printer", "", "");
// octoprint.executeJsonPost("/api/printer/command", "{\"command\": \"M503\"}");
milli = 0; millis();
delay(100);
files->init();
delay(100);
EEPROM.begin(512);
}
void loop()
{
serveurWeb->loop();
// yield();
// files->ftpSrv.handleFTP(); //make sure in loop you call handleFTP()!!
// yield();
if (milli == 0 || milli + params->sleepTime * 1000 <= millis() ) {
// Avoid WDT reset during long process
yield();
milli = millis();
modules.readTemp();
printInfo();
LittleFS.mkdir("/data");
files->listDir("/");
// Serial.println("SSID=" + serveurWeb->eeprom->readString(0));
// Serial.println("Pass=" + serveurWeb->eeprom->readString(20));
// Serial.println("Domo=" + serveurWeb->eeprom->readString(40));
// Serial.println("Port=" + serveurWeb->eeprom->readString(60));
// Test Json
domo.readTempDayValues(params->esp8266_id);
}
}
void printInfo()
{
boolean connected = domo.connect();
Serial.println("Dans printInfo " + connected + ' ' + params->esp8266_id);
yield();
// Domoticz format /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT
if (connected && params->esp8266_id != "") {
Serial.println("Dans set temperature" + String(modules.temp));
//domo.executeJson();
if (modules.temp < 50 && modules.temp > 0) {
String svalue = String(modules.temp) + ";" + String(modules.humidity) + ";0";
Serial.println(svalue);
domo.executeJson("/json.htm?type=command&param=udevice&idx=" + params->esp8266_id, svalue, "0");
yield();
domo._client.stop();
yield();
}
delay(200);
}
connected = domo.connect();
if (connected && params->esp8266_id_Vcc != "") {
Serial.print(" Envoi tension ");
Serial.print(params->esp8266_id_Vcc);
Serial.print(" ");
yield();
String vcc = domo.readVcc();
Serial.println(vcc);
yield();
// domo._client.print("GET /json.htm?type=command&param=udevice&idx=");
domo.executeJson("/json.htm?type=command&param=udevice&idx=" + params->esp8266_id_Vcc, vcc, "0");
domo._client.stop();
yield();
}
}