17#ifndef SRC_SUPLA_SENSOR_MULTI_DS_SENSOR_H_
18#define SRC_SUPLA_SENSOR_MULTI_DS_SENSOR_H_
20#include <supla/sensor/thermometer.h>
21#include <supla/storage/storage.h>
22#include <supla/storage/config.h>
26#include <DallasTemperature.h>
36 uint8_t channelNumber = 0;
37 uint8_t address[8] = {};
41class MultiDsSensor :
public Thermometer {
43 explicit MultiDsSensor(
int subDeviceId,
44 uint8_t *deviceAddress,
bool useSubDevices,
46 subDeviceId(subDeviceId), handler(handler) {
48 channel.setSubDeviceId(subDeviceId);
50 memcpy(address, deviceAddress, 8);
55 double getValue()
override;
57 void saveSensorConfig();
60 uint8_t *getAddress() {
64 int getSubDeviceId() {
69 return channel.getSubDeviceId() == subDeviceId;
72 void setDetailsSend(
bool send) { detailsSend = send; }
73 bool getDetailsSend() {
return detailsSend; }
77 DeviceAddress address;
81 int8_t retryCounter = 0;
82 double lastValidValue = TEMPERATURE_NOT_AVAILABLE;
83 bool detailsSend =
false;
Definition multi_ds_handler_base.h:44
void purgeConfig()
Removes all configration data related to the element from Storage::Config.
Definition multi_ds_sensor.cpp:84
void onInit() override
Third method called on element in SuplaDevice.begin().
Definition multi_ds_sensor.cpp:25
void iterateAlways() override
Method called on each SuplaDevice iteration.
Definition multi_ds_sensor.cpp:29
bool isOwnerOfSubDeviceId(int subDeviceId) const override
Returns true if element is owner of subDeviceId.
Definition multi_ds_sensor.h:68
Definition multi_ds_sensor.h:35