From 92b349b616d2e947384d808a8d429055788d07aa Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Mon, 26 Oct 2020 09:26:05 +0100 Subject: [PATCH 01/38] fix OpMode for 2 zone operation --- HeishaMon/HeishaMon.ino | 13 +++++++------ HeishaMon/commands.cpp | 24 ++++++++++++------------ HeishaMon/decode.cpp | 20 ++++++++++---------- HeishaMon/version.h | 2 +- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/HeishaMon/HeishaMon.ino b/HeishaMon/HeishaMon.ino index 378e8073..013efafa 100644 --- a/HeishaMon/HeishaMon.ino +++ b/HeishaMon/HeishaMon.ino @@ -396,10 +396,11 @@ void switchSerial() { Serial.swap(); //turn on GPIO's on tx/rx for later use - pinMode(1, FUNCTION_3); - pinMode(3, FUNCTION_3); - pinMode(1, OUTPUT); - pinMode(3, OUTPUT); + //pinMode(1, FUNCTION_3); + //pinMode(3, FUNCTION_3); + //pinMode(1, INPUT_PULLUP); + //pinMode(3, INPUT_PULLUP); + //pinMode(16, INPUT_PULLUP); //enable gpio15 after boot using gpio5 (D1) pinMode(5, OUTPUT); @@ -460,8 +461,6 @@ void loop() { // Allow MDNS processing MDNS.update(); - - mqtt_client.loop(); read_panasonic_data(); @@ -475,8 +474,10 @@ void loop() { if (heishamonSettings.use_s0) s0Loop(mqtt_client, log_message, heishamonSettings.mqtt_topic_base, heishamonSettings.s0Settings); + // run the data query only each WAITTIME if (millis() > nexttime) { + String message = "Heishamon stats: Uptime: " + getUptime() + " ## Free memory: " + getFreeMemory() + "% " + ESP.getFreeHeap() + " bytes ## Wifi: " + getWifiQuality() + "% ## Mqtt reconnects: " + mqttReconnects; log_message((char*)message.c_str()); if (!mqtt_client.connected()) diff --git a/HeishaMon/commands.cpp b/HeishaMon/commands.cpp index e3551354..0e3d3b97 100644 --- a/HeishaMon/commands.cpp +++ b/HeishaMon/commands.cpp @@ -199,13 +199,13 @@ void send_heatpump_command(char* topic, char *msg, bool (*send_command)(byte*, i String set_mode_string(msg); byte set_mode; switch (set_mode_string.toInt()) { - case 0: set_mode = 82; break; - case 1: set_mode = 83; break; - case 2: set_mode = 89; break; + case 0: set_mode = 18; break; + case 1: set_mode = 19; break; + case 2: set_mode = 24; break; case 3: set_mode = 33; break; - case 4: set_mode = 98; break; - case 5: set_mode = 99; break; - case 6: set_mode = 104; break; + case 4: set_mode = 34; break; + case 5: set_mode = 35; break; + case 6: set_mode = 40; break; default: set_mode = 0; break; } @@ -264,24 +264,24 @@ void set_optionalpcb(char* topic, char *msg, void (*log_message)(char*)) { } else if (strcmp(topic, "SmartGrid_Mode") == 0) { byte set_pcb_value = set_pcb_string.toInt(); - if ((set_pcb_value >=0) && (set_pcb_value < 4)) { + if (set_pcb_value < 4) { optionalPCBQuery[optionalPcbBytes[i]] = (optionalPCBQuery[optionalPcbBytes[i]] & ~(0b11 << 4)) | ( set_pcb_value << 4 ); - sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value, optionalPCBQuery[optionalPcbBytes[i]]); log_message(log_msg); + sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value); log_message(log_msg); } } else if (strcmp(topic, "External_Thermostat_1_State") == 0) { byte set_pcb_value = set_pcb_string.toInt(); - if ((set_pcb_value >=0) && (set_pcb_value < 4)) { + if (set_pcb_value < 4) { optionalPCBQuery[optionalPcbBytes[i]] = (optionalPCBQuery[optionalPcbBytes[i]] & ~(0b11 << 2)) | ( set_pcb_value << 2 ); - sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value, optionalPCBQuery[optionalPcbBytes[i]]); log_message(log_msg); + sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value); log_message(log_msg); } } else if (strcmp(topic, "External_Thermostat_2_State") == 0) { byte set_pcb_value = set_pcb_string.toInt(); - if ((set_pcb_value >=0) && (set_pcb_value < 4)) { + if (set_pcb_value < 4) { optionalPCBQuery[optionalPcbBytes[i]] = (optionalPCBQuery[optionalPcbBytes[i]] & ~(0b11 << 0)) | ( set_pcb_value << 0 ); - sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value, optionalPCBQuery[optionalPcbBytes[i]]); log_message(log_msg); + sprintf(log_msg, "set optional pcb %s to %d", optionalPcbTopics[i], set_pcb_value); log_message(log_msg); } } else { diff --git a/HeishaMon/decode.cpp b/HeishaMon/decode.cpp index 5a23481a..0bd1f2f0 100644 --- a/HeishaMon/decode.cpp +++ b/HeishaMon/decode.cpp @@ -61,24 +61,24 @@ String unknown(byte input) { } String getOpMode(byte input) { - switch ((int)input) { - case 82: + switch ((int)(input & 0b111111)) { + case 18: return "0"; - case 83: + case 19: return "1"; - case 89: + case 25: return "2"; - case 97: + case 33: return "3"; - case 98: + case 34: return "4"; - case 99: + case 35: return "5"; - case 105: + case 41: return "6"; - case 90: + case 26: return "7"; - case 106: + case 42: return "8"; default: return "-1"; diff --git a/HeishaMon/version.h b/HeishaMon/version.h index 7610a77f..5ea89604 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-1"; +static const char* heishamon_version = "0.9b-iy-2"; From 1bbd2f46552d59a20e9cfc1648cfacc4403140f9 Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Mon, 26 Oct 2020 10:38:09 +0100 Subject: [PATCH 02/38] add log settings --- HeishaMon/HeishaMon.ino | 41 +++++++++++++---------------- HeishaMon/featureboard.cpp | 11 +++----- HeishaMon/version.h | 2 +- HeishaMon/webfunctions.cpp | 54 ++++++++++++++++++++++++++++++++++++++ HeishaMon/webfunctions.h | 3 +++ 5 files changed, 79 insertions(+), 32 deletions(-) diff --git a/HeishaMon/HeishaMon.ino b/HeishaMon/HeishaMon.ino index 013efafa..58df5594 100644 --- a/HeishaMon/HeishaMon.ino +++ b/HeishaMon/HeishaMon.ino @@ -40,16 +40,6 @@ unsigned long goodreads = 0; unsigned long totalreads = 0; float readpercentage = 0; -//useful for debugging, outputs info to a separate mqtt topic -bool outputMqttLog = false; -//toggle to dump received hex data in log -bool outputHexDump = false; -// toggle to dump extralog to serial1 -// *needs implementation in this code and in the webpage* -bool outputSerial1 = true; - - - // instead of passing array pointers between functions we just define this in the global scope #define MAXDATASIZE 255 char data[MAXDATASIZE]; @@ -86,7 +76,7 @@ PubSubClient mqtt_client(mqtt_wifi_client); void mqtt_reconnect() { - Serial1.println(F("Reconnecting to mqtt server ...")); + log_message((char*)"Reconnecting to mqtt server ..."); char topic[256]; sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_willtopic); if (mqtt_client.connect(heishamonSettings.wifi_hostname, heishamonSettings.mqtt_username, heishamonSettings.mqtt_password, topic, 1, true, "Offline")) @@ -135,8 +125,8 @@ void mqtt_reconnect() void log_message(char* string) { - Serial1.println(string); - if (outputMqttLog) + if (heishamonSettings.logSerial1) Serial1.println(string); + if (heishamonSettings.logMqtt) { char log_topic[256]; sprintf(log_topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_logtopic); @@ -194,7 +184,7 @@ bool readSerial() if (data_length == (data[1] + 3)) { //we received all data (data[1] is header length field) sprintf(log_msg, "Received %d bytes data", data_length); log_message(log_msg); sending = false; //we received an answer after our last command so from now on we can start a new send request again - if (outputHexDump) logHex(data, data_length); + if (heishamonSettings.logHexdump) logHex(data, data_length); if (! isValidReceiveChecksum() ) { log_message((char*)"Checksum received false!"); data_length = 0; //for next attempt @@ -266,7 +256,7 @@ bool send_command(byte* command, int length) { bytesSent += Serial.write(chk); //then calculcated checksum byte afterwards sprintf(log_msg, "sent bytes: %d including checksum value: %d ", bytesSent, int(chk)); log_message(log_msg); - if (outputHexDump) logHex((char*)command, length); + if (heishamonSettings.logHexdump) logHex((char*)command, length); allowreadtime = millis() + SERIALTIMEOUT; //set allowreadtime when to timeout the answer of this command return true; } @@ -305,7 +295,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { //unsubscribe after restoring the watthour values char mqtt_topic[256]; sprintf(mqtt_topic, "%s", topic); - if (mqtt_client.unsubscribe(mqtt_topic)) Serial1.println("Unsubscribed topic"); + if (mqtt_client.unsubscribe(mqtt_topic)) log_message((char*)"Unsubscribed topic"); } else { send_heatpump_command(topic_command, msg, send_command, log_message); @@ -360,14 +350,14 @@ void setupHttp() { }); httpServer.on("/togglelog", [] { log_message((char*)"Toggled mqtt log flag"); - outputMqttLog ^= true; + heishamonSettings.logMqtt ^= true; httpServer.sendHeader("Location", String("/"), true); httpServer.send ( 302, "text/plain", ""); httpServer.client().stop(); }); httpServer.on("/togglehexdump", [] { log_message((char*)"Toggled hexdump log flag"); - outputHexDump ^= true; + heishamonSettings.logHexdump ^= true; httpServer.sendHeader("Location", String("/"), true); httpServer.send ( 302, "text/plain", ""); httpServer.client().stop(); @@ -376,15 +366,19 @@ void setupHttp() { } void setupSerial() { - //debug line on serial1 (D4, GPIO2) - Serial1.begin(115200); - Serial1.println(F("Starting debugging")); - //boot issue's first on normal serial Serial.begin(115200); Serial.flush(); } +void setupSeria11() { + if (heishamonSettings.logSerial1) { + //debug line on serial1 (D4, GPIO2) + Serial1.begin(115200); + Serial1.println(F("Starting debugging")); + } +} + void switchSerial() { Serial.println(F("Switching serial to connect to heatpump. Look for debug on serial1 (GPIO2) and mqtt log topic.")); //serial to cn-cnt @@ -418,6 +412,7 @@ void setup() { setupSerial(); setupWifi(drd, &heishamonSettings); MDNS.begin(heishamonSettings.wifi_hostname); + setupSeria11(); setupOTA(); setupMqtt(); setupHttp(); @@ -443,7 +438,7 @@ void read_panasonic_data() { if (sending && (millis() > allowreadtime)) { log_message((char*)"Previous read data attempt failed due to timeout!"); sprintf(log_msg, "Received %d bytes data", data_length); log_message(log_msg); - if (outputHexDump) logHex(data, data_length); + if (heishamonSettings.logHexdump) logHex(data, data_length); data_length = 0; //clear any data in array sending = false; //receiving the answer from the send command timed out, so we are allowed to send a new command } diff --git a/HeishaMon/featureboard.cpp b/HeishaMon/featureboard.cpp index 419d73b0..c3c9303a 100644 --- a/HeishaMon/featureboard.cpp +++ b/HeishaMon/featureboard.cpp @@ -168,12 +168,11 @@ void initS0Sensors(s0SettingsStruct s0Settings[], PubSubClient &mqtt_client, cha char mqtt_topic[256]; sprintf(mqtt_topic, "%s/%s/Watthour/2", mqtt_topic_base, mqtt_topic_s0); mqtt_client.subscribe(mqtt_topic); - } + } } -void restore_s0_Watthour(int s0Port,float watthour) { - Serial1.print(F("Restoring watthour from MQTT on s0 port: ")); Serial1.print(s0Port); Serial1.print(F(" with value: ")); Serial1.println(watthour); - if ((s0Port = 0) || (s0Port = 1)) actS0Data[s0Port-1].pulses = int(watthour * (actS0Settings[s0Port-1].ppkwh / 1000.0)); +void restore_s0_Watthour(int s0Port, float watthour) { + if ((s0Port = 0) || (s0Port = 1)) actS0Data[s0Port - 1].pulses = int(watthour * (actS0Settings[s0Port - 1].ppkwh / 1000.0)); } @@ -210,7 +209,6 @@ void s0Loop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_to if ((actS0Data[i].nextReport - millisThisLoop) > MINREPORTEDS0TIME) { //loop was in standby interval actS0Data[i].nextReport = 0; // report now } - Serial1.print(F("S0 port ")); Serial1.print(i); Serial1.print(F(" detected pulse. Pulses since last reset: ")); Serial1.println(actS0Data[i].pulses); } //then report after nextReport @@ -220,17 +218,14 @@ void s0Loop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_to unsigned long calcMaxWatt = (3600000000.0 / lastePulseInterval) / actS0Settings[i].ppkwh; if (actS0Data[i].watt < ((3600000.0 / actS0Settings[i].ppkwh) / actS0Settings[i].lowerPowerInterval) ) { //watt is lower than possible in lower power interval time - //Serial1.println(F("===In standby mode===")); actS0Data[i].nextReport = millisThisLoop + 1000 * actS0Settings[i].lowerPowerInterval; if ((actS0Data[i].watt) / 2 > calcMaxWatt) { - //Serial1.println(F("===Previous standby watt is too high. Lowering watt, divide by two===")); actS0Data[i].watt = calcMaxWatt / 2; } } else { actS0Data[i].nextReport = millisThisLoop + MINREPORTEDS0TIME; if (actS0Data[i].watt > calcMaxWatt) { - //Serial1.println(F("===Previous watt is too high. Setting watt to max possible watt===")); actS0Data[i].watt = calcMaxWatt; } } diff --git a/HeishaMon/version.h b/HeishaMon/version.h index 5ea89604..cc25d6a3 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-2"; +static const char* heishamon_version = "0.9b-iy-3"; diff --git a/HeishaMon/webfunctions.cpp b/HeishaMon/webfunctions.cpp index 8a9a5c33..f6358a43 100644 --- a/HeishaMon/webfunctions.cpp +++ b/HeishaMon/webfunctions.cpp @@ -126,6 +126,9 @@ void setupWifi(DoubleResetDetect &drd, settingsStruct *heishamonSettings) { if (jsonDoc["s0_2_sum_s0_watthour"] == "enabled") heishamonSettings->s0Settings[1].sum_s0_watthour = true; } if ( jsonDoc["listenonly"] == "enabled" ) heishamonSettings->listenonly = true; + if ( jsonDoc["logMqtt"] == "enabled" ) heishamonSettings->logMqtt = true; + if ( jsonDoc["logHexdump"] == "enabled" ) heishamonSettings->logHexdump = true; + if ( jsonDoc["logSerial1"] == "enabled" ) heishamonSettings->logSerial1 = true; if ( jsonDoc["optionalPCB"] == "enabled" ) heishamonSettings->optionalPCB = true; if ( jsonDoc["waitTime"]) heishamonSettings->waitTime = jsonDoc["waitTime"]; if (heishamonSettings->waitTime < 5) heishamonSettings->waitTime = 5; @@ -424,6 +427,21 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti } else { jsonDoc["listenonly"] = "disabled"; } + if (heishamonSettings->logMqtt) { + jsonDoc["logMqtt"] = "enabled"; + } else { + jsonDoc["logMqtt"] = "disabled"; + } + if (heishamonSettings->logHexdump) { + jsonDoc["logHexdump"] = "enabled"; + } else { + jsonDoc["logHexdump"] = "disabled"; + } + if (heishamonSettings->logSerial1) { + jsonDoc["logSerial1"] = "enabled"; + } else { + jsonDoc["logSerial1"] = "disabled"; + } if (heishamonSettings->optionalPCB) { jsonDoc["optionalPCB"] = "enabled"; } else { @@ -490,6 +508,21 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti } else { jsonDoc["listenonly"] = "disabled"; } + if (httpServer->hasArg("logMqtt")) { + jsonDoc["logMqtt"] = "enabled"; + } else { + jsonDoc["logMqtt"] = "disabled"; + } + if (httpServer->hasArg("logHexdump")) { + jsonDoc["logHexdump"] = "enabled"; + } else { + jsonDoc["logHexdump"] = "disabled"; + } + if (httpServer->hasArg("logSerial1")) { + jsonDoc["logSerial1"] = "enabled"; + } else { + jsonDoc["logSerial1"] = "disabled"; + } if (httpServer->hasArg("optionalPCB")) { jsonDoc["optionalPCB"] = "enabled"; } else { @@ -568,6 +601,27 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti httptext = httptext + ""; } httptext = httptext + ""; + httptext = httptext + "Debug log to MQTT topic from start:"; + if (heishamonSettings->logMqtt) { + httptext = httptext + ""; + } else { + httptext = httptext + ""; + } + httptext = httptext + ""; + httptext = httptext + "Debug log hexdump enable from start:"; + if (heishamonSettings->logHexdump) { + httptext = httptext + ""; + } else { + httptext = httptext + ""; + } + httptext = httptext + ""; + httptext = httptext + "Debug log to serial1 (GPIO2):"; + if (heishamonSettings->logSerial1) { + httptext = httptext + ""; + } else { + httptext = httptext + ""; + } + httptext = httptext + ""; httptext = httptext + "Emulate optional PCB (experimental):"; if (heishamonSettings->optionalPCB) { httptext = httptext + ""; diff --git a/HeishaMon/webfunctions.h b/HeishaMon/webfunctions.h index 7e288ef5..3b342a09 100644 --- a/HeishaMon/webfunctions.h +++ b/HeishaMon/webfunctions.h @@ -25,6 +25,9 @@ struct settingsStruct { bool optionalPCB = false; //do we emulate an optional PCB? bool use_1wire = false; //1wire enabled? bool use_s0 = false; //s0 enabled? + bool logMqtt = false; //log to mqtt from start + bool logHexdump = false; //log hexdump from start + bool logSerial1 = false; //log to serial1 (gpio2) from start s0SettingsStruct s0Settings[NUM_S0_COUNTERS]; }; From d6eaf74ee9921ddcd27524f0e53d57e58cdc66dd Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Mon, 26 Oct 2020 10:56:39 +0100 Subject: [PATCH 03/38] migrate to littlefs (config reset!) --- HeishaMon/version.h | 2 +- HeishaMon/webfunctions.cpp | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/HeishaMon/version.h b/HeishaMon/version.h index cc25d6a3..0c324f84 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-3"; +static const char* heishamon_version = "0.9b-iy-4-LittleFS"; diff --git a/HeishaMon/webfunctions.cpp b/HeishaMon/webfunctions.cpp index f6358a43..837343df 100644 --- a/HeishaMon/webfunctions.cpp +++ b/HeishaMon/webfunctions.cpp @@ -4,6 +4,7 @@ #include "decode.h" #include "version.h" #include "htmlcode.h" +#include #include #include @@ -79,20 +80,20 @@ void setupWifi(DoubleResetDetect &drd, settingsStruct *heishamonSettings) { if (drd.detect()) { Serial.println(F("Double reset detected, clearing config.")); - SPIFFS.begin(); - SPIFFS.format(); + LittleFS.begin(); + LittleFS.format(); wifiManager.resetSettings(); Serial.println(F("Config cleared. Please open the Wifi portal to configure this device...")); } else { //read configuration from FS json Serial.println(F("mounting FS...")); - if (SPIFFS.begin()) { + if (LittleFS.begin()) { Serial.println(F("mounted file system")); - if (SPIFFS.exists("/config.json")) { + if (LittleFS.exists("/config.json")) { //file exists, reading and loading Serial.println(F("reading config file")); - File configFile = SPIFFS.open("/config.json", "r"); + File configFile = LittleFS.open("/config.json", "r"); if (configFile) { Serial.println(F("opened config file")); size_t size = configFile.size(); @@ -222,7 +223,7 @@ void setupWifi(DoubleResetDetect &drd, settingsStruct *heishamonSettings) { jsonDoc["mqtt_username"] = heishamonSettings->mqtt_username; jsonDoc["mqtt_password"] = heishamonSettings->mqtt_password; - File configFile = SPIFFS.open("/config.json", "w"); + File configFile = LittleFS.open("/config.json", "w"); if (!configFile) { Serial.println(F("failed to open config file for writing")); } @@ -371,8 +372,8 @@ void handleFactoryReset(ESP8266WebServer *httpServer) { httpServer->sendContent(""); httpServer->client().stop(); delay(1000); - SPIFFS.begin(); - SPIFFS.format(); + LittleFS.begin(); + LittleFS.format(); WiFi.disconnect(true); delay(1000); ESP.restart(); @@ -541,8 +542,8 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti jsonDoc["updataAllDallasTime"] = httpServer->arg("updataAllDallasTime"); } - if (SPIFFS.begin()) { - File configFile = SPIFFS.open("/config.json", "w"); + if (LittleFS.begin()) { + File configFile = LittleFS.open("/config.json", "w"); if (configFile) { serializeJson(jsonDoc, configFile); configFile.close(); From ab8813b745fd17d01b0e0c28c054ffebf425ec1d Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Wed, 28 Oct 2020 20:48:47 +0100 Subject: [PATCH 04/38] s0 total watthour new design --- HeishaMon/HeishaMon.ino | 4 ++-- HeishaMon/featureboard.cpp | 30 ++++++++++++++---------------- HeishaMon/featureboard.h | 2 +- HeishaMon/version.h | 2 +- HeishaMon/webfunctions.cpp | 11 ----------- HeishaMon/webfunctions.h | 2 +- 6 files changed, 19 insertions(+), 32 deletions(-) diff --git a/HeishaMon/HeishaMon.ino b/HeishaMon/HeishaMon.ino index 58df5594..9ba04132 100644 --- a/HeishaMon/HeishaMon.ino +++ b/HeishaMon/HeishaMon.ino @@ -288,14 +288,14 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { set_optionalpcb(topic_pcb, msg, log_message); } else if (strncmp(topic_command, mqtt_topic_s0, 2) == 0) // this is a s0 topic, check for watthour topic and restore it { - char* topic_s0_watthour_port = &topic_command[12]; //strip the first 12 "s0/Watthour/" from the topic to get the s0 port + char* topic_s0_watthour_port = &topic_command[17]; //strip the first 17 "s0/WatthourTotal/" from the topic to get the s0 port int s0Port = String(topic_s0_watthour_port).toInt(); float watthour = String(msg).toFloat(); restore_s0_Watthour(s0Port, watthour); //unsubscribe after restoring the watthour values char mqtt_topic[256]; sprintf(mqtt_topic, "%s", topic); - if (mqtt_client.unsubscribe(mqtt_topic)) log_message((char*)"Unsubscribed topic"); + if (mqtt_client.unsubscribe(mqtt_topic)) log_message((char*)"Unsubscribed from S0 watthour restore topic"); } else { send_heatpump_command(topic_command, msg, send_command, log_message); diff --git a/HeishaMon/featureboard.cpp b/HeishaMon/featureboard.cpp index c3c9303a..19e1aae0 100644 --- a/HeishaMon/featureboard.cpp +++ b/HeishaMon/featureboard.cpp @@ -141,41 +141,33 @@ ICACHE_RAM_ATTR void onS0Pulse2() { } void initS0Sensors(s0SettingsStruct s0Settings[], PubSubClient &mqtt_client, char* mqtt_topic_base) { + char mqtt_topic[256]; + //setup s0 port 1 actS0Settings[0].gpiopin = s0Settings[0].gpiopin; actS0Settings[0].ppkwh = s0Settings[0].ppkwh; actS0Settings[0].lowerPowerInterval = s0Settings[0].lowerPowerInterval; - actS0Settings[0].sum_s0_watthour = s0Settings[0].sum_s0_watthour; - if (actS0Settings[0].sum_s0_watthour) { - char mqtt_topic[256]; - sprintf(mqtt_topic, "%s/%s/Watthour/1", mqtt_topic_base, mqtt_topic_s0); - mqtt_client.subscribe(mqtt_topic); - } + sprintf(mqtt_topic, "%s/%s/WatthourTotal/1", mqtt_topic_base, mqtt_topic_s0); + mqtt_client.subscribe(mqtt_topic); pinMode(actS0Settings[0].gpiopin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(actS0Settings[0].gpiopin), onS0Pulse1, RISING); actS0Data[0].nextReport = millis() + MINREPORTEDS0TIME; //initial report after interval, not directly at boot - //setup s0 port 2 actS0Settings[1].gpiopin = s0Settings[1].gpiopin; actS0Settings[1].ppkwh = s0Settings[1].ppkwh; actS0Settings[1].lowerPowerInterval = s0Settings[1].lowerPowerInterval; - actS0Settings[1].sum_s0_watthour = s0Settings[1].sum_s0_watthour; pinMode(actS0Settings[1].gpiopin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(actS0Settings[1].gpiopin), onS0Pulse2, RISING); actS0Data[1].nextReport = millis() + MINREPORTEDS0TIME; //initial report after interval, not directly at boot - if (actS0Settings[1].sum_s0_watthour) { - char mqtt_topic[256]; - sprintf(mqtt_topic, "%s/%s/Watthour/2", mqtt_topic_base, mqtt_topic_s0); - mqtt_client.subscribe(mqtt_topic); - } + sprintf(mqtt_topic, "%s/%s/WatthourTotal/2", mqtt_topic_base, mqtt_topic_s0); + mqtt_client.subscribe(mqtt_topic); } void restore_s0_Watthour(int s0Port, float watthour) { - if ((s0Port = 0) || (s0Port = 1)) actS0Data[s0Port - 1].pulses = int(watthour * (actS0Settings[s0Port - 1].ppkwh / 1000.0)); + if ((s0Port == 1) || (s0Port == 2)) actS0Data[s0Port - 1].pulsesTotal = int(watthour * (actS0Settings[s0Port - 1].ppkwh / 1000.0)); } - void s0SettingsCorrupt(s0SettingsStruct s0Settings[], void (*log_message)(char*)) { for (int i = 0 ; i < NUM_S0_COUNTERS ; i++) { if ((s0Settings[i].gpiopin != actS0Settings[i].gpiopin) || (s0Settings[i].ppkwh != actS0Settings[i].ppkwh) || (s0Settings[i].lowerPowerInterval != actS0Settings[i].lowerPowerInterval)) { @@ -231,7 +223,9 @@ void s0Loop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_to } float Watthour = (actS0Data[i].pulses * ( 1000.0 / actS0Settings[i].ppkwh)); - if (!actS0Settings[i].sum_s0_watthour) actS0Data[i].pulses = 0; //per message we report new wattHour, so pulses should be zero at start new message + actS0Data[i].pulsesTotal = actS0Data[i].pulsesTotal + actS0Data[i].pulses; + actS0Data[i].pulses = 0; //per message we report new wattHour, so pulses should be zero at start new message + //report using mqtt char log_msg[256]; @@ -240,6 +234,10 @@ void s0Loop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_to sprintf(log_msg, "Measured Watthour on S0 port %d: %.2f", (i + 1), Watthour ); log_message(log_msg); sprintf(valueStr, "%.2f", Watthour); sprintf(mqtt_topic, "%s/%s/Watthour/%d", mqtt_topic_base, mqtt_topic_s0, (i + 1)); mqtt_client.publish(mqtt_topic, valueStr, MQTT_RETAIN_VALUES); + float WatthourTotal = (actS0Data[i].pulsesTotal * ( 1000.0 / actS0Settings[i].ppkwh)); + sprintf(log_msg, "Measured total Watthour on S0 port %d: %.2f", (i + 1), WatthourTotal ); log_message(log_msg); + sprintf(valueStr, "%.2f", WatthourTotal); + sprintf(mqtt_topic, "%s/%s/WatthourTotal/%d", mqtt_topic_base, mqtt_topic_s0, (i + 1)); mqtt_client.publish(mqtt_topic, valueStr, MQTT_RETAIN_VALUES); sprintf(log_msg, "Calculated Watt on S0 port %d: %u", (i + 1), actS0Data[i].watt); log_message(log_msg); sprintf(valueStr, "%u", actS0Data[i].watt); sprintf(mqtt_topic, "%s/%s/Watt/%d", mqtt_topic_base, mqtt_topic_s0, (i + 1)); mqtt_client.publish(mqtt_topic, valueStr, MQTT_RETAIN_VALUES); diff --git a/HeishaMon/featureboard.h b/HeishaMon/featureboard.h index ba55a228..4f48ff89 100644 --- a/HeishaMon/featureboard.h +++ b/HeishaMon/featureboard.h @@ -20,11 +20,11 @@ struct s0SettingsStruct { byte gpiopin = 255; unsigned int ppkwh = 1000; //pulses per Wh of the connected meter unsigned int lowerPowerInterval = 60; //configurabel low power interval - bool sum_s0_watthour = false; //count watthour upwards, do not reset between messages }; struct s0DataStruct { unsigned int pulses = 0; //number of pulses since last report + unsigned int pulsesTotal = 0; //total pulses measured from begin unsigned int watt = 0; //calculated average power unsigned long lastPulse = 0; //last pulse in millis unsigned long nextReport = 0; //next time we reported the s0 value in millis diff --git a/HeishaMon/version.h b/HeishaMon/version.h index 0c324f84..e43b6da8 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-4-LittleFS"; +static const char* heishamon_version = "0.9b-iy-5-LittleFS"; diff --git a/HeishaMon/webfunctions.cpp b/HeishaMon/webfunctions.cpp index 837343df..00de370c 100644 --- a/HeishaMon/webfunctions.cpp +++ b/HeishaMon/webfunctions.cpp @@ -120,11 +120,9 @@ void setupWifi(DoubleResetDetect &drd, settingsStruct *heishamonSettings) { if (jsonDoc["s0_1_gpio"]) heishamonSettings->s0Settings[0].gpiopin = jsonDoc["s0_1_gpio"]; if (jsonDoc["s0_1_ppkwh"]) heishamonSettings->s0Settings[0].ppkwh = jsonDoc["s0_1_ppkwh"]; if (jsonDoc["s0_1_interval"]) heishamonSettings->s0Settings[0].lowerPowerInterval = jsonDoc["s0_1_interval"]; - if (jsonDoc["s0_1_sum_s0_watthour"] == "enabled") heishamonSettings->s0Settings[0].sum_s0_watthour = true; if (jsonDoc["s0_2_gpio"]) heishamonSettings->s0Settings[1].gpiopin = jsonDoc["s0_2_gpio"]; if (jsonDoc["s0_2_ppkwh"]) heishamonSettings->s0Settings[1].ppkwh = jsonDoc["s0_2_ppkwh"]; if (jsonDoc["s0_2_interval"] ) heishamonSettings->s0Settings[1].lowerPowerInterval = jsonDoc["s0_2_interval"]; - if (jsonDoc["s0_2_sum_s0_watthour"] == "enabled") heishamonSettings->s0Settings[1].sum_s0_watthour = true; } if ( jsonDoc["listenonly"] == "enabled" ) heishamonSettings->listenonly = true; if ( jsonDoc["logMqtt"] == "enabled" ) heishamonSettings->logMqtt = true; @@ -496,11 +494,9 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti if (httpServer->hasArg("s0_1_gpio")) jsonDoc["s0_1_gpio"] = httpServer->arg("s0_1_gpio"); if (httpServer->hasArg("s0_1_ppkwh")) jsonDoc["s0_1_ppkwh"] = httpServer->arg("s0_1_ppkwh"); if (httpServer->hasArg("s0_1_interval")) jsonDoc["s0_1_interval"] = httpServer->arg("s0_1_interval"); - if (httpServer->hasArg("s0_1_sum_s0_watthour")) jsonDoc["s0_1_sum_s0_watthour"] = "enabled"; if (httpServer->hasArg("s0_2_gpio")) jsonDoc["s0_2_gpio"] = httpServer->arg("s0_2_gpio"); if (httpServer->hasArg("s0_2_ppkwh")) jsonDoc["s0_2_ppkwh"] = httpServer->arg("s0_2_ppkwh"); if (httpServer->hasArg("s0_2_interval")) jsonDoc["s0_2_interval"] = httpServer->arg("s0_2_interval"); - if (httpServer->hasArg("s0_2_sum_s0_watthour")) jsonDoc["s0_2_sum_s0_watthour"] = "enabled"; } else { jsonDoc["use_s0"] = "disabled"; } @@ -687,13 +683,6 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti httptext = httptext + "s0Settings[i].lowerPowerInterval) + "\"> seconds"; httptext = httptext + ""; httptext = httptext + "S0 port " + (i + 1) + " standby/low power usage threshold: Watt"; - httptext = httptext + ""; - httptext = httptext + "S0 port " + (i + 1) + " incremental Watthour and restore from MQTT at boot:"; - if (heishamonSettings->s0Settings[i].sum_s0_watthour) { - httptext = httptext + ""; - } else { - httptext = httptext + ""; - } httptext = httptext + ""; } httptext = httptext + ""; diff --git a/HeishaMon/webfunctions.h b/HeishaMon/webfunctions.h index 3b342a09..7afee07b 100644 --- a/HeishaMon/webfunctions.h +++ b/HeishaMon/webfunctions.h @@ -27,7 +27,7 @@ struct settingsStruct { bool use_s0 = false; //s0 enabled? bool logMqtt = false; //log to mqtt from start bool logHexdump = false; //log hexdump from start - bool logSerial1 = false; //log to serial1 (gpio2) from start + bool logSerial1 = true; //log to serial1 (gpio2) from start s0SettingsStruct s0Settings[NUM_S0_COUNTERS]; }; From e6539c183c5ab42d73819ee8d32f9f436596750c Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Fri, 30 Oct 2020 11:32:40 +0100 Subject: [PATCH 05/38] split s0 and dallas code --- HeishaMon/dallas.cpp | 122 +++++++++++++++++++++++++ HeishaMon/dallas.h | 18 ++++ HeishaMon/{featureboard.cpp => s0.cpp} | 117 +----------------------- HeishaMon/{featureboard.h => s0.h} | 14 --- HeishaMon/version.h | 2 +- HeishaMon/webfunctions.h | 3 +- 6 files changed, 144 insertions(+), 132 deletions(-) create mode 100644 HeishaMon/dallas.cpp create mode 100644 HeishaMon/dallas.h rename HeishaMon/{featureboard.cpp => s0.cpp} (57%) rename HeishaMon/{featureboard.h => s0.h} (64%) diff --git a/HeishaMon/dallas.cpp b/HeishaMon/dallas.cpp new file mode 100644 index 00000000..ced4db9b --- /dev/null +++ b/HeishaMon/dallas.cpp @@ -0,0 +1,122 @@ +#include +#include +#include +#include "commands.h" +#include "dallas.h" + +#define MQTT_RETAIN_VALUES 1 // do we retain 1wire values? + +#define MAXTEMPDIFFPERSEC 0.5 // what is the allowed temp difference per second which is allowed (to filter bad values) + +#define DALLASASYNC 0 //async dallas yes or no (default no, because async seems to break 1wire sometimes with current code) + +OneWire oneWire(ONE_WIRE_BUS); +DallasTemperature DS18B20(&oneWire); + +//global array for 1wire data +dallasDataStruct* actDallasData = 0; +int dallasDevicecount = 0; + + +unsigned long nextalldatatime_dallas = 0; + +unsigned long dallasTimer = 0; +unsigned int updateAllDallasTime = 30000; // will be set using heishmonSettings +unsigned int dallasTimerWait = 30000; // will be set using heishmonSettings + +void initDallasSensors(void (*log_message)(char*), unsigned int updateAllDallasTimeSettings, unsigned int dallasTimerWaitSettings) { + char log_msg[256]; + updateAllDallasTime = updateAllDallasTimeSettings; + dallasTimerWait = dallasTimerWaitSettings; + DS18B20.begin(); + dallasDevicecount = DS18B20.getDeviceCount(); + sprintf(log_msg, "Number of 1wire sensors on bus: %d", dallasDevicecount); log_message(log_msg); + if ( dallasDevicecount > MAX_DALLAS_SENSORS) { + dallasDevicecount = MAX_DALLAS_SENSORS; + sprintf(log_msg, "Reached max 1wire sensor count. Only %d sensors will provide data.", dallasDevicecount); log_message(log_msg); + } + + //init array + actDallasData = new dallasDataStruct [dallasDevicecount]; + for (int j = 0 ; j < dallasDevicecount; j++) { + DS18B20.getAddress(actDallasData[j].sensor, j); + } + + DS18B20.requestTemperatures(); + for (int i = 0 ; i < dallasDevicecount; i++) { + actDallasData[i].address[16] = '\0'; + for (int x = 0; x < 8; x++) { + // zero pad the address if necessary + sprintf(&actDallasData[i].address[x * 2], "%02x", actDallasData[i].sensor[x]); + } + sprintf(log_msg, "Found 1wire sensor: %s", actDallasData[i].address ); log_message(log_msg); + } + if (DALLASASYNC) DS18B20.setWaitForConversion(false); //async 1wire during next loops +} + +void readNewDallasTemp(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base) { + char log_msg[256]; + char mqtt_topic[256]; + char valueStr[20]; + bool updatenow = false; + + if (millis() > nextalldatatime_dallas) { + updatenow = true; + nextalldatatime_dallas = millis() + (1000 * updateAllDallasTime); + } + if (!(DALLASASYNC)) DS18B20.requestTemperatures(); + for (int i = 0; i < dallasDevicecount; i++) { + float temp = DS18B20.getTempC(actDallasData[i].sensor); + if (temp < -120.0) { + sprintf(log_msg, "Error 1wire sensor offline: %s", actDallasData[i].address); log_message(log_msg); + } else { + float allowedtempdiff = (((millis() - actDallasData[i].lastgoodtime)) / 1000.0) * MAXTEMPDIFFPERSEC; + if ((actDallasData[i].temperature != -127.0) and ((temp > (actDallasData[i].temperature + allowedtempdiff)) or (temp < (actDallasData[i].temperature - allowedtempdiff)))) { + sprintf(log_msg, "Filtering 1wire sensor temperature (%s). Delta to high. Current: %.2f Last: %.2f", actDallasData[i].address, temp, actDallasData[i].temperature); log_message(log_msg); + } else { + actDallasData[i].lastgoodtime = millis(); + if ((updatenow) || (actDallasData[i].temperature != temp )) { //only update mqtt topic if temp changed or after each update timer + actDallasData[i].temperature = temp; + sprintf(log_msg, "Received 1wire sensor temperature (%s): %.2f", actDallasData[i].address, actDallasData[i].temperature); log_message(log_msg); + sprintf(valueStr, "%.2f", actDallasData[i].temperature); + sprintf(mqtt_topic, "%s/%s/%s", mqtt_topic_base, mqtt_topic_1wire, actDallasData[i].address); mqtt_client.publish(mqtt_topic, valueStr, MQTT_RETAIN_VALUES); + } + } + } + } +} + +void dallasLoop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base) { + if ((DALLASASYNC) && (millis() > (dallasTimer - 1000))) { + DS18B20.requestTemperatures(); // get temperatures for next run 1 second before getting the temperatures (async) + } + if (millis() > dallasTimer) { + log_message((char*)"Requesting new 1wire temperatures"); + dallasTimer = millis() + (1000 * dallasTimerWait); + readNewDallasTemp(mqtt_client, log_message, mqtt_topic_base); + } +} + +String dallasJsonOutput() { + String output = "["; + for (int i = 0; i < dallasDevicecount; i++) { + output = output + "{"; + output = output + "\"Sensor\": \"" + actDallasData[i].address + "\","; + output = output + "\"Temperature\": \"" + actDallasData[i].temperature + "\""; + output = output + "}"; + if (i < dallasDevicecount - 1) output = output + ","; + } + output = output + "]"; + return output; +} + +String dallasTableOutput() { + String output = ""; + for (int i = 0; i < dallasDevicecount; i++) { + output = output + ""; + output = output + "" + actDallasData[i].address + ""; + output = output + "" + actDallasData[i].temperature + ""; + output = output + ""; + } + return output; +} diff --git a/HeishaMon/dallas.h b/HeishaMon/dallas.h new file mode 100644 index 00000000..f3d523b0 --- /dev/null +++ b/HeishaMon/dallas.h @@ -0,0 +1,18 @@ +#include +#include +#include + +#define MAX_DALLAS_SENSORS 15 +#define ONE_WIRE_BUS 4 // DS18B20 pin, for now a static config - should be in config menu later + +struct dallasDataStruct { + float temperature = -127.0; + unsigned long lastgoodtime = 0; + DeviceAddress sensor; + char address[17]; +}; + +void dallasLoop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base); +void initDallasSensors(void (*log_message)(char*), unsigned int updataAllDallasTimeSettings, unsigned int dallasTimerWaitSettings); +String dallasJsonOutput(void); +String dallasTableOutput(void); diff --git a/HeishaMon/featureboard.cpp b/HeishaMon/s0.cpp similarity index 57% rename from HeishaMon/featureboard.cpp rename to HeishaMon/s0.cpp index 19e1aae0..b501a2fd 100644 --- a/HeishaMon/featureboard.cpp +++ b/HeishaMon/s0.cpp @@ -1,23 +1,10 @@ -#include -#include #include - #include "commands.h" -#include "featureboard.h" +#include "s0.h" #define MQTT_RETAIN_VALUES 1 // do we retain 1wire values? -#define MAXTEMPDIFFPERSEC 0.5 // what is the allowed temp difference per second which is allowed (to filter bad values) - #define MINREPORTEDS0TIME 5000 // how often s0 Watts are reported (not faster than this) -#define DALLASASYNC 0 //async dallas yes or no (default no, because async seems to break 1wire sometimes with current code) - -OneWire oneWire(ONE_WIRE_BUS); -DallasTemperature DS18B20(&oneWire); - -//global array for 1wire data -dallasDataStruct* actDallasData = 0; -int dallasDevicecount = 0; //global array for s0 data s0DataStruct actS0Data[NUM_S0_COUNTERS]; @@ -25,111 +12,9 @@ s0DataStruct actS0Data[NUM_S0_COUNTERS]; //global array for s0 Settings s0SettingsStruct actS0Settings[NUM_S0_COUNTERS]; -unsigned long nextalldatatime_dallas = 0; - -unsigned long dallasTimer = 0; -unsigned int updateAllDallasTime = 30000; // will be set using heishmonSettings -unsigned int dallasTimerWait = 30000; // will be set using heishmonSettings - //volatile pulse detectors for s0 volatile unsigned long new_pulse_s0[2] = {0, 0}; -void initDallasSensors(void (*log_message)(char*), unsigned int updateAllDallasTimeSettings, unsigned int dallasTimerWaitSettings) { - char log_msg[256]; - updateAllDallasTime = updateAllDallasTimeSettings; - dallasTimerWait = dallasTimerWaitSettings; - DS18B20.begin(); - dallasDevicecount = DS18B20.getDeviceCount(); - sprintf(log_msg, "Number of 1wire sensors on bus: %d", dallasDevicecount); log_message(log_msg); - if ( dallasDevicecount > MAX_DALLAS_SENSORS) { - dallasDevicecount = MAX_DALLAS_SENSORS; - sprintf(log_msg, "Reached max 1wire sensor count. Only %d sensors will provide data.", dallasDevicecount); log_message(log_msg); - } - - //init array - actDallasData = new dallasDataStruct [dallasDevicecount]; - for (int j = 0 ; j < dallasDevicecount; j++) { - DS18B20.getAddress(actDallasData[j].sensor, j); - } - - DS18B20.requestTemperatures(); - for (int i = 0 ; i < dallasDevicecount; i++) { - actDallasData[i].address[16] = '\0'; - for (int x = 0; x < 8; x++) { - // zero pad the address if necessary - sprintf(&actDallasData[i].address[x * 2], "%02x", actDallasData[i].sensor[x]); - } - sprintf(log_msg, "Found 1wire sensor: %s", actDallasData[i].address ); log_message(log_msg); - } - if (DALLASASYNC) DS18B20.setWaitForConversion(false); //async 1wire during next loops -} - -void readNewDallasTemp(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base) { - char log_msg[256]; - char mqtt_topic[256]; - char valueStr[20]; - bool updatenow = false; - - if (millis() > nextalldatatime_dallas) { - updatenow = true; - nextalldatatime_dallas = millis() + (1000 * updateAllDallasTime); - } - if (!(DALLASASYNC)) DS18B20.requestTemperatures(); - for (int i = 0; i < dallasDevicecount; i++) { - float temp = DS18B20.getTempC(actDallasData[i].sensor); - if (temp < -120.0) { - sprintf(log_msg, "Error 1wire sensor offline: %s", actDallasData[i].address); log_message(log_msg); - } else { - float allowedtempdiff = (((millis() - actDallasData[i].lastgoodtime)) / 1000.0) * MAXTEMPDIFFPERSEC; - if ((actDallasData[i].temperature != -127.0) and ((temp > (actDallasData[i].temperature + allowedtempdiff)) or (temp < (actDallasData[i].temperature - allowedtempdiff)))) { - sprintf(log_msg, "Filtering 1wire sensor temperature (%s). Delta to high. Current: %.2f Last: %.2f", actDallasData[i].address, temp, actDallasData[i].temperature); log_message(log_msg); - } else { - actDallasData[i].lastgoodtime = millis(); - if ((updatenow) || (actDallasData[i].temperature != temp )) { //only update mqtt topic if temp changed or after each update timer - actDallasData[i].temperature = temp; - sprintf(log_msg, "Received 1wire sensor temperature (%s): %.2f", actDallasData[i].address, actDallasData[i].temperature); log_message(log_msg); - sprintf(valueStr, "%.2f", actDallasData[i].temperature); - sprintf(mqtt_topic, "%s/%s/%s", mqtt_topic_base, mqtt_topic_1wire, actDallasData[i].address); mqtt_client.publish(mqtt_topic, valueStr, MQTT_RETAIN_VALUES); - } - } - } - } -} - -void dallasLoop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base) { - if ((DALLASASYNC) && (millis() > (dallasTimer - 1000))) { - DS18B20.requestTemperatures(); // get temperatures for next run 1 second before getting the temperatures (async) - } - if (millis() > dallasTimer) { - log_message((char*)"Requesting new 1wire temperatures"); - dallasTimer = millis() + (1000 * dallasTimerWait); - readNewDallasTemp(mqtt_client, log_message, mqtt_topic_base); - } -} - -String dallasJsonOutput() { - String output = "["; - for (int i = 0; i < dallasDevicecount; i++) { - output = output + "{"; - output = output + "\"Sensor\": \"" + actDallasData[i].address + "\","; - output = output + "\"Temperature\": \"" + actDallasData[i].temperature + "\""; - output = output + "}"; - if (i < dallasDevicecount - 1) output = output + ","; - } - output = output + "]"; - return output; -} - -String dallasTableOutput() { - String output = ""; - for (int i = 0; i < dallasDevicecount; i++) { - output = output + ""; - output = output + "" + actDallasData[i].address + ""; - output = output + "" + actDallasData[i].temperature + ""; - output = output + ""; - } - return output; -} //These are the interrupt routines. Make them as short as possible so we don't block other interrupts (for example serial data) ICACHE_RAM_ATTR void onS0Pulse1() { diff --git a/HeishaMon/featureboard.h b/HeishaMon/s0.h similarity index 64% rename from HeishaMon/featureboard.h rename to HeishaMon/s0.h index 4f48ff89..e40ec33d 100644 --- a/HeishaMon/featureboard.h +++ b/HeishaMon/s0.h @@ -1,20 +1,10 @@ #include -#include -#include -#define MAX_DALLAS_SENSORS 15 -#define ONE_WIRE_BUS 4 // DS18B20 pin, for now a static config - should be in config menu later #define NUM_S0_COUNTERS 2 #define DEFAULT_S0_PIN_1 12 // S0_1 pin, for now a static config - should be in config menu later #define DEFAULT_S0_PIN_2 14 // S0_2 pin, for now a static config - should be in config menu later -struct dallasDataStruct { - float temperature = -127.0; - unsigned long lastgoodtime = 0; - DeviceAddress sensor; - char address[17]; -}; struct s0SettingsStruct { byte gpiopin = 255; @@ -31,10 +21,6 @@ struct s0DataStruct { }; -void dallasLoop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base); -void initDallasSensors(void (*log_message)(char*), unsigned int updataAllDallasTimeSettings, unsigned int dallasTimerWaitSettings); -String dallasJsonOutput(void); -String dallasTableOutput(void); void initS0Sensors(s0SettingsStruct s0Settings[], PubSubClient &mqtt_client, char* mqtt_topic_base); void restore_s0_Watthour(int s0Port,float watthour); void s0Loop(PubSubClient &mqtt_client, void (*log_message)(char*), char* mqtt_topic_base, s0SettingsStruct s0Settings[]); diff --git a/HeishaMon/version.h b/HeishaMon/version.h index e43b6da8..d8ea9283 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-5-LittleFS"; +static const char* heishamon_version = "0.9b-iy-6-LittleFS"; diff --git a/HeishaMon/webfunctions.h b/HeishaMon/webfunctions.h index 7afee07b..bedcecfa 100644 --- a/HeishaMon/webfunctions.h +++ b/HeishaMon/webfunctions.h @@ -3,7 +3,8 @@ #include #include #include -#include "featureboard.h" +#include "dallas.h" +#include "s0.h" struct settingsStruct { unsigned int waitTime = 5; // how often data is read from heatpump From f3765dd1b6e3e1071b219c70f89de8dc9f519ae0 Mon Sep 17 00:00:00 2001 From: CurlyMoo Date: Tue, 10 Nov 2020 15:09:28 +0100 Subject: [PATCH 06/38] Add HTTP REST API and restructured set logic --- HeishaMon/HeishaMon.ino | 41 +--- HeishaMon/commands.cpp | 467 +++++++++++++++++++++++++------------ HeishaMon/commands.h | 68 ++++-- HeishaMon/webfunctions.cpp | 35 +++ HeishaMon/webfunctions.h | 1 + MQTT-Topics.md | 4 + 6 files changed, 419 insertions(+), 197 deletions(-) diff --git a/HeishaMon/HeishaMon.ino b/HeishaMon/HeishaMon.ino index 378e8073..3f9372cb 100644 --- a/HeishaMon/HeishaMon.ino +++ b/HeishaMon/HeishaMon.ino @@ -92,37 +92,13 @@ void mqtt_reconnect() if (mqtt_client.connect(heishamonSettings.wifi_hostname, heishamonSettings.mqtt_username, heishamonSettings.mqtt_password, topic, 1, true, "Offline")) { mqttReconnects++; - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_quiet_mode_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_operationmode_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_heatpump_state_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_z1_heat_request_temperature_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_z1_cool_request_temperature_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_z2_heat_request_temperature_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_z2_cool_request_temperature_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_force_DHW_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_force_defrost_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_force_sterilization_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_holiday_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_powerful_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_dhw_temp_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_send_raw_value_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_pump_topic); - mqtt_client.subscribe(topic); - sprintf(topic, "%s/%s", heishamonSettings.mqtt_topic_base, mqtt_set_pumpspeed_topic); + int arraysize = sizeof(commands)/sizeof(commands[0]), i = 0; + + for(i=0;i #include @@ -657,3 +658,37 @@ void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSetti httpServer->sendContent(""); httpServer->client().stop(); } + +bool send_command(byte* command, int length); +void log_message(char* string); + +void handleREST(ESP8266WebServer *httpServer) { + int arraysize = sizeof(commands)/sizeof(commands[0]); + + httpServer->setContentLength(CONTENT_LENGTH_UNKNOWN); + httpServer->sendHeader("Access-Control-Allow-Origin", "*"); + httpServer->send(200, "text/plain", ""); + + String httptext = ""; + if(httpServer->method() == HTTP_GET) { + for(uint8_t i = 0; i < httpServer->args(); i++) { + unsigned char cmd[256] = { 0 }, *p = cmd; + char log_msg[256] = { 0 }, *l = log_msg; + unsigned int len = 0; + + int x = 0; + + for(x=0;xargName(i).c_str(), commands[x].name) == 0) { + len = commands[x].func((char *)httpServer->arg(i).c_str(), &p, &l); + httptext = httptext + log_msg + "\n"; + log_message(log_msg); + send_command(cmd, len); + } + } + } + } + + httpServer->sendContent(httptext); + httpServer->client().stop(); +} diff --git a/HeishaMon/webfunctions.h b/HeishaMon/webfunctions.h index 7e288ef5..c2225efc 100644 --- a/HeishaMon/webfunctions.h +++ b/HeishaMon/webfunctions.h @@ -40,3 +40,4 @@ void handleJsonOutput(ESP8266WebServer *httpServer, String actData[]); void handleFactoryReset(ESP8266WebServer *httpServer); void handleReboot(ESP8266WebServer *httpServer); void handleSettings(ESP8266WebServer *httpServer, settingsStruct *heishamonSettings); +void handleREST(ESP8266WebServer *httpServer); diff --git a/MQTT-Topics.md b/MQTT-Topics.md index f29346ff..5e93880f 100644 --- a/MQTT-Topics.md +++ b/MQTT-Topics.md @@ -133,6 +133,10 @@ SET13 | SetForceSterilization | Forces DHW sterilization routine | 0, 1 SET14 | SetPump | Set Water Pump to service mode, max speed | 0, 1 SET15 | SetPumpSpeed | Set max Water Pump speed in service menu | decimal value translate to hexadecimal in service menu
64 to 254 +These topics can be set by either using MQTT or the HTTP REST API: +http://x.x.x.x/command?[topic]=[value]&[topic]=[value] +e.g.: +http://x.x.x.x/command?SetQuietMode=3&SetZ1HeatRequestTemperature=21 *If you operate your Heisha with direct temperature setup: topics ending xxxRequestTemperature will set the absolute target temperature* From ebd9eec0526e76a54d473467107416f293ea0b14 Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Tue, 10 Nov 2020 15:44:05 +0100 Subject: [PATCH 07/38] start of extra gpio --- HeishaMon/gpio.cpp | 1 + HeishaMon/gpio.h | 1 + HeishaMon/s0.h | 1 - HeishaMon/version.h | 2 +- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 HeishaMon/gpio.cpp create mode 100644 HeishaMon/gpio.h diff --git a/HeishaMon/gpio.cpp b/HeishaMon/gpio.cpp new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/HeishaMon/gpio.cpp @@ -0,0 +1 @@ + diff --git a/HeishaMon/gpio.h b/HeishaMon/gpio.h new file mode 100644 index 00000000..5965d1fe --- /dev/null +++ b/HeishaMon/gpio.h @@ -0,0 +1 @@ +#include diff --git a/HeishaMon/s0.h b/HeishaMon/s0.h index e40ec33d..77ccbff8 100644 --- a/HeishaMon/s0.h +++ b/HeishaMon/s0.h @@ -5,7 +5,6 @@ #define DEFAULT_S0_PIN_2 14 // S0_2 pin, for now a static config - should be in config menu later - struct s0SettingsStruct { byte gpiopin = 255; unsigned int ppkwh = 1000; //pulses per Wh of the connected meter diff --git a/HeishaMon/version.h b/HeishaMon/version.h index d8ea9283..5467d466 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-6-LittleFS"; +static const char* heishamon_version = "0.9b-iy-7-LittleFS"; From 531bee6560eaf7490f7717caa87f3dbda87aa85f Mon Sep 17 00:00:00 2001 From: IgorYbema Date: Sat, 14 Nov 2020 16:34:40 +0100 Subject: [PATCH 08/38] first beta release with littlefs --- HeishaMon/version.h | 2 +- HeishaMon/webfunctions.cpp | 2 +- .../HeishaMon.ino.d1-v0.9b-iy-8-LittleFS.bin | Bin 0 -> 443408 bytes 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 binaries/HeishaMon.ino.d1-v0.9b-iy-8-LittleFS.bin diff --git a/HeishaMon/version.h b/HeishaMon/version.h index 5467d466..fcaae8df 100644 --- a/HeishaMon/version.h +++ b/HeishaMon/version.h @@ -1 +1 @@ -static const char* heishamon_version = "0.9b-iy-7-LittleFS"; +static const char* heishamon_version = "0.9b-iy-8-LittleFS"; diff --git a/HeishaMon/webfunctions.cpp b/HeishaMon/webfunctions.cpp index ee6c2cb9..748adb91 100644 --- a/HeishaMon/webfunctions.cpp +++ b/HeishaMon/webfunctions.cpp @@ -128,7 +128,7 @@ void setupWifi(DoubleResetDetect &drd, settingsStruct *heishamonSettings) { if ( jsonDoc["listenonly"] == "enabled" ) heishamonSettings->listenonly = true; if ( jsonDoc["logMqtt"] == "enabled" ) heishamonSettings->logMqtt = true; if ( jsonDoc["logHexdump"] == "enabled" ) heishamonSettings->logHexdump = true; - if ( jsonDoc["logSerial1"] == "enabled" ) heishamonSettings->logSerial1 = true; + if ( jsonDoc["logSerial1"] == "disabled" ) heishamonSettings->logSerial1 = false; //default is true so this one is different if ( jsonDoc["optionalPCB"] == "enabled" ) heishamonSettings->optionalPCB = true; if ( jsonDoc["waitTime"]) heishamonSettings->waitTime = jsonDoc["waitTime"]; if (heishamonSettings->waitTime < 5) heishamonSettings->waitTime = 5; diff --git a/binaries/HeishaMon.ino.d1-v0.9b-iy-8-LittleFS.bin b/binaries/HeishaMon.ino.d1-v0.9b-iy-8-LittleFS.bin new file mode 100644 index 0000000000000000000000000000000000000000..c4ade9ba3c4ec09b677798ff1e8a0213c4a0bcd4 GIT binary patch literal 443408 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