Browse Source

Merged in ToniAr/espurna/sonoff_pow_domoticz_energyincrement (pull request #11)

Add a separate incremental energy counter into the Domoticz MQTT interface
fastled
ToniA 7 years ago
committed by Xose Pérez
parent
commit
b5e59e9017
4 changed files with 18 additions and 6 deletions
  1. +4
    -2
      code/espurna/emon.ino
  2. +4
    -2
      code/espurna/pow.ino
  3. +2
    -0
      code/espurna/web.ino
  4. +8
    -2
      code/html/index.html

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

@ -158,8 +158,8 @@ void powerMonitorLoop() {
snprintf(power, 6, "%d", _power); snprintf(power, 6, "%d", _power);
double energy_inc = (double) _power * EMON_INTERVAL * EMON_MEASUREMENTS / 1000.0 / 3600.0; 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; char *e = energy_buf;
while ((unsigned char) *e == ' ') ++e; while ((unsigned char) *e == ' ') ++e;
@ -171,6 +171,8 @@ void powerMonitorLoop() {
char buffer[20]; char buffer[20];
snprintf(buffer, 20, "%s;%s", power, e); snprintf(buffer, 20, "%s;%s", power, e);
domoticzSend("dczPowIdx", 0, buffer); domoticzSend("dczPowIdx", 0, buffer);
snprintf(buffer, 20, "%s", e);
domoticzSend("dczEnergyIdx", 0, buffer);
snprintf(buffer, 20, "%d", voltage); snprintf(buffer, 20, "%d", voltage);
domoticzSend("dczVoltIdx", 0, buffer); domoticzSend("dczVoltIdx", 0, buffer);
snprintf(buffer, 20, "%s", String(current).c_str()); 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; if (factor > 100) factor = 100;
double energy_inc = (double) power * POW_REPORT_EVERY * POW_UPDATE_INTERVAL / 1000.0 / 3600.0; 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; char *e = energy_buf;
while ((unsigned char) *e == ' ') ++e; while ((unsigned char) *e == ' ') ++e;
@ -237,6 +237,8 @@ void powLoop() {
char buffer[20]; char buffer[20];
snprintf(buffer, 20, "%d;%s", power, e); snprintf(buffer, 20, "%d;%s", power, e);
domoticzSend("dczPowIdx", 0, buffer); domoticzSend("dczPowIdx", 0, buffer);
snprintf(buffer, 20, "%s", e);
domoticzSend("dczEnergyIdx", 0, buffer);
snprintf(buffer, 20, "%d", voltage); snprintf(buffer, 20, "%d", voltage);
domoticzSend("dczVoltIdx", 0, buffer); domoticzSend("dczVoltIdx", 0, buffer);
snprintf(buffer, 20, "%s", String(current).c_str()); 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 #if ENABLE_EMON
root["dczPowIdx"] = getSetting("dczPowIdx").toInt(); root["dczPowIdx"] = getSetting("dczPowIdx").toInt();
root["dczEnergyIdx"] = getSetting("dczEnergyIdx").toInt();
root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt(); root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt();
root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt(); root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt();
#endif #endif
#if ENABLE_POW #if ENABLE_POW
root["dczPowIdx"] = getSetting("dczPowIdx").toInt(); root["dczPowIdx"] = getSetting("dczPowIdx").toInt();
root["dczEnergyIdx"] = getSetting("dczEnergyIdx").toInt();
root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt(); root["dczVoltIdx"] = getSetting("dczVoltIdx").toInt();
root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt(); root["dczCurrentIdx"] = getSetting("dczCurrentIdx").toInt();
#endif #endif


+ 8
- 2
code/html/index.html View File

@ -409,15 +409,21 @@
<div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div> <div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div>
</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"> <div class="pure-g module module-pow module-emon">
<label class="pure-u-1 pure-u-sm-1-4" for="dczVoltIdx">Voltage IDX</label> <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>
<div class="pure-u-1 pure-u-sm-1-8"><input class="pure-u-sm-23-24" name="dczVoltIdx" type="number" min="0" tabindex="37" data="0" /></div>
<div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div> <div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div>
</div> </div>
<div class="pure-g module module-pow module-emon"> <div class="pure-g module module-pow module-emon">
<label class="pure-u-1 pure-u-sm-1-4" for="dczCurrentIdx">Current IDX</label> <label class="pure-u-1 pure-u-sm-1-4" for="dczCurrentIdx">Current IDX</label>
<div class="pure-u-1 pure-u-sm-1-8"><input class="pure-u-sm-23-24" name="dczCurrentIdx" type="number" min="0" tabindex="36" data="0" /></div>
<div class="pure-u-1 pure-u-sm-1-8"><input class="pure-u-sm-23-24" name="dczCurrentIdx" type="number" min="0" tabindex="38" data="0" /></div>
<div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div> <div class="pure-u-1 pure-u-sm-5-8 hint center">Set to 0 to disable notifications.</div>
</div> </div>


Loading…
Cancel
Save