sondes DS18B20 qui passent à 0°

Forum dédié au bus 1-Wire : connectique, intégration
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

sondes DS18B20 qui passent à 0°

Message par patatrak »

Bonjour,

Je tourne depuis des années avec 13 sondes DS18B20 sur mon bus 1Wire sur GPIO (Raspi PI3B)
Tout fonctionne bien cependant chroniquement (environ 1 fois par mois) il y a plantage du bus et toutes mes sondes se bloquent à 0°.
La seule solution pour faire repartir le bus c'est de rebooter la raspi en coupant également l'alim des sondes sur le bus (je suis câblé en 3 fils avec une alim séparée pour alimenter les sondes)
Quelqu'un a t-il rencontré ce problème?
Merci
Dernière modification par patatrak le 29 mai 2025, 11:55, modifié 1 fois.
fcBourgogne
Messages : 172
Inscription : 31 mars 2020, 14:22

Re: sondes DS18B20 qui passent à 0°

Message par fcBourgogne »

Bonjour,

Tu n"es pas le seul avec ce problème.
Il y a tellement d'éléments qui rentrent en ligne de compte que la solution risque de devenir une véritable quête.

Pour ma part et comme tu peux le voir, je suis avec beaucoup d'attention ce sujet.
J'ai essayé beaucoup de techniques pour essayer d'y remédier, mais chez moi aussi ça décroche de temps en temps et comme j'ai également le canal I2C en fonction, quand un élément plante la plus part du temps ça devient empirique et les deux canaux deviennent HS.
Alors, comme tu l'as dit, le fait de redémarrer le pi, ça fonctionne à nouveau, mais combien de temps?
Donc après avoir contrôlé toutes les tensions, chaque sonde, les températures anormales, les signaux, je me suis résigné à faire un script qui surveille les canaux et les redémarre au cas ou.
Regarde ce sujet https://easydomoticz.com/forum/viewtopic.php?t=14272
A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

Re: sondes DS18B20 qui passent à 0°

Message par patatrak »

Bonjour,
merci de la réponse
Je pensais à une sonde merdouilleuse qui planterait le bus de temps à autre mais malgré en avoir plein les tiroirs je trouvais fastidieux de les changer une à une et de surcroit en perdant l'historique des températures.
pour ma part je me suis fait des alertes push sur mon téléphone au cas où les sondes passe à 0 et branché le pi sur une prise tuya de manière à pouvoir le rebooter à distance. reboot violent oui mais j'ai remarqué qu'un redémarrage logiciel ne suffisait pas.
Maintenant que je sais que le problème ne vient pas de mon install çà me rassure.
Je n'ai pas le temps dans l'immédiat mais si tu as fait un reboot automatique çà m'intéresse.
merci
fcBourgogne
Messages : 172
Inscription : 31 mars 2020, 14:22

Re: sondes DS18B20 qui passent à 0°

Message par fcBourgogne »

Le code en Lua, Trigger "All", redémarrage uniquement des canaux 1-wire et I2C, pas de reboot total.

Code : Tout sélectionner

commandArray = {}

-- Chemin du fichier log de Domoticz
local logFilePath = "/tmp/domoticz.txt"

-- Fonction pour lire la dernière ligne d'un fichier
local function readLastLine(filename)
    local file = io.open(filename, "r")
    if not file then return nil end

    local lastLine
    for line in file:lines() do
        lastLine = line
    end
    file:close()
    return lastLine
end

-- Lire la dernière ligne du fichier log
    local lastLogLine = readLastLine(logFilePath)

