allow creation of DeviceConfig only with factory method
This commit is contained in:
parent
e9c404a4d5
commit
2706b6f1a5
@ -6,7 +6,7 @@
|
||||
|
||||
using namespace Ha;
|
||||
|
||||
DeviceConfig* gatewayDevice = (new DeviceConfig{MAIN_DEVICE_ID})->withName("RC Gateway")->withManufacturer("Adafruit")->withModel("Huzzah Esp8266");
|
||||
auto gatewayDevice = DeviceConfig::create(MAIN_DEVICE_ID)->withName("RC Gateway")->withManufacturer("Adafruit")->withModel("Huzzah Esp8266");
|
||||
|
||||
namespace OilTank {
|
||||
Sensor* buildRoomSensor(const char* id) {
|
||||
@ -60,7 +60,7 @@ struct PollinSwitch : Switch {
|
||||
strcpy(uId, s.c_str());
|
||||
return uId;
|
||||
}()), group(group), channel(channel) {
|
||||
mainDevice = (new DeviceConfig{id})->withName(name)->withManufacturer("Pollin")->withArea(area)->withParent(gatewayDevice);
|
||||
mainDevice = DeviceConfig::create(id)->withName(name)->withManufacturer("Pollin")->withArea(area)->withParent(gatewayDevice);
|
||||
deviceClass = "outlet";
|
||||
p1Switches.insert({ string(id), this });
|
||||
}
|
||||
@ -80,7 +80,7 @@ struct EasyHomeSwitch : Switch {
|
||||
: Switch(name, id) {
|
||||
memcpy(&this->on[4], on, 4 * sizeof(unsigned long));
|
||||
memcpy(&this->off[4], off, 4 * sizeof(unsigned long));
|
||||
mainDevice = (new DeviceConfig{id})->withName(name)->withManufacturer("Intertek")->withModel("Easy Home")->withArea(area)->withParent(gatewayDevice);
|
||||
mainDevice = DeviceConfig::create(id)->withName(name)->withManufacturer("Intertek")->withModel("Easy Home")->withArea(area)->withParent(gatewayDevice);
|
||||
deviceClass = "outlet";
|
||||
for (int i = 0; i < 8; i++) {
|
||||
onSwitches.insert({ this->on[i], this });
|
||||
|
||||
@ -18,8 +18,6 @@ namespace Ha {
|
||||
const char* area = nullptr;
|
||||
DeviceConfig* parent = nullptr;
|
||||
|
||||
DeviceConfig(const char* id) : id(id) {}
|
||||
|
||||
static DeviceConfig* create(const char* id) {
|
||||
return new DeviceConfig{ id };
|
||||
}
|
||||
@ -59,6 +57,9 @@ namespace Ha {
|
||||
parent = deviceConfig;
|
||||
return this;
|
||||
}
|
||||
|
||||
protected:
|
||||
DeviceConfig(const char* id) : id(id) {}
|
||||
};
|
||||
|
||||
struct Component {
|
||||
@ -162,13 +163,13 @@ namespace Ha {
|
||||
}
|
||||
|
||||
Builder& withSecondary(Component* c) {
|
||||
c->mainDevice = new DeviceConfig{ cmp->id };
|
||||
c->mainDevice = DeviceConfig::create(cmp->id);
|
||||
return *this;
|
||||
}
|
||||
|
||||
Builder& withDiagnostic(Component* c) {
|
||||
c->entityCategory = "diagnostic";
|
||||
c->mainDevice = new DeviceConfig{ cmp->id };
|
||||
c->mainDevice = DeviceConfig::create(cmp->id);
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user