mirror of
https://github.com/openshwprojects/OpenBK7231T_App.git
synced 2026-03-22 15:16:53 +01:00
rgbcw discovery self test
This commit is contained in:
@@ -120,7 +120,48 @@ void Test_HassDiscovery_LED_RGB() {
|
||||
}
|
||||
|
||||
void Test_HassDiscovery_LED_RGBCW() {
|
||||
// TODO
|
||||
const char *shortName = "RGBCWtest";
|
||||
const char *fullName = "Windows Fake RGBCW";
|
||||
const char *mqttName = "testRGBCW";
|
||||
|
||||
SIM_ClearOBK(shortName);
|
||||
SIM_ClearAndPrepareForMQTTTesting(mqttName, "bekens");
|
||||
|
||||
PIN_SetPinRoleForPinIndex(24, IOR_PWM);
|
||||
PIN_SetPinChannelForPinIndex(24, 1);
|
||||
|
||||
PIN_SetPinRoleForPinIndex(26, IOR_PWM);
|
||||
PIN_SetPinChannelForPinIndex(26, 2);
|
||||
|
||||
PIN_SetPinRoleForPinIndex(9, IOR_PWM);
|
||||
PIN_SetPinChannelForPinIndex(9, 3);
|
||||
|
||||
PIN_SetPinRoleForPinIndex(6, IOR_PWM);
|
||||
PIN_SetPinChannelForPinIndex(6, 4);
|
||||
|
||||
PIN_SetPinRoleForPinIndex(7, IOR_PWM);
|
||||
PIN_SetPinChannelForPinIndex(7, 5);
|
||||
|
||||
SIM_ClearMQTTHistory();
|
||||
|
||||
CMD_ExecuteCommand("scheduleHADiscovery 1", 0);
|
||||
Sim_RunSeconds(10, false);
|
||||
|
||||
|
||||
// OBK device should publish JSON on MQTT topic "homeassistant"
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT("homeassistant", true);
|
||||
//SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, "dev", 0, "name", shortName);
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "bri_cmd_t", "cmnd/testRGBCW/led_dimmer");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "bri_stat_t", "~/led_dimmer/get");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "bri_scl", "100");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "~", mqttName);
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "rgb_stat_t", "~/led_basecolor_rgb/get");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "rgb_cmd_t", "cmnd/testRGBCW/led_basecolor_rgb");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "clr_temp_cmd_t", "cmnd/testRGBCW/led_temperature");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "clr_temp_stat_t", "~/led_temperature/get");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "cmd_t", "cmnd/testRGBCW/led_enableAll");
|
||||
SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "stat_t", "~/led_enableAll/get");
|
||||
|
||||
}
|
||||
void Test_HassDiscovery_LED_SingleColor() {
|
||||
// TODO
|
||||
|
||||
@@ -65,6 +65,18 @@ bool SIM_CheckMQTTHistoryForString(const char *topic, const char *value, bool bR
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool ST_IsIntegerString(const char *s) {
|
||||
if (s == 0)
|
||||
return false;
|
||||
if (*s == 0)
|
||||
return false;
|
||||
while (*s) {
|
||||
if (isdigit(*s) == false)
|
||||
return false;
|
||||
s++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool SIM_HasMQTTHistoryStringWithJSONPayload(const char *topic, bool bPrefixMode, const char *object1, const char *object2, const char *key, const char *value) {
|
||||
mqttHistoryEntry_t *ne;
|
||||
int cur = history_tail;
|
||||
@@ -96,9 +108,21 @@ bool SIM_HasMQTTHistoryStringWithJSONPayload(const char *topic, bool bPrefixMode
|
||||
if (tmp) {
|
||||
tmp = cJSON_GetObjectItemCaseSensitive(tmp, key);
|
||||
if (tmp) {
|
||||
const char *ret = tmp->valuestring;
|
||||
if (!strcmp(ret, value)) {
|
||||
return true;
|
||||
if (tmp->valuestring) {
|
||||
const char *ret = tmp->valuestring;
|
||||
if (!strcmp(ret, value)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (ST_IsIntegerString(value)) {
|
||||
if (atoi(value) == tmp->valueint) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
printf("TODO: float compare selftest");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user