2021-12-22 14:49:25 +01:00
|
|
|
|
#pragma once
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// константы
|
2021-12-23 18:18:32 +01:00
|
|
|
|
#include "Const.h"
|
2021-12-22 14:49:25 +01:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// внешние глобальные директории
|
2021-12-22 14:49:25 +01:00
|
|
|
|
#include <Arduino.h>
|
|
|
|
|
|
#include <ArduinoJson.h>
|
2021-12-23 17:48:01 +01:00
|
|
|
|
#include <TickerScheduler.h>
|
2022-01-10 23:37:21 +01:00
|
|
|
|
#include <PubSubClient.h>
|
2022-02-25 14:03:30 +03:00
|
|
|
|
#include <list>
|
2021-12-23 17:48:01 +01:00
|
|
|
|
|
2024-09-20 12:45:17 +03:00
|
|
|
|
#ifdef LIBRETINY
|
2025-03-28 20:43:10 +03:00
|
|
|
|
#include <Update.h>
|
2024-09-20 12:19:15 +03:00
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <typedef.h>
|
|
|
|
|
|
#ifdef STANDARD_WEB_SERVER
|
|
|
|
|
|
#include <WebServer.h>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#include <HTTPClient.h>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2021-12-23 17:48:01 +01:00
|
|
|
|
#ifdef ESP32
|
2021-12-24 01:26:50 +01:00
|
|
|
|
#include "WiFi.h"
|
2021-12-23 17:48:01 +01:00
|
|
|
|
#include <HTTPClient.h>
|
|
|
|
|
|
#include <HTTPUpdate.h>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef ESP8266
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#include <ESP8266WiFi.h>
|
2021-12-22 23:33:47 +01:00
|
|
|
|
#include <ESP8266httpUpdate.h>
|
2021-12-23 17:48:01 +01:00
|
|
|
|
#endif
|
|
|
|
|
|
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#ifdef ASYNC_WEB_SERVER
|
2021-12-23 00:33:45 +01:00
|
|
|
|
#include <ESPAsyncWebServer.h>
|
2024-09-20 12:19:15 +03:00
|
|
|
|
#include "AsyncWebServer.h"
|
2021-12-23 18:18:32 +01:00
|
|
|
|
#endif
|
|
|
|
|
|
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#ifdef STANDARD_WEB_SERVER
|
2021-12-23 22:56:45 +01:00
|
|
|
|
#ifdef ESP8266
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#include <ESP8266WebServer.h>
|
|
|
|
|
|
#include <ESP8266HTTPUpdateServer.h>
|
|
|
|
|
|
#endif
|
2021-12-23 22:56:45 +01:00
|
|
|
|
#ifdef ESP32
|
|
|
|
|
|
#include <WebServer.h>
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#endif
|
2021-12-23 22:42:19 +01:00
|
|
|
|
|
2021-12-23 23:47:13 +01:00
|
|
|
|
#ifdef STANDARD_WEB_SOCKETS
|
|
|
|
|
|
#include <WebSocketsServer.h>
|
2021-12-24 01:26:50 +01:00
|
|
|
|
#ifdef ESP8266
|
2021-12-23 23:47:13 +01:00
|
|
|
|
#include <Hash.h>
|
|
|
|
|
|
#endif
|
2021-12-24 01:26:50 +01:00
|
|
|
|
#endif
|
2021-12-23 23:47:13 +01:00
|
|
|
|
|
2021-12-22 14:49:25 +01:00
|
|
|
|
#include <FS.h>
|
2021-12-22 21:13:24 +01:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// внутренние глобальные директории проекта
|
2022-02-15 11:37:31 +01:00
|
|
|
|
#include "utils/FileUtils.h"
|
|
|
|
|
|
#include "utils/JsonUtils.h"
|
|
|
|
|
|
#include "utils/SerialPrint.h"
|
|
|
|
|
|
#include "utils/StringUtils.h"
|
2022-02-13 00:40:15 +01:00
|
|
|
|
#include "PeriodicTasks.h"
|
2022-02-14 18:33:52 +03:00
|
|
|
|
#include "classes/IoTGpio.h"
|
2024-09-21 11:28:46 +03:00
|
|
|
|
#include "classes/IoTDiscovery.h"
|
2021-12-23 23:47:13 +01:00
|
|
|
|
/*********************************************************************************************************************
|
|
|
|
|
|
*****************************************глобальные объекты классов***************************************************
|
|
|
|
|
|
**********************************************************************************************************************/
|
2022-02-21 20:00:18 +03:00
|
|
|
|
extern IoTGpio IoTgpio;
|
2025-09-19 18:19:40 +03:00
|
|
|
|
#ifdef mod_RtcDriver
|
2023-02-17 20:26:29 +03:00
|
|
|
|
extern IoTItem* rtcItem;
|
2025-09-19 18:19:40 +03:00
|
|
|
|
#endif
|
2023-10-02 21:29:02 +03:00
|
|
|
|
//extern IoTItem* camItem;
|
|
|
|
|
|
extern IoTItem* tlgrmItem;
|
2024-02-26 23:29:02 +03:00
|
|
|
|
extern IoTBench* benchLoadItem;
|
|
|
|
|
|
extern IoTBench* benchTaskItem;
|
2024-09-20 12:19:15 +03:00
|
|
|
|
extern IoTDiscovery* HADiscovery;
|
|
|
|
|
|
extern IoTDiscovery* HOMEdDiscovery;
|
|
|
|
|
|
|
2021-12-23 23:47:13 +01:00
|
|
|
|
|
2021-12-22 23:33:47 +01:00
|
|
|
|
extern TickerScheduler ts;
|
2021-12-24 01:26:50 +01:00
|
|
|
|
extern WiFiClient espClient;
|
2022-01-10 23:37:21 +01:00
|
|
|
|
extern PubSubClient mqtt;
|
2022-12-06 01:05:31 +01:00
|
|
|
|
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#ifdef ASYNC_WEB_SERVER
|
2021-12-23 00:33:45 +01:00
|
|
|
|
extern AsyncWebServer server;
|
2021-12-23 18:18:32 +01:00
|
|
|
|
#endif
|
2021-12-22 23:33:47 +01:00
|
|
|
|
|
2021-12-23 22:42:19 +01:00
|
|
|
|
#ifdef STANDARD_WEB_SERVER
|
2021-12-23 22:56:45 +01:00
|
|
|
|
#ifdef ESP8266
|
2021-12-23 22:42:19 +01:00
|
|
|
|
extern ESP8266WebServer HTTP;
|
|
|
|
|
|
extern ESP8266HTTPUpdateServer httpUpdater;
|
|
|
|
|
|
#endif
|
2021-12-23 22:56:45 +01:00
|
|
|
|
#ifdef ESP32
|
|
|
|
|
|
extern WebServer HTTP;
|
|
|
|
|
|
#endif
|
2024-09-20 12:45:17 +03:00
|
|
|
|
#ifdef LIBRETINY
|
2024-09-20 12:19:15 +03:00
|
|
|
|
extern WebServer HTTP;
|
|
|
|
|
|
#endif
|
2021-12-23 22:56:45 +01:00
|
|
|
|
#endif
|
2021-12-23 22:42:19 +01:00
|
|
|
|
|
2021-12-23 23:47:13 +01:00
|
|
|
|
#ifdef STANDARD_WEB_SOCKETS
|
|
|
|
|
|
extern WebSocketsServer standWebSocket;
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************************************************************
|
|
|
|
|
|
***********************************************глобальные переменные**************************************************
|
|
|
|
|
|
**********************************************************************************************************************/
|
2021-12-22 23:33:47 +01:00
|
|
|
|
extern String settingsFlashJson;
|
2022-10-20 00:18:41 +03:00
|
|
|
|
extern String valuesFlashJson;
|
2022-02-08 16:47:17 +01:00
|
|
|
|
extern String errorsHeapJson;
|
2022-10-20 00:18:41 +03:00
|
|
|
|
extern bool needSaveValues;
|
2021-12-24 22:49:06 +01:00
|
|
|
|
|
2022-01-14 21:48:43 +01:00
|
|
|
|
// buf
|
|
|
|
|
|
extern String orderBuf;
|
|
|
|
|
|
extern String eventBuf;
|
2022-11-30 23:31:27 +01:00
|
|
|
|
extern String mysensorBuf;
|
2022-01-14 21:48:43 +01:00
|
|
|
|
|
2022-02-05 02:13:56 +01:00
|
|
|
|
// wifi
|
2022-02-08 16:47:17 +01:00
|
|
|
|
extern String ssidListHeapJson;
|
2022-02-05 02:13:56 +01:00
|
|
|
|
|
2022-02-08 16:47:17 +01:00
|
|
|
|
extern String devListHeapJson;
|
2022-02-14 14:54:37 +01:00
|
|
|
|
extern String thisDeviceJson;
|
2022-02-07 02:08:10 +01:00
|
|
|
|
|
2022-01-10 23:37:21 +01:00
|
|
|
|
// Mqtt
|
|
|
|
|
|
extern String mqttServer;
|
|
|
|
|
|
extern int mqttPort;
|
|
|
|
|
|
extern String mqttPrefix;
|
|
|
|
|
|
extern String mqttUser;
|
|
|
|
|
|
extern String mqttPass;
|
2024-11-26 21:04:22 +03:00
|
|
|
|
extern String nameId;
|
2022-01-10 23:37:21 +01:00
|
|
|
|
|
2022-02-12 03:09:57 +01:00
|
|
|
|
extern unsigned long mqttUptime;
|
2022-02-16 00:53:52 +01:00
|
|
|
|
extern unsigned long flashWriteNumber;
|
2022-02-12 03:09:57 +01:00
|
|
|
|
|
2022-02-22 16:40:46 +01:00
|
|
|
|
extern unsigned long wifiUptime;
|
|
|
|
|
|
|
2022-02-23 17:54:18 +01:00
|
|
|
|
extern bool udpReceivingData;
|
|
|
|
|
|
|
2022-01-10 23:37:21 +01:00
|
|
|
|
extern String mqttRootDevice;
|
|
|
|
|
|
extern String chipId;
|
|
|
|
|
|
extern String prex;
|
|
|
|
|
|
extern String all_widgets;
|
|
|
|
|
|
extern String scenario;
|
|
|
|
|
|
|
2022-08-18 14:49:11 +02:00
|
|
|
|
// Time
|
|
|
|
|
|
struct Time_t {
|
|
|
|
|
|
uint8_t second;
|
|
|
|
|
|
uint8_t minute;
|
|
|
|
|
|
uint8_t hour;
|
|
|
|
|
|
uint8_t day_of_week;
|
|
|
|
|
|
uint8_t day_of_month;
|
|
|
|
|
|
uint8_t month;
|
|
|
|
|
|
uint16_t day_of_year;
|
|
|
|
|
|
uint16_t year;
|
|
|
|
|
|
unsigned long days;
|
|
|
|
|
|
unsigned long valid;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2022-08-24 00:59:44 +02:00
|
|
|
|
extern unsigned long unixTime;
|
2022-08-25 00:45:17 +02:00
|
|
|
|
extern unsigned long unixTimeShort;
|
2022-12-04 21:13:59 +01:00
|
|
|
|
extern String prevDate;
|
|
|
|
|
|
extern bool firstTimeInit;
|
2022-08-25 00:45:17 +02:00
|
|
|
|
|
2022-08-24 00:59:44 +02:00
|
|
|
|
extern bool isTimeSynch;
|
2022-08-18 14:49:11 +02:00
|
|
|
|
extern Time_t _time_local;
|
|
|
|
|
|
extern Time_t _time_utc;
|
2022-08-23 10:06:45 +03:00
|
|
|
|
extern bool _time_isTrust;
|
2022-08-18 14:49:11 +02:00
|
|
|
|
|
2024-11-20 21:11:50 +03:00
|
|
|
|
#define WEBSOCKETS_CLIENT_MAX 5
|
|
|
|
|
|
extern int8_t ws_clients[WEBSOCKETS_CLIENT_MAX];
|
2022-11-30 23:31:27 +01:00
|
|
|
|
// extern unsigned long loopPeriod;
|
2022-10-12 03:14:55 +02:00
|
|
|
|
|
2021-12-25 00:19:58 +01:00
|
|
|
|
// extern DynamicJsonDocument settingsFlashJsonDoc;
|
|
|
|
|
|
// extern DynamicJsonDocument paramsFlashJsonDoc;
|
2022-10-05 20:41:07 +03:00
|
|
|
|
// extern DynamicJsonDocument paramsHeapJsonDoc;
|
|
|
|
|
|
|
|
|
|
|
|
void scanI2C();
|