-- Vérifier que la dernière ligne n'est pas nil
if lastLogLine then
    
    -- Vérifier la présence de l'erreur "Error: I2C"
    if string.find(lastLogLine, "Error: I2C") then
        -- Arrêt du canal I2C
        os.execute("sudo modprobe -r i2c-dev")
        
        commandArray['SendNotification']='subject#Défaut canal I2C.#0'
        
        -- Afficher un message dans la console
        print('Canal I2C arrêt suite à l\'erreur.')
        -- Pause de 5 secondes
    os.execute("sleep 2")
        -- Redémarrer le canal I2C
        os.execute("sudo modprobe i2c-dev")
  -- Afficher un message dans la console
        print('Canal I2C redémarré suite à l\'erreur.')
    end
    
    -- Vérifier la présence de l'erreur "Error: Wire1"
    if string.find(lastLogLine, "Error: Wire1") then
    commandArray['SendNotification']='subject#Défaut bus 1-wire.#0'
        --Arrêt du canal w1-gpio
        os.execute("sudo modprobe -r w1-gpio")
        -- Afficher un message dans la console
        print('Canal W1 arrêt suite à l\'erreur.')
        -- Pause de 5 secondes
    os.execute("sleep 1")

        -- Redémarrage du canal W1
         os.execute("sudo modprobe w1-gpio")
         print('Canal W1 redémarré suite à l\'erreur.')
         -- Pause de 5 secondes
    os.execute("sleep 2")

         end
else
    print('Le fichier log est vide ou inaccessible.')
end

return commandArray
Bien entendu il faut activer la ligne

Code : Tout sélectionner

DAEMON_ARGS="$DAEMON_ARGS -log /tmp/domoticz.txt"
qui se trouve dans certainement /etc/init.d/domoticz.sh
Le script se contente de lire la dernière du fichier /tmp/domoticz.txt, et si il y a "Error: I2C" redémarrage du canal et envoi d'une notification, idem pour 1-wire

A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

Re: sondes DS18B20 qui passent à 0°

Message par patatrak »

Salut fcBourgogne
J'espère avoir un moment ce soir pour tester ton script. Moi je n'utilise pas l'i2c je me contenterais de la partie W1
Est ce que chez toi le reboot logiciel suffit pour relancer le bouzin?
fcBourgogne
Messages : 172
Inscription : 31 mars 2020, 14:22

Re: sondes DS18B20 qui passent à 0°

Message par fcBourgogne »

Bonjour,
Est ce que chez toi le reboot logiciel suffit pour relancer le bouzin?
Oui tant que ce n'est un défaut matériel persistant, comme une sonde HS qui perturbe le canal, ça redémarre.
Tiens un exemple:
2025-05-30 02:03:02.964 Error: Wire1: 1-Wire system : error reading value from /sys/bus/w1/devices/28-01211363b23b
2025-05-30 02:03:04.146 Status: LUA: Canal W1 arrêt suite à l'erreur.
2025-05-30 02:03:05.209 Status: LUA: Canal W1 redémarré suite à l'erreur.
2025-05-30 02:03:07.215 Status: EventSystem: Script event triggered: LogEyesI2C&1Wire
Et là pour la déconnexion j'en connais la raison, il y a du avoir une transmission de données d'une sonde pendant l'arrêt d'un chauffe-eau, qui est justement programmé à cette heure précise, 02h03h04s, la coupure du chauffe-eau a occasionnée des parasites dans tout le réseau électrique de la maison.

A+
Raspberry PI5+ 1WIRE + I2C +ESP8266 +esp32
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

Re: sondes DS18B20 qui passent à 0°

Message par patatrak »

Salut bien

Bon j'ai mis en place toute ta procédure
Reste à attendre que le bug arrive.
Je manquerais pas de te faire un retour
Merci à toi
supeve
Messages : 85
Inscription : 21 oct. 2020, 18:41

Re: sondes DS18B20 qui passent à 0°

Message par supeve »

J'en ai 6 branché sur un ESP32 sous espeasy, j'avais des plantage comme vous, en baissant la résolution je n'ai plus de plantage.
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

Re: sondes DS18B20 qui passent à 0°

Message par patatrak »

Salut fcBourgogne
J'ai eu un plantage ce matin à 9h et il n'y a pas eut de relance du bus et pour cause en regardant le log de domoticz(domoticz.txt) il n'y a pas eut d'erreur.
Ce qui est bizarre en outre c'est que nous sommes le 15/06 et que le dernier évènement date du 11/06
????
patatrak
Messages : 58
Inscription : 25 avr. 2018, 16:09

Re: sondes DS18B20 qui passent à 0°

Message par patatrak »

Salut supeve
Où as-tu réglé la résolution des sondes?
Répondre