Version 0.9.16. Final changes DHT11 reading via sysfs.

Mon, 25 Mar 2024 11:44:45 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 25 Mar 2024 11:44:45 +0100
changeset 649
64cfc01ec024
parent 648
62c5ed1b9cfd
child 650
0b215e4b814e

Version 0.9.16. Final changes DHT11 reading via sysfs.

configure file | annotate | diff | comparison | revisions
configure.ac file | annotate | diff | comparison | revisions
thermferm/devices.c file | annotate | diff | comparison | revisions
--- a/configure	Sun Mar 24 17:12:23 2024 +0100
+++ b/configure	Mon Mar 25 11:44:45 2024 +0100
@@ -2037,7 +2037,7 @@
 
 
 PACKAGE="mbsePi-apps"
-VERSION="0.9.15"
+VERSION="0.9.16"
 COPYRIGHT="Copyright (C) 2014-2024 Michiel Broek, All Rights Reserved"
 CYEARS="2014-2024"
 
--- a/configure.ac	Sun Mar 24 17:12:23 2024 +0100
+++ b/configure.ac	Mon Mar 25 11:44:45 2024 +0100
@@ -8,7 +8,7 @@
 dnl General settings
 dnl After changeing the version number, run autoconf!
 PACKAGE="mbsePi-apps"
-VERSION="0.9.15"
+VERSION="0.9.16"
 COPYRIGHT="Copyright (C) 2014-2024 Michiel Broek, All Rights Reserved"
 CYEARS="2014-2024"
 AC_SUBST(PACKAGE)
--- a/thermferm/devices.c	Sun Mar 24 17:12:23 2024 +0100
+++ b/thermferm/devices.c	Mon Mar 25 11:44:45 2024 +0100
@@ -77,9 +77,12 @@
 	    /*
 	     * The sensor is gone.
 	     */
+	    err = errno;
+	    syslog(LOG_NOTICE, "DHT11 open temperature: %d %s", err, strerror(err));
 	    free(dhtpath);
 	    dht11_state = DEVPRESENT_NO;
-	    break;
+	    goto retry;
+//	    break;
 	}
 	rc = read(fd, buffer, 25);
 	if (rc == -1) {
@@ -94,7 +97,6 @@
 	    dht11_temperature = -1;
 	} else {
 	    sscanf(buffer, "%d", &temp);
-	    syslog(LOG_NOTICE, "read temp rc=%d %f", rc, temp / 1000.0);
 	    dht11_temperature = temp;
 	    dht11_state = DEVPRESENT_YES;
 	}
@@ -124,7 +126,6 @@
 	    	dht11_humidity = -1;
 	    } else {
 	    	sscanf(buffer, "%d", &hum);
-	    	syslog(LOG_NOTICE, "read hum  rc=%d %f", rc, hum / 1000.0);
 	    	dht11_humidity = hum;
 		dht11_state = DEVPRESENT_YES;
 	    }
@@ -136,8 +137,11 @@
 	if (dht11_state == DEVPRESENT_YES) {
 	    break;
 	}
-	if (tries > 0)
+retry:
+	if (tries > 0) {
 	    tries--;
+	    usleep(400000);
+	}
     }
 
     syslog(LOG_NOTICE, "dht11 t:%d h:%d tries:%d state:%d", dht11_temperature, dht11_humidity, 6-tries, dht11_state);

mercurial