Add "grande chambre" (using esp8266 nodemcu)
[manu/arduino-maison.git] / garage / garage.ino
index a6c20cc..fbe2d77 100644 (file)
@@ -27,6 +27,10 @@ WiFiUDP Udp;
 // GPIO where the DS18B20 is connected to
 const int oneWireBus = 19;
 // Setup a oneWire instance to communicate with any OneWire devices
+//  ROM = 28 C6 C9 81 E3 6E 3C C ROM = 28 31 A7 1D 13 21 1 F6 ROM = 28 15 8E 4B 13 21 1 46 No more addresses.
+DeviceAddress sensor_heater_out = {0x28, 0x31, 0xA7, 0x1D, 0x13, 0x21, 0x01, 0xF6};
+DeviceAddress sensor_serre = {0x28, 0x15, 0x8E, 0x4B, 0x13, 0x21, 0x01, 0x46};
+DeviceAddress sensor_heater_in = {0x28, 0xC6, 0xC9, 0x81, 0xE3, 0x6E, 0x3C ,0x0C};
 OneWire oneWire(oneWireBus);
 // Pass our oneWire reference to Dallas Temperature sensor 
 DallasTemperature sensors(&oneWire);
@@ -63,9 +67,14 @@ void setup() {
   
   WiFi.mode(WIFI_STA);
   WiFi.begin(WIFI_SSID, WIFI_PASS);
-
+  delay(500);
+  
   while (WiFi.status() != WL_CONNECTED) {
+    WiFi.begin(wifi_ssid, wifi_pass);
     delay(500);
+    if (WiFi.status() != WL_CONNECTED) {
+      delay(2000);
+    }
   }
 
   sensors.begin();
@@ -82,14 +91,12 @@ void loop() {
     fulldata = true;
     previousMillis = millis();   
   
-  // Check wifi connexion
-    if ( WiFi.status() != WL_CONNECTED ) {
-        int retry = 0;
-        WiFi.mode(WIFI_STA);
+    // Reconnect if needed
+    while (WiFi.status() != WL_CONNECTED) {
         WiFi.begin(WIFI_SSID, WIFI_PASS);
-        while (retry < 10 || WiFi.status() != WL_CONNECTED) {
-            retry++;
-            delay(500);
+        delay(500);
+        if (WiFi.status() != WL_CONNECTED) {
+          delay(2000);
         }
     }
 
@@ -97,12 +104,26 @@ void loop() {
         Serial.println("DEBUG wifi connected, start temp measure");
 
         sensors.requestTemperatures(); 
-        float tempC = sensors.getTempCByIndex(0);
+        float serre_tempC = sensors.getTempC(sensor_serre);
+        float heater_out_tempC = sensors.getTempC(sensor_heater_out);
+        float heater_in_tempC = sensors.getTempC(sensor_heater_in);
+        
+        if(serre_tempC == DEVICE_DISCONNECTED_C) {
+          // Error
+        } else {
+            sendToInfluxDB("temperature,city="+city+",location=serre-semis", "value", String(serre_tempC));
+        }
+        
+        if(heater_out_tempC == DEVICE_DISCONNECTED_C) {
+          // Error
+        } else {
+            sendToInfluxDB("temperature,city="+city+",location=heater,direction=out", "value", String(heater_out_tempC));
+        }
         
-        if(tempC == DEVICE_DISCONNECTED_C) 
+        if(heater_in_tempC == DEVICE_DISCONNECTED_C) {
           // Error
         } else {
-            sendToInfluxDB("temperature,city="+city+",location=serre_semis", "value", String(tempC));
+            sendToInfluxDB("temperature,city="+city+",location=heater,direction=in", "value", String(heater_in_tempC));
         }
         
         sendToInfluxDB("teleinfo,city="+city+",location="+location, "SINSTS", tinfo_SINSTS);