mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 11:59:12 +03:00
ws started
This commit is contained in:
@@ -55,7 +55,7 @@
|
|||||||
#define DEVICE_SCENARIO_FILE "s.scen.txt"
|
#define DEVICE_SCENARIO_FILE "s.scen.txt"
|
||||||
//#define OTA_UPDATES_ENABLED
|
//#define OTA_UPDATES_ENABLED
|
||||||
//#define MDNS_ENABLED
|
//#define MDNS_ENABLED
|
||||||
//#define WEBSOCKET_ENABLED
|
#define WEBSOCKET_ENABLED
|
||||||
//#define LAYOUT_IN_RAM
|
//#define LAYOUT_IN_RAM
|
||||||
//#define UDP_ENABLED
|
//#define UDP_ENABLED
|
||||||
//#define SSDP_ENABLED
|
//#define SSDP_ENABLED
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifdef ESP8266
|
#ifdef ESP8266
|
||||||
#include <ESP8266WebServer.h>
|
//#include <ESP8266WebServer.h>
|
||||||
#include <ESP8266httpUpdate.h>
|
#include <ESP8266httpUpdate.h>
|
||||||
#include "ESPAsyncTCP.h"
|
#include "ESPAsyncTCP.h"
|
||||||
#include "ESPAsyncWebServer.h"
|
#include "ESPAsyncWebServer.h"
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
//===================Libraries===================================================================================================================================================
|
//===================Libraries===================================================================================================================================================
|
||||||
#include "Consts.h"
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include "CTBot.h"
|
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
@@ -10,13 +8,15 @@
|
|||||||
#include <TickerScheduler.h>
|
#include <TickerScheduler.h>
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "CTBot.h"
|
||||||
#include "Clock.h"
|
#include "Clock.h"
|
||||||
|
#include "Consts.h"
|
||||||
#include "ESP32.h"
|
#include "ESP32.h"
|
||||||
#include "ESP8266.h"
|
#include "ESP8266.h"
|
||||||
#include "GyverFilters.h"
|
#include "GyverFilters.h"
|
||||||
#include "MqttClient.h"
|
#include "MqttClient.h"
|
||||||
#include "Upgrade.h"
|
#include "Upgrade.h"
|
||||||
|
|
||||||
#include "Utils/FileUtils.h"
|
#include "Utils/FileUtils.h"
|
||||||
#include "Utils/JsonUtils.h"
|
#include "Utils/JsonUtils.h"
|
||||||
#include "Utils/SerialPrint.h"
|
#include "Utils/SerialPrint.h"
|
||||||
@@ -26,25 +26,20 @@
|
|||||||
|
|
||||||
#ifdef WEBSOCKET_ENABLED
|
#ifdef WEBSOCKET_ENABLED
|
||||||
extern AsyncWebSocket ws;
|
extern AsyncWebSocket ws;
|
||||||
//extern AsyncEventSource events;
|
extern AsyncEventSource events;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
extern TickerScheduler ts;
|
extern TickerScheduler ts;
|
||||||
extern WiFiClient espClient;
|
extern WiFiClient espClient;
|
||||||
extern PubSubClient mqtt;
|
extern PubSubClient mqtt;
|
||||||
extern StringCommand sCmd;
|
extern StringCommand sCmd;
|
||||||
extern AsyncWebServer server;
|
extern AsyncWebServer server;
|
||||||
|
|
||||||
|
// Global vars
|
||||||
|
|
||||||
//Global vars
|
|
||||||
extern boolean just_load;
|
extern boolean just_load;
|
||||||
extern boolean telegramInitBeen;
|
extern boolean telegramInitBeen;
|
||||||
extern boolean savedFromWeb;
|
extern boolean savedFromWeb;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Json
|
// Json
|
||||||
extern String configSetupJson; //все настройки
|
extern String configSetupJson; //все настройки
|
||||||
extern String configLiveJson; //все данные с датчиков (связан с mqtt)
|
extern String configLiveJson; //все данные с датчиков (связан с mqtt)
|
||||||
@@ -70,14 +65,14 @@ extern int mqttConnectAttempts;
|
|||||||
extern bool changeBroker;
|
extern bool changeBroker;
|
||||||
extern int currentBroker;
|
extern int currentBroker;
|
||||||
|
|
||||||
//orders and events
|
// orders and events
|
||||||
extern String orderBuf;
|
extern String orderBuf;
|
||||||
extern String eventBuf;
|
extern String eventBuf;
|
||||||
extern String mysensorBuf;
|
extern String mysensorBuf;
|
||||||
extern String itemsFile;
|
extern String itemsFile;
|
||||||
extern String itemsLine;
|
extern String itemsLine;
|
||||||
|
|
||||||
//key lists and numbers
|
// key lists and numbers
|
||||||
//=========================================
|
//=========================================
|
||||||
extern String impuls_KeyList;
|
extern String impuls_KeyList;
|
||||||
extern int impuls_EnterCounter;
|
extern int impuls_EnterCounter;
|
||||||
@@ -101,12 +96,9 @@ extern String logging_KeyList;
|
|||||||
extern int logging_EnterCounter;
|
extern int logging_EnterCounter;
|
||||||
//=========================================
|
//=========================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern String itemName;
|
extern String itemName;
|
||||||
extern String presetName;
|
extern String presetName;
|
||||||
|
|
||||||
|
|
||||||
extern int scenario_line_status[40];
|
extern int scenario_line_status[40];
|
||||||
extern int lastVersion;
|
extern int lastVersion;
|
||||||
|
|
||||||
@@ -122,11 +114,11 @@ extern void servo_();
|
|||||||
|
|
||||||
extern void setLedStatus(LedStatus_t);
|
extern void setLedStatus(LedStatus_t);
|
||||||
|
|
||||||
//Scenario
|
// Scenario
|
||||||
extern void eventGen2(String eventName, String eventValue);
|
extern void eventGen2(String eventName, String eventValue);
|
||||||
extern String add_set(String param_name);
|
extern String add_set(String param_name);
|
||||||
|
|
||||||
//Timers
|
// Timers
|
||||||
extern void Timer_countdown_init();
|
extern void Timer_countdown_init();
|
||||||
extern void timerStart_();
|
extern void timerStart_();
|
||||||
extern void addTimer(String number, String time);
|
extern void addTimer(String number, String time);
|
||||||
@@ -146,9 +138,9 @@ extern void createChart(String widget_name, String page_name, String page_number
|
|||||||
extern void pushControl();
|
extern void pushControl();
|
||||||
|
|
||||||
// UDP
|
// UDP
|
||||||
//extern void udpInit();
|
// extern void udpInit();
|
||||||
//extern void do_udp_data_parse();
|
// extern void do_udp_data_parse();
|
||||||
//extern void do_mqtt_send_settings_to_udp();
|
// extern void do_mqtt_send_settings_to_udp();
|
||||||
|
|
||||||
extern void do_update();
|
extern void do_update();
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
#include "HttpServer.h"
|
|
||||||
#include "BufferExecute.h"
|
#include "BufferExecute.h"
|
||||||
|
#include "FSEditor.h"
|
||||||
|
#include "HttpServer.h"
|
||||||
#include "Utils/FileUtils.h"
|
#include "Utils/FileUtils.h"
|
||||||
#include "Utils/WebUtils.h"
|
#include "Utils/WebUtils.h"
|
||||||
#include "FSEditor.h"
|
AsyncWebSocket ws("/ws");
|
||||||
|
AsyncEventSource events("/events");
|
||||||
namespace HttpServer {
|
namespace HttpServer {
|
||||||
|
|
||||||
|
|
||||||
/* Forward declaration */
|
/* Forward declaration */
|
||||||
void initOta();
|
void initOta();
|
||||||
void initMDNS();
|
void initMDNS();
|
||||||
@@ -34,17 +34,17 @@ void init() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
server.onNotFound([](AsyncWebServerRequest *request) {
|
server.onNotFound([](AsyncWebServerRequest *request) {
|
||||||
SerialPrint("[E]","WebServer","not found:\n" + getRequestInfo(request));
|
SerialPrint("[E]", "WebServer", "not found:\n" + getRequestInfo(request));
|
||||||
request->send(404);
|
request->send(404);
|
||||||
});
|
});
|
||||||
|
|
||||||
server.onFileUpload([](AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) {
|
server.onFileUpload([](AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) {
|
||||||
// TODO
|
// TODO
|
||||||
if (!index) {
|
if (!index) {
|
||||||
SerialPrint("I","WebServer","start upload " + filename);
|
SerialPrint("I", "WebServer", "start upload " + filename);
|
||||||
}
|
}
|
||||||
if (final) {
|
if (final) {
|
||||||
SerialPrint("I","WebServer","finish upload: " + prettyBytes(index + len));
|
SerialPrint("I", "WebServer", "finish upload: " + prettyBytes(index + len));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -69,13 +69,11 @@ void init() {
|
|||||||
|
|
||||||
server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest *request) {
|
server.on("/cmd", HTTP_GET, [](AsyncWebServerRequest *request) {
|
||||||
String cmdStr = request->getParam("command")->value();
|
String cmdStr = request->getParam("command")->value();
|
||||||
SerialPrint("I","WebServer","do: " + cmdStr);
|
SerialPrint("I", "WebServer", "do: " + cmdStr);
|
||||||
loopCmdAdd(cmdStr);
|
loopCmdAdd(cmdStr);
|
||||||
request->send(200, "text/html", "OK");
|
request->send(200, "text/html", "OK");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
initOta();
|
initOta();
|
||||||
@@ -90,7 +88,7 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
|
|||||||
if (type == WS_EVT_CONNECT) {
|
if (type == WS_EVT_CONNECT) {
|
||||||
Serial.printf("ws[%s][%u] connect\n", server->url(), client->id());
|
Serial.printf("ws[%s][%u] connect\n", server->url(), client->id());
|
||||||
client->printf(json.c_str(), client->id());
|
client->printf(json.c_str(), client->id());
|
||||||
//client->ping();
|
// client->ping();
|
||||||
} else if (type == WS_EVT_DISCONNECT) {
|
} else if (type == WS_EVT_DISCONNECT) {
|
||||||
Serial.printf("ws[%s][%u] disconnect\n", server->url(), client->id());
|
Serial.printf("ws[%s][%u] disconnect\n", server->url(), client->id());
|
||||||
} else if (type == WS_EVT_ERROR) {
|
} else if (type == WS_EVT_ERROR) {
|
||||||
@@ -101,7 +99,7 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
|
|||||||
AwsFrameInfo *info = (AwsFrameInfo *)arg;
|
AwsFrameInfo *info = (AwsFrameInfo *)arg;
|
||||||
String msg = "";
|
String msg = "";
|
||||||
if (info->final && info->index == 0 && info->len == len) {
|
if (info->final && info->index == 0 && info->len == len) {
|
||||||
//the whole message is in a single frame and we got all of it's data
|
// the whole message is in a single frame and we got all of it's data
|
||||||
Serial.printf("ws[%s][%u] %s-message[%llu]: ", server->url(), client->id(), (info->opcode == WS_TEXT) ? "text" : "binary", info->len);
|
Serial.printf("ws[%s][%u] %s-message[%llu]: ", server->url(), client->id(), (info->opcode == WS_TEXT) ? "text" : "binary", info->len);
|
||||||
|
|
||||||
if (info->opcode == WS_TEXT) {
|
if (info->opcode == WS_TEXT) {
|
||||||
@@ -122,7 +120,7 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
|
|||||||
else
|
else
|
||||||
client->binary("{}");
|
client->binary("{}");
|
||||||
} else {
|
} else {
|
||||||
//message is comprised of multiple frames or the frame is split into multiple packets
|
// message is comprised of multiple frames or the frame is split into multiple packets
|
||||||
if (info->index == 0) {
|
if (info->index == 0) {
|
||||||
if (info->num == 0)
|
if (info->num == 0)
|
||||||
Serial.printf("ws[%s][%u] %s-message start\n", server->url(), client->id(), (info->message_opcode == WS_TEXT) ? "text" : "binary");
|
Serial.printf("ws[%s][%u] %s-message start\n", server->url(), client->id(), (info->message_opcode == WS_TEXT) ? "text" : "binary");
|
||||||
|
|||||||
@@ -79,13 +79,13 @@ void setup() {
|
|||||||
|
|
||||||
getFSInfo();
|
getFSInfo();
|
||||||
|
|
||||||
//testsPerform();
|
// testsPerform();
|
||||||
|
|
||||||
just_load = false;
|
just_load = false;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|
||||||
const int capacity = JSON_OBJECT_SIZE(35);
|
// const int capacity = JSON_OBJECT_SIZE(35);
|
||||||
SerialPrint("I", F("Test"), String(capacity));
|
// SerialPrint("I", F("Test"), String(capacity));
|
||||||
|
|
||||||
ts.add(
|
ts.add(
|
||||||
MYTEST, 5000, [&](void*) {
|
MYTEST, 5000, [&](void*) {
|
||||||
|
|||||||
Reference in New Issue
Block a user