mirror of https://github.com/arendst/Tasmota.git
Merge pull request #9138 from hallard/teleinfo
Added teleinfo base index contract management
This commit is contained in:
commit
7d6b7f206b
|
@ -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 = hc + hp;
|
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;
|
||||||
|
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);
|
||||||
|
|
Loading…
Reference in New Issue