I don’t believe in Grafana artefacts here. When you look closely: Rarely there are /some/ readings which are not .0 or .5 … according to some document about counterfeit DS18B20 all DS18B20 we got from Bremen have to be assumed to be counterfeits: When we had some timing-problems in the beginning we got for 5 of 6 sensors the reading “25” which shall be a counterfeit-indicator (original DS18B20 state “85”). (For the sixth sensor we had a correct timing/reading.)
We should probably do some switch-devices-tests. But so far we only have these six sensors.
Ich teste in hiverize/fipy mit ATOM die von @robert-hh modifizierten DS18B20-Treiber. Da sind mir einige Ungereimtheiten aufgefallen, die ich aber noch nicht präzise formulieren kann.
Grob kann man sagen:
In reinen Testprogrammen nur mit DS18B20 und OLED-Display gibt es selten CRC-Fehler, die den eindeutigen Wert “None” ausgeben, während der alte Treiber beliebige Fehlwerte (Ausreisser) ausgab.
Im vollen Messprogramm sind die CRC-Fehler deutlich häufiger, mit der Firmware 1.20.xx häufiger als mit Firmware 1.18.xx
Die Methode ds18b20.scan() findet nicht immer alle Sensoren.
Ich kann mit dem Mini-LogicAnalyzer von az-delivery sauber das Protokoll decodieren, habe aber noch keine Fehlerursache gefunden.
Hintergrund: Wir schalten nun nach jedem Meßvorgang die Peripherie ab, damit sich – gerade beim HX711 – die Wägezelle nicht erwärmt. Das passiert nun unabhängig davon, ob man die Firmware zum maximalen Stromsparen während der Betriebspausen in der Deep Sleep Konfiguration betreibt oder nicht.
Die native Variante kannst Du über die – wie erwähnt schnittstellenkompatiblen – lowlevel Treiber ansprechen, wie wir sie an jener Stelle out-of-the-box im Terkin-Datenlogger erschlossen haben:
Nativer 1-Wire/DS18B20 Treiber von Genuine MicroPython
Wir haben die Dateien bei der Beschaffung nur entsprechend benannt, damit wir wahlweise beide Varianten umschaltbar innerhalb der gleichen Codebasis betreiben können.
Die pure-Python Variante ist aus den bekannten und naheliegenden Gründen beim Timing Schrott – war es schon immer und wird es auch immer bleiben. Es gab bis dato halt nur nichts besseres.
Die Fehler tauchen extrem unterschiedlich häufig auf, manchmal gibt es 100 x 6 Messungen keinen Fehler, oben gab es bei der 20. und 25. Messung Fehler.
Gestern hat uns Guido diese Beobachtung berichtet:
Folgendes ist mir zu den Abbrüchen aufgefallen:
Ich hatte trotz update bjs zum 20.12 regelmässig (fast täglich) Abbrüche.
Am 20.12 wurde nach dem öffnen der Beute die Temperatur der Einzellfühler nicht mehr angezeigt. (Warum have ich nicht nicht geprüft).
Also nur noch Waage, Luftfeuchte inkl. Temperatur.
Interessant ist aber, dass ich seit dem keinen Abbruch mehr hatte.
Vielleicht gibt es einen Zusammenhang
Vielleicht hilft uns die Treiber-Verbesserung der DS18B20-Temperatur-Sensoren auch das gesamte Laufzeitverhalten der BOB-Software zu stabilisieren.
Ich hatte im Herbst den Fall, dass die DS18B20 plötzlich ausfielen, und dann das Wlan. Der Fipy lief dann noch wochenlang ohne Absturz. Die Ursachen konnte ich nicht ermitteln.
Der Test der neuen DS18B20-Treiber verläuft so erfolgreich, dass ich noch keine Fehlmessung beobachten .konnte. Ich befürchte aber, dass ich noch etwas übersehen habe.
Für den Einbau der neuen DS18B20-Treiber in hiverize/FiPy brauche ich etwas Hilfe. Die Testprogramme nur mit DS18B20 und OLED laufen, aber in der BOB-Firmware gibt es Instabilitäten.
Im Testprogramm BOB-DS18B20.zip (24,2 KB) gibt es 3 Varianten:
onewire_a.py und ds18x20_a.py von @vinz,häufige Fehlwerte, CRC-Fehler nicht abgefangen
onewire_b.py und ds18x20_b.py von @robert-hh, häufige CRC-Fehler
onewire_c.py und ds18x20_c.py von @andreas, sehr seltene Messfehler, aber häufige Reboots in Hiverize/FiPy.
Leider sind x_c.py nicht ganz softwarekompatibel zu x_a.py und x_b.py