Browse Source

Add a separate incremental energy counter into the Domoticz MQTT interface

fastled
Toni Arte 7 years ago
parent
commit
2f12e66b79
4 changed files with 16 additions and 4 deletions
  1. +4
    -2
      code/espurna/emon.ino
  2. +4
    -2
      code/espurna/pow.ino
  3. +2
    -0
      code/espurna/web.ino
  4. +6
    -0
      code/html/index.html

+ 4
- 2
code/espurna/emon.ino View File

@ -158,8 +158,8 @@ void powerMonitorLoop() {
snprintf(power, 6, "%d", _power);
double energy_inc = (double) _power * EMON_INTERVAL * EMON_MEASUREMENTS / 1000.0 / 3600.0;
char energy_buf[10];
dtostrf(energy_inc, 9, 2, energy_buf);
char energy_buf[11];
dtostrf(energy_inc, 11, 3, energy_buf);
char *e = energy_buf;
while ((unsigned char) *e == ' ') ++e;
@ -171,6 +171,8 @@ void powerMonitorLoop() {
char buffer[20];
snprintf(buffer, 20, "%s;%s", power, e);
domoticzSend("dczPowIdx", 0, buffer);
snprintf(buffer, 20, "%s", e);
domoticzSend("dczEnergyIdx", 0, buffer);
snprintf(buffer, 20, "%d", voltage);
domoticzSend("dczVoltIdx", 0, buffer);
snprintf(buffer, 20, "%s", String(current).c_str());


+ 4
- 2
code/espurna/pow.ino View File

@ -219,8 +219,8 @@ void powLoop() {
if (factor > 100) factor = 100;
double energy_inc = (double) power * POW_REPORT_EVERY * POW_UPDATE_INTERVAL / 1000.0 / 3600.0;
char energy_buf[10];
dtostrf(energy_inc, 9, 2, energy_buf);
char energy_buf[11];
dtostrf(energy_inc, 11, 3, energy_buf);
char *e = energy_buf;
while ((unsigned char) *e == ' ') ++e;
@ -237,6 +237,8 @@ void powLoop() {
char buffer[20];
snprintf(buffer, 20, "%d;%s", power, e);
domoticzSend("dczPowIdx", 0, buffer);
snprintf(buffer, 20, "%s", e);
domoticzSend("dczEnergyIdx", 0, buffer);
snprintf(buffer, 20, "%d", voltage);
domoticzSend("dczVoltIdx", 0, buffer);
snprintf(buffer, 20, "%s", String(current).c_str());


+ 2
- 0
code/espurna/web.ino View File

@ -350,12 +350,14 @@ void _wsStart(uint32_t client_id) {
#if ENABLE_EMON
root["dczPowIdx"] = getSetting("dczPowIdx").toInt();
root["dczEnergyIdx"] = getSetting("dczEnergyIdx").toInt();
root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt();
root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt();
#endif
#if ENABLE_POW
root["dczPowIdx"] = getSetting("dczPowIdx").toInt();
root["dczEnergyIdx"] = getSetting("dczEnergyIdx").toInt();
root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt();
root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt();
#endif


+ 6
- 0
code/html/index.html View File

@ -409,6 +409,12 @@
<div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div>
</div>
<div class="pure-g module module-pow module-emon">
<label class="pure-u-1 pure-u-sm-1-4" for="dczEnergyIdx">Energy increment IDX</label>
<div class="pure-u-1 pure-u-sm-1-8"><input class="pure-u-sm-23-24" name="dczEnergyIdx" type="number" min="0" tabindex="36" data="0" /></div>
<div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div>
</div>
<div class="pure-g module module-pow module-emon">
<label class="pure-u-1 pure-u-sm-1-4" for="dczVoltIdx">Voltage IDX</label>
<div class="pure-u-1 pure-u-sm-1-8"><input class="pure-u-sm-23-24" name="dczVoltIdx" type="number" min="0" tabindex="36" data="0" /></div>


Loading…
Cancel
Save