Newer
Older
// Bedeutungen:
// smart (versorge bis aus - unabhängig von Solar),
// versorge durchgäng, aber ggf. mit demand() =0 - unabhängig von Solar
// auto (versorge wenn ausreichend Solar)
HotwaterControl::HotwaterControl(SHactuator *swtch, QObject *parent) :
HeatControl(nullptr, swtch, 0.0, 0.0, startTimeDayDefault, startTimeNightDefault, parent) {
if (m_switch->url() == "")
throw std::invalid_argument("HotwaterControl::HotwaterControl: no url (must be Tasmota)");
m_consumer = new SHsensor(m_switch->nodeID(), SHsensor::powerSensor, m_switch->url());
}
/*
*
*/
int HotwaterControl::currentDemand() const
int ivalue;
bool ok;
ivalue = svalue.toUInt(&ok);
if (not ok)
ivalue = 0; // diskuabel!
int HotwaterControl::relevantDemand() const
{
if (suspended())
return 0;
else
return demand();
}
/*
*
*/
int HotwaterControl::demand() const
{
if (state() == SHactuator::State::ON)
return currentDemand();
else
return m_switch->powerDemand();
}
/*
*
*/
bool HotwaterControl::maxReached() const
{
return (relevantDemand() <= 0); // ggf. <= 10 o.Ä.
/*
*
*/
bool HotwaterControl::minReached() const
{
return maxReached();
}
int HotwaterControl::suspensionTime() const
return 30; // min