diff --git a/mos.yml b/mos.yml index f714584..ba97061 100644 --- a/mos.yml +++ b/mos.yml @@ -42,6 +42,7 @@ config_schema: - ["app.hostname", "sonoff-sv"] - ["app.config", "s", {title: "Application specific config file"}] - ["app.config", "sonoff-basic.json"] + - ["app.dht_gpio", "s", "5,4,14", {title: "Comma Separated list of GPIO pins to enable DHT22/AM2302 sensors on"}] #build_vars: diff --git a/src/dht.c b/src/dht.c index 46dc6d7..ef158da 100644 --- a/src/dht.c +++ b/src/dht.c @@ -3,6 +3,7 @@ #ifdef MGOS_HAVE_DHT #include "main.h" #include "mgos_dht.h" +#include "mgos_config.h" #include "mqtt.h" #define MAX_DHT 8 @@ -44,12 +45,17 @@ static bool dht_create(int pin, enum dht_type type) { } void dht_init() { + char *tok; + memset(s_dht, 0, sizeof (struct mgos_dht *) * MAX_DHT); - dht_create(5, AM2302); - mgos_msleep(250); - dht_create(4, AM2302); - mgos_msleep(250); - dht_create(14, AM2302); + tok = strtok((char *)mgos_sys_config_get_app_dht_gpio(), ", "); + while (tok) { + int gpio; + gpio = atoi(tok); + tok=strtok(NULL, ", "); + dht_create(gpio, AM2302); + mgos_msleep(250); + } } #else