Da meine Heizung und Solarpumpe ziemlich un-smart sind, greife ich im Heizraum verschiedene Temperaturen mittels DSB18B20 Sensoren über 1-Wire selbst ab. Doch das 1-Wire zickte immer ziemlich rum. Sensoren waren teilweise vorhanden, dann wieder verschwunden. Unterschiedliche Kabellängen zu den Sensoren wirkten sich massiv auf die Zuverlässigkeit aus.
Der mutmaßliche Grund: der PullUp Widerstand war viel zu hochohmig. In vielen Anleitungen im Netz stehen Werte von 4K7 (4,7 KΩ) für den nötigen PullUp Widerstand. Ich hatte bereits „nur“ einen 3K2 verbaut – trotzdem zu viel, wie ich inzwischen herausgefunden habe. Denn der 4K7 Widerstand bezieht sich auf eine Spannung von 5V. Betreibt man 1-Wire am Raspberry Pi mit nur 3,3V muss der PullUp Widerstand deutlich geringer bemessen werden.
Ein interessantes Dokument zum Thema empfiehlt bei 3,3V einen Widerstand zwischen 725Ω bis 1000Ω. Und schon funktioniert es (zumindest bei mir).
Achtung Nutzt man einen zu geringen Widerstand bei einer Spannung von 5V können Sensoren und Raspberry Pi Schaden nehmen!
Hier der Link zum Dokument: https://pdfserv.maximintegrated.com/en/an/AN4255.pdf
Sensorwerte selbst erheben
Noch ein Wort zum selber „abgreifen“ der Sensorwerte. Das funktioniert tatsächlich super! Im Speicher fand ich für die Sensoren Platz in den gleichen Messöffnungen, wo auch die Hausgeräte ihre Werte messen. Während zwischen meiner Messung und der Messung der Solarpumpe keine Abweichung erkennbar ist, liegt die Gastherme bei einer Abweichung von 1,3 Kelvin, was sich über ein Offset ganz einfach ausbalancieren lässt. Über den Parser-Adapter des ioBroker kommen die Werte der Sensoren ganz einfach ins SmartHome.