NEWS
Test Adapter DS18B20 v1.1.x
-
Hallo zusammen,
ich habe den neuen Adapter DS18B20 erstellt.
Dieser Adapter bindet, beispielsweise auf einem Raspberry Pi, direkt die gleichnamigen 1-Wire Temperatursensoren in ioBroker ein.Der Adapter ist in der Lage die gängigen Fehler des Sensors (Checksumme, 85°C, -127°C) zu erkennen und entsprechend zu reagieren (Logmeldungen, ggf. Null-Ersatzwerte).
Alle angeschlossenen Sensoren können über die Sensoren Suchen Funktion auch direkt automatisch erkannt werden.
Zudem ist es möglich für jeden einzelnen Sensor einen eigenen Abfrageintervall, einen Faktor und Offset, sowie die Anzahl der gewünschten Dezimalstellen anzugeben.Weiterhin ist eine Verwendung in Skripten möglich.
Ein Skript kann das Lesen aller Sensoren oder eines bestimmten Sensors antriggern, einen Sensor direkt abfragen und die damit die aktuelle Temperatur erhalten oder nach verfügbaren (angeschlossenen) Sensoren suchen.Eine Ausführliche Beschreibung ist im GitHub Repo zu finden.
Installiert werden kann der Adapter aktuell über das Latest-Repository, oder über den Link https://github.com/crycode-de/ioBroker.ds18b20.
Verbesserungsvorschläge und ggf. Bug-Meldungen sind gerne willkommen.
Viel Spaß beim Testen!
-
Guten Tag,
ich habe diesen Adapter installiert.
Leider taucht der Adapter in den Instanzen nicht auf.
Was mache ich falsch?Gruß Alex
-
@Alexhouse Gab es bei der Installation irgendwelche Fehlermeldungen?
Wenn nicht müsste der Adapter direkt bei den Instanzen auftauchen. Ansonsten vlt. die Ansicht ein mal neu laden. -
Nein, es gab keine Fehlermeldung.
Neugestartet habe ich Ihn auch schon.
-
Versuch mal über das + rechts eine Instanz hinzuzufügen.
-
Treffer!:-)
Danke für die Hilfe.
Gruß Alex
-
Danke für diesen Adapter. Hab ihn heute installiert und mich an die Anleitung von dir gehalten. Die ist wirklich super geschrieben. Alles klappte auf Anhieb.
Das einzige, was noch nicht ganz klappt, sind die Anzahl der Dezimalstellen. Hab zuerst die Standardeinstellung gelassen. Das waren 2 Dezimalstellen. Bei mir wird aber nur eine Nachkommastelle angezeigt. Wenn ich im Adapter die Dezimalstellen auf 3 erhöhe, wird trotzdem nur eine angezeigt.
Weißt du, was ich noch machen könnte? -
@daniel_iobroker
Wenn die aktuelle Temperatur z.B. genau 20,1 °C beträgt, dann wird auch bei zwei gewählten Dezimalstellen 20,1 als Wert in den State geschrieben. Dies hängt damit zusammen, dass der Wert als Zahl und nicht als Text gespeichert wird. Wenn hingegen vom Sensor z.B. 20,123 °C gemeldet wird, dann wird dieser Wert bei zwei Dezimalstellen auf 20,12 °C gerundet.
Für eine Anzeige mit immer zwei Dezimalstellen müsste das im VIS entsprechend umgesetzt werden. Beispielsweise beim "Number" Widget ist dies durch die Option "Zeichen nach dem Komma" möglich.Zum Vergleich, was der Sensor selbst liefert, kannst du in einem Terminal mittels
cat /sys/bus/w1/devices/<Sensor-Adresse>/w1_slave
den Sensor manuell abfragen. Die Ausgabe sieht dann beispielsweise so aus:58 01 4b 46 7f ff 08 10 f9 : crc=f9 YES 58 01 4b 46 7f ff 08 10 f9 t=21500
Dabei ist
t=21500
die aktuelle Temperatur von 21,500 °C, was der Adapter (auch mit zwei gewählten Dezimalstellen) als 21,5 in den State schreiben würde.Vielleicht noch zu erwähnen wäre, dass nur die Sensoren vom Typ DS18B20 überhaupt über eine entsprechende Genauigkeit verfügen. Sensoren vom Typ DS18S20 oder DS1820 können genauso verwendet werden, verfügen aber eine deutlich geringere Auflösung (z.B. nur 0,5er Schritte).
-
@crycode
Danke für deine Antwort.
Ich habe natürlich vorher kontrolliert, ob der Sensor Werte überträgt, die auch nach der Kommastelle nicht 0 sind. Also in meinem Fall wurde der Sensor mit dem kompletten Wert ausgelesen. Der Adapter selbst zeigt trotzdem nur eine Dezimalstelle an.Hab jetzt extra noch probiert, dass Objekt in der VIS anzuzeigen. Es bleibt aber bei einer Stelle. Wenn ich jetzt aber die Nachkommastelle in Vis erhöhe, werden nur 0er angehängt. Also ist die Information im Objekt nicht vorhanden.
-
@daniel_iobroker
Ok, das ist dann seltsam...
Kannst du ein mal die Ausgabe voncat /sys/bus/w1/devices/<Sensor-Adresse>/w1_slave
posten?
Dann kann ich versuchen das Problem mit deinen Sensordaten nachzuvollziehen. -
@crycode
ja, hab mich auch schon gefragt, was es überhaupt sein könnte.
Hier die gewünschte Ausgabe:
pi@raspberrypi:/sys/bus/w1/devices $ cat 28-1c8bf31d64ff/w1_slave
74 01 55 00 7f ff 0c 10 68 : crc=68 YES
74 01 55 00 7f ff 0c 10 68 t=23250Müsste als Objekt ja eigentlich jetzt 23,25°C anzeigen. Im Objekt werden aber 23,3°C angezeigt. Also aufgerundet. Eingestellt sind bei mir im Adapter 3 Dezimalstellen
-
@daniel_iobroker danke, ich mach mich mal auf die Suche nach dem Fehler und einer Lösung.
-
Ab sofort ist die Version 1.1.0 über GitHub und NPM verfügbar. Ab morgen sollte sie dann auch direkt über das latest-Repo zum Update bereit stehen.
Neu in dieser Version:
- Eigene Implementierung des Lesens der Sensordaten. (lief zuvor über das NPM-Modul ds18b20)
- Bug beim Runden auf die gewählte Anzahl an Dezimalstellen behoben.
- Systempfad der 1-Wire Geräte ist nun über die Konfiguration anpassbar.
-
@crycode
Danke für die rasche Behebung. Habe gerade das Update geladen. Jetzt wird der Wert korrekt auf die eingestellte Dezimalstelle dargestellt / gerundet.Eine Frage noch. Wie viele Sensoren können denn ausgelesen werden? Ich habe mal in irgendeiner Doku was von 10Stk. gelesen. Dabei ging es um das auslesen der ds18b20 Sensoren über den Raspi. Könnte natürlich sein, dass das inzwischen erhöht worden ist? Ich weiß aber auch, dass es hier einen workaround gab, mit dem dann mehr auslesen ging.
Bei mir geht es um ca. 30 Stück. Möchte den Heizkreisverteiler mit den Sensoren vollpacken. Also für jeden Heizkreis (Fußbodenheizung) 2 Stück => 1 Vorlauf, 1 Rücklauf. Dafür wäre der Adapter einfach perfekt
-
@daniel_iobroker
Soweit ich weiß gibt es da keine softwareseitigen Beschränkungen.
Was bei zunehmender Sensoranzahl jedoch immer entscheidender wird, sind die elektrischen Eigenschaften. Der 1-Wire Bus sollte Linear mit möglichst kurzen Abzweigungen zu den einzelnen Sensoren geführt werden. Je länger die einzelnen Abzweige von der Hauptleitung sowie die Leitungen überhaupt sind, desto mehr Störungen können auftreten und den Bus stören.Auf dem Raspi gibt es noch die Möglichkeit mehrere 1-Wire Busse über unterschiedliche GPIOs zu verwenden und somit die Sensoren quasi in Gruppen aufzuteilen.
Dazu einfach in der Datei/boot/config.txt
die Zeile mit dem entsprechenden Overlay mehrfach hinzufügen und dabei den GPIO anpassen:dtoverlay=w1-gpio,gpiopin=4 dtoverlay=w1-gpio,gpiopin=17 dtoverlay=w1-gpio,gpiopin=27
Im System werden dann unter
/sys/bus/w1/devices
mehrerew1_bus_masterX
angelegt.
Der Adapter erkennt aktuell bei der Suche nach Sensoren nur Sensoren amw1_bus_master1
automatisch. Du kannst aber trotzdem die Adressen per Hand in der Liste hinzufügen und damit dann alle Sensoren auslesen. -
Hi
Ich habe leider auch ein Problem mit dem Adapter (heute installiert)Über den Pi bekomme ich alle Sensoren angezeigt und ausgelesen, nur der Adapter bekommt keine Verbindung:
Über Sensoren suchen konnten die 9 Sensoren automatisch gefunden werden:
Wo liegt der Fehler?
Danke!
-
@SMS Welchen Sensortyp verwendest du genau?
Der Adapter erwartet, dass das Byte 5 der Rohdaten 0xFF entspricht. Ist dies nicht der Fall, so wie bei dir (0xA5), dann kommt der Communication Error.
Laut Datenblatt sollte das Byte 5 immer 0xFF sein, daher die Frage nach dem Sensortyp. -
DS18B20
Das hier wird mir angezeigt:pi@ioBroker-RasPi4:~ $ cat /sys/bus/w1/devices/28-0319a2795cd5/w1_slave b3 00 55 05 7f a5 a5 66 e4 : crc=e4 YES b3 00 55 05 7f a5 a5 66 e4 t=11187
-
@SMS Das widerspricht den Infos aus dem Datenblatt, aber dann gibt es scheinbar Sensoren, die in dieses Byte etwas anderes schreiben.
Ich werde den Adapter entsprechend anpassen. -
Ich muss dazu sagen das es auf einem PI 1 und anderen DS18B20 Sensoren funktioniert hat.
Falls dir der Parser Adapter was sagt, da hatten die gleichen Sensoren vor einer Woche noch funktioniert, seit Sonntag aber nicht mehr. In der Konsole bekomme ich sie angezeigt und ausgelesen …
Jetzt nutze ich einen Pi 4