mirror of
https://github.com/alexhopeoconnor/arduino-home-assistant.git
synced 2026-10-04 02:48:13 +10:00
Added support for object_id in all device types (#223)
* added support for the object_id property in all device types * added tests
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
* Added support for the `expire_after` property in the `HASensor` [#171](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/171)
|
||||
* Added support for the `expire_after` property in the `HABinarySensor` [#159](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/159)
|
||||
* Added support for the JSON attributes in the `HASensor`
|
||||
* Added support for the `object_id` property in all device types
|
||||
|
||||
**Fixes:**
|
||||
* Fixed a bug with the maximum number of device types ([#190](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/190) by [@martaisty](https://github.com/martaisty))
|
||||
|
||||
@@ -11,6 +11,7 @@ HABaseDeviceType::HABaseDeviceType(
|
||||
_componentName(componentName),
|
||||
_uniqueId(uniqueId),
|
||||
_name(nullptr),
|
||||
_objectId(nullptr),
|
||||
_serializer(nullptr),
|
||||
_availability(AvailabilityDefault)
|
||||
{
|
||||
|
||||
@@ -78,6 +78,22 @@ public:
|
||||
inline const char* getName() const
|
||||
{ return _name; }
|
||||
|
||||
/**
|
||||
* Sets object ID that will be used by HA to generate entity ID.
|
||||
* Keep the ID short to save the resources.
|
||||
*
|
||||
* @param objectId The object ID.
|
||||
*/
|
||||
inline void setObjectId(const char* objectId)
|
||||
{ _objectId = objectId; }
|
||||
|
||||
/**
|
||||
* Returns the object ID that was set by setObjectId method.
|
||||
* It can be nullptr if there is no ID assigned.
|
||||
*/
|
||||
inline const char* getObjectId() const
|
||||
{ return _objectId; }
|
||||
|
||||
/**
|
||||
* Sets availability of the device type.
|
||||
* Setting the initial availability enables availability reporting for this device type.
|
||||
@@ -209,6 +225,9 @@ protected:
|
||||
/// The name that was set using setName method. It can be nullptr.
|
||||
const char* _name;
|
||||
|
||||
/// The object ID that was set using setObjectId method. It can be nullptr.
|
||||
const char* _objectId;
|
||||
|
||||
/// HASerializer that belongs to this device type. It can be nullptr.
|
||||
HASerializer* _serializer;
|
||||
|
||||
|
||||
@@ -42,8 +42,9 @@ void HABinarySensor::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
@@ -20,8 +20,9 @@ void HAButton::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
@@ -27,8 +27,9 @@ void HACamera::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
|
||||
@@ -54,8 +54,9 @@ void HACover::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer = new HASerializer(this, 12); // 12 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
@@ -33,8 +33,9 @@ void HADeviceTracker::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
|
||||
@@ -55,8 +55,9 @@ void HAFan::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 13); // 13 - max properties nb
|
||||
_serializer = new HASerializer(this, 14); // 14 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -183,8 +183,9 @@ void HAHVAC::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 27); // 27 - max properties nb
|
||||
_serializer = new HASerializer(this, 28); // 28 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -128,8 +128,9 @@ void HALight::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 18); // 18 - max properties nb
|
||||
_serializer = new HASerializer(this, 19); // 19 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -35,8 +35,9 @@ void HALock::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ void HANumber::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 15); // 15 - max properties nb
|
||||
|
||||
_serializer = new HASerializer(this, 16); // 16 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
@@ -19,8 +19,9 @@ void HAScene::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -96,8 +96,9 @@ void HASelect::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
|
||||
@@ -46,8 +46,9 @@ void HASensor::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 12); // 12 - max properties nb
|
||||
_serializer = new HASerializer(this, 13); // 13 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _deviceClass);
|
||||
_serializer->set(AHATOFSTR(HAStateClassProperty), _stateClass);
|
||||
|
||||
@@ -36,8 +36,9 @@ void HASwitch::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
@@ -39,6 +39,7 @@ const char HADeviceSoftwareVersionProperty[] PROGMEM = {"sw"};
|
||||
const char HADeviceConfigurationUrlProperty[] PROGMEM = {"cu"};
|
||||
const char HANameProperty[] PROGMEM = {"name"};
|
||||
const char HAUniqueIdProperty[] PROGMEM = {"uniq_id"};
|
||||
const char HAObjectIdProperty[] PROGMEM = {"obj_id"};
|
||||
const char HADeviceProperty[] PROGMEM = {"dev"};
|
||||
const char HADeviceClassProperty[] PROGMEM = {"dev_cla"};
|
||||
const char HAStateClassProperty[] PROGMEM = {"stat_cla"};
|
||||
|
||||
@@ -39,6 +39,7 @@ extern const char HADeviceSoftwareVersionProperty[];
|
||||
extern const char HADeviceConfigurationUrlProperty[];
|
||||
extern const char HANameProperty[];
|
||||
extern const char HAUniqueIdProperty[];
|
||||
extern const char HAObjectIdProperty[];
|
||||
extern const char HADeviceProperty[];
|
||||
extern const char HADeviceClassProperty[];
|
||||
extern const char HAStateClassProperty[];
|
||||
|
||||
@@ -53,6 +53,13 @@ AHA_TEST(BaseDeviceTypeTest, name_setter) {
|
||||
assertEqual(name, deviceType.getName());
|
||||
}
|
||||
|
||||
AHA_TEST(BaseDeviceTypeTest, object_id_setter) {
|
||||
const char* objectId = "testId";
|
||||
DummyDeviceType deviceType(AHATOFSTR(ComponentNameStr), testUniqueId);
|
||||
deviceType.setObjectId(objectId);
|
||||
assertEqual(objectId, deviceType.getObjectId());
|
||||
}
|
||||
|
||||
AHA_TEST(BaseDeviceTypeTest, default_availability) {
|
||||
DummyDeviceType deviceType(AHATOFSTR(ComponentNameStr), testUniqueId);
|
||||
assertFalse(deviceType.isAvailabilityConfigured());
|
||||
|
||||
@@ -100,6 +100,26 @@ AHA_TEST(BinarySensorTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(BinarySensorTest, object_id_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
HABinarySensor sensor(testUniqueId);
|
||||
sensor.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
sensor,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueSensor\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueSensor/stat_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(BinarySensorTest, device_class) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
|
||||
@@ -129,6 +129,26 @@ AHA_TEST(ButtonTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(ButtonTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HAButton button(testUniqueId);
|
||||
button.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
button,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueButton\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueButton/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(ButtonTest, device_class) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -70,6 +70,47 @@ AHA_TEST(CameraTest, availability) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(CameraTest, name_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
HACamera camera(testUniqueId);
|
||||
camera.setName("testName");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
camera,
|
||||
(
|
||||
"{"
|
||||
"\"name\":\"testName\","
|
||||
"\"uniq_id\":\"uniqueCamera\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"t\":\"testData/testDevice/uniqueCamera/t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(CameraTest, object_id_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
HACamera camera(testUniqueId);
|
||||
camera.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
camera,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueCamera\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"t\":\"testData/testDevice/uniqueCamera/t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
AHA_TEST(CameraTest, icon_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
|
||||
@@ -196,6 +196,27 @@ AHA_TEST(CoverTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(CoverTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HACover cover(testUniqueId);
|
||||
cover.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
cover,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueCover\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueCover/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueCover/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(CoverTest, device_class) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -178,6 +178,26 @@ AHA_TEST(DeviceTrackerTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(DeviceTrackerTest, object_id_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
HADeviceTracker tracker(testUniqueId);
|
||||
tracker.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
tracker,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueTracker\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueTracker/stat_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(DeviceTrackerTest, icon_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
|
||||
@@ -240,6 +240,27 @@ AHA_TEST(FanTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(FanTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HAFan fan(testUniqueId);
|
||||
fan.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
fan,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueFan\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueFan/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueFan/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(FanTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -548,6 +548,26 @@ AHA_TEST(HVACTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(HVACTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HAHVAC hvac(testUniqueId);
|
||||
hvac.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
hvac,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueHVAC\","
|
||||
"\"curr_temp_t\":\"testData/testDevice/uniqueHVAC/curr_temp_t\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"}"
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(HVACTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -423,6 +423,27 @@ AHA_TEST(LightTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(LightTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HALight light(testUniqueId);
|
||||
light.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
light,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueLight\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueLight/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueLight/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(LightTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -160,6 +160,27 @@ AHA_TEST(LockTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(LockTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HALock lock(testUniqueId);
|
||||
lock.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
lock,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueLock\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueLock/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueLock/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(LockTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -335,6 +335,27 @@ AHA_TEST(NumberTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(NumberTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HANumber number(testUniqueId);
|
||||
number.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
number,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueNumber\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueNumber/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueNumber/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(NumberTest, device_class) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -129,6 +129,26 @@ AHA_TEST(SceneTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SceneTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HAScene scene(testUniqueId);
|
||||
scene.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
scene,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueScene\","
|
||||
"\"pl_on\":\"ON\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueScene/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SceneTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -244,6 +244,29 @@ AHA_TEST(SelectTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SelectTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HASelect select(testUniqueId);
|
||||
select.setOptions("Option A;B;C");
|
||||
select.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
select,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueSelect\","
|
||||
"\"options\":[\"Option A\",\"B\",\"C\"],"
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueSelect/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueSelect/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SelectTest, icon_setter) {
|
||||
prepareTest
|
||||
|
||||
|
||||
@@ -90,6 +90,26 @@ AHA_TEST(SensorTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SensorTest, object_id_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
HASensor sensor(testUniqueId);
|
||||
sensor.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
sensor,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueSensor\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueSensor/stat_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SensorTest, device_class_setter) {
|
||||
initMqttTest(testDeviceId)
|
||||
|
||||
|
||||
@@ -160,6 +160,27 @@ AHA_TEST(SwitchTest, name_setter) {
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SwitchTest, object_id_setter) {
|
||||
prepareTest
|
||||
|
||||
HASwitch testSwitch(testUniqueId);
|
||||
testSwitch.setObjectId("testId");
|
||||
|
||||
assertEntityConfig(
|
||||
mock,
|
||||
testSwitch,
|
||||
(
|
||||
"{"
|
||||
"\"obj_id\":\"testId\","
|
||||
"\"uniq_id\":\"uniqueSwitch\","
|
||||
"\"dev\":{\"ids\":\"testDevice\"},"
|
||||
"\"stat_t\":\"testData/testDevice/uniqueSwitch/stat_t\","
|
||||
"\"cmd_t\":\"testData/testDevice/uniqueSwitch/cmd_t\""
|
||||
"}"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
AHA_TEST(SwitchTest, device_class) {
|
||||
prepareTest
|
||||
|
||||
|
||||
Reference in New Issue
Block a user