[AIDE] Capteur 18B20 (module) plusieurs actions

Ca y est j'ai ciblé le problème dans le programme d'origine.
J'ai intégré des commentaire retourné au moniteur (et ajouté les accolades {} au conditionnements) => Voir le code.
La fonction nous retourne FAUX a deux endroit ==> A l'identification et a la recherche des capteurs.
Donc j'ai comme valeur de température 0.00c°
Je continue.

#include <OneWire.h> // Inclusion de la librairie OneWire
#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 9 // Broche utilisée pour le bus 1-Wire

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
boolean unefois = false;
boolean unefois1 = false;

OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds
//KY019 5V relay module
int relay = 7; // relay turns trigger signal - active high;

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp) {
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    Serial.println("Recherche faux");
    Serial.println();
    return false;         // Retourne une erreur
  }

  if (OneWire::crc8(addr, 7) != addr[7]){ // Vérifie que l'adresse a été correctement reçue
    Serial.print("crc faux");
    Serial.println();
    return false; // Si le message est corrompu on retourne une erreur
  }
  
  if (addr[0] != DS18B20){ // Vérifie qu'il s'agit bien d'un DS18B20
    Serial.print("Identite faux");
    Serial.println();
    return false;         // Si ce n'est pas le cas on retourne une erreur
  }
  
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20

  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(800);             // Et on attend la fin de la mesure

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus

  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;

  // Pas d'erreur
  return true;
}

// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
  lcd.begin(16, 2); //Taille LCD
  pinMode(6, OUTPUT); // LED VERTE
  pinMode(8, OUTPUT); // LED ROUGE
  pinMode(relay, OUTPUT); // Relais sortie
}

// loop()
void loop() {

  if (!unefois) {
    //Affichage TEXTE (Nom du produit) une seule fois
    lcd.setCursor(0, 0);
    lcd.print("  * X-Fresh *");
    lcd.setCursor(0, 1);
    lcd.print(" Version : 1.0");
    delay(4000);
    lcd.clear();
    unefois = true;
  }

  if (!unefois1) {
    //Affichage TEXTE (Démarrage) une seule fois
    lcd.setCursor(0, 0);
    lcd.print("Bonjour !");
    lcd.setCursor(0, 1);
    lcd.print("    Demarrage...");
    delay(1000);
    lcd.clear();
    unefois1 = true;
  }

  float temp;

  // Lit la température ambiante à ~1Hz

  bool cr = getTemperature(&temp);

  // Affiche la température
  Serial.print("Temperature : ");
  Serial.print(temp);
  Serial.write(176); // caractère °
  Serial.write('C');
  Serial.println();

  if (!cr)
    return;           // !!!!!!! On ne fait pas le traitement

  const float consigne=25;
  const float hysteresis=0.5;
 
  // Action au-dela de 25°C enclanche relais
  if (temp >= consigne) { //Conditionnement de mise en service.
    lcd.setCursor(0, 0);
    lcd.write("Arrosage actif");

    digitalWrite(8, LOW); //  VERTE ETEINTE
    digitalWrite(6, HIGH); //  ROUGE ALLUMEE
    digitalWrite(relay, HIGH); //  MOTEUR ALLUME
  }
  if (temp <= consigne - hysteresis) { //Conditionnement de mise hors service.
    lcd.setCursor(0, 0);
    lcd.write("Normal        ");

    //digitalWrite(relay, LOW); //  MOTEUR ETEINT
    digitalWrite(8, HIGH); // VERTE ALLUMEE
    digitalWrite(6, LOW); // ROUGE ETEINTE
  }
  lcd.setCursor(0, 1);
  lcd.print(temp);
  lcd.print(" C ");
}