Merge pull request #9138 from hallard/teleinfo

Added teleinfo base index contract management
This commit is contained in:
Theo Arends 2020-08-21 13:38:51 +02:00 committed by GitHub
commit 7d6b7f206b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 39 additions and 6 deletions

View File

@ -240,22 +240,51 @@ void DataCallback(struct _ValueList * me, uint8_t flags)
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: Power %s, now %d"), me->value, (int) Energy.active_power[0]); AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: Power %s, now %d"), me->value, (int) Energy.active_power[0]);
} }
// Wh total base index (legacy)
else if ( ilabel == LABEL_BASE)
{
uint32_t total = atoi(me->value);
if (!Settings.flag4.teleinfo_rawdata) {
EnergyUpdateTotal(total/1000.0f, true);
}
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: Base:%uWh"), total);
}
// Wh indexes (legacy) // Wh indexes (legacy)
else if ( ilabel == LABEL_HCHC || ilabel == LABEL_HCHP) else if ( ilabel == LABEL_HCHC || ilabel == LABEL_HCHP || ilabel == LABEL_BASE)
{ {
char value[32]; char value[32];
uint32_t hc = 0; uint32_t hc = 0;
uint32_t hp = 0; uint32_t hp = 0;
uint32_t total = 0; uint32_t total = 0;
if ( getValueFromLabelIndex(LABEL_HCHC, value) ) { hc = atoi(value);} // Base, un seul index
if ( getValueFromLabelIndex(LABEL_HCHP, value) ) { hp = atoi(value);} if (ilabel == LABEL_BASE) {
total = atoi(me->value);
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: Total:%u"), total);
// Heures creuses/pleines calculer total
} else {
// Heures creuses get heures pleines
if (ilabel == LABEL_HCHC) {
hc = atoi(me->value);
if ( getValueFromLabelIndex(LABEL_HCHP, value) ) {
hp = atoi(value);
}
// Heures pleines, get heures creuses
} else if (ilabel == LABEL_HCHP) {
hp = atoi(me->value);
if ( getValueFromLabelIndex(LABEL_HCHC, value) ) {
hc = atoi(value);
}
}
total = hc + hp; total = hc + hp;
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: HC:%u HP:%u Total:%u"), hc, hp, total);
}
if (!Settings.flag4.teleinfo_rawdata) { if (!Settings.flag4.teleinfo_rawdata) {
EnergyUpdateTotal(total/1000.0f, true); EnergyUpdateTotal(total/1000.0f, true);
} }
AddLog_P2(LOG_LEVEL_DEBUG, PSTR("TIC: HC:%u HP:%u Total:%u"), hc, hp, total);
} }
// Wh total index (standard) // Wh total index (standard)
@ -562,6 +591,10 @@ void TInfoShow(bool json)
char name[32]; char name[32];
char value[32]; char value[32];
if (getValueFromLabelIndex(LABEL_BASE, value) ) {
GetTextIndexed(name, sizeof(name), LABEL_BASE, kLabel);
WSContentSend_PD(HTTP_ENERGY_INDEX_TELEINFO, name, value);
}
if (getValueFromLabelIndex(LABEL_HCHC, value) ) { if (getValueFromLabelIndex(LABEL_HCHC, value) ) {
GetTextIndexed(name, sizeof(name), LABEL_HCHC, kLabel); GetTextIndexed(name, sizeof(name), LABEL_HCHC, kLabel);
WSContentSend_PD(HTTP_ENERGY_INDEX_TELEINFO, name, value); WSContentSend_PD(HTTP_ENERGY_INDEX_TELEINFO, name, value);