Chyba już kiedyś padła odpowiedź ale zapytam jeszcze raz.
Co oznacza key value too big?
Mam to na esp32 na którym jest 7x termostat grzejący, 1x wyjście realne, 1x virtual relay, 14x termometr do termostatu i 7x czujnik binarny do okien. Procesor działa stabilnie.
Problem z Cofnig przy dużej ilości termostatów
-
[email protected]
- Posts: 1584
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
konfig zapisywany w pamieci urządzenia ma określoną wielkość, pewnie wpisałeś za długiego stringa albo zbyt wiele kluczy patrząc po liczbie czujnikówDuch__ wrote: Fri Jan 24, 2025 5:20 am Chyba już kiedyś padła odpowiedź ale zapytam jeszcze raz.
Co oznacza key value too big?
Mam to na esp32 na którym jest 7x termostat grzejący, 1x wyjście realne, 1x virtual relay, 14x termometr do termostatu i 7x czujnik binarny do okien. Procesor działa stabilnie.
-
[email protected]
- Posts: 1584
- Joined: Mon Feb 06, 2023 8:56 am
- Has thanked: 18 times
- Been thanked: 26 times
Nie widziałem Twoje kodu więc nie wiem co tam wstawiasz do konfiga, ale jeśli liczba kluczy jest np max 50 to pewnie przekroczyłeś coś przez liczbę termostatów oraz czujników temp., no albo jakiś tekst jako wartość się nie zmieścił bo może mieć też określoną liczbę znakówDuch__ wrote: Fri Jan 24, 2025 7:44 am stringa od czego? Dodam że czujniki temperatury tez są wirtualne.
-
Duch__
- Posts: 2199
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
- Been thanked: 6 times
Kod mojego termostatu:
Dodatkowy uzywany plik:
Code: Select all
/*
hvac_1 -> Salon Kaloryfer
hvac_2 -> Salon Podloga
hvac_3 -> Sypialnia
hvac_4 -> Zielony
hvac_5 -> Niebieski
hvac_6 -> Łazienka
hvac_7 -> Garaz
*/
//#define Program_testowy //Zakomentuj dla procesora docelowego
#define SUPLA_DISABLE_LOGS
#define MAX_SLEEP_TIME_SEC 240
#include <SuplaDevice.h> //24.11.4
#include <supla/storage/eeprom.h>
#include <supla/network/esp_wifi.h>
#include <supla/device/status_led.h>
#include <supla/storage/littlefs_config.h>
#include <supla/network/esp_web_server.h>
#include <supla/network/html/device_info.h>
#include <supla/network/html/protocol_parameters.h>
#include <supla/network/html/status_led_parameters.h>
#include <supla/network/html/wifi_parameters.h>
#include <supla/network/html/custom_parameter.h>
#include <supla/network/html/custom_text_parameter.h>
#include <supla/network/html/text_cmd_input_parameter.h>
#include <supla/network/html/select_cmd_input_parameter.h>
#include <supla/network/html_element.h>
#include <supla/network/web_sender.h>
#include <supla/device/supla_ca_cert.h>
#include <supla/sensor/general_purpose_measurement.h>
#include <supla/control/hvac_base.h>
#include <supla/clock/clock.h>
#include <supla/network/html/time_parameters.h>
#include <supla/network/html/hvac_parameters.h>
#include <supla/control/internal_pin_output.h>
#include <supla/events.h>
#include <supla/actions.h>
#include <supla/sensor/virtual_thermometer.h>
#include <supla/control/button.h>
#include <supla/sensor/virtual_binary.h>
#include <supla/control/relay.h>
#include <supla/control/virtual_relay.h>
#include <supla/clock/DS1307RTC.h>
#include <supla/version.h>
const char DeviceVersion[] = "SDK " SUPLA_SHORT_VERSION;
String the_sketchname;
#include "fwversion.h"
#include <HTTPUpdateServer.h>
#define ssid "ssid"
#define password "password"
#include <ArduinoJson.h> //by Benoit Blanchon 6.17.0
#include <WiFiUdp.h>
String udp_msg;
#define udpPort 4210
char incomingPacket[255]; // buffer for incoming packets
WiFiUDP udp;
byte licz_prezentacja_nazwy_pliku;
float temp_stan_wysoki_[17];
float temp_stan_niski__[17];
bool nowe_dane_temp_z_UDP;
float temp_aktualna_hvac_[8];
float temp_aktualna[17];
float temp_aktualna_old[17];
String channel_name_hvac[8];
String channel_name[17];
byte grzanie_hvac[8];
float wykres_hvac[8];
unsigned long temp_aktualna_unsigned_long;
word temp_aktualna_word[17];
word timeout;
bool pierwsza_transmisja_UDP;
bool nowe_dane_udp_do_wyslania;
byte licznik_czasu_UDP_Begin = 20;
word sekundy_od_ostatniej_transmisji_UDP_RX_1;
word sekundy_od_ostatniej_transmisji_UDP_RX_2;
byte sekundy_od_ostatniej_transmisji_UDP_TX;
unsigned long previousMillis_UDP;
unsigned long previousMillis_time_1000ms;
unsigned long previousMillis_time_10ms;
byte Liczba_grzejacych;
word aktualne_pwm_odebrane_z_pompy;
word licz_sekundy_od_ostatniego_stanu_pompy;
byte licznik_led_green = 1;
byte licznik_led_red = 1;
bool supla_blokuje;
word licznik_supla_blokuje;
bool stan_led_G_przez_supla;
bool stan_led_R_przez_supla;
bool stan_led_G_przez_wietrzenie;
bool stan_led_R_przez_wietrzenie;
bool stan_led_G_przez_UDP;
bool stan_led_R_przez_UDP;
const char PARAM1[] = "param1";
#define CFG_BUTTON_GPIO 0
#define STATUS_LED_GPIO 2
#define LED_RED_GPIO 23
#define LED_GREEN_GPIO 19
#define OUTPUT_GPIO_PIEC 18 //Modul przekaznikowy wyjscie 1
#define OUTPUT_GPIO_1 13 //Modul przekaznikowy wyjscie 2
#define OUTPUT_GPIO_2 4 //Modul przekaznikowy wyjscie 3
#define OUTPUT_GPIO_3 27 //Modul przekaznikowy wyjscie 4
#define OUTPUT_GPIO_4 26 //Modul przekaznikowy wyjscie 5
#define OUTPUT_GPIO_5 25 //Modul przekaznikowy wyjscie 6
#define OUTPUT_GPIO_6 33 //Modul przekaznikowy wyjscie 7
#define OUTPUT_GPIO_7 32 //Modul przekaznikowy wyjscie 8
String last_message[18];
bool wietrzenie;
byte licznik_wietrzenie;
Supla::ESPWifi wifi;
Supla::Eeprom eeprom;
Supla::LittleFsConfig configSupla;
Supla::Device::StatusLed statusLed(STATUS_LED_GPIO, true); // inverted state
Supla::EspWebServer suplaServer;
auto termometr_1_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_1_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_2_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_2_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_3_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_3_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_4_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_4_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_5_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_5_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_6_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_6_2 = new Supla::Sensor::VirtualThermometer;
auto termometr_7_1 = new Supla::Sensor::VirtualThermometer;
auto termometr_7_2 = new Supla::Sensor::VirtualThermometer;
HTTPUpdateServer httpUpdater;
auto czujnik_binarny_kanalu_1 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_2 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_3 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_4 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_5 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_6 = new Supla::Sensor::VirtualBinary();
auto czujnik_binarny_kanalu_7 = new Supla::Sensor::VirtualBinary();
auto output_1 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_1,false);
auto output_2 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_2,false);
auto output_3 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_3,false);
auto output_4 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_4,false);
auto output_5 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_5,false);
auto output_6 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_6,false);
auto output_7 = new Supla::Control::InternalPinOutput(OUTPUT_GPIO_7,false);
auto hvac_1 = new Supla::Control::HvacBase(output_1);
auto hvac_2 = new Supla::Control::HvacBase(output_2);
auto hvac_3 = new Supla::Control::HvacBase(output_3);
auto hvac_4 = new Supla::Control::HvacBase(output_4);
auto hvac_5 = new Supla::Control::HvacBase(output_5);
auto hvac_6 = new Supla::Control::HvacBase(output_6);
auto hvac_7 = new Supla::Control::HvacBase(output_7);
Supla::Control::VirtualRelay *vrelay = nullptr;
void setup() {
Serial.begin(115200);
#ifdef Program_testowy
delay(2000);
Serial.println("Program testowy");
delay(2000);
#else
//
#endif
pinMode(LED_RED_GPIO, OUTPUT); //LED
stan_led_R_przez_supla = 1; steruj_led();
pinMode(LED_GREEN_GPIO, OUTPUT); //LED
stan_led_G_przez_supla = 1; steruj_led();
pinMode(OUTPUT_GPIO_PIEC, OUTPUT); //Wyjscie załaczenia pieca
digitalWrite(OUTPUT_GPIO_PIEC,HIGH);
#ifdef Program_testowy
char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x0B,0x3C,0x06,0x84,0x11,0x6A,0xE0,0x9C,0x00,0x00,0x00,0x00,0x00};
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x3D,0xEF,0xAA,0x60,0x11,0x13,0xBD,0x00,0x00,0x00,0x00,0x00,0x00};
#else
//Replace the following AUTHKEY with value that you can retrieve from: https://www.supla.org/arduino/get-authkey
//Replace the falowing GUID with value that you can retrieve from https://www.supla.org/arduino/get-guid
char AUTHKEY[SUPLA_AUTHKEY_SIZE] = {0x00,0x00,0x00,0x2D,0x78,0xE3,0xE6,0xFB,0x23,0x9C,0x00,0x00,0x00,0x00,0x00,0x00}; //Prawidłowe
char GUID[SUPLA_GUID_SIZE] = {0x00,0x00,0x00,0x17,0xFB,0xAD,0x4C,0x84,0x2C,0xF4,0x00,0x00,0x00,0x00,0x00,0x00}; //Prawidłowe
#endif
auto cfg = Supla::Storage::ConfigInstance();
if (cfg) {
char buf[100];
//if (!cfg->getGUID(buf)) {
cfg->setGUID(GUID);
cfg->setAuthKey(AUTHKEY);
cfg->setWiFiSSID(ssid);
cfg->setWiFiPassword(password);
cfg->setSuplaServer("svrX.supla.org");
cfg->setEmail("[email protected]");
//}
}
// WARNING: using default Clock class. It works only when there is connection
// with Supla server. In real thermostat application, use RTC HW clock,
// which will keep time after ESP power reset
new Supla::Clock;
new Supla::DS1307RTC();
// HTML www component (they appear in sections according to creation
// sequence)
new Supla::Html::DeviceInfo(&SuplaDevice);
String the_path = __FILE__;
int slash_loc = the_path.lastIndexOf('/');
String the_cpp_name = the_path.substring(slash_loc + 1);
int dot_loc = the_cpp_name.lastIndexOf('.');
the_sketchname = the_cpp_name.substring(0, dot_loc);
new Supla::Html::fwversion; // Tutaj wpada the_sketchname
new Supla::Html::WifiParameters;
new Supla::Html::ProtocolParameters;
new Supla::Html::StatusLedParameters;
new Supla::Html::TimeParameters(&SuplaDevice);
new Supla::Device::StatusLed(STATUS_LED_GPIO, true);
eeprom.setStateSavePeriod(5000);
// Html page for HVAC
new Supla::Html::HvacParameters(hvac_1);
new Supla::Html::HvacParameters(hvac_2);
new Supla::Html::HvacParameters(hvac_3);
new Supla::Html::HvacParameters(hvac_4);
new Supla::Html::HvacParameters(hvac_5);
new Supla::Html::HvacParameters(hvac_6);
new Supla::Html::HvacParameters(hvac_7);
termometr_1_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_1_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_2_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_2_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_3_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_3_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_4_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_4_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_5_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_5_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_6_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_6_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_7_1->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
termometr_7_2->getChannel()->setValidityTimeSec(MAX_SLEEP_TIME_SEC);
czujnik_binarny_kanalu_1->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_2->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_3->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_4->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_5->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_6->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
czujnik_binarny_kanalu_7->setDefaultFunction(SUPLA_CHANNELFNC_OPENINGSENSOR_WINDOW);
// Configure thermostat parameters
hvac_1->setMainThermometerChannelNo(0);
hvac_1->setAuxThermometerChannelNo(1);
hvac_1->setAuxThermometerType(4);
hvac_1->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_1->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_1->setTemperatureHisteresis(20);
hvac_1->setBinarySensorChannelNo(14);
hvac_2->setMainThermometerChannelNo(2);
hvac_2->setAuxThermometerChannelNo(3);
hvac_2->setAuxThermometerType(4);
hvac_2->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_2->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 3500);
hvac_2->setTemperatureHisteresis(20);
hvac_2->setBinarySensorChannelNo(15);
hvac_3->setMainThermometerChannelNo(4);
hvac_3->setAuxThermometerChannelNo(5);
hvac_3->setAuxThermometerType(4);
hvac_3->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_3->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_3->setTemperatureHisteresis(20);
hvac_3->setBinarySensorChannelNo(16);
hvac_4->setMainThermometerChannelNo(6);
hvac_4->setAuxThermometerChannelNo(7);
hvac_4->setAuxThermometerType(4);
hvac_4->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_4->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_4->setTemperatureHisteresis(20);
hvac_4->setBinarySensorChannelNo(17);
hvac_5->setMainThermometerChannelNo(8);
hvac_5->setAuxThermometerChannelNo(9);
hvac_5->setAuxThermometerType(4);
hvac_5->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_5->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_5->setTemperatureHisteresis(20);
hvac_5->setBinarySensorChannelNo(18);
hvac_6->setMainThermometerChannelNo(10);
hvac_6->setAuxThermometerChannelNo(11);
hvac_6->setAuxThermometerType(4);
hvac_6->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_6->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_6->setTemperatureHisteresis(20);
hvac_6->setBinarySensorChannelNo(19);
hvac_7->setMainThermometerChannelNo(12);
hvac_7->setAuxThermometerChannelNo(13);
hvac_7->setAuxThermometerType(4);
hvac_7->setDefaultTemperatureRoomMin(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 1500);
hvac_7->setDefaultTemperatureRoomMax(SUPLA_CHANNELFNC_HVAC_THERMOSTAT, 2500);
hvac_7->setTemperatureHisteresis(100);
hvac_7->setBinarySensorChannelNo(20);
//Ustawiamy przekaznik zalaczenia pieca
auto piec_relay = new Supla::Control::Relay(OUTPUT_GPIO_PIEC, false); // false = active low
piec_relay->getChannel()->setDefault(SUPLA_CHANNELFNC_HEATORCOLDSOURCESWITCH); //Ustawiam przekaźnik jako wlącznik pieca
vrelay = new Supla::Control::VirtualRelay();
vrelay->getChannel()->setDefault(SUPLA_CHANNELFNC_STAIRCASETIMER); //Ustawiam przekaźnik jako przkeaźnik czasowy
hvac_1->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_1
hvac_2->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_2
hvac_3->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_3
hvac_4->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_4
hvac_5->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_5
hvac_6->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_6
hvac_7->setHeatOrColdSourceSwitchChannelNo(piec_relay->getChannelNumber()); // add relay integrator too hvac_7
auto cfgButton = new Supla::Control::Button(CFG_BUTTON_GPIO, true, true);
cfgButton->configureAsConfigButton(&SuplaDevice);
// configure defualt Supla CA certificate
SuplaDevice.setSuplaCACert(suplaCACert);
SuplaDevice.setSupla3rdPartyCACert(supla3rdCACert);
#ifdef Program_testowy
SuplaDevice.setName("Termostat ESP32 TEST");
#else
SuplaDevice.setName("Termostat ESP32");
#endif
SuplaDevice.setSwVersion(DeviceVersion);
httpUpdater.setup(suplaServer.getServerPtr(), "/update");
Supla::Storage::Init();
SuplaDevice.begin(21); // Thermostat requires proto version >= 21
//Kolejny zestaw parametrow dla termostatow ktory musi byc dopiero tutaj
hvac_1->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_2->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_3->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_4->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_5->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_6->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_7->setUsedAlgorithm(SUPLA_HVAC_ALGORITHM_ON_OFF_SETPOINT_AT_MOST);
hvac_1->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_1->setTemperatureFreezeProtection(1500);
hvac_1->setTemperatureHeatProtection(2500);
hvac_2->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_2->setTemperatureFreezeProtection(1500);
hvac_2->setTemperatureHeatProtection(3500);
hvac_3->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_3->setTemperatureFreezeProtection(1500);
hvac_3->setTemperatureHeatProtection(2500);
hvac_4->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_4->setTemperatureFreezeProtection(1500);
hvac_4->setTemperatureHeatProtection(2500);
hvac_5->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_5->setTemperatureFreezeProtection(1500);
hvac_5->setTemperatureHeatProtection(2500);
hvac_6->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_6->setTemperatureFreezeProtection(1500);
hvac_6->setTemperatureHeatProtection(2500);
hvac_7->setAntiFreezeAndHeatProtectionEnabled(1);
hvac_7->setTemperatureFreezeProtection(1500);
hvac_7->setTemperatureHeatProtection(2500);
hvac_1->setMinOnTimeS(30);
hvac_1->setMinOffTimeS(60);
hvac_2->setMinOnTimeS(30);
hvac_2->setMinOffTimeS(60);
hvac_3->setMinOnTimeS(30);
hvac_3->setMinOffTimeS(60);
hvac_4->setMinOnTimeS(30);
hvac_4->setMinOffTimeS(60);
hvac_5->setMinOnTimeS(30);
hvac_5->setMinOffTimeS(60);
hvac_6->setMinOnTimeS(30);
hvac_6->setMinOffTimeS(60);
hvac_7->setMinOnTimeS(30);
hvac_7->setMinOffTimeS(60);
SuplaDevice.setProtoVerboseLog(false); //Wylaczenie logów
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
if(timeout == 0){
SuplaDevice.iterate();
}
if (SuplaDevice.getDeviceMode() == Supla::DEVICE_MODE_NORMAL) {
Odczytaj_UDP();
Zadania_co_okreslony_czas();
}
if (Supla::Network::IsReady()) {
SuplaDevice.handleAction(0, Supla::START_LOCAL_WEB_SERVER); //Stały dostep do strony konfiguracji
}
if(timeout > 0){
if(timeout == 1){
Serial.println("timeout UDP RX");
}
--timeout;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Zadania_co_okreslony_czas(){
unsigned long currentMillis = millis();
/////////////////////////////////
if(currentMillis - previousMillis_time_10ms >= 10UL){ //Zadania co 10ms
previousMillis_time_10ms = currentMillis;
supla_blokuje = 0;
if(Supla::Protocol::ProtocolLayer::IsAnyUpdatePending()) {
supla_blokuje = 1;
}
if(supla_blokuje == 0){
licznik_supla_blokuje = 0;
stan_led_G_przez_supla = 0; steruj_led();
stan_led_R_przez_supla = 0; steruj_led();
}
if(supla_blokuje == 1){
stan_led_G_przez_supla = 1; steruj_led();
stan_led_R_przez_supla = 1; steruj_led();
++licznik_supla_blokuje;
if(licznik_supla_blokuje == 1){
Serial.println("SUPLA blokuje");
}
if(licznik_supla_blokuje >= 5){
licznik_supla_blokuje = 0;
}
}
if(licznik_led_red > 1){
--licznik_led_red;
}
if(licznik_led_red == 7) {stan_led_R_przez_UDP = 1; steruj_led();}
if(licznik_led_red == 2) {stan_led_R_przez_UDP = 0; steruj_led();}
if(licznik_led_green > 1){
--licznik_led_green;
}
if(licznik_led_green == 7) {stan_led_G_przez_UDP = 1; steruj_led();}
if(licznik_led_green == 2) {stan_led_G_przez_UDP = 0; steruj_led();}
if(wietrzenie == 0){
stan_led_G_przez_wietrzenie = 0; steruj_led();
stan_led_R_przez_wietrzenie = 0; steruj_led();
}
if(wietrzenie == 1){
if(licznik_wietrzenie == 1){
stan_led_R_przez_wietrzenie = 1; steruj_led();
stan_led_G_przez_wietrzenie = 0; steruj_led();
}
if(licznik_wietrzenie == 20){
stan_led_R_przez_wietrzenie = 0; steruj_led();
stan_led_G_przez_wietrzenie = 1; steruj_led();
}
++licznik_wietrzenie;
if(licznik_wietrzenie > 40){
licznik_wietrzenie = 0;
}
}
}
/////////////////////////////////
if(currentMillis - previousMillis_time_1000ms >= 1000UL){ //Zadania co 1000ms
previousMillis_time_1000ms = currentMillis;
++licz_prezentacja_nazwy_pliku;
if(licz_prezentacja_nazwy_pliku >= 5){
licz_prezentacja_nazwy_pliku = 0;
Serial.println(the_sketchname);
}
wietrzenie = vrelay->isOn();
if(wietrzenie == 1){
Serial.println("Wietrzenie aktywne");
czujnik_binarny_kanalu_1->clear();
czujnik_binarny_kanalu_2->clear();
czujnik_binarny_kanalu_3->clear();
czujnik_binarny_kanalu_4->clear();
czujnik_binarny_kanalu_5->clear();
czujnik_binarny_kanalu_6->clear();
czujnik_binarny_kanalu_7->clear();
}else{
czujnik_binarny_kanalu_1->set();
czujnik_binarny_kanalu_2->set();
czujnik_binarny_kanalu_3->set();
czujnik_binarny_kanalu_4->set();
czujnik_binarny_kanalu_5->set();
czujnik_binarny_kanalu_6->set();
czujnik_binarny_kanalu_7->set();
}
if(nowe_dane_temp_z_UDP == 1){
nowe_dane_temp_z_UDP = 0;
temp_aktualna_hvac_[1] = temp_aktualna[2]; channel_name_hvac[1] = channel_name[2];
temp_aktualna_hvac_[2] = temp_aktualna[13]; channel_name_hvac[2] = channel_name[13];
temp_aktualna_hvac_[3] = temp_aktualna[4]; channel_name_hvac[3] = channel_name[4];
temp_aktualna_hvac_[4] = temp_aktualna[5]; channel_name_hvac[4] = channel_name[5];
temp_aktualna_hvac_[5] = temp_aktualna[6]; channel_name_hvac[5] = channel_name[6];
temp_aktualna_hvac_[6] = temp_aktualna[15]; channel_name_hvac[6] = channel_name[15];
temp_aktualna_hvac_[7] = temp_aktualna[7]; channel_name_hvac[7] = channel_name[7];
Serial.print(temp_aktualna_hvac_[1]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[2]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[3]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[4]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[5]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[6]); Serial.print(" ");
Serial.print(temp_aktualna_hvac_[7]); Serial.print(" ");
Serial.println(aktualne_pwm_odebrane_z_pompy);
}
if(timeout == 0){
if(pierwsza_transmisja_UDP == 1){
termometr_1_1->setValue(temp_aktualna_hvac_[1]);
termometr_1_2->setValue(wykres_hvac[1]);
termometr_2_1->setValue(temp_aktualna_hvac_[2]);
termometr_2_2->setValue(wykres_hvac[2]);
termometr_3_1->setValue(temp_aktualna_hvac_[3]);
termometr_3_2->setValue(wykres_hvac[3]);
termometr_4_1->setValue(temp_aktualna_hvac_[4]);
termometr_4_2->setValue(wykres_hvac[4]);
termometr_5_1->setValue(temp_aktualna_hvac_[5]);
termometr_5_2->setValue(wykres_hvac[5]);
termometr_6_1->setValue(temp_aktualna_hvac_[6]);
termometr_6_2->setValue(wykres_hvac[6]);
termometr_7_1->setValue(temp_aktualna_hvac_[7]);
termometr_7_2->setValue(wykres_hvac[7]);
}
}
Status_systemu();
if(licznik_czasu_UDP_Begin < 100){
if (WiFi.status() == WL_CONNECTED) {
--licznik_czasu_UDP_Begin;
if(licznik_czasu_UDP_Begin < 1){
licznik_czasu_UDP_Begin = 100;
Serial.println("UDP begin");
stan_led_R_przez_supla = 0; steruj_led();
stan_led_G_przez_supla = 0; steruj_led();
delay(1000);
udp.begin(udpPort);
}
}
}
++sekundy_od_ostatniej_transmisji_UDP_RX_1;
if(sekundy_od_ostatniej_transmisji_UDP_RX_1 >= 600){
ESP.restart();
}
++sekundy_od_ostatniej_transmisji_UDP_RX_2;
if(sekundy_od_ostatniej_transmisji_UDP_RX_2 >= 10){
sekundy_od_ostatniej_transmisji_UDP_RX_2 = 0;
nowe_dane_temp_z_UDP = 1;
}
++sekundy_od_ostatniej_transmisji_UDP_TX;
++licz_sekundy_od_ostatniego_stanu_pompy;
if(licz_sekundy_od_ostatniego_stanu_pompy >= 120){
licz_sekundy_od_ostatniego_stanu_pompy = 120;
}
}
if(sekundy_od_ostatniej_transmisji_UDP_TX > 10){
sekundy_od_ostatniej_transmisji_UDP_TX = 0;
nowe_dane_udp_do_wyslania = 1;
}
if(nowe_dane_udp_do_wyslania > 0){
String text_UDP;
if(nowe_dane_udp_do_wyslania >= 1){
sekundy_od_ostatniej_transmisji_UDP_TX = 0;
nowe_dane_udp_do_wyslania = 1; //ograniczam żeby wysyłanie nie trwało w nieskończonośc
}
word PWM_dla_pompy = 0;
word nowe_pwm_dla_pompy = 0;
if(grzanie_hvac[1] == 1){nowe_pwm_dla_pompy = 300; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[2] == 1){nowe_pwm_dla_pompy = 1000;if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[3] == 1){nowe_pwm_dla_pompy = 150; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[4] == 1){nowe_pwm_dla_pompy = 150; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[5] == 1){nowe_pwm_dla_pompy = 150; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[6] == 1){nowe_pwm_dla_pompy = 150; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(grzanie_hvac[7] == 1){nowe_pwm_dla_pompy = 150; if(nowe_pwm_dla_pompy >= PWM_dla_pompy){PWM_dla_pompy = nowe_pwm_dla_pompy;}}
if(PWM_dla_pompy > 1000){PWM_dla_pompy = 1000;}
if(PWM_dla_pompy < 0) {PWM_dla_pompy = 0;}
word randNumber1 = random(1024);
word randNumber2 = random(1024);
word randNumber3 = random(1024);
word randNumber4 = random(1024);
word PUMP_CRC = 0;
PUMP_CRC = PUMP_CRC + randNumber1;
PUMP_CRC = PUMP_CRC + randNumber2;
PUMP_CRC = PUMP_CRC + randNumber3;
PUMP_CRC = PUMP_CRC + randNumber4;
PUMP_CRC = PUMP_CRC + PWM_dla_pompy;
text_UDP = "{";
text_UDP += "\"ID\":\"Pompa_1\", ";
text_UDP += "\"Name\":\"Pompa_PWM\", "; // <---Dodatkowe znaki cudzyslowia, przesylamy wartosc jako tekst, nie jako liczbę
text_UDP += "\"PWM_1\":\"" + String(randNumber1) + "\", "; //Wysylamy dowolna wartosc
text_UDP += "\"PWM_2\":\"" + String(randNumber2) + "\", "; //Wysylamy dowolna wartosc
text_UDP += "\"PWM_3\":\"" + String(randNumber3) + "\", "; //Wysylamy dowolna wartosc
text_UDP += "\"PWM_4\":\"" + String(randNumber4) + "\", "; //Wysylamy dowolna wartosc
text_UDP += "\"PWM_5\":\"" + String(PWM_dla_pompy) + "\", "; //Wysylamy dowolna wartosc
text_UDP += "\"Pompa_CRC\":\"" + String(PUMP_CRC) + "\"} ";
#ifdef Program_testowy
Serial.print("Tx: ");
Serial.println(text_UDP);
#else
//stan_led_R_przez_UDP = 1; steruj_led();
Serial.print("Tx: ");
Serial.println(text_UDP);
udp.beginPacket("192.168.2.255", udpPort); udp.print(text_UDP); udp.endPacket();yield();
//stan_led_R_przez_UDP = 0; steruj_led();
#endif
nowe_dane_udp_do_wyslania = 0;
sekundy_od_ostatniej_transmisji_UDP_TX = 0;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Odczytaj_UDP(){
int packetSize = udp.parsePacket();
if (packetSize)
{
//stan_led_G_przez_UDP = 1; steruj_led();
delay(30);
// receive incoming UDP packets
//Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
int len = udp.read(incomingPacket, 255);
if (len > 0)
{
incomingPacket[len] = 0;
}
udp_msg = String(incomingPacket);
if (udp_msg.substring(2,9) == "CzID255") {
Dekoduj_json_udp();
}
if (udp_msg.substring(7,14) == "Pompa_1") {
Dekoduj_json_udp();
}
udp_msg = "";
//stan_led_G_przez_UDP = 0; steruj_led();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Dekoduj_json_udp(){
byte ID_val = 0;
Serial.print("Rx: "); Serial.println(udp_msg);
//Kod wygenerowany przy pomocy strony https://arduinojson.org/v6/assistant/
DynamicJsonDocument doc(1024);
DeserializationError err = deserializeJson(doc, udp_msg);
if (err) {
Serial.println(F("Blad dokodowania JSON"));
return;
}
deserializeJson(doc, udp_msg);
String ID_string = doc["CzID255"];
String Name_string = doc["CzN255"];
String Temp_string = doc["CzT255"];
String Pompa_string = doc["ID"];
String Pompa_status_string = doc["STATUS"];
String Pompa_DATA_1 = doc["DATA_1"];
String Pompa_DATA_2 = doc["DATA_2"];
String Pompa_DATA_3 = doc["DATA_3"];
String Pompa_DATA_4 = doc["DATA_4"];
String Pompa_DATA_5 = doc["DATA_5"];
String Pompa_DATA_CRC = doc["DATA_CRC"];
String Start_string = doc["255_START"];
String End_string = doc["255_END"];
//Serial.println(msg.substring(2,9));
//Serial.println(udp_msg);
if (udp_msg.substring(7,14) == "Pompa_1") {
if(Pompa_string == "Pompa_1" && Pompa_status_string == "OK"){
int Pompa_DATA_1_int = Pompa_DATA_1.toInt();
int Pompa_DATA_2_int = Pompa_DATA_2.toInt();
int Pompa_DATA_3_int = Pompa_DATA_3.toInt();
int Pompa_DATA_4_int = Pompa_DATA_4.toInt();
int Pompa_DATA_5_int = Pompa_DATA_5.toInt();
int Pompa_DATA_CRC_int = Pompa_DATA_CRC.toInt();
word licz_crc = 0;
licz_crc = licz_crc + Pompa_DATA_1_int;
licz_crc = licz_crc + Pompa_DATA_2_int;
licz_crc = licz_crc + Pompa_DATA_3_int;
licz_crc = licz_crc + Pompa_DATA_4_int;
licz_crc = licz_crc + Pompa_DATA_5_int;
if(licz_crc == Pompa_DATA_CRC_int){
aktualne_pwm_odebrane_z_pompy = Pompa_DATA_5_int;
licznik_led_red = 8;
licz_sekundy_od_ostatniego_stanu_pompy = 0;
}
}
}
if (udp_msg.substring(2,9) == "CzID255") {
//Serial.println(udp_msg);
ID_val = ID_string.toInt();
last_message[ID_val] = udp_msg;
channel_name[ID_val] = Name_string;
if(ID_val == 0){
temp_aktualna_unsigned_long = Temp_string.toInt();
timeout = 50000;
}else{
temp_aktualna_word[ID_val] = Temp_string.toInt();
timeout = 50000;
}
if(ID_val == 16){
timeout = 0;
//Kalkulacja CRC
unsigned long CRC = 0;
for (byte licz = 1; licz <= 16; licz++) {
CRC = CRC + temp_aktualna_word[licz];
}
if(CRC == temp_aktualna_unsigned_long){ //Jesli otrzymalismy prawidlowe CRC;
sekundy_od_ostatniej_transmisji_UDP_RX_1 = 0;
sekundy_od_ostatniej_transmisji_UDP_RX_2 = 0;
float temp_aktualna_float = 0;
for (byte licz = 1; licz <= 16; licz++) {
temp_aktualna_float = temp_aktualna_word[licz];
temp_aktualna_float = temp_aktualna_float - 12721; //Deszyfrujemy dane
temp_aktualna[licz] = temp_aktualna_float;
temp_aktualna[licz] = temp_aktualna[licz] / 100;
}
Serial.println("Nowe dane UDP");
licznik_led_green = 8;
nowe_dane_temp_z_UDP = 1;
nowe_dane_udp_do_wyslania = 1;
pierwsza_transmisja_UDP = 1;
kasuj_wszystkie_msg();
}else{
if(temp_aktualna_unsigned_long == 0){
//Serial.println(F("CRC blędne, nieodebrano calej ramki danych"));
korekcja_bledow();
kasuj_wszystkie_msg();
}else{
//Serial.print(F("CRC blędne, oczekiwano: "));
//Serial.print(String(temp_aktualna_unsigned_long));
//Serial.print(F(" jest: "));
//Serial.println(String(CRC));
korekcja_bledow();
kasuj_wszystkie_msg();
}
}
temp_aktualna_unsigned_long = random(30000); //Usuwamy dane zapisujac ja dowolnymi danymi
for (byte licz = 1; licz <= 16; licz++) {
temp_aktualna_word[licz] = random(30000); //Usuwamy dane zapisujac ja dowolnymi danymi
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void korekcja_bledow(){
byte liczba_brakujacych_transmisji;
byte zapamietaj_numer_brakujacej_transmisji;
unsigned long suma;
unsigned long roznica;
for (byte licz = 0; licz <= 16; licz++) {
if(last_message[licz] == ""){
++liczba_brakujacych_transmisji;
zapamietaj_numer_brakujacej_transmisji = licz;
}
}
if(liczba_brakujacych_transmisji > 0){
Serial.print("Liczba brakujacych transmisji UDP: ");
Serial.println(liczba_brakujacych_transmisji);
if(liczba_brakujacych_transmisji == 1){
//Serial.print("Numer brakujacej transmisji: ");
//Serial.println(zapamietaj_numer_brakujacej_transmisji);
if(zapamietaj_numer_brakujacej_transmisji != 0){
suma = 0;
for (byte licz = 1; licz <= 16; licz++) {
if(licz != zapamietaj_numer_brakujacej_transmisji){
suma = suma + temp_aktualna_word[licz];
}
}
//Serial.print("Suma: ");
//Serial.println(suma);
roznica = temp_aktualna_unsigned_long - suma;
//Serial.print("Różnica: ");
//Serial.println(roznica);
if(roznica < 100000){
temp_aktualna_word[zapamietaj_numer_brakujacej_transmisji] = roznica;
float temp_aktualna_float = 0;
for (byte licz = 1; licz <= 16; licz++) {
temp_aktualna_float = temp_aktualna_word[licz];
temp_aktualna_float = temp_aktualna_float - 12721; //Deszyfrujemy dane
temp_aktualna[licz] = temp_aktualna_float;
temp_aktualna[licz] = temp_aktualna[licz] / 100;
}
//Serial.print("Naprawiono blad transmisji nr: ");
//Serial.print(zapamietaj_numer_brakujacej_transmisji);
//Serial.print(" Wartosc: ");
//Serial.print(roznica);
//Serial.print(" --> ");
//Serial.print(String(temp_aktualna[zapamietaj_numer_brakujacej_transmisji],1));
//Serial.println("*C");
Serial.println("Nowe dane UDP po korekcji");
licznik_led_green = 26;
nowe_dane_temp_z_UDP = 1;
nowe_dane_udp_do_wyslania = 1;
sekundy_od_ostatniej_transmisji_UDP_RX_2 = 0;
}else{
//Serial.println("Nienaprawialne, roznica wieksza / rowna 100000");
}
}else{
//Serial.println("Nienaprawialne, brakuje transmisji 0");
}
}else{
//Serial.println("Nienaprawialne, za duzo brakuje");
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void kasuj_wszystkie_msg(){
for (byte licz = 0; licz <= 16; licz++) {
last_message[licz] = "";
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Status_systemu(){
byte state_pomocniczy;
byte state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_1); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[1] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_2); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[2] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_3); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[3] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_4); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[4] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_5); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[5] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_6); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[6] = state_pomocniczy_2;
state_pomocniczy = digitalRead(OUTPUT_GPIO_7); if(state_pomocniczy == 0){state_pomocniczy_2 = 1;} if(state_pomocniczy == 1){state_pomocniczy_2 = 0;} grzanie_hvac[7] = state_pomocniczy_2;
Liczba_grzejacych = 0;
for (byte licz = 1; licz <= 7; licz++) {
if(grzanie_hvac[licz] == 1){
++Liczba_grzejacych;
}
}
if(pierwsza_transmisja_UDP == 1){
int16_t HeatSetpoint_hvac_1 = hvac_1->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_1 = hvac_1->getTemperatureHisteresis();
temp_stan_wysoki_[1] = hvac_1->getTemperatureSetpointHeat();
temp_stan_wysoki_[1] = temp_stan_wysoki_[1] / 100;
temp_stan_niski__[1] = HeatSetpoint_hvac_1 - Histeresis_hvac_1;
temp_stan_niski__[1] = temp_stan_niski__[1] / 100;
if(grzanie_hvac[1] == 1){
wykres_hvac[1] = temp_stan_wysoki_[1];
}else{
wykres_hvac[1] = temp_stan_niski__[1];
}
int16_t HeatSetpoint_hvac_2 = hvac_2->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_2 = hvac_2->getTemperatureHisteresis();
temp_stan_wysoki_[2] = hvac_2->getTemperatureSetpointHeat();
temp_stan_wysoki_[2] = temp_stan_wysoki_[2] / 100;
temp_stan_niski__[2] = HeatSetpoint_hvac_2 - Histeresis_hvac_2;
temp_stan_niski__[2] = temp_stan_niski__[2] / 100;
if(grzanie_hvac[2] == 1){
wykres_hvac[2] = temp_stan_wysoki_[2];
}else{
wykres_hvac[2] = temp_stan_niski__[2];
}
int16_t HeatSetpoint_hvac_3 = hvac_3->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_3 = hvac_3->getTemperatureHisteresis();
temp_stan_wysoki_[3] = hvac_3->getTemperatureSetpointHeat();
temp_stan_wysoki_[3] = temp_stan_wysoki_[3] / 100;
temp_stan_niski__[3] = HeatSetpoint_hvac_3 - Histeresis_hvac_3;
temp_stan_niski__[3] = temp_stan_niski__[3] / 100;
if(grzanie_hvac[3] == 1){
wykres_hvac[3] = temp_stan_wysoki_[3];
}else{
wykres_hvac[3] = temp_stan_niski__[3];
}
int16_t HeatSetpoint_hvac_4 = hvac_4->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_4 = hvac_4->getTemperatureHisteresis();
temp_stan_wysoki_[4] = hvac_4->getTemperatureSetpointHeat();
temp_stan_wysoki_[4] = temp_stan_wysoki_[4] / 100;
temp_stan_niski__[4] = HeatSetpoint_hvac_4 - Histeresis_hvac_4;
temp_stan_niski__[4] = temp_stan_niski__[4] / 100;
if(grzanie_hvac[4] == 1){
wykres_hvac[4] = temp_stan_wysoki_[4];
}else{
wykres_hvac[4] = temp_stan_niski__[4];
}
int16_t HeatSetpoint_hvac_5 = hvac_5->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_5 = hvac_5->getTemperatureHisteresis();
temp_stan_wysoki_[5] = hvac_5->getTemperatureSetpointHeat();
temp_stan_wysoki_[5] = temp_stan_wysoki_[5] / 100;
temp_stan_niski__[5] = HeatSetpoint_hvac_5 - Histeresis_hvac_5;
temp_stan_niski__[5] = temp_stan_niski__[5] / 100;
if(grzanie_hvac[5] == 1){
wykres_hvac[5] = temp_stan_wysoki_[5];
}else{
wykres_hvac[5] = temp_stan_niski__[5];
}
int16_t HeatSetpoint_hvac_6 = hvac_6->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_6 = hvac_6->getTemperatureHisteresis();
temp_stan_wysoki_[6] = hvac_6->getTemperatureSetpointHeat();
temp_stan_wysoki_[6] = temp_stan_wysoki_[6] / 100;
temp_stan_niski__[6] = HeatSetpoint_hvac_6 - Histeresis_hvac_6;
temp_stan_niski__[6] = temp_stan_niski__[6] / 100;
if(grzanie_hvac[6] == 1){
wykres_hvac[6] = temp_stan_wysoki_[6];
}else{
wykres_hvac[6] = temp_stan_niski__[6];
}
int16_t HeatSetpoint_hvac_7 = hvac_7->getTemperatureSetpointHeat();
int16_t Histeresis_hvac_7 = hvac_7->getTemperatureHisteresis();
temp_stan_wysoki_[7] = hvac_7->getTemperatureSetpointHeat();
temp_stan_wysoki_[7] = temp_stan_wysoki_[7] / 100;
temp_stan_niski__[7] = HeatSetpoint_hvac_7 - Histeresis_hvac_7;
temp_stan_niski__[7] = temp_stan_niski__[7] / 100;
if(grzanie_hvac[7] == 1){
wykres_hvac[7] = temp_stan_wysoki_[7];
}else{
wykres_hvac[7] = temp_stan_niski__[7];
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void steruj_led(){
byte suma_led_G;
byte suma_led_R;
suma_led_G = 0;
suma_led_G = suma_led_G + stan_led_G_przez_supla;
suma_led_G = suma_led_G + stan_led_G_przez_wietrzenie;
suma_led_G = suma_led_G + stan_led_G_przez_UDP;
if(suma_led_G == 0){digitalWrite(LED_GREEN_GPIO,LOW);}
if(suma_led_G == 1){digitalWrite(LED_GREEN_GPIO,HIGH);}
if(suma_led_G > 1){digitalWrite(LED_GREEN_GPIO,LOW);}
suma_led_R = 0;
suma_led_R = suma_led_R + stan_led_R_przez_supla;
suma_led_R = suma_led_R + stan_led_R_przez_wietrzenie;
suma_led_R = suma_led_R + stan_led_R_przez_UDP;
if(suma_led_R == 0){digitalWrite(LED_RED_GPIO,LOW);}
if(suma_led_R == 1){digitalWrite(LED_RED_GPIO,HIGH);}
if(suma_led_R > 1){digitalWrite(LED_RED_GPIO,LOW);}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Dodatkowy uzywany plik:
Code: Select all
#ifndef FWVERSION_H_
#define FWVERSION_H_
#include <supla/network/html_element.h>
#include <supla/network/web_sender.h>
namespace Supla {
namespace Html {
class fwversion : public Supla::HtmlElement {
public:
fwversion() : HtmlElement(HTML_SECTION_FORM) {}
void send(Supla::WebSender* sender) {
sender->send("<span>");
sender->send("Version: ");
sender->send(the_sketchname.c_str());
sender->send("</span>");
}
bool handleResponse(const char* key, const char* value) {
return true;
}
void onProcessingEnd() {}
protected:
};
}; // namespace Html
}; // namespace Supla
#endif-
Duch__
- Posts: 2199
- Joined: Wed Aug 24, 2016 7:26 pm
- Location: Opole
- Been thanked: 6 times
Log:
Code: Select all
09:16:17.505 -> HVAC[25]: alt weekly schedule saved successfully
09:16:17.551 -> ********** SET MAIN THERMOMETER CHANNEL 8
09:16:17.551 -> RelayHvacAggregator[28] hvac[3FFBBABC] unregistered
09:16:17.551 -> HVAC[26]: setMainProgram(1, 2, 1900, 0, 0)
09:16:17.551 -> HVAC[26]: setMainProgram(2, 2, 2100, 0, 0)
09:16:17.551 -> HVAC[26]: setMainProgram(3, 2, 3000, 0, 0)
09:16:17.551 -> HVAC[26]: setMainProgram(4, 2, 1200, 0, 0)
09:16:17.598 -> HVAC[26]: setAltProgram(1, 3, 0, 2400, 0)
09:16:17.598 -> HVAC[26]: setAltProgram(2, 3, 0, 2100, 0)
09:16:17.598 -> HVAC[26]: setAltProgram(3, 3, 0, 1800, 0)
09:16:17.598 -> HVAC[26]: setAltProgram(4, 3, 0, 2800, 0)
09:16:17.598 -> LittleFS: writing file 26_hvac_weekly
09:16:17.738 -> HVAC[26]: weekly schedule saved successfully
09:16:17.738 -> LittleFS: writing file 26_hvac_aweekly
09:16:17.924 -> HVAC[26]: alt weekly schedule saved successfully
09:16:17.924 -> ********** SET MAIN THERMOMETER CHANNEL 10
09:16:17.924 -> RelayHvacAggregator[28] hvac[3FFBBECC] unregistered
09:16:17.924 -> HVAC[27]: setMainProgram(1, 2, 1900, 0, 0)
09:16:17.924 -> HVAC[27]: setMainProgram(2, 2, 2100, 0, 0)
09:16:17.924 -> HVAC[27]: setMainProgram(3, 2, 3000, 0, 0)
09:16:17.924 -> HVAC[27]: setMainProgram(4, 2, 1200, 0, 0)
09:16:17.924 -> HVAC[27]: setAltProgram(1, 3, 0, 2400, 0)
09:16:17.924 -> HVAC[27]: setAltProgram(2, 3, 0, 2100, 0)
09:16:17.970 -> HVAC[27]: setAltProgram(3, 3, 0, 1800, 0)
09:16:17.970 -> HVAC[27]: setAltProgram(4, 3, 0, 2800, 0)
09:16:17.970 -> LittleFS: writing file 27_hvac_weekly
09:16:18.111 -> HVAC[27]: weekly schedule saved successfully
09:16:18.111 -> LittleFS: writing file 27_hvac_aweekly
09:16:18.341 -> HVAC[27]: alt weekly schedule saved successfully
09:16:18.341 -> ********** SET MAIN THERMOMETER CHANNEL 12
09:16:18.341 -> Clock: from RTC: time: 2025-01-24 09:16:12
09:16:18.341 -> Relay[28] turn OFF (duration 0 ms)
09:16:18.341 -> **** Digital write[28], gpio: 18; value 1
09:16:18.341 -> Relay[29] turn OFF (duration 0 ms)
09:16:18.341 -> Button[0]: Initialized: pin 0, pullUp 1, invertLogic 1, state 1
09:16:18.341 -> GUID: 08C3E117FBAD4C842CF4F5D9926E3978
09:16:18.341 -> Device name: Termostat ESP32
09:16:18.386 -> Device software version: SDK 24.11.04
09:16:18.386 -> Initializing network layer
09:16:18.386 -> [Wi-Fi] Network AP/hostname: TERMOSTAT-ESP32-3C8A1F77C828
09:16:18.386 -> Using Supla protocol version 23
09:16:18.386 -> Current status: [5] SuplaDevice initialized
09:16:18.386 -> Enter normal mode
09:16:18.386 -> LittleFS: writing file 21_hvac_cfg
09:16:18.386 -> HVAC[21]: config saved successfully
09:16:18.386 -> LittleFS: writing file 22_hvac_cfg
09:16:18.619 -> HVAC[22]: config saved successfully
09:16:18.619 -> LittleFS: writing file 23_hvac_cfg
09:16:18.713 -> HVAC[23]: config saved successfully
09:16:18.713 -> LittleFS: writing file 24_hvac_cfg
09:16:18.852 -> HVAC[24]: config saved successfully
09:16:18.852 -> LittleFS: writing file 25_hvac_cfg
09:16:18.989 -> HVAC[25]: config saved successfully
09:16:18.989 -> LittleFS: writing file 26_hvac_cfg
09:16:19.221 -> HVAC[26]: config saved successfully
09:16:19.221 -> LittleFS: writing file 27_hvac_cfg
09:16:19.359 -> HVAC[27]: config saved successfully
09:16:19.359 -> LittleFS: writing file 21_hvac_cfg
09:16:19.451 -> HVAC[21]: config saved successfully
09:16:19.451 -> LittleFS: writing file 21_hvac_cfg
09:16:19.544 -> HVAC[21]: config saved successfully
09:16:19.544 -> LittleFS: writing file 21_hvac_cfg
09:16:19.592 -> HVAC[21]: config saved successfully
09:16:19.592 -> LittleFS: writing file 22_hvac_cfg
09:16:19.685 -> HVAC[22]: config saved successfully
09:16:19.685 -> LittleFS: writing file 22_hvac_cfg
09:16:19.824 -> HVAC[22]: config saved successfully
09:16:19.824 -> LittleFS: writing file 22_hvac_cfg
09:16:19.917 -> HVAC[22]: config saved successfully
09:16:19.917 -> LittleFS: writing file 23_hvac_cfg
09:16:20.197 -> HVAC[23]: config saved successfully
09:16:20.244 -> LittleFS: writing file 23_hvac_cfg
09:16:20.290 -> HVAC[23]: config saved successfully
09:16:20.290 -> LittleFS: writing file 23_hvac_cfg
09:16:20.428 -> HVAC[23]: config saved successfully
09:16:20.428 -> LittleFS: writing file 24_hvac_cfg
09:16:20.568 -> HVAC[24]: config saved successfully
09:16:20.568 -> LittleFS: writing file 24_hvac_cfg
09:16:20.801 -> HVAC[24]: config saved successfully
09:16:20.801 -> LittleFS: writing file 24_hvac_cfg
09:16:20.939 -> HVAC[24]: config saved successfully
09:16:20.939 -> LittleFS: writing file 25_hvac_cfg
09:16:21.079 -> HVAC[25]: config saved successfully
09:16:21.079 -> LittleFS: writing file 25_hvac_cfg
09:16:21.172 -> HVAC[25]: config saved successfully
09:16:21.172 -> LittleFS: writing file 25_hvac_cfg
09:16:21.312 -> HVAC[25]: config saved successfully
09:16:21.312 -> LittleFS: writing file 26_hvac_cfg
09:16:21.452 -> HVAC[26]: config saved successfully
09:16:21.452 -> LittleFS: writing file 26_hvac_cfg
09:16:21.592 -> HVAC[26]: config saved successfully
09:16:21.592 -> LittleFS: writing file 26_hvac_cfg
09:16:21.731 -> HVAC[26]: config saved successfully
09:16:21.731 -> LittleFS: writing file 27_hvac_cfg
09:16:22.011 -> HVAC[27]: config saved successfully
09:16:22.011 -> LittleFS: writing file 27_hvac_cfg
09:16:22.197 -> HVAC[27]: config saved successfully
09:16:22.197 -> LittleFS: writing file 27_hvac_cfg
09:16:22.336 -> HVAC[27]: config saved successfully
09:16:22.336 -> LittleFS: writing file 21_hvac_cfg
09:16:22.429 -> HVAC[21]: config saved successfully
09:16:22.429 -> LittleFS: writing file 21_hvac_cfg
09:16:22.660 -> HVAC[21]: config saved successfully
09:16:22.660 -> LittleFS: writing file 22_hvac_cfg
09:16:22.753 -> HVAC[22]: config saved successfully
09:16:22.753 -> LittleFS: writing file 22_hvac_cfg
09:16:22.846 -> HVAC[22]: config saved successfully
09:16:22.846 -> LittleFS: writing file 23_hvac_cfg
09:16:23.124 -> HVAC[23]: config saved successfully
09:16:23.124 -> LittleFS: writing file 23_hvac_cfg
09:16:23.217 -> HVAC[23]: config saved successfully
09:16:23.217 -> LittleFS: writing file 24_hvac_cfg
09:16:23.309 -> HVAC[24]: config saved successfully
09:16:23.355 -> LittleFS: writing file 24_hvac_cfg
09:16:23.542 -> HVAC[24]: config saved successfully
09:16:23.542 -> LittleFS: writing file 25_hvac_cfg
09:16:23.680 -> HVAC[25]: config saved successfully
09:16:23.680 -> LittleFS: writing file 25_hvac_cfg
09:16:23.772 -> HVAC[25]: config saved successfully
09:16:23.772 -> LittleFS: writing file 26_hvac_cfg
09:16:23.911 -> HVAC[26]: config saved successfully
09:16:23.911 -> LittleFS: writing file 26_hvac_cfg
09:16:24.003 -> HVAC[26]: config saved successfully
09:16:24.003 -> LittleFS: writing file 27_hvac_cfg
09:16:24.188 -> HVAC[27]: config saved successfully
09:16:24.188 -> LittleFS: writing file 27_hvac_cfg
09:16:24.327 -> HVAC[27]: config saved successfully
09:16:24.419 -> RelayHvacAggregator[28] hvac[21 @ 3FFBA66C] registered
09:16:24.467 -> RelayHvacAggregator[28] hvac[22 @ 3FFBAA7C] registered
09:16:24.467 -> RelayHvacAggregator[28] hvac[23 @ 3FFBAE8C] registered
09:16:24.467 -> RelayHvacAggregator[28] hvac[24 @ 3FFBB29C] registered
09:16:24.467 -> RelayHvacAggregator[28] hvac[25 @ 3FFBB6AC] registered
09:16:24.467 -> RelayHvacAggregator[28] hvac[26 @ 3FFBBABC] registered
09:16:24.514 -> RelayHvacAggregator[28] hvac[27 @ 3FFBBECC] registered
09:16:24.514 -> RelayHvacAggregator[28] turn off
09:16:24.514 -> Relay[28] turn OFF (duration 0 ms)
09:16:24.514 -> **** Digital write[28], gpio: 18; value 1
09:16:24.607 -> SUPLA blokuje
09:16:24.607 -> Channel(14) value changed to 1
09:16:24.607 -> Channel(15) value changed to 1
09:16:24.607 -> Channel(16) value changed to 1
09:16:24.607 -> Channel(17) value changed to 1
09:16:24.607 -> Channel(18) value changed to 1
09:16:24.607 -> Channel(19) value changed to 1
09:16:24.607 -> Channel(20) value changed to 1
09:16:24.653 -> SUPLA blokuje
09:16:24.700 -> SUPLA blokuje
09:16:24.747 -> SUPLA blokuje
09:16:24.793 -> SUPLA blokuje
09:16:24.839 -> SUPLA blokuje
09:16:24.885 -> SUPLA blokuje
09:16:24.932 -> SUPLA blokuje
09:16:24.978 -> SUPLA blokuje
09:16:25.024 -> SUPLA blokuje
09:16:25.071 -> SUPLA blokuje
09:16:25.117 -> SUPLA blokuje
09:16:25.213 -> SUPLA blokuje
09:16:25.213 -> SUPLA blokuje
09:16:25.307 -> SUPLA blokuje
09:16:25.353 -> SUPLA blokuje
09:16:25.400 -> SUPLA blokuje
09:16:25.446 -> SUPLA blokuje
09:16:25.492 -> SUPLA blokuje
09:16:25.492 -> Starting local web server
09:16:25.539 -> SUPLA blokuje
09:16:25.585 -> Establishing encrypted connection with: svr3.supla.org (port: 2016)
09:16:27.438 -> Connected via IP 192.168.2.221
09:16:27.438 -> SSL error: 49, UNKNOWN ERROR CODE (0031)
09:16:27.577 -> LAST STATE ADDED: UNKNOWN ERROR CODE (0031) (12)
09:16:27.577 -> Connected to Supla Server
09:16:27.577 -> Initializing SRPC (proto: 23)
09:16:27.577 -> LAST STATE ADDED: Register in progress (12)
09:16:27.577 -> Current status: [10] Register in progress
09:16:27.577 -> CH[0], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.670 -> CH[1], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.670 -> CH[2], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.716 -> CH[3], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.762 -> CH[4], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.762 -> CH[5], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.808 -> CH[6], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.808 -> CH[7], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.901 -> CH[8], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.901 -> CH[9], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.947 -> CH[10], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.947 -> CH[11], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.947 -> CH[12], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.947 -> CH[13], type: 3034, FuncList: 0x0, function: 40, flags: 0x8010000, online, validityTimeSec: 240, icon: 0, value: [00 00 00 00 00 30 71 c0]
09:16:27.993 -> CH[14], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.040 -> CH[15], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.040 -> CH[16], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.087 -> CH[17], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.087 -> CH[18], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.087 -> CH[19], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.087 -> CH[20], type: 1000, FuncList: 0x0, function: 230, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [01 00 00 00 00 00 00 00]
09:16:28.135 -> CH[21], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 84 08 00 00 01 00]
09:16:28.135 -> CH[22], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 aa 0a 00 00 01 00]
09:16:28.180 -> CH[23], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 e8 08 00 00 01 00]
09:16:28.180 -> CH[24], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 de 08 00 00 01 00]
09:16:28.228 -> CH[25], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 de 08 00 00 01 00]
09:16:28.273 -> CH[26], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 1a 09 00 00 01 00]
09:16:28.273 -> CH[27], type: 6100, FuncList: 0x20000, function: 420, flags: 0x19010000, online, validityTimeSec: 0, icon: 0, value: [00 02 08 07 00 00 01 00]
09:16:28.366 -> CH[28], type: 2900, FuncList: 0xEF, function: 970, flags: 0x9010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 00 00]
09:16:28.366 -> CH[29], type: 2900, FuncList: 0xEF, function: 300, flags: 0x9010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 00 00]
09:16:28.413 -> SUPLA blokuje
09:16:28.413 -> HVAC[21]: invalid temperature readout - startup delay...
09:16:28.413 -> HVAC[22]: invalid temperature readout - startup delay...
09:16:28.413 -> SUPLA blokuje
09:16:28.413 -> SUPLA blokuje
09:16:28.413 -> SUPLA blokuje
09:16:28.457 -> SUPLA blokuje
09:16:28.457 -> Device registered (activity timeout 120 s, server version: 26, server min version: 1)
09:16:28.457 -> LAST STATE ADDED: Registered and ready (14)
09:16:28.457 -> Current status: [17] Registered and ready
09:16:28.457 -> Changing activity timeout to 30 s
09:16:28.457 -> HVAC[21]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2180, tCool 0, flags 0x1
09:16:28.502 -> HVAC[22]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2730, tCool 0, flags 0x1
09:16:28.502 -> HVAC[23]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2280, tCool 0, flags 0x1
09:16:28.502 -> HVAC[24]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2270, tCool 0, flags 0x1
09:16:28.502 -> HVAC[25]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2270, tCool 0, flags 0x1
09:16:28.502 -> HVAC[26]: onRegistered send: IsOn 0, Mode HEAT, tHeat 2330, tCool 0, flags 0x1
09:16:28.502 -> HVAC[27]: onRegistered send: IsOn 0, Mode HEAT, tHeat 1800, tCool 0, flags 0x1
09:16:28.547 -> Received new device config
09:16:28.547 -> Processing StatusLed config
09:16:28.547 -> Processing AutomaticTimeSync config
09:16:28.547 -> Sending device config result OK (1)
09:16:28.547 -> HVAC[21]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.547 -> SRPC sending: remaining time 0 s, channel 21
09:16:28.592 -> HVAC[22]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.592 -> SRPC sending: remaining time 0 s, channel 22
09:16:28.592 -> HVAC[23]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.592 -> SRPC sending: remaining time 0 s, channel 23
09:16:28.639 -> HVAC[24]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.639 -> SRPC sending: remaining time 0 s, channel 24
09:16:28.639 -> HVAC[25]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.685 -> SRPC sending: remaining time 0 s, channel 25
09:16:28.685 -> HVAC[26]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.685 -> SRPC sending: remaining time 0 s, channel 26
09:16:28.685 -> HVAC[27]: updating timer value: remainingTime=0 s; countdownTimerEnds=1; now=1737710182
09:16:28.685 -> SRPC sending: remaining time 0 s, channel 27
09:16:28.685 -> Received SetChannelConfig for channel 0, function 40, config type 0, config size 32
09:16:28.685 -> Channel[0]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:28.685 -> Channel[0] temperature correction 0.00
09:16:28.685 -> Channel[0] humidity correction 0.00
09:16:28.685 -> Sending channel config result OK (1)
09:16:28.685 -> SUPLA blokuje
09:16:28.685 -> SERVER: get request
09:16:28.961 -> LittleFsConfig:: custom ca file missing
09:16:39.167 -> HVAC[21]: invalid temperature readout - startup delay...
09:16:39.213 -> HVAC[22]: invalid temperature readout - startup delay...
09:16:39.213 -> HVAC[23]: invalid temperature readout - startup delay...
09:16:39.213 -> HVAC[24]: invalid temperature readout - startup delay...
09:16:39.213 -> HVAC[25]: invalid temperature readout - startup delay...
09:16:39.260 -> HVAC[26]: invalid temperature readout - startup delay...
09:16:39.260 -> HVAC[27]: invalid temperature readout - startup delay...
09:16:39.260 -> Received ChannelConfigFinished for channel [0]
09:16:39.260 -> Relay[28]: updating timer value: remainingTime=0 state=0
09:16:39.260 -> SRPC sending: remaining time 0, channel 28, state 0
09:16:39.260 -> Relay[29]: updating timer value: remainingTime=0 state=0
09:16:39.260 -> SRPC sending: remaining time 0, channel 29, state 0
09:16:39.354 -> Received SetChannelConfig for channel 1, function 40, config type 0, config size 32
09:16:39.400 -> Channel[1]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:39.400 -> Channel[1] temperature correction 0.00
09:16:39.400 -> Channel[1] humidity correction 0.00
09:16:39.400 -> Sending channel config result OK (1)
09:16:39.494 -> Received ChannelConfigFinished for channel [1]
09:16:39.494 -> Received SetChannelConfig for channel 2, function 40, config type 0, config size 32
09:16:39.494 -> Channel[2]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:39.494 -> Channel[2] temperature correction 0.00
09:16:39.494 -> Channel[2] humidity correction 0.00
09:16:39.586 -> Sending channel config result OK (1)
09:16:39.586 -> Received ChannelConfigFinished for channel [2]
09:16:39.586 -> Received SetChannelConfig for channel 3, function 40, config type 0, config size 32
09:16:39.586 -> Channel[3]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:39.723 -> Channel[3] temperature correction 0.00
09:16:39.723 -> Channel[3] humidity correction 0.00
09:16:39.723 -> Sending channel config result OK (1)
09:16:39.723 -> Received ChannelConfigFinished for channel [3]
09:16:39.723 -> Received SetChannelConfig for channel 4, function 40, config type 0, config size 32
09:16:39.723 -> Channel[4]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:39.817 -> Channel[4] temperature correction 0.00
09:16:39.817 -> Channel[4] humidity correction 0.00
09:16:39.817 -> Sending channel config result OK (1)
09:16:39.817 -> SUPLA blokuje
09:16:39.817 -> Received ChannelConfigFinished for channel [4]
09:16:39.817 -> Received SetChannelConfig for channel 5, function 40, config type 0, config size 32
09:16:39.958 -> Channel[5]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:39.958 -> Channel[5] temperature correction 0.00
09:16:39.958 -> Channel[5] humidity correction 0.00
09:16:39.958 -> Sending channel config result OK (1)
09:16:40.050 -> Received ChannelConfigFinished for channel [5]
09:16:40.050 -> Received SetChannelConfig for channel 6, function 40, config type 0, config size 32
09:16:40.050 -> Channel[6]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.050 -> Channel[6] temperature correction 0.00
09:16:40.189 -> Channel[6] humidity correction 0.00
09:16:40.189 -> Sending channel config result OK (1)
09:16:40.189 -> Received ChannelConfigFinished for channel [6]
09:16:40.189 -> Received SetChannelConfig for channel 7, function 40, config type 0, config size 32
09:16:40.189 -> Channel[7]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.189 -> Channel[7] temperature correction 0.00
09:16:40.281 -> Channel[7] humidity correction 0.00
09:16:40.281 -> Sending channel config result OK (1)
09:16:40.281 -> Received ChannelConfigFinished for channel [7]
09:16:40.281 -> Received SetChannelConfig for channel 8, function 40, config type 0, config size 32
09:16:40.374 -> Channel[8]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.374 -> Channel[8] temperature correction 0.00
09:16:40.374 -> Channel[8] humidity correction 0.00
09:16:40.374 -> Sending channel config result OK (1)
09:16:40.374 -> Received ChannelConfigFinished for channel [8]
09:16:40.374 -> Received SetChannelConfig for channel 9, function 40, config type 0, config size 32
09:16:40.466 -> Channel[9]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.466 -> Channel[9] temperature correction 0.00
09:16:40.466 -> Channel[9] humidity correction 0.00
09:16:40.466 -> Sending channel config result OK (1)
09:16:40.511 -> SUPLA blokuje
09:16:40.511 -> Received ChannelConfigFinished for channel [9]
09:16:40.511 -> Received SetChannelConfig for channel 10, function 40, config type 0, config size 32
09:16:40.511 -> Channel[10]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.511 -> Channel[10] temperature correction 0.00
09:16:40.557 -> Channel[10] humidity correction 0.00
09:16:40.603 -> Sending channel config result OK (1)
09:16:40.603 -> Received ChannelConfigFinished for channel [10]
09:16:40.603 -> Received SetChannelConfig for channel 11, function 40, config type 0, config size 32
09:16:40.603 -> Channel[11]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.695 -> Channel[11] temperature correction 0.00
09:16:40.695 -> Channel[11] humidity correction 0.00
09:16:40.695 -> Sending channel config result OK (1)
09:16:40.695 -> Received ChannelConfigFinished for channel [11]
09:16:40.695 -> Received SetChannelConfig for channel 12, function 40, config type 0, config size 32
09:16:40.741 -> Channel[12]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.741 -> Channel[12] temperature correction 0.00
09:16:40.741 -> Channel[12] humidity correction 0.00
09:16:40.741 -> Sending channel config result OK (1)
09:16:40.741 -> Received ChannelConfigFinished for channel [12]
09:16:40.834 -> Received SetChannelConfig for channel 13, function 40, config type 0, config size 32
09:16:40.834 -> Channel[13]: handleChannelConfig, func 40, configtype 0, configsize 32
09:16:40.834 -> Channel[13] temperature correction 0.00
09:16:40.834 -> Channel[13] humidity correction 0.00
09:16:40.834 -> Sending channel config result OK (1)
09:16:40.928 -> Received ChannelConfigFinished for channel [13]
09:16:40.928 -> Received SetChannelConfig for channel 14, function 230, config type 0, config size 0
09:16:40.928 -> Binary[14]: processing channel config
09:16:40.928 -> Binary[14]: config missing on server
09:16:40.928 -> Sending channel config result OK (1)
09:16:40.974 -> SUPLA blokuje
09:16:40.974 -> Received ChannelConfigFinished for channel [14]
09:16:40.974 -> Binary[14]: setting default channel config
09:16:40.974 -> Binary[14]: processing local channel config
09:16:40.974 -> Binary[14] setServerInvertLogic 0
09:16:40.974 -> Received SetChannelConfig for channel 15, function 230, config type 0, config size 0
09:16:41.020 -> Binary[15]: processing channel config
09:16:41.020 -> Binary[15]: config missing on server
09:16:41.020 -> Sending channel config result OK (1)
09:16:41.020 -> Received ChannelConfigFinished for channel [15]
09:16:41.020 -> Binary[15]: setting default channel config
09:16:41.067 -> Binary[15]: processing local channel config
09:16:41.067 -> Binary[15] setServerInvertLogic 0
09:16:41.067 -> Received SetChannelConfig for channel 16, function 230, config type 0, config size 0
09:16:41.067 -> Binary[16]: processing channel config
09:16:41.067 -> Binary[16]: config missing on server
09:16:41.067 -> Sending channel config result OK (1)
09:16:41.067 -> Received ChannelConfigFinished for channel [16]
09:16:41.114 -> Binary[16]: setting default channel config
09:16:41.114 -> Binary[16]: processing local channel config
09:16:41.114 -> Binary[16] setServerInvertLogic 0
09:16:41.114 -> SUPLA blokuje
09:16:41.114 -> Received SetChannelConfig for channel 17, function 230, config type 0, config size 0
09:16:41.114 -> Binary[17]: processing channel config
09:16:41.114 -> Binary[17]: config missing on server
09:16:41.114 -> Sending channel config result OK (1)
09:16:41.114 -> Received ChannelConfigFinished for channel [17]
09:16:41.114 -> Binary[17]: setting default channel config
09:16:41.114 -> Binary[17]: processing local channel config
09:16:41.160 -> Binary[17] setServerInvertLogic 0
09:16:41.160 -> Received SetChannelConfig for channel 18, function 230, config type 0, config size 0
09:16:41.160 -> Binary[18]: processing channel config
09:16:41.160 -> Binary[18]: config missing on server
09:16:41.160 -> Sending channel config result OK (1)
09:16:41.252 -> Received ChannelConfigFinished for channel [18]
09:16:41.252 -> Binary[18]: setting default channel config
09:16:41.252 -> Binary[18]: processing local channel config
09:16:41.252 -> Binary[18] setServerInvertLogic 0
09:16:41.252 -> Received SetChannelConfig for channel 19, function 230, config type 0, config size 0
09:16:41.252 -> Binary[19]: processing channel config
09:16:41.298 -> Binary[19]: config missing on server
09:16:41.298 -> Sending channel config result OK (1)
09:16:41.298 -> SUPLA blokuje
09:16:41.298 -> Received ChannelConfigFinished for channel [19]
09:16:41.298 -> Binary[19]: setting default channel config
09:16:41.298 -> Binary[19]: processing local channel config
09:16:41.298 -> Binary[19] setServerInvertLogic 0
09:16:41.298 -> Received SetChannelConfig for channel 20, function 230, config type 0, config size 0
09:16:41.298 -> Binary[20]: processing channel config
09:16:41.298 -> Binary[20]: config missing on server
09:16:41.298 -> Sending channel config result OK (1)
09:16:41.344 -> Received ChannelConfigFinished for channel [20]
09:16:41.344 -> Binary[20]: setting default channel config
09:16:41.344 -> Binary[20]: processing local channel config
09:16:41.344 -> Binary[20] setServerInvertLogic 0
09:16:41.344 -> Received SetChannelConfig for channel 21, function 420, config type 0, config size 127
09:16:41.390 -> HVAC[21]: processing channel config
09:16:41.390 -> HVAC[21]: Ignoring channel config (local config changed offline)
09:16:41.390 -> Sending channel config result OK (1)
09:16:41.390 -> Received SetChannelConfig for channel 21, function 420, config type 2, config size 356
09:16:41.390 -> HVAC[21]: Handling weekly schedule
09:16:41.390 -> HVAC Program[0], mode 2, tHeat 1900, tCool 0
09:16:41.390 -> HVAC Program[1], mode 2, tHeat 2100, tCool 0
09:16:41.390 -> HVAC Program[2], mode 0, tHeat 0, tCool 0
09:16:41.390 -> HVAC Program[3], mode 0, tHeat 0, tCool 0
09:16:41.390 -> Sending channel config result OK (1)
09:16:41.390 -> SUPLA blokuje
09:16:41.390 -> Received SetChannelConfig for channel 21, function 420, config type 3, config size 356
09:16:41.436 -> HVAC[21]: Handling weekly schedule
09:16:41.436 -> HVAC Program[0], mode 3, tHeat 0, tCool 2400
09:16:41.436 -> HVAC Program[1], mode 3, tHeat 0, tCool 2100
09:16:41.436 -> HVAC Program[2], mode 3, tHeat 0, tCool 1800
09:16:41.481 -> HVAC Program[3], mode 0, tHeat 0, tCool 0
09:16:41.481 -> Sending channel config result OK (1)
09:16:41.481 -> Received ChannelConfigFinished for channel [21]
09:16:41.481 -> HVAC[21]: channel config send
09:16:41.481 -> Received SetChannelConfig for channel 22, function 420, config type 0, config size 127
09:16:41.481 -> HVAC[22]: processing channel config
09:16:41.481 -> HVAC[22]: Ignoring channel config (local config changed offline)
09:16:41.481 -> Sending channel config result OK (1)
09:16:41.481 -> Received SetChannelConfig for channel 22, function 420, config type 2, config size 356
09:16:41.481 -> HVAC[22]: Handling weekly schedule
09:16:41.527 -> HVAC Program[0], mode 2, tHeat 1900, tCool 0
09:16:41.527 -> HVAC Program[1], mode 2, tHeat 2100, tCool 0
09:16:41.527 -> HVAC Program[2], mode 2, tHeat 3000, tCool 0
09:16:41.527 -> HVAC Program[3], mode 0, tHeat 0, tCool 0
09:16:41.527 -> Sending channel config result OK (1)
09:16:41.527 -> Received SetChannelConfig for channel 22, function 420, config type 3, config size 356
09:16:41.574 -> HVAC[22]: Handling weekly schedule
09:16:41.574 -> HVAC Program[0], mode 3, tHeat 0, tCool 2400
09:16:41.574 -> HVAC Program[1], mode 3, tHeat 0, tCool 2100
09:16:41.574 -> HVAC Program[2], mode 3, tHeat 0, tCool 1800
09:16:41.574 -> HVAC Program[3], mode 3, tHeat 0, tCool 2800
09:16:41.574 -> Sending channel config result OK (1)
09:16:41.620 -> Received ChannelConfigFinished for channel [22]
09:16:41.620 -> HVAC[22]: channel config send
09:16:41.620 -> Received SetChannelConfig for channel 23, function 420, config type 0, config size 127
09:16:41.620 -> HVAC[23]: processing channel config
09:16:41.620 -> HVAC[23]: Ignoring channel config (local config changed offline)
09:16:41.620 -> Sending channel config result OK (1)
09:16:41.620 -> SUPLA blokuje
09:16:41.620 -> HVAC[21]: invalid temperature readout - startup delay...
09:16:41.620 -> HVAC[22]: invalid temperature readout - startup delay...
09:16:41.620 -> HVAC[23]: invalid temperature readout - startup delay...
09:16:41.668 -> HVAC[24]: invalid temperature readout - startup delay...
09:16:41.668 -> HVAC[25]: invalid temperature readout - startup delay...
09:16:41.668 -> HVAC[26]: invalid temperature readout - startup delay...
09:16:41.668 -> HVAC[27]: invalid temperature readout - startup delay...
09:16:41.714 -> Received SetChannelConfig for channel 23, function 420, config type 2, config size 356
09:16:41.714 -> HVAC[23]: Handling weekly schedule
09:16:41.714 -> HVAC Program[0], mode 2, tHeat 1900, tCool 0
09:16:41.714 -> HVAC Program[1], mode 2, tHeat 2100, tCool 0
09:16:41.714 -> HVAC Program[2], mode 0, tHeat 0, tCool 0
09:16:41.714 -> HVAC Program[3], mode 0, tHeat 0, tCool 0
09:16:41.761 -> Sending channel config result OK (1)
09:16:41.761 -> C:\Users\Tomek\Desktop\Pliki Arduino i Bascom\Termostat_Supla_ESP32_48\Termostat_Supla_ESP32_48
09:16:41.761 -> Received SetChannelConfig for channel 23, function 420, config type 3, config size 356
09:16:41.761 -> HVAC[23]: Handling weekly schedule
09:16:41.761 -> HVAC Program[0], mode 3, tHeat 0, tCool 2400
09:16:41.761 -> HVAC Program[1], mode 3, tHeat 0, tCool 2100
09:16:41.761 -> HVAC Program[2], mode 3, tHeat 0, tCool 1800
09:16:41.761 -> HVAC Program[3], mode 0, tHeat 0, tCool 0
09:16:41.807 -> Sending channel config result OK (1)
09:16:41.807 -> Received ChannelConfigFinished for channel [23]
09:16:41.807 -> HVAC[23]: channel config send
09:16:41.807 -> Received SetChannelConfig for channel 24, function 420, config type 0, config size 127
09:16:41.807 -> HVAC[24]: processing channel config
09:16:41.807 -> HVAC[24]: I 5
09:16:41.854 -> VC24:Hadin eksceue
HACPora[],mde2 tet190 tol
HACPoga[],mde2 tet 10 tol
HVCPoga2,mde0 tet0,too
09:16:41.854 -> VC rgam3, oe ,tea , Col0
09:16:41.854 -> enig hnelcnfgreut K()
RcvdSeCaneCofgfo hanl 4 unton40,cnfgtpe3 cni sz 36
09:16:41.854 -> HA[2] anlngwekyshee
HA Pora[],md 3 Het0 tol 40
HACPora[Received SetChannelConfig for channel 25, function 420, config type 2, config size 356
09:16:41.854 -> HVAC[25]: Handling weekly schedule
09:16:41.854 -> HVAC Program[0], mode 2, tHeat 1900, tCool 0
09:16:41.854 -> HVA rorm[] od , Hat200 Col0
09:16:41.854 -> HArorm[] md , Hat0 tol0
HACPora[],mde0 Het0,too
Sedngcane cnigsnd
09:16:41.854 -> eee Sthnnloni frcane 2,fucio 2, ofi ye ,cofg ie 2
HVC26:prcsin hanlcog
09:16:41.900 -> HA[6] gnrngcane oni (oalcnigcane ffie)
09:16:41.900 -> enig hnelcnfgreutOK()
Received SetChannelConfig for channel 26, function 420, config type 2, config size 356
09:16:41.900 -> HVAC[26]: Handling weeklynfgsie36
HAC2]:Hndigweky cedl
HVCPrgannlcnfged
09:16:41.946 -> eciedStCanlCnigfr hnnl2, ucto 20 oni tp 0 ofi iz 27
09:16:41.946 -> VC[7: rcssn ane ofi
HVC2]:Inoig hnnlcnfg(lcl ofg hngdofln)
Sndn canl ofi esl K
Received SetChannelConfig for channel 27, function 420, config type 2, config sim0, oe ,tea , Col20
09:16:41.992 -> VC rgam1, o ,tea , Co 20
09:16:41.992 -> VC rgrm2, oe ,tHa , Col10
09:16:41.992 -> VC rgrm3] oe ,tHa 0 Col0
09:16:41.992 -> nig hnnlcofgreut K(1
Rcevd hnelofiFnihd o hanl 2]
HA[2] canl ofi enRcevd eChneCofg o canl 8 fntin90,cnfgtpe0 cnigsze0
09:16:41.992 -> hanl[8: adeCaneCig un 70 ofitpe0 cnisig un 00 ofitpe0 cnisie4
Rla[9]apyCaneCnfg u 00 ofitpe0 onisie4
Sndn hanl ofi eul K 1
Received ChannelConfigFinished for channel [29]
09:16:41.992 -> Activity timeout set to 30 s
09:16:41.992 -> Clock: current time: 2025-01-24 09:16:34
09:16:41.992 -> Clock: new tme 02-1240:1:4
Cok:crrn tm: 05012 0:6i
09:16:42.038 -> VC[2:cofg if:
09:16:42.038 -> o hngs
09:16:42.038 -> elyvaAgrgto[8 ha[2 3FA7C lrayritee
09:16:42.038 -> edngcane oni rsltO ()
09:16:42.038 -> Binary[14]: processing channel config
09:16:42.038 -> Binary[14]: confi msig nsevr
Bnry1]:pocsin hnnlcofg
Bnry1]:cnfgmssn o eve
HVC23:t hnnlcofgsucedd(1
Rcevd eChneCofg o hanl 3 fntin40, isig nsrvr
09:16:42.038 -> HA[2] tcane oni sceee ()
09:16:42.084 -> t K(1
Binary[18]: processing channel config
09:16:42.084 -> Binary[18]: config missing on server
09:16:42.084 -> VA[5] etcane oni scede 1)
09:16:42.084 -> eciedSthanlni frchnel2,fucio 2, ofi yp , ofg ie 2
09:16:42.084 -> VC25:prcsin hanl ofi
HAC2]:nigdff
ocane
09:16:42.084 -> eayvcggeatr28 vc[5@ hags
09:16:42.084 -> RlyHaAgrgto[8]hac2 @3FBAC aray eiseed
09:16:42.084 -> enigchnelfg eul K(1
HVAC[27]: set channel config succeeded (1)
09:16:42.084 -> Received SetChannelConfig for channel 27, funcin 2, ofi ye ,cofg ie 2
HVC27:pocsin hanl ofg
HAC2]:cigdf:
Nocane
09:16:42.084 -> eaHvcggeaor2] vc[7@ FBEC]aledyrgstRelayHvacAggregator[28] hvac[21 @ 3FFBA66C] already registered
09:16:42.130 -> HVAC[21]: invalid temperature readout - startup delay...
09:16:42.130 -> RelayHvacAggregator[28] hvac[22 @ 3FFBAA7C] already registered
09:16:42.130 -> HVAC[22]: invalid temperature readout - startup delay...
09:16:42.130 -> RelayHvacAggregator[28] hvac[23 @ 3FFBAE8C] already registered
09:16:42.177 -> HVAC[23]: invalid temperature readout - startup delay...
09:16:42.177 -> RelayHvacAggregator[28] hvac[24 @ 3FFBB29C] already registered
09:16:42.177 -> HVAC[24]: invalid temperature readout - startup delay...
09:16:42.177 -> RelayHvacAggregator[28] hvac[25 @ 3FFBB6AC] already registered
09:16:42.224 -> HVAC[25]: invalid temperature readout - startup delay...
09:16:42.224 -> RelayHvacAggregator[28] hvac[26 @ 3FFBBABC] already registered
09:16:42.224 -> HVAC[26]: invalid temperature readout - startup delay...
09:16:42.224 -> RelayHvacAggregator[28] hvac[27 @ 3FFBBECC] already registered
09:16:42.224 -> HVAC[27]: invalid temperature readout - startup delay...
09:16:42.270 -> HVAC[21]: invalid temperature readout - startup delay...
09:16:42.270 -> HVAC[22]: invalid temperature readout - startup delay...
09:16:42.270 -> HVAC[23]: invalid temperature readout - startup delay...
09:16:42.270 -> HVAC[24]: invalid temperature readout - startup delay...
09:16:42.316 -> HVAC[25]: invalid temperature readout - startup delay...
09:16:42.316 -> HVAC[26]: invalid temperature readout - startup delay...
09:16:42.316 -> HVAC[27]: invalid temperature readout - startup delay...
09:16:43.198 -> HVAC[21]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.244 -> HVAC[22]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.244 -> HVAC[21]: send: IsOn 0, Mode HEAT, tHeat 2180, tCool 0, flags 0x81
09:16:43.244 -> SUPLA blokuje
09:16:43.244 -> HVAC[23]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.291 -> HVAC[24]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.291 -> HVAC[25]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.337 -> HVAC[26]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.337 -> HVAC[27]: invalid temperature readout - check if your thermometer is correctly connected and configured
09:16:43.337 -> HVAC[22]: send: IsOn 0, Mode HEAT, tHeat 2730, tCool 0, flags 0x81
09:16:43.337 -> SUPLA blokuje
09:16:43.337 -> HVAC[23]: send: IsOn 0, Mode HEAT, tHeat 2280, tCool 0, flags 0x81
09:16:43.337 -> SUPLA blokuje
09:16:43.337 -> HVAC[24]: send: IsOn 0, Mode HEAT, tHeat 2270, tCool 0, flags 0x81
09:16:43.383 -> SUPLA blokuje
09:16:43.430 -> HVAC[25]: send: IsOn 0, Mode HEAT, tHeat 2270, tCool 0, flags 0x81
09:16:43.430 -> SUPLA blokuje
09:16:43.477 -> HVAC[26]: send: IsOn 0, Mode HEAT, tHeat 2330, tCool 0, flags 0x81
09:16:43.477 -> SUPLA blokuje
09:16:43.522 -> HVAC[27]: send: IsOn 0, Mode HEAT, tHeat 1800, tCool 0, flags 0x81
09:16:44.219 -> Wrote 8 bytes to storage at 15
09:16:44.219 -> Wrote 8 bytes to storage at 40
09:16:44.219 -> Wrote 8 bytes to storage at 65
09:16:44.266 -> Wrote 8 bytes to storage at 90
09:16:44.266 -> Wrote 8 bytes to storage at 115
09:16:44.266 -> Wrote 8 bytes to storage at 140
09:16:44.266 -> Wrote 8 bytes to storage at 165
09:16:44.266 -> Wrote 7 bytes to storage at 8
09:16:44.266 -> Commit
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
09:16:44.360 -> Key value too big
Last edited by Duch__ on Fri Jan 24, 2025 9:11 am, edited 1 time in total.
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Pytając o takie rzeczy w dziale "GUI Generic" zakładałem, że pytanie dotyczy GG...
Podzielę ten temat i zrobię z niego osobny.
Natomaist odpowiadając na Twoje pytanie. Ten "key value too big" jest trochę mało jasny. Wrzucam poprawkę zmieniającą to na:
Code: Select all
SUPLA_LOG_ERROR("KeyValue: serialized configuration size is too big. Config will not work and may be lost");
Domyślnie Config jest ustaiwony na 1000 B. Sam 1 HVAC zajmuje chyba z 600 B.
Biblioteka pod Arduino IDE nie jest zoptymalizowana do dużych konfigów ale na ESP32 powinno się to zmieścić, bo tam RAMu jest sporo.
Także zwiększenie rozmiaru do 30-40 kB powinno pomóc.
Tylko nie wiem, czy komunikacja będzie działać stabilnie. Ostatnio robiłem testy na 40-60 HVAC i tam komunikacja potrafi padać, bo urządzenie nie wyrabia z przetwarzaniem danych przesyłanych z serwera...
Testowałem to pod gołym esp-idf i tam to "ustabilizowałem", aby te 60 działało, ale to jest turdny temat i nie wiem czy na Arduino IDE to będzie też działać.
Najlepsze suple dla Twojego domu 
-
klew
- Posts: 13907
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Tak
Ogólnie testowałem do 128 kanałów i soft ładnie działa. Problem jest tylko z termostatami, bo serwer wysyła ~700 B danych na każdy termostat zaraz po rejestracji, co przy 50x HVAC daje nam 35 kB danych. Kilka dni nad tym siedziałem i coś umiera na poziomie obsługi Wi-Fi lub TCP/IP w ESP32 i zrywa połączenie, bo nie nadąża przetworzyć wszystkiego.
Forum nie czytaszDuch__ wrote: Fri Jan 24, 2025 9:08 am Szkoda że z poziomu procesora nie idzie wysłać na serwer nazw chociaż termostatów.
viewtopic.php?t=15032
Najlepsze suple dla Twojego domu 
