From 005b1e5ad98e93f40495f0903b87ffc2a7eaee77 Mon Sep 17 00:00:00 2001 From: Tester23 Date: Mon, 25 Sep 2023 11:17:04 +0200 Subject: [PATCH] RGBW discovery self test for Windows --- src/httpserver/http_fns.c | 1 + src/selftest/selftest_hass_discovery.c | 44 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index 88ee33648..b15545c5b 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -1658,6 +1658,7 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) { #endif PIN_get_Relay_PWM_Count(&relayCount, &pwmCount, &dInputCount); + addLogAdv(LOG_INFO, LOG_FEATURE_HTTP, "HASS counts: %i rels, %i pwms, %i inps", relayCount, pwmCount, dInputCount); ledDriverChipRunning = LED_IsLedDriverChipRunning(); diff --git a/src/selftest/selftest_hass_discovery.c b/src/selftest/selftest_hass_discovery.c index 8f4a6ef1e..35649fd5f 100644 --- a/src/selftest/selftest_hass_discovery.c +++ b/src/selftest/selftest_hass_discovery.c @@ -162,6 +162,49 @@ void Test_HassDiscovery_LED_RGBCW() { 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_RGBW() { + const char *shortName = "RGBWtest"; + const char *fullName = "Windows Fake RGBW"; + const char *mqttName = "testRGBW"; + + 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); + + CFG_SetFlag(OBK_FLAG_LED_EMULATE_COOL_WITH_RGB, 1); + + 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/testRGBW/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/testRGBW/led_basecolor_rgb"); + SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "clr_temp_cmd_t", "cmnd/testRGBW/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/testRGBW/led_enableAll"); + SELFTEST_ASSERT_HAS_MQTT_JSON_SENT_ANY("homeassistant", true, 0, 0, "stat_t", "~/led_enableAll/get"); + } void Test_HassDiscovery_LED_SingleColor() { // TODO @@ -378,6 +421,7 @@ void Test_HassDiscovery() { Test_HassDiscovery_LED_RGB(); Test_HassDiscovery_LED_RGBCW(); Test_HassDiscovery_LED_SingleColor(); + Test_HassDiscovery_LED_RGBW(); Test_HassDiscovery_DHT11(); Test_HassDiscovery_digitalInput(); }