4#ifndef SRC_SUPLA_SUPLET_THERMOMETER_GROUP_H_
5#define SRC_SUPLA_SUPLET_THERMOMETER_GROUP_H_
8#include <supla/suplet/virtual_channel.h>
10#ifndef SUPLA_SUPLET_THERMOMETER_GROUP_MAX_SOURCES
11#define SUPLA_SUPLET_THERMOMETER_GROUP_MAX_SOURCES 8
17enum class ThermometerGroupMode : uint8_t {
25 ThermometerGroupMode mode = ThermometerGroupMode::Avg;
26 uint16_t refreshIntervalMs = 1000;
27 uint8_t sourceCount = 0;
28 int16_t sourceChannels[SUPLA_SUPLET_THERMOMETER_GROUP_MAX_SOURCES] = {};
38 double calculateValue()
const;
43 bool hasOnlineSource =
false;
44 bool hasValidValue =
false;
45 double value = TEMPERATURE_NOT_AVAILABLE;
48 static bool isValidTemperature(
double value);
49 GroupValue calculateGroupValue()
const;
52 uint32_t lastRefreshMs = 0;
55bool parseThermometerGroupConfig(
const uint8_t *data,
57 ThermometerGroupConfig *config);
58bool serializeThermometerGroupConfig(
const ThermometerGroupConfig &config,
61 uint16_t *writtenSize =
nullptr);
Definition thermometer_group.h:31
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition virtual_channel.h:39
Definition thermometer_group.h:23