From 3ef6cf39749c00366b12aef9f023aac3bda16f2d Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Mon, 17 Nov 2025 23:39:25 +0800
Subject: [PATCH] update modules for tsl2561 and ds18b20

---
 project/lightd/config.c |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/project/lightd/config.c b/project/lightd/config.c
index f9c646c..4f2b261 100644
--- a/project/lightd/config.c
+++ b/project/lightd/config.c
@@ -41,6 +41,7 @@
     logger = &ctx->logger;
     hwinfo = &ctx->hwinfo;
     mqtt = &ctx->mqtt;
+    mqtt->userdata = (void *)hwinfo;
 
     ini = iniparser_load(conf_file);
     if( !ini )
@@ -94,7 +95,25 @@
      *|       parser hardware module configuration           |
      *+------------------------------------------------------+*/
 
-    /* parser GPIO output pins  */
+    /* DS18B20 temperature sensor status */
+    hwinfo->ds18b20=iniparser_getint(ini, "hardware:ds18b20", 0);
+    if( !hwinfo->ds18b20 )
+        log_warn("Parser DS18B20 temperature module disabled\n");
+    else
+        log_info("Parser DS18B20 temperature module enabled\n");
+
+    /* TSL2561 lux sensor status */
+    hwinfo->tsl2561=iniparser_getint(ini, "hardware:tsl2561", 0);
+    if( !hwinfo->tsl2561)
+        log_warn("Parser TSL2561 lux sensor module disabled\n");
+    else
+        log_info("Parser TSL2561 lux sensor module enabled\n");
+
+    /* TSL2561 lux sensor threshold value  */
+    hwinfo->lux_threshold = iniparser_getdouble(ini, "hardware:lux_threshold", 0.1);
+    log_info("parser LUX enable and threshold value set be [%.03f]\n", hwinfo->lux_threshold);
+
+    /* parser GPIO output pins for relay */
     if( !(str=iniparser_getstring(ini, "hardware:gpio_outpin", NULL)) )
     {
         log_warn("parser no GPIO output pins\n");
@@ -108,7 +127,7 @@
     hwinfo->light_intval = iniparser_getint(ini, "hardware:light_intval", 20);
     log_info("parser relay controled light interval time [%d]\n", hwinfo->light_intval);
 
-    /* parser GPIO input pins  */
+    /* parser GPIO input pins for infrared  */
     if( !(str=iniparser_getstring(ini, "hardware:gpio_inpin", NULL)) )
     {
         log_warn("parser no GPIO input pins\n");
@@ -118,10 +137,6 @@
         parser_gpio_info(_TYPE_INPUT, &hwinfo->gpio, (char *)str);
         log_info("parser [%d] GPIO input pins\n", hwinfo->gpio.incnt);
     }
-
-    hwinfo->lux_threshold = iniparser_getdouble(ini, "hardware:lux_threshold", 0.1);
-    log_info("parser LUX enable and threshold value set be [%.03f]\n", hwinfo->lux_threshold);
-
 
     /*+------------------------------------------------------+
      *|              parser broker settings                  |

--
Gitblit v1.9.1