Поменял конфиг айтемов. Попробуем сделать защиту от сброса таргета в 0
This commit is contained in:
+34
-18
@@ -4,6 +4,7 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "LittleFS.h"
|
#include "LittleFS.h"
|
||||||
|
|
||||||
|
//////////////////////////
|
||||||
// network
|
// network
|
||||||
|
|
||||||
IPAddress my_ip(MY_IP);
|
IPAddress my_ip(MY_IP);
|
||||||
@@ -11,32 +12,33 @@ IPAddress gateway(MY_GW);
|
|||||||
IPAddress subnet(MY_NET);
|
IPAddress subnet(MY_NET);
|
||||||
IPAddress sensor_ip(SENSOR_IP);
|
IPAddress sensor_ip(SENSOR_IP);
|
||||||
|
|
||||||
// After how much time without connection we will
|
//////////////////////////
|
||||||
// reboot (in millis)
|
// Base config
|
||||||
#define NON_CONNECTED_REBOOT_TIMEOUT 60000
|
|
||||||
|
|
||||||
// dht sensor
|
// dht sensor
|
||||||
#define DHTPIN D6
|
#define DHTPIN D6
|
||||||
#define DHTTYPE AM2301
|
#define DHTTYPE AM2301
|
||||||
DHT dht(DHTPIN, DHTTYPE);
|
DHT dht(DHTPIN, DHTTYPE);
|
||||||
#define DHT_UPDATE_INTERVAL 500
|
#define DHT_UPDATE_INTERVAL 500
|
||||||
|
|
||||||
// relay
|
// relay
|
||||||
#define RELAY_PIN D1
|
#define RELAY_PIN D1
|
||||||
#define T_UPDATE_INTERVAL 500
|
|
||||||
|
|
||||||
// external t
|
|
||||||
#define EXTERNAL_UPDATE_INTERVAL 1000
|
|
||||||
|
|
||||||
|
//////////////////////////
|
||||||
// logic consts
|
// logic consts
|
||||||
|
// After how much time without connection we will
|
||||||
|
// reboot (in millis)
|
||||||
|
#define NON_CONNECTED_REBOOT_TIMEOUT 60000
|
||||||
// deviation from target t allowed (in degrees multiplied by 100)
|
// deviation from target t allowed (in degrees multiplied by 100)
|
||||||
#define T_HYSTERESIS 150
|
#define T_HYSTERESIS 150
|
||||||
// relay cooldown temperature (after what t we allow to turn on relay again) (in degrees multiplied by 100)
|
// relay cooldown temperature (after what t we allow to turn on relay again) (in degrees multiplied by 100)
|
||||||
#define RELAY_COOLDOWN_T 500
|
#define RELAY_COOLDOWN_T 500
|
||||||
// timeout to switch from external to internal temperature data (in milliseconds)
|
// timeout to switch from external to internal temperature data (in milliseconds)
|
||||||
#define SWITCH_TO_INTERNAL_TIMEOUT 50000
|
#define SWITCH_TO_INTERNAL_TIMEOUT 50000
|
||||||
|
// interval for updating internal temperature
|
||||||
|
#define T_UPDATE_INTERVAL 500
|
||||||
|
// interval for updating external t
|
||||||
|
#define EXTERNAL_UPDATE_INTERVAL 1000
|
||||||
|
|
||||||
|
//////////////////////////
|
||||||
// modbus consts and works
|
// modbus consts and works
|
||||||
#define TCP_PORT 15000
|
#define TCP_PORT 15000
|
||||||
|
|
||||||
@@ -52,7 +54,7 @@ DHT dht(DHTPIN, DHTTYPE);
|
|||||||
#define REGISTER_TARGET_T 5
|
#define REGISTER_TARGET_T 5
|
||||||
// temperature from internal sensor
|
// temperature from internal sensor
|
||||||
#define REGISTER_INTERNAL_T 6
|
#define REGISTER_INTERNAL_T 6
|
||||||
// temperatur from external sensor (received via modbus-tcp)
|
// temperature from external sensor (received via modbus-tcp)
|
||||||
#define REGISTER_EXTERNAL_T 7
|
#define REGISTER_EXTERNAL_T 7
|
||||||
|
|
||||||
// critical relay temp (degrees multiplied by 100)
|
// critical relay temp (degrees multiplied by 100)
|
||||||
@@ -72,21 +74,35 @@ int target_t = 0;
|
|||||||
int internal_t = 0;
|
int internal_t = 0;
|
||||||
int external_t = 0;
|
int external_t = 0;
|
||||||
|
|
||||||
void LoadState()
|
bool TryLoad(char *filename)
|
||||||
{
|
{
|
||||||
File f = LittleFS.open("/target_t.txt", "r");
|
File f = LittleFS.open(filename, "r");
|
||||||
if (!f) return;
|
if (!f) return false;
|
||||||
String s = f.readStringUntil('\n');
|
String s = f.readStringUntil('\n');
|
||||||
target_t = atoi(s.c_str());
|
target_t = atoi(s.c_str());
|
||||||
f.close();
|
f.close();
|
||||||
|
if (target_t == 0) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadState()
|
||||||
|
{
|
||||||
|
if (TryLoad("/target_t.txt")) return;
|
||||||
|
TryLoad("/target_t.txt.bak");
|
||||||
|
}
|
||||||
|
|
||||||
|
void SaveTo(char *filename)
|
||||||
|
{
|
||||||
|
File f = LittleFS.open(filename, "w");
|
||||||
|
if (!f) return;
|
||||||
|
f.println(target_t);
|
||||||
|
f.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SaveState()
|
void SaveState()
|
||||||
{
|
{
|
||||||
File f = LittleFS.open("/target_t.txt", "w");
|
SaveTo("/target_t.txt");
|
||||||
if (!f) return;
|
SaveTo("/target_t.txt.bak");
|
||||||
f.println(target_t);
|
|
||||||
f.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup()
|
void setup()
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
Number HEATER_NAME_Mode "HEATER_NAME mode" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_Mode:number"}
|
Switch HEATER_NAME_Mode "HEATER_NAME mode" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_Mode:switch"}
|
||||||
Switch HEATER_NAME_State "HEATER_NAME state" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_State:switch"}
|
Switch HEATER_NAME_State "HEATER_NAME state" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_State:switch"}
|
||||||
Number HEATER_NAME_RelayT "HEATER_NAME relay temperature [%.1f °C]" <temperature> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_RelayT:number"}
|
Number HEATER_NAME_RelayT "HEATER_NAME relay temperature [%.1f °C]" <temperature> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_RelayT:number"}
|
||||||
Number HEATER_NAME_Overheat "HEATER_NAME relay overheated" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_Overheat:number"}
|
Number HEATER_NAME_Overheat "HEATER_NAME relay overheated" <switch> {channel="modbus:data:HEATER_NAME:H:HEATER_NAME_Overheat:number"}
|
||||||
|
|||||||
Reference in New Issue
Block a user